@@ -390,6 +390,8 @@ func TestTemplate_ControllerDeployment_Customize(t *testing.T) {
390390 "imagePullSecrets[0].name" : "dockerhub" ,
391391 "nameOverride" : "gha-runner-scale-set-controller-override" ,
392392 "fullnameOverride" : "gha-runner-scale-set-controller-fullname-override" ,
393+ "env[0].name" : "ENV_VAR_NAME_1" ,
394+ "env[0].value" : "ENV_VAR_VALUE_1" ,
393395 "serviceAccount.name" : "gha-runner-scale-set-controller-sa" ,
394396 "podAnnotations.foo" : "bar" ,
395397 "podSecurityContext.fsGroup" : "1000" ,
@@ -432,6 +434,9 @@ func TestTemplate_ControllerDeployment_Customize(t *testing.T) {
432434 assert .Equal (t , "bar" , deployment .Spec .Template .Annotations ["foo" ])
433435 assert .Equal (t , "manager" , deployment .Spec .Template .Annotations ["kubectl.kubernetes.io/default-container" ])
434436
437+ assert .Equal (t , "ENV_VAR_NAME_1" , deployment .Spec .Template .Spec .Containers [0 ].Env [2 ].Name )
438+ assert .Equal (t , "ENV_VAR_VALUE_1" , deployment .Spec .Template .Spec .Containers [0 ].Env [2 ].Value )
439+
435440 assert .Len (t , deployment .Spec .Template .Spec .ImagePullSecrets , 1 )
436441 assert .Equal (t , "dockerhub" , deployment .Spec .Template .Spec .ImagePullSecrets [0 ].Name )
437442 assert .Equal (t , "gha-runner-scale-set-controller-sa" , deployment .Spec .Template .Spec .ServiceAccountName )
@@ -467,10 +472,13 @@ func TestTemplate_ControllerDeployment_Customize(t *testing.T) {
467472 assert .Equal (t , "--auto-scaler-image-pull-secrets=dockerhub" , deployment .Spec .Template .Spec .Containers [0 ].Args [1 ])
468473 assert .Equal (t , "--log-level=debug" , deployment .Spec .Template .Spec .Containers [0 ].Args [2 ])
469474
470- assert .Len (t , deployment .Spec .Template .Spec .Containers [0 ].Env , 2 )
475+ assert .Len (t , deployment .Spec .Template .Spec .Containers [0 ].Env , 3 )
471476 assert .Equal (t , "CONTROLLER_MANAGER_CONTAINER_IMAGE" , deployment .Spec .Template .Spec .Containers [0 ].Env [0 ].Name )
472477 assert .Equal (t , managerImage , deployment .Spec .Template .Spec .Containers [0 ].Env [0 ].Value )
473478
479+ assert .Equal (t , "ENV_VAR_NAME_1" , deployment .Spec .Template .Spec .Containers [0 ].Env [2 ].Name )
480+ assert .Equal (t , "ENV_VAR_VALUE_1" , deployment .Spec .Template .Spec .Containers [0 ].Env [2 ].Value )
481+
474482 assert .Equal (t , "CONTROLLER_MANAGER_POD_NAMESPACE" , deployment .Spec .Template .Spec .Containers [0 ].Env [1 ].Name )
475483 assert .Equal (t , "metadata.namespace" , deployment .Spec .Template .Spec .Containers [0 ].Env [1 ].ValueFrom .FieldRef .FieldPath )
476484
@@ -704,6 +712,52 @@ func TestTemplate_ControllerDeployment_WatchSingleNamespace(t *testing.T) {
704712 assert .Equal (t , "/tmp" , deployment .Spec .Template .Spec .Containers [0 ].VolumeMounts [0 ].MountPath )
705713}
706714
715+ func TestTemplate_ControllerContainerEnvironmentVariables (t * testing.T ) {
716+ t .Parallel ()
717+
718+ // Path to the helm chart we will test
719+ helmChartPath , err := filepath .Abs ("../../gha-runner-scale-set-controller" )
720+ require .NoError (t , err )
721+
722+ releaseName := "test-arc"
723+ namespaceName := "test-" + strings .ToLower (random .UniqueId ())
724+
725+ options := & helm.Options {
726+ SetValues : map [string ]string {
727+ "env[0].Name" : "ENV_VAR_NAME_1" ,
728+ "env[0].Value" : "ENV_VAR_VALUE_1" ,
729+ "env[1].Name" : "ENV_VAR_NAME_2" ,
730+ "env[1].ValueFrom.SecretKeyRef.Key" : "ENV_VAR_NAME_2" ,
731+ "env[1].ValueFrom.SecretKeyRef.Name" : "secret-name" ,
732+ "env[1].ValueFrom.SecretKeyRef.Optional" : "true" ,
733+ "env[2].Name" : "ENV_VAR_NAME_3" ,
734+ "env[2].Value" : "" ,
735+ "env[3].Name" : "ENV_VAR_NAME_4" ,
736+ },
737+ KubectlOptions : k8s .NewKubectlOptions ("" , "" , namespaceName ),
738+ }
739+
740+ output := helm .RenderTemplate (t , options , helmChartPath , releaseName , []string {"templates/deployment.yaml" })
741+
742+ var deployment appsv1.Deployment
743+ helm .UnmarshalK8SYaml (t , output , & deployment )
744+
745+ assert .Equal (t , namespaceName , deployment .Namespace )
746+ assert .Equal (t , "test-arc-gha-runner-scale-set-controller" , deployment .Name )
747+
748+ assert .Len (t , deployment .Spec .Template .Spec .Containers [0 ].Env , 6 )
749+ assert .Equal (t , "ENV_VAR_NAME_1" , deployment .Spec .Template .Spec .Containers [0 ].Env [2 ].Name )
750+ assert .Equal (t , "ENV_VAR_VALUE_1" , deployment .Spec .Template .Spec .Containers [0 ].Env [2 ].Value )
751+ assert .Equal (t , "ENV_VAR_NAME_2" , deployment .Spec .Template .Spec .Containers [0 ].Env [3 ].Name )
752+ assert .Equal (t , "secret-name" , deployment .Spec .Template .Spec .Containers [0 ].Env [3 ].ValueFrom .SecretKeyRef .Name )
753+ assert .Equal (t , "ENV_VAR_NAME_2" , deployment .Spec .Template .Spec .Containers [0 ].Env [3 ].ValueFrom .SecretKeyRef .Key )
754+ assert .True (t , * deployment .Spec .Template .Spec .Containers [0 ].Env [3 ].ValueFrom .SecretKeyRef .Optional )
755+ assert .Equal (t , "ENV_VAR_NAME_3" , deployment .Spec .Template .Spec .Containers [0 ].Env [4 ].Name )
756+ assert .Empty (t , deployment .Spec .Template .Spec .Containers [0 ].Env [4 ].Value )
757+ assert .Equal (t , "ENV_VAR_NAME_4" , deployment .Spec .Template .Spec .Containers [0 ].Env [5 ].Name )
758+ assert .Empty (t , deployment .Spec .Template .Spec .Containers [0 ].Env [5 ].ValueFrom )
759+ }
760+
707761func TestTemplate_WatchSingleNamespace_NotCreateManagerClusterRole (t * testing.T ) {
708762 t .Parallel ()
709763
0 commit comments