Skip to content

Commit 5c73cf8

Browse files
afaranhaxek
authored andcommitted
Add variable number of Fernet keys
Add configuration for specifying the number of fernet keys stored in the keystone secret.
1 parent cb51daf commit 5c73cf8

4 files changed

Lines changed: 16 additions & 2 deletions

File tree

api/bases/keystone.openstack.org_keystoneapis.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,10 @@ spec:
365365
description: Secret containing OpenStack password information for
366366
keystone AdminPassword
367367
type: string
368+
numberFernetKeys:
369+
default: 2
370+
description: Number of Fernet keys
371+
type: integer
368372
tls:
369373
description: TLS - Parameters related to the TLS
370374
properties:

api/v1beta1/keystoneapi_types.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,11 @@ type KeystoneAPISpecCore struct {
168168
// +operator-sdk:csv:customresourcedefinitions:type=spec
169169
// TLS - Parameters related to the TLS
170170
TLS tls.API `json:"tls,omitempty"`
171+
172+
// +kubebuilder:validation:Optional
173+
// +kubebuilder:default=2
174+
// Number of Fernet keys
175+
FernetKeys *int32 `json:"numberFernetKeys"`
171176
}
172177

173178
// APIOverrideSpec to override the generated manifest of several child resources.

config/crd/bases/keystone.openstack.org_keystoneapis.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,10 @@ spec:
365365
description: Secret containing OpenStack password information for
366366
keystone AdminPassword
367367
type: string
368+
numberFernetKeys:
369+
default: 2
370+
description: Number of Fernet keys
371+
type: integer
368372
tls:
369373
description: TLS - Parameters related to the TLS
370374
properties:

controllers/keystoneapi_controller.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,11 +1339,12 @@ func (r *KeystoneAPIReconciler) ensureFernetKeys(
13391339
return err
13401340
} else if k8s_errors.IsNotFound(err) {
13411341
fernetKeys := map[string]string{
1342-
"FernetKeys0": keystone.GenerateFernetKey(),
1343-
"FernetKeys1": keystone.GenerateFernetKey(),
13441342
"CredentialKeys0": keystone.GenerateFernetKey(),
13451343
"CredentialKeys1": keystone.GenerateFernetKey(),
13461344
}
1345+
for i := range instance.Spec.FernetKeys {
1346+
fernetKeys[fmt.Sprintf("FernetKeys%d", i)] = keystone.GenerateFernetKey()
1347+
}
13471348

13481349
tmpl := []util.Template{
13491350
{

0 commit comments

Comments
 (0)