github.com/kubeshop/testkube@v1.17.23/pkg/triggers/diff.go (about) 1 package triggers 2 3 import ( 4 "github.com/google/go-cmp/cmp" 5 apps_v1 "k8s.io/api/apps/v1" 6 7 "github.com/kubeshop/testkube-operator/pkg/validation/tests/v1/testtrigger" 8 ) 9 10 func diffDeployments(old, new *apps_v1.Deployment) []testtrigger.Cause { 11 var causes []testtrigger.Cause 12 13 if *old.Spec.Replicas != *new.Spec.Replicas { 14 causes = append(causes, testtrigger.CauseDeploymentScaleUpdate) 15 } 16 for _, newContainer := range new.Spec.Template.Spec.Containers { 17 oldContainer := findContainer(old.Spec.Template.Spec.Containers, newContainer.Name) 18 if oldContainer == nil { 19 causes = append(causes, testtrigger.CauseDeploymentContainersModified) 20 continue 21 } 22 if oldContainer.Image != newContainer.Image { 23 causes = append(causes, testtrigger.CauseDeploymentImageUpdate) 24 } 25 if !cmp.Equal(oldContainer.Env, newContainer.Env) { 26 causes = append(causes, testtrigger.CauseDeploymentEnvUpdate) 27 } 28 break 29 } 30 return causes 31 }