From af0e14f3b266af97cb5e3899d527ae40201b8962 Mon Sep 17 00:00:00 2001 From: Bryan Cox Date: Mon, 23 Sep 2024 13:44:54 -0400 Subject: [PATCH 1/3] Add ARO HCP environment vars to CSI deployment This commit adds environment variables needed by a CSI deployment for ARO HCP. Signed-off-by: Bryan Cox --- .../hypershift_deployment_controller.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pkg/operator/csidriveroperator/hypershift_deployment_controller.go b/pkg/operator/csidriveroperator/hypershift_deployment_controller.go index 9b4ef33f9..4c7af47cd 100644 --- a/pkg/operator/csidriveroperator/hypershift_deployment_controller.go +++ b/pkg/operator/csidriveroperator/hypershift_deployment_controller.go @@ -132,6 +132,19 @@ func (c *HyperShiftDeploymentController) Sync(ctx context.Context, syncCtx facto return fmt.Errorf("failed to inject proxy data into deployment: %w", err) } + // The existence of the environment variable, ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE, means this is an ARO HCP + // deployment. We need to pass along additional environment variables for ARO HCP in order to mount the backing + // certificates, related to the client IDs, in a volume on the azure-disk-csi-controller and + // azure-file-csi-controller deployments. + if os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE") != "" { + envVars := []corev1.EnvVar{ + {Name: "ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE", Value: os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE")}, + {Name: "ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK", Value: os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK")}, + } + + required.Spec.Template.Spec.Containers[0].Env = append(required.Spec.Template.Spec.Containers[0].Env, envVars...) + } + lastGeneration := resourcemerge.ExpectedDeploymentGeneration(requiredCopy, opStatus.Generations) deployment, _, err := resourceapply.ApplyDeployment(ctx, c.mgmtClient.KubeClient.AppsV1(), c.eventRecorder, requiredCopy, lastGeneration) if err != nil { From 803310a0e954ad66b240d4a712f4636f75a48377 Mon Sep 17 00:00:00 2001 From: Penghao Date: Mon, 28 Oct 2024 14:46:38 +0800 Subject: [PATCH 2/3] HOSTEDCP-2033: Correct ARO HCP environment vars to CSI deployment --- .../hypershift_deployment_controller.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkg/operator/csidriveroperator/hypershift_deployment_controller.go b/pkg/operator/csidriveroperator/hypershift_deployment_controller.go index 4c7af47cd..5b898dfba 100644 --- a/pkg/operator/csidriveroperator/hypershift_deployment_controller.go +++ b/pkg/operator/csidriveroperator/hypershift_deployment_controller.go @@ -136,13 +136,21 @@ func (c *HyperShiftDeploymentController) Sync(ctx context.Context, syncCtx facto // deployment. We need to pass along additional environment variables for ARO HCP in order to mount the backing // certificates, related to the client IDs, in a volume on the azure-disk-csi-controller and // azure-file-csi-controller deployments. - if os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE") != "" { - envVars := []corev1.EnvVar{ - {Name: "ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE", Value: os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE")}, + var envVars []corev1.EnvVar + if os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK") != "" && requiredCopy.ObjectMeta.Name == "azure-disk-csi-driver-operator" { + envVars = []corev1.EnvVar{ {Name: "ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK", Value: os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK")}, } + } + + if os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE") != "" && requiredCopy.ObjectMeta.Name == "azure-file-csi-driver-operator" { + envVars = []corev1.EnvVar{ + {Name: "ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE", Value: os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE")}, + } + } - required.Spec.Template.Spec.Containers[0].Env = append(required.Spec.Template.Spec.Containers[0].Env, envVars...) + if len(envVars) > 0 { + requiredCopy.Spec.Template.Spec.Containers[0].Env = append(requiredCopy.Spec.Template.Spec.Containers[0].Env, envVars...) } lastGeneration := resourcemerge.ExpectedDeploymentGeneration(requiredCopy, opStatus.Generations) From a508f210e2cbb38aa59eae07e46531b20becf0f5 Mon Sep 17 00:00:00 2001 From: Penghao Date: Tue, 29 Oct 2024 08:59:33 +0800 Subject: [PATCH 3/3] Fix: go linter --- .../csidriveroperator/hypershift_deployment_controller.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/operator/csidriveroperator/hypershift_deployment_controller.go b/pkg/operator/csidriveroperator/hypershift_deployment_controller.go index 5b898dfba..7fc01f281 100644 --- a/pkg/operator/csidriveroperator/hypershift_deployment_controller.go +++ b/pkg/operator/csidriveroperator/hypershift_deployment_controller.go @@ -137,13 +137,13 @@ func (c *HyperShiftDeploymentController) Sync(ctx context.Context, syncCtx facto // certificates, related to the client IDs, in a volume on the azure-disk-csi-controller and // azure-file-csi-controller deployments. var envVars []corev1.EnvVar - if os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK") != "" && requiredCopy.ObjectMeta.Name == "azure-disk-csi-driver-operator" { + if os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK") != "" && requiredCopy.Name == "azure-disk-csi-driver-operator" { envVars = []corev1.EnvVar{ {Name: "ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK", Value: os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_DISK")}, } } - if os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE") != "" && requiredCopy.ObjectMeta.Name == "azure-file-csi-driver-operator" { + if os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE") != "" && requiredCopy.Name == "azure-file-csi-driver-operator" { envVars = []corev1.EnvVar{ {Name: "ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE", Value: os.Getenv("ARO_HCP_SECRET_PROVIDER_CLASS_FOR_FILE")}, }