Skip to content

Commit 462af76

Browse files
authored
Organize openshift-specific annotations for namespace (#1409)
Signed-off-by: Mat Kowalski <mko@redhat.com>
1 parent 8cdca3b commit 462af76

File tree

3 files changed

+25
-35
lines changed

3 files changed

+25
-35
lines changed

cmd/operator/main.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import (
4747
nmstatev1 "github.com/nmstate/kubernetes-nmstate/api/v1"
4848
nmstatev1beta1 "github.com/nmstate/kubernetes-nmstate/api/v1beta1"
4949
controllers "github.com/nmstate/kubernetes-nmstate/controllers/operator"
50+
"github.com/nmstate/kubernetes-nmstate/pkg/cluster"
5051
)
5152

5253
type ProfilerConfig struct {
@@ -125,11 +126,17 @@ func setupOperatorController(mgr manager.Manager) error {
125126
return fmt.Errorf("failed creating non cached client: %w", err)
126127
}
127128

129+
isOpenShift, err := cluster.IsOpenShift(apiClient)
130+
if err != nil {
131+
setupLog.Info("Warning: could not determine if running on OpenShift, assuming not")
132+
}
133+
128134
if err = (&controllers.NMStateReconciler{
129-
Client: mgr.GetClient(),
130-
APIClient: apiClient,
131-
Log: ctrl.Log.WithName("controllers").WithName("NMState"),
132-
Scheme: mgr.GetScheme(),
135+
Client: mgr.GetClient(),
136+
APIClient: apiClient,
137+
Log: ctrl.Log.WithName("controllers").WithName("NMState"),
138+
Scheme: mgr.GetScheme(),
139+
IsOpenShift: isOpenShift,
133140
}).SetupWithManager(mgr); err != nil {
134141
return fmt.Errorf("failed creating NMState CR controller: %w", err)
135142
}

controllers/operator/nmstate_controller.go

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import (
4848
"github.com/nmstate/kubernetes-nmstate/api/names"
4949
"github.com/nmstate/kubernetes-nmstate/api/shared"
5050
nmstatev1 "github.com/nmstate/kubernetes-nmstate/api/v1"
51-
"github.com/nmstate/kubernetes-nmstate/pkg/cluster"
5251
"github.com/nmstate/kubernetes-nmstate/pkg/environment"
5352
nmstaterenderer "github.com/nmstate/kubernetes-nmstate/pkg/render"
5453
)
@@ -63,6 +62,7 @@ type NMStateReconciler struct {
6362
APIClient client.Client
6463
Log logr.Logger
6564
Scheme *runtime.Scheme
65+
IsOpenShift bool
6666
deployments []client.ObjectKey
6767
daemonSets []client.ObjectKey
6868
}
@@ -173,18 +173,14 @@ func (r *NMStateReconciler) applyManifests(instance *nmstatev1.NMState, ctx cont
173173
return errors.Wrap(err, "failed applying Handler")
174174
}
175175

176-
isOpenShift, err := cluster.IsOpenShift(r.APIClient)
177-
178176
_, errUIPluginPathExists := os.Stat(filepath.Join(names.ManifestDir, "kubernetes-nmstate", "openshift", "ui-plugin"))
179-
if err == nil && isOpenShift && errUIPluginPathExists == nil {
180-
if err = r.applyOpenshiftUIPlugin(ctx, instance); err != nil {
177+
if r.IsOpenShift && errUIPluginPathExists == nil {
178+
if err := r.applyOpenshiftUIPlugin(ctx, instance); err != nil {
181179
return errors.Wrap(err, "failed applying UI Plugin")
182180
}
183-
if err = r.patchOpenshiftConsolePlugin(ctx); err != nil {
181+
if err := r.patchOpenshiftConsolePlugin(ctx); err != nil {
184182
return errors.Wrap(err, "failed enabling the plugin in cluster's console")
185183
}
186-
} else if err != nil {
187-
r.Log.Info("Warning: could not determine if running on OpenShift")
188184
}
189185
return nil
190186
}
@@ -198,6 +194,8 @@ func (r *NMStateReconciler) applyNamespace(ctx context.Context, instance *nmstat
198194
data := render.MakeRenderData()
199195
data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE")
200196
data.Data["HandlerPrefix"] = os.Getenv("HANDLER_PREFIX")
197+
data.Data["IsOpenShift"] = r.IsOpenShift
198+
201199
return r.renderAndApply(ctx, instance, data, "namespace", false)
202200
}
203201

@@ -206,12 +204,7 @@ func (r *NMStateReconciler) applyNetworkPolicies(ctx context.Context, instance *
206204
data.Data["HandlerNamespace"] = os.Getenv("HANDLER_NAMESPACE")
207205
data.Data["OperatorNamespace"] = os.Getenv("OPERATOR_NAMESPACE")
208206
data.Data["PluginNamespace"] = os.Getenv("HANDLER_NAMESPACE")
209-
210-
isOpenShift, err := cluster.IsOpenShift(r.APIClient)
211-
if err != nil {
212-
return err
213-
}
214-
data.Data["IsOpenShift"] = isOpenShift
207+
data.Data["IsOpenShift"] = r.IsOpenShift
215208

216209
return r.renderAndApply(ctx, instance, data, "netpol", true)
217210
}
@@ -227,11 +220,7 @@ func (r *NMStateReconciler) applyRBAC(ctx context.Context, instance *nmstatev1.N
227220
return errors.Wrap(err, "failed checking if cluster-reader ClusterRole exists")
228221
}
229222

230-
isOpenShift, err := cluster.IsOpenShift(r.APIClient)
231-
if err != nil {
232-
return err
233-
}
234-
data.Data["IsOpenShift"] = isOpenShift
223+
data.Data["IsOpenShift"] = r.IsOpenShift
235224

236225
return r.renderAndApply(ctx, instance, data, "rbac", true)
237226
}
@@ -367,12 +356,7 @@ func (r *NMStateReconciler) applyHandler(ctx context.Context, instance *nmstatev
367356
data.Data["MetricsConfiguration"] = metricsConfig
368357
data.Data["LogLevelHandlerCommandArg"] = logLevelHandlerCommandArg
369358
data.Data["HandlerReadinessProbeExtraArg"] = handlerReadinessProbeExtraArg
370-
371-
isOpenShift, err := cluster.IsOpenShift(r.APIClient)
372-
if err != nil {
373-
return err
374-
}
375-
data.Data["IsOpenShift"] = isOpenShift
359+
data.Data["IsOpenShift"] = r.IsOpenShift
376360

377361
return r.renderAndApply(ctx, instance, data, "handler", true)
378362
}
@@ -417,13 +401,9 @@ func (r *NMStateReconciler) patchOpenshiftConsolePlugin(ctx context.Context) err
417401
}
418402

419403
func (r *NMStateReconciler) cleanupObsoleteResources(ctx context.Context) error {
420-
isOpenShift, err := cluster.IsOpenShift(r.APIClient)
421-
if err != nil {
422-
return err
423-
}
424404
// We are no longer using cert-manager at openshift, let's remove it
425-
if isOpenShift {
426-
err = r.Client.Delete(ctx, &appsv1.Deployment{
405+
if r.IsOpenShift {
406+
err := r.Client.Delete(ctx, &appsv1.Deployment{
427407
ObjectMeta: metav1.ObjectMeta{
428408
Namespace: os.Getenv("HANDLER_NAMESPACE"),
429409
Name: os.Getenv("HANDLER_PREFIX") + "nmstate-cert-manager",

deploy/handler/namespace.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,7 @@ metadata:
77
pod-security.kubernetes.io/enforce: privileged
88
pod-security.kubernetes.io/audit: privileged
99
pod-security.kubernetes.io/warn: privileged
10+
{{- if .IsOpenShift }}
1011
openshift.io/cluster-monitoring: "true"
12+
openshift.io/node-selector: ""
13+
{{- end }}

0 commit comments

Comments
 (0)