@@ -249,6 +249,8 @@ func TestRenderCommand(t *testing.T) {
249249 "--config-output-file=" ,
250250 "--payload-version=test" ,
251251 "--rendered-manifest-files=" + defaultFGDir ,
252+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
253+ "--operand-kubernetes-version=1.31.0" ,
252254 },
253255 overrides : []func (* renderOpts ){
254256 func (opts * renderOpts ) {
@@ -307,6 +309,8 @@ func TestRenderCommand(t *testing.T) {
307309 "--config-output-file=" ,
308310 "--payload-version=test" ,
309311 "--rendered-manifest-files=" + defaultFGDir ,
312+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
313+ "--operand-kubernetes-version=1.31.0" ,
310314 },
311315 setupFunction : func () error {
312316 return ioutil .WriteFile (filepath .Join (assetsInputDir , "config-v6.yaml" ), []byte (networkConfigV6 ), 0644 )
@@ -331,6 +335,8 @@ func TestRenderCommand(t *testing.T) {
331335 "--config-output-file=" ,
332336 "--payload-version=test" ,
333337 "--rendered-manifest-files=" + defaultFGDir ,
338+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
339+ "--operand-kubernetes-version=1.31.0" ,
334340 },
335341 setupFunction : func () error {
336342 return ioutil .WriteFile (filepath .Join (assetsInputDir , "config-dual.yaml" ), []byte (networkConfigDual ), 0644 )
@@ -358,6 +364,8 @@ func TestRenderCommand(t *testing.T) {
358364 "--config-output-file=" ,
359365 "--payload-version=test" ,
360366 "--rendered-manifest-files=" + defaultFGDir ,
367+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
368+ "--operand-kubernetes-version=1.31.0" ,
361369 },
362370 testFunction : func (cfg * kubecontrolplanev1.KubeAPIServerConfig ) error {
363371 issuer := cfg .APIServerArguments ["service-account-issuer" ]
@@ -378,6 +386,8 @@ func TestRenderCommand(t *testing.T) {
378386 "--config-output-file=" ,
379387 "--payload-version=test" ,
380388 "--rendered-manifest-files=" + defaultFGDir ,
389+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
390+ "--operand-kubernetes-version=1.31.0" ,
381391 },
382392 setupFunction : func () error {
383393 data := ``
@@ -402,6 +412,8 @@ func TestRenderCommand(t *testing.T) {
402412 "--config-output-file=" ,
403413 "--payload-version=test" ,
404414 "--rendered-manifest-files=" + defaultFGDir ,
415+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
416+ "--operand-kubernetes-version=1.31.0" ,
405417 },
406418 setupFunction : func () error {
407419 data := `apiVersion: config.openshift.io/v1
@@ -430,6 +442,8 @@ spec: {}`
430442 "--config-output-file=" ,
431443 "--payload-version=test" ,
432444 "--rendered-manifest-files=" + defaultFGDir ,
445+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
446+ "--operand-kubernetes-version=1.31.0" ,
433447 },
434448 setupFunction : func () error {
435449 data := `apiVersion: config.openshift.io/v1
@@ -459,6 +473,8 @@ spec:
459473 "--config-output-file=" ,
460474 "--payload-version=test" ,
461475 "--rendered-manifest-files=" + defaultFGDir ,
476+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
477+ "--operand-kubernetes-version=1.31.0" ,
462478 },
463479 },
464480 {
@@ -470,6 +486,8 @@ spec:
470486 "--config-output-file=" ,
471487 "--payload-version=test" ,
472488 "--rendered-manifest-files=" + defaultFGDir ,
489+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
490+ "--operand-kubernetes-version=1.31.0" ,
473491 },
474492 setupFunction : func () error {
475493 data := `DUMMY DATA`
@@ -509,6 +527,8 @@ spec:
509527 "--config-output-file=" ,
510528 "--payload-version=test" ,
511529 "--rendered-manifest-files=" + defaultFGDir ,
530+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
531+ "--operand-kubernetes-version=1.31.0" ,
512532 },
513533 testFunction : func (cfg * kubecontrolplanev1.KubeAPIServerConfig ) error {
514534 if len (cfg .APIServerArguments ["shutdown-delay-duration" ]) == 0 {
@@ -539,6 +559,8 @@ spec:
539559 "--infra-config-file=" + filepath .Join (assetsInputDir , "infrastructure.yaml" ),
540560 "--payload-version=test" ,
541561 "--rendered-manifest-files=" + defaultFGDir ,
562+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
563+ "--operand-kubernetes-version=1.31.0" ,
542564 },
543565 setupFunction : func () error {
544566 return ioutil .WriteFile (filepath .Join (assetsInputDir , "infrastructure.yaml" ), []byte (infrastructureHA ), 0644 )
@@ -572,6 +594,8 @@ spec:
572594 "--infra-config-file=" + filepath .Join (assetsInputDir , "infrastructure.yaml" ),
573595 "--payload-version=test" ,
574596 "--rendered-manifest-files=" + defaultFGDir ,
597+ "--manifest-operator-image=kube-apiserver-operator:latest" ,
598+ "--operand-kubernetes-version=1.31.0" ,
575599 },
576600 setupFunction : func () error {
577601 return ioutil .WriteFile (filepath .Join (assetsInputDir , "infrastructure.yaml" ), []byte (infrastructureSNO ), 0644 )
@@ -735,11 +759,12 @@ func Test_renderOpts_Validate(t *testing.T) {
735759 templateDir := filepath .Join (".." , ".." , ".." , "bindata" , "bootkube" )
736760
737761 tests := []struct {
738- name string
739- assetInputDir string
740- setupFunction func () error
741- testFunction func (cfg * kubecontrolplanev1.KubeAPIServerConfig ) error
742- wantErr bool
762+ name string
763+ assetInputDir string
764+ setupFunction func () error
765+ operatorImage string
766+ operandKubernetesVersion string
767+ wantErr bool
743768 }{
744769 {
745770 name : "user provided bound-sa-signing-key only no public part" ,
@@ -751,7 +776,9 @@ func Test_renderOpts_Validate(t *testing.T) {
751776 }
752777 return ioutil .WriteFile (filepath .Join (assetsInputDir , "0" , "bound-service-account-signing-key.key" ), []byte (data ), 0600 )
753778 },
754- wantErr : true ,
779+ operatorImage : "kube-apiserver-operator:latest" ,
780+ operandKubernetesVersion : "1.31.0" ,
781+ wantErr : true ,
755782 },
756783 {
757784 name : "user provided bound-sa-signing-key only public part" ,
@@ -763,7 +790,9 @@ func Test_renderOpts_Validate(t *testing.T) {
763790 }
764791 return ioutil .WriteFile (filepath .Join (assetsInputDir , "1" , "bound-service-account-signing-key.pub" ), []byte (data ), 0644 )
765792 },
766- wantErr : true ,
793+ operatorImage : "kube-apiserver-operator:latest" ,
794+ operandKubernetesVersion : "1.31.0" ,
795+ wantErr : true ,
767796 },
768797 {
769798 name : "user provided bound-sa-signing-key - both keys exist" ,
@@ -778,13 +807,47 @@ func Test_renderOpts_Validate(t *testing.T) {
778807 }
779808 return ioutil .WriteFile (filepath .Join (assetsInputDir , "2" , "bound-service-account-signing-key.key" ), []byte (data ), 0600 )
780809 },
810+ operatorImage : "kube-apiserver-operator:latest" ,
811+ operandKubernetesVersion : "1.31.0" ,
781812 },
782813 {
783814 name : "user provided bound-sa-signing-key - neither key exists" ,
784815 assetInputDir : filepath .Join (assetsInputDir , "3" ),
785816 setupFunction : func () error {
786817 return os .Mkdir (filepath .Join (assetsInputDir , "3" ), 0700 )
787818 },
819+ operatorImage : "kube-apiserver-operator:latest" ,
820+ operandKubernetesVersion : "1.31.0" ,
821+ },
822+ {
823+ name : "missing --manifest-operator-image flag" ,
824+ assetInputDir : filepath .Join (assetsInputDir , "4" ),
825+ setupFunction : func () error {
826+ return os .Mkdir (filepath .Join (assetsInputDir , "4" ), 0700 )
827+ },
828+ operatorImage : "" ,
829+ operandKubernetesVersion : "1.31.0" ,
830+ wantErr : true ,
831+ },
832+ {
833+ name : "missing --operand-kubernetes-version flag" ,
834+ assetInputDir : filepath .Join (assetsInputDir , "5" ),
835+ setupFunction : func () error {
836+ return os .Mkdir (filepath .Join (assetsInputDir , "5" ), 0700 )
837+ },
838+ operatorImage : "kube-apiserver-operator:latest" ,
839+ operandKubernetesVersion : "" ,
840+ wantErr : true ,
841+ },
842+ {
843+ name : "invalid --operand-kubernetes-version flag" ,
844+ assetInputDir : filepath .Join (assetsInputDir , "6" ),
845+ setupFunction : func () error {
846+ return os .Mkdir (filepath .Join (assetsInputDir , "6" ), 0700 )
847+ },
848+ operatorImage : "kube-apiserver-operator:latest" ,
849+ operandKubernetesVersion : "5" ,
850+ wantErr : true ,
788851 },
789852 }
790853 for _ , tt := range tests {
@@ -804,16 +867,19 @@ func Test_renderOpts_Validate(t *testing.T) {
804867 generic : * genericrenderoptions .NewGenericOptions (),
805868 manifest : * genericrenderoptions .NewManifestOptions ("kube-apiserver" , "openshift/origin-hyperkube:latest" ),
806869
807- lockHostPath : "/var/run/kubernetes/lock" ,
808- etcdServerURLs : []string {"https://127.0.0.1:2379" },
809- etcdServingCA : "root-ca.crt" ,
870+ lockHostPath : "/var/run/kubernetes/lock" ,
871+ etcdServerURLs : []string {"https://127.0.0.1:2379" },
872+ etcdServingCA : "root-ca.crt" ,
873+ operandKubernetesVersion : tt .operandKubernetesVersion ,
810874 }
811875 r .generic .TemplatesDir = templateDir
812876
813877 r .generic .AssetInputDir = tt .assetInputDir
814878 r .generic .AssetOutputDir = filepath .Join (outputDir , "manifests" )
815879 r .generic .ConfigOutputFile = filepath .Join (outputDir , "configs" , "config.yaml" )
816880
881+ r .manifest .OperatorImage = tt .operatorImage
882+
817883 if err := r .Validate (); (err != nil ) != tt .wantErr {
818884 t .Errorf ("renderOpts.Validate() error = %v, wantErr %v" , err , tt .wantErr )
819885 }
0 commit comments