mirror of
https://github.com/1Password/onepassword-operator.git
synced 2025-10-22 07:28:06 +00:00
refactor volume functions
Signed-off-by: Manuel Morejon <manuel@mmorejon.io>
This commit is contained in:
@@ -4,23 +4,10 @@ import corev1 "k8s.io/api/core/v1"
|
|||||||
|
|
||||||
func AreVolumesUsingSecrets(volumes []corev1.Volume, secrets map[string]*corev1.Secret) bool {
|
func AreVolumesUsingSecrets(volumes []corev1.Volume, secrets map[string]*corev1.Secret) bool {
|
||||||
for i := 0; i < len(volumes); i++ {
|
for i := 0; i < len(volumes); i++ {
|
||||||
if secret := volumes[i].Secret; secret != nil {
|
secret := IsVolumeUsingSecret(volumes[i], secrets)
|
||||||
secretName := secret.SecretName
|
secretProjection := IsVolumeUsingSecretProjection(volumes[i], secrets)
|
||||||
_, ok := secrets[secretName]
|
if secret == nil && secretProjection == nil {
|
||||||
if !ok {
|
return false
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if volumes[i].Projected != nil {
|
|
||||||
for j := 0; j < len(volumes[i].Projected.Sources); j++ {
|
|
||||||
if secret := volumes[i].Projected.Sources[j].Secret; secret != nil {
|
|
||||||
secretName := secret.Name
|
|
||||||
_, ok := secrets[secretName]
|
|
||||||
if !ok {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(volumes) == 0 {
|
if len(volumes) == 0 {
|
||||||
@@ -31,24 +18,41 @@ func AreVolumesUsingSecrets(volumes []corev1.Volume, secrets map[string]*corev1.
|
|||||||
|
|
||||||
func AppendUpdatedVolumeSecrets(volumes []corev1.Volume, secrets map[string]*corev1.Secret, updatedDeploymentSecrets map[string]*corev1.Secret) map[string]*corev1.Secret {
|
func AppendUpdatedVolumeSecrets(volumes []corev1.Volume, secrets map[string]*corev1.Secret, updatedDeploymentSecrets map[string]*corev1.Secret) map[string]*corev1.Secret {
|
||||||
for i := 0; i < len(volumes); i++ {
|
for i := 0; i < len(volumes); i++ {
|
||||||
if secret := volumes[i].Secret; secret != nil {
|
secret := IsVolumeUsingSecret(volumes[i], secrets)
|
||||||
secretName := secret.SecretName
|
if secret != nil {
|
||||||
secret, ok := secrets[secretName]
|
updatedDeploymentSecrets[secret.Name] = secret
|
||||||
if ok {
|
} else {
|
||||||
updatedDeploymentSecrets[secret.Name] = secret
|
secretProjection := IsVolumeUsingSecretProjection(volumes[i], secrets)
|
||||||
}
|
if secretProjection != nil {
|
||||||
}
|
updatedDeploymentSecrets[secretProjection.Name] = secretProjection
|
||||||
if volumes[i].Projected != nil {
|
|
||||||
for j := 0; j < len(volumes[i].Projected.Sources); j++ {
|
|
||||||
if secret := volumes[i].Projected.Sources[j].Secret; secret != nil {
|
|
||||||
secretName := secret.Name
|
|
||||||
secret, ok := secrets[secretName]
|
|
||||||
if ok {
|
|
||||||
updatedDeploymentSecrets[secret.Name] = secret
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return updatedDeploymentSecrets
|
return updatedDeploymentSecrets
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsVolumeUsingSecret(volume corev1.Volume, secrets map[string]*corev1.Secret) *corev1.Secret {
|
||||||
|
if secret := volume.Secret; secret != nil {
|
||||||
|
secretName := secret.SecretName
|
||||||
|
secretFound, ok := secrets[secretName]
|
||||||
|
if ok {
|
||||||
|
return secretFound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsVolumeUsingSecretProjection(volume corev1.Volume, secrets map[string]*corev1.Secret) *corev1.Secret {
|
||||||
|
if volume.Projected != nil {
|
||||||
|
for i := 0; i < len(volume.Projected.Sources); i++ {
|
||||||
|
if secret := volume.Projected.Sources[i].Secret; secret != nil {
|
||||||
|
secretName := secret.Name
|
||||||
|
secretFound, ok := secrets[secretName]
|
||||||
|
if ok {
|
||||||
|
return secretFound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user