mirror of
https://github.com/stakater/Reloader.git
synced 2026-08-23 05:56:30 +00:00
refactor: Re-use a lot of code and move to specific packages
This commit is contained in:
@@ -103,99 +103,11 @@ func (w *CronJobWorkload) GetEnvFromSources() []corev1.EnvFromSource {
|
||||
}
|
||||
|
||||
func (w *CronJobWorkload) UsesConfigMap(name string) bool {
|
||||
spec := &w.cronjob.Spec.JobTemplate.Spec.Template.Spec
|
||||
|
||||
// Check volumes
|
||||
for _, vol := range spec.Volumes {
|
||||
if vol.ConfigMap != nil && vol.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.ConfigMap != nil && source.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check containers
|
||||
for _, container := range spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesConfigMap(&w.cronjob.Spec.JobTemplate.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *CronJobWorkload) UsesSecret(name string) bool {
|
||||
spec := &w.cronjob.Spec.JobTemplate.Spec.Template.Spec
|
||||
|
||||
// Check volumes
|
||||
for _, vol := range spec.Volumes {
|
||||
if vol.Secret != nil && vol.Secret.SecretName == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.Secret != nil && source.Secret.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check containers
|
||||
for _, container := range spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesSecret(&w.cronjob.Spec.JobTemplate.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *CronJobWorkload) GetOwnerReferences() []metav1.OwnerReference {
|
||||
|
||||
@@ -96,95 +96,11 @@ func (w *DaemonSetWorkload) GetEnvFromSources() []corev1.EnvFromSource {
|
||||
}
|
||||
|
||||
func (w *DaemonSetWorkload) UsesConfigMap(name string) bool {
|
||||
// Check volumes
|
||||
for _, vol := range w.daemonset.Spec.Template.Spec.Volumes {
|
||||
if vol.ConfigMap != nil && vol.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.ConfigMap != nil && source.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check envFrom
|
||||
for _, container := range w.daemonset.Spec.Template.Spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range w.daemonset.Spec.Template.Spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesConfigMap(&w.daemonset.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *DaemonSetWorkload) UsesSecret(name string) bool {
|
||||
// Check volumes
|
||||
for _, vol := range w.daemonset.Spec.Template.Spec.Volumes {
|
||||
if vol.Secret != nil && vol.Secret.SecretName == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.Secret != nil && source.Secret.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check envFrom
|
||||
for _, container := range w.daemonset.Spec.Template.Spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range w.daemonset.Spec.Template.Spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesSecret(&w.daemonset.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *DaemonSetWorkload) GetOwnerReferences() []metav1.OwnerReference {
|
||||
|
||||
@@ -96,97 +96,11 @@ func (w *DeploymentWorkload) GetEnvFromSources() []corev1.EnvFromSource {
|
||||
}
|
||||
|
||||
func (w *DeploymentWorkload) UsesConfigMap(name string) bool {
|
||||
// Check volumes
|
||||
for _, vol := range w.deployment.Spec.Template.Spec.Volumes {
|
||||
if vol.ConfigMap != nil && vol.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.ConfigMap != nil && source.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check envFrom
|
||||
for _, container := range w.deployment.Spec.Template.Spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
// Check individual env vars
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range w.deployment.Spec.Template.Spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesConfigMap(&w.deployment.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *DeploymentWorkload) UsesSecret(name string) bool {
|
||||
// Check volumes
|
||||
for _, vol := range w.deployment.Spec.Template.Spec.Volumes {
|
||||
if vol.Secret != nil && vol.Secret.SecretName == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.Secret != nil && source.Secret.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check envFrom
|
||||
for _, container := range w.deployment.Spec.Template.Spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
// Check individual env vars
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range w.deployment.Spec.Template.Spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesSecret(&w.deployment.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *DeploymentWorkload) GetOwnerReferences() []metav1.OwnerReference {
|
||||
|
||||
@@ -102,95 +102,11 @@ func (w *JobWorkload) GetEnvFromSources() []corev1.EnvFromSource {
|
||||
}
|
||||
|
||||
func (w *JobWorkload) UsesConfigMap(name string) bool {
|
||||
// Check volumes
|
||||
for _, vol := range w.job.Spec.Template.Spec.Volumes {
|
||||
if vol.ConfigMap != nil && vol.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.ConfigMap != nil && source.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check containers
|
||||
for _, container := range w.job.Spec.Template.Spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range w.job.Spec.Template.Spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesConfigMap(&w.job.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *JobWorkload) UsesSecret(name string) bool {
|
||||
// Check volumes
|
||||
for _, vol := range w.job.Spec.Template.Spec.Volumes {
|
||||
if vol.Secret != nil && vol.Secret.SecretName == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.Secret != nil && source.Secret.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check containers
|
||||
for _, container := range w.job.Spec.Template.Spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range w.job.Spec.Template.Spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesSecret(&w.job.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *JobWorkload) GetOwnerReferences() []metav1.OwnerReference {
|
||||
|
||||
@@ -137,99 +137,11 @@ func (w *RolloutWorkload) GetEnvFromSources() []corev1.EnvFromSource {
|
||||
}
|
||||
|
||||
func (w *RolloutWorkload) UsesConfigMap(name string) bool {
|
||||
spec := &w.rollout.Spec.Template.Spec
|
||||
|
||||
// Check volumes
|
||||
for _, vol := range spec.Volumes {
|
||||
if vol.ConfigMap != nil && vol.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.ConfigMap != nil && source.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check containers
|
||||
for _, container := range spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesConfigMap(&w.rollout.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *RolloutWorkload) UsesSecret(name string) bool {
|
||||
spec := &w.rollout.Spec.Template.Spec
|
||||
|
||||
// Check volumes
|
||||
for _, vol := range spec.Volumes {
|
||||
if vol.Secret != nil && vol.Secret.SecretName == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.Secret != nil && source.Secret.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check containers
|
||||
for _, container := range spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesSecret(&w.rollout.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *RolloutWorkload) GetOwnerReferences() []metav1.OwnerReference {
|
||||
|
||||
@@ -96,95 +96,11 @@ func (w *StatefulSetWorkload) GetEnvFromSources() []corev1.EnvFromSource {
|
||||
}
|
||||
|
||||
func (w *StatefulSetWorkload) UsesConfigMap(name string) bool {
|
||||
// Check volumes
|
||||
for _, vol := range w.statefulset.Spec.Template.Spec.Volumes {
|
||||
if vol.ConfigMap != nil && vol.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.ConfigMap != nil && source.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check envFrom
|
||||
for _, container := range w.statefulset.Spec.Template.Spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range w.statefulset.Spec.Template.Spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesConfigMap(&w.statefulset.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *StatefulSetWorkload) UsesSecret(name string) bool {
|
||||
// Check volumes
|
||||
for _, vol := range w.statefulset.Spec.Template.Spec.Volumes {
|
||||
if vol.Secret != nil && vol.Secret.SecretName == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.Secret != nil && source.Secret.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check envFrom
|
||||
for _, container := range w.statefulset.Spec.Template.Spec.Containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check init containers
|
||||
for _, container := range w.statefulset.Spec.Template.Spec.InitContainers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
return SpecUsesSecret(&w.statefulset.Spec.Template.Spec, name)
|
||||
}
|
||||
|
||||
func (w *StatefulSetWorkload) GetOwnerReferences() []metav1.OwnerReference {
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
package workload
|
||||
|
||||
import corev1 "k8s.io/api/core/v1"
|
||||
|
||||
// SpecUsesConfigMap checks if a PodSpec references the named ConfigMap.
|
||||
func SpecUsesConfigMap(spec *corev1.PodSpec, name string) bool {
|
||||
for _, vol := range spec.Volumes {
|
||||
if vol.ConfigMap != nil && vol.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.ConfigMap != nil && source.ConfigMap.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if containersUseConfigMap(spec.Containers, name) {
|
||||
return true
|
||||
}
|
||||
return containersUseConfigMap(spec.InitContainers, name)
|
||||
}
|
||||
|
||||
func containersUseConfigMap(containers []corev1.Container, name string) bool {
|
||||
for _, container := range containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.ConfigMapRef != nil && envFrom.ConfigMapRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.ConfigMapKeyRef != nil && env.ValueFrom.ConfigMapKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// SpecUsesSecret checks if a PodSpec references the named Secret.
|
||||
func SpecUsesSecret(spec *corev1.PodSpec, name string) bool {
|
||||
for _, vol := range spec.Volumes {
|
||||
if vol.Secret != nil && vol.Secret.SecretName == name {
|
||||
return true
|
||||
}
|
||||
if vol.Projected != nil {
|
||||
for _, source := range vol.Projected.Sources {
|
||||
if source.Secret != nil && source.Secret.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if containersUseSecret(spec.Containers, name) {
|
||||
return true
|
||||
}
|
||||
return containersUseSecret(spec.InitContainers, name)
|
||||
}
|
||||
|
||||
func containersUseSecret(containers []corev1.Container, name string) bool {
|
||||
for _, container := range containers {
|
||||
for _, envFrom := range container.EnvFrom {
|
||||
if envFrom.SecretRef != nil && envFrom.SecretRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
for _, env := range container.Env {
|
||||
if env.ValueFrom != nil && env.ValueFrom.SecretKeyRef != nil && env.ValueFrom.SecretKeyRef.Name == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user