diff --git a/pkg/deploy/defaults.go b/pkg/deploy/defaults.go index a038d3ac8..2daaa8330 100644 --- a/pkg/deploy/defaults.go +++ b/pkg/deploy/defaults.go @@ -256,7 +256,7 @@ func DefaultCheVersion() string { } func DefaultCheServerImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultCheServerImage) + return PatchDefaultImageName(cr, defaultCheServerImage) } func DefaultCheTLSSecretsCreationJobImage() string { @@ -264,11 +264,11 @@ func DefaultCheTLSSecretsCreationJobImage() string { } func DefaultPvcJobsImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultPvcJobsImage) + return PatchDefaultImageName(cr, defaultPvcJobsImage) } func DefaultPostgresImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultPostgresImage) + return PatchDefaultImageName(cr, defaultPostgresImage) } func DefaultPostgres13Image(cr *orgv1.CheCluster) string { @@ -276,55 +276,55 @@ func DefaultPostgres13Image(cr *orgv1.CheCluster) string { if defaultPostgres13Image == "" { return defaultPostgres13Image } - return patchDefaultImageName(cr, defaultPostgres13Image) + return PatchDefaultImageName(cr, defaultPostgres13Image) } func DefaultDashboardImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultDashboardImage) + return PatchDefaultImageName(cr, defaultDashboardImage) } func DefaultDevworkspaceControllerImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultDevworkspaceControllerImage) + return PatchDefaultImageName(cr, defaultDevworkspaceControllerImage) } func DefaultPluginRegistryImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultPluginRegistryImage) + return PatchDefaultImageName(cr, defaultPluginRegistryImage) } func DefaultDevfileRegistryImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultDevfileRegistryImage) + return PatchDefaultImageName(cr, defaultDevfileRegistryImage) } func DefaultCheWorkspacePluginBrokerMetadataImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultCheWorkspacePluginBrokerMetadataImage) + return PatchDefaultImageName(cr, defaultCheWorkspacePluginBrokerMetadataImage) } func DefaultCheWorkspacePluginBrokerArtifactsImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultCheWorkspacePluginBrokerArtifactsImage) + return PatchDefaultImageName(cr, defaultCheWorkspacePluginBrokerArtifactsImage) } func DefaultCheServerSecureExposerJwtProxyImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultCheServerSecureExposerJwtProxyImage) + return PatchDefaultImageName(cr, defaultCheServerSecureExposerJwtProxyImage) } func DefaultSingleHostGatewayImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultSingleHostGatewayImage) + return PatchDefaultImageName(cr, defaultSingleHostGatewayImage) } func DefaultSingleHostGatewayConfigSidecarImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultSingleHostGatewayConfigSidecarImage) + return PatchDefaultImageName(cr, defaultSingleHostGatewayConfigSidecarImage) } func DefaultGatewayAuthenticationSidecarImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultGatewayAuthenticationSidecarImage) + return PatchDefaultImageName(cr, defaultGatewayAuthenticationSidecarImage) } func DefaultGatewayAuthorizationSidecarImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultGatewayAuthorizationSidecarImage) + return PatchDefaultImageName(cr, defaultGatewayAuthorizationSidecarImage) } func DefaultGatewayHeaderProxySidecarImage(cr *orgv1.CheCluster) string { - return patchDefaultImageName(cr, defaultGatewayHeaderProxySidecarImage) + return PatchDefaultImageName(cr, defaultGatewayHeaderProxySidecarImage) } func DefaultKubernetesImagePullerOperatorCSV() string { @@ -359,7 +359,7 @@ func GetWorkspaceNamespaceDefault(cr *orgv1.CheCluster) string { return util.GetValue(cr.Spec.Server.WorkspaceNamespaceDefault, workspaceNamespaceDefault) } -func patchDefaultImageName(cr *orgv1.CheCluster, imageName string) string { +func PatchDefaultImageName(cr *orgv1.CheCluster, imageName string) string { if !cr.IsAirGapMode() { return imageName } diff --git a/pkg/deploy/defaults_test.go b/pkg/deploy/defaults_test.go index 860081664..6f04e04e1 100644 --- a/pkg/deploy/defaults_test.go +++ b/pkg/deploy/defaults_test.go @@ -169,7 +169,7 @@ func TestCorrectAirGapPatchedImage(t *testing.T) { } for name, tc := range testCases { t.Run(name, func(*testing.T) { - actual := patchDefaultImageName(tc.cr, tc.image) + actual := PatchDefaultImageName(tc.cr, tc.image) if actual != tc.expected { t.Errorf("Expected %s but was %s", tc.expected, actual) } diff --git a/pkg/deploy/dev-workspace/dev_workspace_syncer.go b/pkg/deploy/dev-workspace/dev_workspace_syncer.go index 0eb069930..047287cc5 100644 --- a/pkg/deploy/dev-workspace/dev_workspace_syncer.go +++ b/pkg/deploy/dev-workspace/dev_workspace_syncer.go @@ -13,6 +13,7 @@ package devworkspace import ( "context" + "strings" "github.com/eclipse-che/che-operator/pkg/deploy" "github.com/eclipse-che/che-operator/pkg/util" @@ -180,12 +181,22 @@ func syncDwDeployment(deployContext *deploy.DeployContext) (bool, error) { } devworkspaceControllerImage := util.GetValue(deployContext.CheCluster.Spec.DevWorkspace.ControllerImage, deploy.DefaultDevworkspaceControllerImage(deployContext.CheCluster)) - devWorkspaceController := deployment.Spec.Template.Spec.Containers[0] - devWorkspaceController.Image = devworkspaceControllerImage - for _, env := range devWorkspaceController.Env { - if env.Name == "RELATED_IMAGE_devworkspace_webhook_server" { - env.Value = devworkspaceControllerImage - break + for contIdx, container := range deployment.Spec.Template.Spec.Containers { + if container.Name == "devworkspace-controller" { + deployment.Spec.Template.Spec.Containers[contIdx].Image = devworkspaceControllerImage + } else { + deployment.Spec.Template.Spec.Containers[contIdx].Image = deploy.PatchDefaultImageName( + deployContext.CheCluster, + deployment.Spec.Template.Spec.Containers[contIdx].Image, + ) + } + + for envIdx, env := range container.Env { + if env.Name == "RELATED_IMAGE_devworkspace_webhook_server" { + deployment.Spec.Template.Spec.Containers[contIdx].Env[envIdx].Value = devworkspaceControllerImage + } else if strings.HasPrefix(env.Name, "RELATED_IMAGE_") { + deployment.Spec.Template.Spec.Containers[contIdx].Env[envIdx].Value = deploy.PatchDefaultImageName(deployContext.CheCluster, env.Value) + } } }