@@ -24,8 +24,7 @@ import (
2424)
2525
2626type Applier struct {
27- kubeclient client.Client
28- addons map [string ]AddOn
27+ addons map [string ]AddOn
2928}
3029
3130// DoNotLog is a helper function to disable logging for addons.
@@ -76,6 +75,19 @@ func (a *Applier) Versions() (map[string]string, error) {
7675 return versions , nil
7776}
7877
78+ // kubeClient returns a new kubernetes client.
79+ func (a * Applier ) kubeClient () (client.Client , error ) {
80+ k8slogger := zap .New (func (o * zap.Options ) {
81+ o .DestWriter = io .Discard
82+ })
83+ log .SetLogger (k8slogger )
84+ cfg , err := config .GetConfig ()
85+ if err != nil {
86+ return nil , fmt .Errorf ("unable to process kubernetes config: %w" , err )
87+ }
88+ return client .New (cfg , client.Options {})
89+ }
90+
7991// waitForKubernetes waits until we manage to make a successful connection to the
8092// Kubernetes API server.
8193func (a * Applier ) waitForKubernetes (ctx context.Context ) error {
@@ -85,6 +97,10 @@ func (a *Applier) waitForKubernetes(ctx context.Context) error {
8597 pb .Close ()
8698 <- end
8799 }()
100+ kcli , err := a .kubeClient ()
101+ if err != nil {
102+ return fmt .Errorf ("unable to create kubernetes client: %w" , err )
103+ }
88104 ticker := time .NewTicker (3 * time .Second )
89105 defer ticker .Stop ()
90106 counter := 1
@@ -96,7 +112,7 @@ func (a *Applier) waitForKubernetes(ctx context.Context) error {
96112 return ctx .Err ()
97113 }
98114 counter ++
99- if err := a . kubeclient .List (ctx , & corev1.NamespaceList {}); err != nil {
115+ if err := kcli .List (ctx , & corev1.NamespaceList {}); err != nil {
100116 pb .Infof ("%d/n Waiting for Kubernetes API server to be ready." , counter )
101117 continue
102118 }
@@ -106,25 +122,13 @@ func (a *Applier) waitForKubernetes(ctx context.Context) error {
106122
107123// NewApplier creates a new Applier instance with all addons registered.
108124func NewApplier (prompt , verbose bool ) (* Applier , error ) {
109- k8slogger := zap .New (func (o * zap.Options ) {
110- o .DestWriter = io .Discard
111- })
112- log .SetLogger (k8slogger )
113- cfg , err := config .GetConfig ()
114- if err != nil {
115- return nil , fmt .Errorf ("unable to process kubernetes config: %w" , err )
116- }
117- kubecli , err := client .New (cfg , client.Options {})
118- if err != nil {
119- return nil , fmt .Errorf ("unable to create kubernetes client: %w" , err )
120- }
121- applier := & Applier {addons : map [string ]AddOn {}, kubeclient : kubecli }
125+ applier := & Applier {addons : map [string ]AddOn {}}
122126 obs , err := openebs .New ("helmvm" , getLogger ("openebs" , verbose ))
123127 if err != nil {
124128 return nil , fmt .Errorf ("unable to create admin console addon: %w" , err )
125129 }
126130 applier .addons ["openebs" ] = obs
127- aconsole , err := adminconsole .New ("helmvm" , prompt , kubecli , getLogger ("adminconsole" , verbose ))
131+ aconsole , err := adminconsole .New ("helmvm" , prompt , getLogger ("adminconsole" , verbose ))
128132 if err != nil {
129133 return nil , fmt .Errorf ("unable to create admin console addon: %w" , err )
130134 }
0 commit comments