Skip to content

Commit

Permalink
Create Fernet keys
Browse files Browse the repository at this point in the history
  • Loading branch information
afaranha authored and xek committed Oct 17, 2024
1 parent e0e719b commit 40f4075
Showing 1 changed file with 33 additions and 25 deletions.
58 changes: 33 additions & 25 deletions controllers/keystoneapi_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -1379,38 +1379,46 @@ func (r *KeystoneAPIReconciler) ensureFernetKeys(
//
secretName := keystone.ServiceName
secret, hash, err := oko_secret.GetSecret(ctx, helper, secretName, instance.Namespace)

if err != nil && !k8s_errors.IsNotFound(err) {
return err
} else if k8s_errors.IsNotFound(err) {
fernetKeys := map[string]string{
"CredentialKeys0": keystone.GenerateFernetKey(),
"CredentialKeys1": keystone.GenerateFernetKey(),
}
var numberKeys int
fmt.Sscan(instance.Spec.FernetMaxActiveKeys, &numberKeys)
for i := 0; i < numberKeys; i++ {
fernetKeys[fmt.Sprintf("FernetKeys%d", i)] = keystone.GenerateFernetKey()
}

tmpl := []util.Template{
{
Name: secretName,
Namespace: instance.Namespace,
Type: util.TemplateTypeNone,
CustomData: fernetKeys,
Labels: labels,
},
}
err := oko_secret.EnsureSecrets(ctx, helper, instance, tmpl, envVars)
if err != nil {
return err
}
} else {
// add hash to envVars
(*envVars)[secret.Name] = env.SetValue(hash)
}

// TODO: fernet key rotation
fernetKeys := map[string]string{
"CredentialKeys0": keystone.GenerateFernetKey(),
"CredentialKeys1": keystone.GenerateFernetKey(),
}

var numberKeys int
fmt.Sscan(instance.Spec.FernetMaxActiveKeys, &numberKeys)

for i := 0; i < numberKeys; i++ {
key := fmt.Sprintf("FernetKeys%d", i)
v, exists := secret.Data[key]
if exists {
fernetKeys[key] = string(v[:])
} else {
fernetKeys[key] = keystone.GenerateFernetKey()
}
}

tmpl := []util.Template{
{
Name: secretName,
Namespace: instance.Namespace,
Type: util.TemplateTypeNone,
CustomData: fernetKeys,
Labels: labels,
},
}

err = oko_secret.EnsureSecrets(ctx, helper, instance, tmpl, envVars)
if err != nil {
return err
}

return nil
}
Expand Down

0 comments on commit 40f4075

Please sign in to comment.