11package embeddedclusteroperator
22
33import (
4+ "bytes"
45 "context"
56 "fmt"
67 "os"
@@ -14,7 +15,7 @@ import (
1415)
1516
1617func (e * EmbeddedClusterOperator ) Install (ctx context.Context , kcli client.Client , hcli helm.Client , overrides []string , writer * spinner.MessageWriter ) error {
17- err := installEnsureCAConfigmap (ctx , kcli , e . PrivateCAs )
18+ err := e . installEnsureCAConfigmap (ctx , kcli )
1819 if err != nil {
1920 return errors .Wrap (err , "ensure CA configmap" )
2021 }
@@ -24,31 +25,41 @@ func (e *EmbeddedClusterOperator) Install(ctx context.Context, kcli client.Clien
2425 return errors .Wrap (err , "generate helm values" )
2526 }
2627
27- _ , err = hcli . Install ( ctx , helm.InstallOptions {
28+ opts := helm.InstallOptions {
2829 ReleaseName : releaseName ,
2930 ChartPath : e .ChartLocation (),
3031 ChartVersion : e .ChartVersion (),
3132 Values : values ,
3233 Namespace : namespace ,
3334 Labels : getBackupLabels (),
34- })
35- if err != nil {
36- return errors .Wrap (err , "helm install" )
35+ }
36+
37+ if e .DryRun {
38+ manifests , err := hcli .Render (ctx , opts )
39+ if err != nil {
40+ return errors .Wrap (err , "dry run values" )
41+ }
42+ e .dryRunManifests = append (e .dryRunManifests , manifests ... )
43+ } else {
44+ _ , err = hcli .Install (ctx , opts )
45+ if err != nil {
46+ return errors .Wrap (err , "helm install" )
47+ }
3748 }
3849
3950 return nil
4051}
4152
42- func installEnsureCAConfigmap (ctx context.Context , kcli client.Client , privateCAs [] string ) error {
43- cas , err := privateCAsToMap (privateCAs )
53+ func ( e * EmbeddedClusterOperator ) installEnsureCAConfigmap (ctx context.Context , kcli client.Client ) error {
54+ cas , err := privateCAsToMap (e . PrivateCAs )
4455 if err != nil {
4556 return errors .Wrap (err , "create private cas map" )
4657 }
47- return ensureCAConfigmap (ctx , kcli , cas )
58+ return e . ensureCAConfigmap (ctx , kcli , cas )
4859}
4960
50- func ensureCAConfigmap (ctx context.Context , cli client.Client , cas map [string ]string ) error {
51- ecoCAConfigmap := corev1.ConfigMap {
61+ func ( e * EmbeddedClusterOperator ) ensureCAConfigmap (ctx context.Context , cli client.Client , cas map [string ]string ) error {
62+ obj := & corev1.ConfigMap {
5263 TypeMeta : metav1.TypeMeta {
5364 Kind : "ConfigMap" ,
5465 APIVersion : "v1" ,
@@ -61,7 +72,16 @@ func ensureCAConfigmap(ctx context.Context, cli client.Client, cas map[string]st
6172 Data : cas ,
6273 }
6374
64- err := cli .Create (ctx , & ecoCAConfigmap )
75+ if e .DryRun {
76+ b := bytes .NewBuffer (nil )
77+ if err := serializer .Encode (obj , b ); err != nil {
78+ return errors .Wrap (err , "serialize" )
79+ }
80+ e .dryRunManifests = append (e .dryRunManifests , b .Bytes ())
81+ return nil
82+ }
83+
84+ err := cli .Create (ctx , obj )
6585 if client .IgnoreAlreadyExists (err ) != nil {
6686 return errors .Wrap (err , "create private-cas configmap" )
6787 }
0 commit comments