diff --git a/internal/pkg/callbacks/rolling_upgrade.go b/internal/pkg/callbacks/rolling_upgrade.go index 77d7982cc..81c0b659d 100644 --- a/internal/pkg/callbacks/rolling_upgrade.go +++ b/internal/pkg/callbacks/rolling_upgrade.go @@ -17,7 +17,6 @@ import ( patchtypes "k8s.io/apimachinery/pkg/types" argorolloutv1alpha1 "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" - openshiftv1 "github.com/openshift/api/apps/v1" ) // ItemFunc is a generic function to return a specific resource in given namespace @@ -232,36 +231,6 @@ func GetStatefulSetItems(clients kube.Clients, namespace string) []runtime.Objec return items } -// GetDeploymentConfigItem returns the deploymentConfig in given namespace -func GetDeploymentConfigItem(clients kube.Clients, name string, namespace string) (runtime.Object, error) { - deploymentConfig, err := clients.OpenshiftAppsClient.AppsV1().DeploymentConfigs(namespace).Get(context.TODO(), name, meta_v1.GetOptions{}) - if err != nil { - logrus.Errorf("Failed to get deploymentConfig %v", err) - return nil, err - } - - return deploymentConfig, nil -} - -// GetDeploymentConfigItems returns the deploymentConfigs in given namespace -func GetDeploymentConfigItems(clients kube.Clients, namespace string) []runtime.Object { - deploymentConfigs, err := clients.OpenshiftAppsClient.AppsV1().DeploymentConfigs(namespace).List(context.TODO(), meta_v1.ListOptions{}) - if err != nil { - logrus.Errorf("Failed to list deploymentConfigs %v", err) - } - - items := make([]runtime.Object, len(deploymentConfigs.Items)) - // Ensure we always have pod annotations to add to - for i, v := range deploymentConfigs.Items { - if v.Spec.Template.ObjectMeta.Annotations == nil { - deploymentConfigs.Items[i].Spec.Template.ObjectMeta.Annotations = make(map[string]string) - } - items[i] = &deploymentConfigs.Items[i] - } - - return items -} - // GetRolloutItem returns the rollout in given namespace func GetRolloutItem(clients kube.Clients, name string, namespace string) (runtime.Object, error) { rollout, err := clients.ArgoRolloutClient.ArgoprojV1alpha1().Rollouts(namespace).Get(context.TODO(), name, meta_v1.GetOptions{}) @@ -332,14 +301,6 @@ func GetStatefulSetAnnotations(item runtime.Object) map[string]string { return item.(*appsv1.StatefulSet).ObjectMeta.Annotations } -// GetDeploymentConfigAnnotations returns the annotations of given deploymentConfig -func GetDeploymentConfigAnnotations(item runtime.Object) map[string]string { - if item.(*openshiftv1.DeploymentConfig).ObjectMeta.Annotations == nil { - item.(*openshiftv1.DeploymentConfig).ObjectMeta.Annotations = make(map[string]string) - } - return item.(*openshiftv1.DeploymentConfig).ObjectMeta.Annotations -} - // GetRolloutAnnotations returns the annotations of given rollout func GetRolloutAnnotations(item runtime.Object) map[string]string { if item.(*argorolloutv1alpha1.Rollout).ObjectMeta.Annotations == nil { @@ -388,14 +349,6 @@ func GetStatefulSetPodAnnotations(item runtime.Object) map[string]string { return item.(*appsv1.StatefulSet).Spec.Template.ObjectMeta.Annotations } -// GetDeploymentConfigPodAnnotations returns the pod's annotations of given deploymentConfig -func GetDeploymentConfigPodAnnotations(item runtime.Object) map[string]string { - if item.(*openshiftv1.DeploymentConfig).Spec.Template.ObjectMeta.Annotations == nil { - item.(*openshiftv1.DeploymentConfig).Spec.Template.ObjectMeta.Annotations = make(map[string]string) - } - return item.(*openshiftv1.DeploymentConfig).Spec.Template.ObjectMeta.Annotations -} - // GetRolloutPodAnnotations returns the pod's annotations of given rollout func GetRolloutPodAnnotations(item runtime.Object) map[string]string { if item.(*argorolloutv1alpha1.Rollout).Spec.Template.ObjectMeta.Annotations == nil { @@ -429,11 +382,6 @@ func GetStatefulSetContainers(item runtime.Object) []v1.Container { return item.(*appsv1.StatefulSet).Spec.Template.Spec.Containers } -// GetDeploymentConfigContainers returns the containers of given deploymentConfig -func GetDeploymentConfigContainers(item runtime.Object) []v1.Container { - return item.(*openshiftv1.DeploymentConfig).Spec.Template.Spec.Containers -} - // GetRolloutContainers returns the containers of given rollout func GetRolloutContainers(item runtime.Object) []v1.Container { return item.(*argorolloutv1alpha1.Rollout).Spec.Template.Spec.Containers @@ -464,11 +412,6 @@ func GetStatefulSetInitContainers(item runtime.Object) []v1.Container { return item.(*appsv1.StatefulSet).Spec.Template.Spec.InitContainers } -// GetDeploymentConfigInitContainers returns the containers of given deploymentConfig -func GetDeploymentConfigInitContainers(item runtime.Object) []v1.Container { - return item.(*openshiftv1.DeploymentConfig).Spec.Template.Spec.InitContainers -} - // GetRolloutInitContainers returns the containers of given rollout func GetRolloutInitContainers(item runtime.Object) []v1.Container { return item.(*argorolloutv1alpha1.Rollout).Spec.Template.Spec.InitContainers @@ -575,19 +518,6 @@ func PatchStatefulSet(clients kube.Clients, namespace string, resource runtime.O return err } -// UpdateDeploymentConfig performs rolling upgrade on deploymentConfig -func UpdateDeploymentConfig(clients kube.Clients, namespace string, resource runtime.Object) error { - deploymentConfig := resource.(*openshiftv1.DeploymentConfig) - _, err := clients.OpenshiftAppsClient.AppsV1().DeploymentConfigs(namespace).Update(context.TODO(), deploymentConfig, meta_v1.UpdateOptions{FieldManager: "Reloader"}) - return err -} - -func PatchDeploymentConfig(clients kube.Clients, namespace string, resource runtime.Object, patchType patchtypes.PatchType, bytes []byte) error { - deploymentConfig := resource.(*openshiftv1.DeploymentConfig) - _, err := clients.OpenshiftAppsClient.AppsV1().DeploymentConfigs(namespace).Patch(context.TODO(), deploymentConfig.Name, patchType, bytes, meta_v1.PatchOptions{FieldManager: "Reloader"}) - return err -} - // UpdateRollout performs rolling upgrade on rollout func UpdateRollout(clients kube.Clients, namespace string, resource runtime.Object) error { rollout := resource.(*argorolloutv1alpha1.Rollout) @@ -631,11 +561,6 @@ func GetStatefulSetVolumes(item runtime.Object) []v1.Volume { return item.(*appsv1.StatefulSet).Spec.Template.Spec.Volumes } -// GetDeploymentConfigVolumes returns the Volumes of given deploymentConfig -func GetDeploymentConfigVolumes(item runtime.Object) []v1.Volume { - return item.(*openshiftv1.DeploymentConfig).Spec.Template.Spec.Volumes -} - // GetRolloutVolumes returns the Volumes of given rollout func GetRolloutVolumes(item runtime.Object) []v1.Volume { return item.(*argorolloutv1alpha1.Rollout).Spec.Template.Spec.Volumes diff --git a/internal/pkg/controller/controller_test.go b/internal/pkg/controller/controller_test.go index ccef5df83..0876b2c73 100644 --- a/internal/pkg/controller/controller_test.go +++ b/internal/pkg/controller/controller_test.go @@ -68,64 +68,6 @@ func TestMain(m *testing.M) { os.Exit(retCode) } -// Perform rolling upgrade on deploymentConfig and create pod annotation var upon updating the configmap -func TestControllerUpdatingConfigmapShouldCreatePodAnnotationInDeploymentConfig(t *testing.T) { - options.ReloadStrategy = constants.AnnotationsReloadStrategy - - // Don't run test on non-openshift environment - if !kube.IsOpenshift { - return - } - - // Creating configmap - configmapName := configmapNamePrefix + "-update-" + testutil.RandSeq(5) - configmapClient, err := testutil.CreateConfigMap(clients.KubernetesClient, namespace, configmapName, "www.google.com") - if err != nil { - t.Errorf("Error while creating the configmap %v", err) - } - - // Creating deployment - _, err = testutil.CreateDeploymentConfig(clients.OpenshiftAppsClient, configmapName, namespace, true) - if err != nil { - t.Errorf("Error in deploymentConfig creation: %v", err) - } - - // Updating configmap for first time - updateErr := testutil.UpdateConfigMap(configmapClient, namespace, configmapName, "", "www.stakater.com") - if updateErr != nil { - t.Errorf("Configmap was not updated") - } - - // Verifying deployment update - logrus.Infof("Verifying pod annotation has been created") - shaData := testutil.ConvertResourceToSHA(testutil.ConfigmapResourceType, namespace, configmapName, "www.stakater.com") - config := util.Config{ - Namespace: namespace, - ResourceName: configmapName, - SHAValue: shaData, - Annotation: options.ConfigmapUpdateOnChangeAnnotation, - } - deploymentConfigFuncs := handler.GetDeploymentConfigRollingUpgradeFuncs() - updated := testutil.VerifyResourceAnnotationUpdate(clients, config, deploymentConfigFuncs) - if !updated { - t.Errorf("DeploymentConfig was not updated") - } - time.Sleep(sleepDuration) - - // Deleting deployment - err = testutil.DeleteDeploymentConfig(clients.OpenshiftAppsClient, namespace, configmapName) - if err != nil { - logrus.Errorf("Error while deleting the deploymentConfig %v", err) - } - - // Deleting configmap - err = testutil.DeleteConfigMap(clients.KubernetesClient, namespace, configmapName) - if err != nil { - logrus.Errorf("Error while deleting the configmap %v", err) - } - time.Sleep(sleepDuration) -} - // Perform rolling upgrade on deployment and create pod annotation var upon updating the configmap func TestControllerUpdatingConfigmapShouldCreatePodAnnotationInDeployment(t *testing.T) { options.ReloadStrategy = constants.AnnotationsReloadStrategy @@ -1078,64 +1020,6 @@ func TestControllerUpdatingSecretShouldCreatePodAnnotationInStatefulSet(t *testi time.Sleep(sleepDuration) } -// Perform rolling upgrade on deploymentConfig and create env var upon updating the configmap -func TestControllerUpdatingConfigmapShouldCreateEnvInDeploymentConfig(t *testing.T) { - options.ReloadStrategy = constants.EnvVarsReloadStrategy - - // Don't run test on non-openshift environment - if !kube.IsOpenshift { - return - } - - // Creating configmap - configmapName := configmapNamePrefix + "-update-" + testutil.RandSeq(5) - configmapClient, err := testutil.CreateConfigMap(clients.KubernetesClient, namespace, configmapName, "www.google.com") - if err != nil { - t.Errorf("Error while creating the configmap %v", err) - } - - // Creating deployment - _, err = testutil.CreateDeploymentConfig(clients.OpenshiftAppsClient, configmapName, namespace, true) - if err != nil { - t.Errorf("Error in deploymentConfig creation: %v", err) - } - - // Updating configmap for first time - updateErr := testutil.UpdateConfigMap(configmapClient, namespace, configmapName, "", "www.stakater.com") - if updateErr != nil { - t.Errorf("Configmap was not updated") - } - - // Verifying deployment update - logrus.Infof("Verifying env var has been created") - shaData := testutil.ConvertResourceToSHA(testutil.ConfigmapResourceType, namespace, configmapName, "www.stakater.com") - config := util.Config{ - Namespace: namespace, - ResourceName: configmapName, - SHAValue: shaData, - Annotation: options.ConfigmapUpdateOnChangeAnnotation, - } - deploymentConfigFuncs := handler.GetDeploymentConfigRollingUpgradeFuncs() - updated := testutil.VerifyResourceEnvVarUpdate(clients, config, constants.ConfigmapEnvVarPostfix, deploymentConfigFuncs) - if !updated { - t.Errorf("DeploymentConfig was not updated") - } - time.Sleep(sleepDuration) - - // Deleting deployment - err = testutil.DeleteDeploymentConfig(clients.OpenshiftAppsClient, namespace, configmapName) - if err != nil { - logrus.Errorf("Error while deleting the deploymentConfig %v", err) - } - - // Deleting configmap - err = testutil.DeleteConfigMap(clients.KubernetesClient, namespace, configmapName) - if err != nil { - logrus.Errorf("Error while deleting the configmap %v", err) - } - time.Sleep(sleepDuration) -} - // Perform rolling upgrade on deployment and create env var upon updating the configmap func TestControllerUpdatingConfigmapShouldCreateEnvInDeployment(t *testing.T) { options.ReloadStrategy = constants.EnvVarsReloadStrategy diff --git a/internal/pkg/handler/upgrade.go b/internal/pkg/handler/upgrade.go index 508f92688..e84bed4e8 100644 --- a/internal/pkg/handler/upgrade.go +++ b/internal/pkg/handler/upgrade.go @@ -119,24 +119,6 @@ func GetStatefulSetRollingUpgradeFuncs() callbacks.RollingUpgradeFuncs { } } -// GetDeploymentConfigRollingUpgradeFuncs returns all callback funcs for a deploymentConfig -func GetDeploymentConfigRollingUpgradeFuncs() callbacks.RollingUpgradeFuncs { - return callbacks.RollingUpgradeFuncs{ - ItemFunc: callbacks.GetDeploymentConfigItem, - ItemsFunc: callbacks.GetDeploymentConfigItems, - AnnotationsFunc: callbacks.GetDeploymentConfigAnnotations, - PodAnnotationsFunc: callbacks.GetDeploymentConfigPodAnnotations, - ContainersFunc: callbacks.GetDeploymentConfigContainers, - InitContainersFunc: callbacks.GetDeploymentConfigInitContainers, - UpdateFunc: callbacks.UpdateDeploymentConfig, - PatchFunc: callbacks.PatchDeploymentConfig, - PatchTemplatesFunc: callbacks.GetPatchTemplates, - VolumesFunc: callbacks.GetDeploymentConfigVolumes, - ResourceType: "DeploymentConfig", - SupportsPatch: true, - } -} - // GetArgoRolloutRollingUpgradeFuncs returns all callback funcs for a rollout func GetArgoRolloutRollingUpgradeFuncs() callbacks.RollingUpgradeFuncs { return callbacks.RollingUpgradeFuncs{ @@ -210,13 +192,6 @@ func doRollingUpgrade(config util.Config, collectors metrics.Collectors, recorde return err } - if kube.IsOpenshift { - err = rollingUpgrade(clients, config, GetDeploymentConfigRollingUpgradeFuncs(), collectors, recorder, invoke) - if err != nil { - return err - } - } - if options.IsArgoRollouts == "true" { err = rollingUpgrade(clients, config, GetArgoRolloutRollingUpgradeFuncs(), collectors, recorder, invoke) if err != nil {