Skip to content

Commit fdfe4bd

Browse files
authored
Merge pull request #260 from yevgeny-shnaidman/yevgeny/master-worker-envs-impl
MasterENVs and WorkerENVs implementations
2 parents 3875c43 + 30ec5f0 commit fdfe4bd

File tree

4 files changed

+118
-4
lines changed

4 files changed

+118
-4
lines changed

internal/daemonset/daemonset.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,12 @@ func getArgs(nfdInstance *nfdv1.NodeFeatureDiscovery) []string {
122122
}
123123
}
124124

125-
func getWorkerEnvs() []corev1.EnvVar {
125+
func getWorkerEnvs(nfdInstance *nfdv1.NodeFeatureDiscovery) []corev1.EnvVar {
126+
basicEnvVars := getBasicEnvs()
127+
return append(basicEnvVars, nfdInstance.Spec.Operand.WorkerEnvs...)
128+
}
129+
130+
func getBasicEnvs() []corev1.EnvVar {
126131
return []corev1.EnvVar{
127132
{
128133
Name: "NODE_NAME",
@@ -149,6 +154,7 @@ func getWorkerEnvs() []corev1.EnvVar {
149154
},
150155
},
151156
}
157+
152158
}
153159

154160
func getTopologyEnvs() []corev1.EnvVar {
@@ -160,7 +166,7 @@ func getTopologyEnvs() []corev1.EnvVar {
160166
},
161167
},
162168
}
163-
return append(getWorkerEnvs(), nodeAddressEnv)
169+
return append(getBasicEnvs(), nodeAddressEnv)
164170
}
165171

166172
func getSecurityContext() *corev1.SecurityContext {
@@ -246,7 +252,7 @@ func (d *daemonset) SetWorkerDaemonsetAsDesired(ctx context.Context, nfdInstance
246252
DNSPolicy: corev1.DNSClusterFirstWithHostNet,
247253
Containers: []corev1.Container{
248254
{
249-
Env: getWorkerEnvs(),
255+
Env: getWorkerEnvs(nfdInstance),
250256
Image: nfdInstance.Spec.Operand.ImagePath(),
251257
Name: "nfd-worker",
252258
Command: []string{"nfd-worker"},

internal/daemonset/daemonset_test.go

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
. "github.com/onsi/gomega"
2626
"go.uber.org/mock/gomock"
2727
appsv1 "k8s.io/api/apps/v1"
28+
corev1 "k8s.io/api/core/v1"
2829
apierrors "k8s.io/apimachinery/pkg/api/errors"
2930
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3031
"k8s.io/apimachinery/pkg/runtime/schema"
@@ -207,3 +208,55 @@ var _ = Describe("GetDaemonSet", func() {
207208
Expect(err).To(HaveOccurred())
208209
})
209210
})
211+
212+
var _ = Describe("getWorkerEnvs", func() {
213+
214+
It("worker envs not defined (nil)", func() {
215+
nfdCR := nfdv1.NodeFeatureDiscovery{
216+
Spec: nfdv1.NodeFeatureDiscoverySpec{
217+
Operand: nfdv1.OperandSpec{
218+
WorkerEnvs: nil,
219+
},
220+
},
221+
}
222+
223+
res := getWorkerEnvs(&nfdCR)
224+
Expect(res).To(Equal(getBasicEnvs()))
225+
})
226+
227+
It("worker envs is an empty slice", func() {
228+
nfdCR := nfdv1.NodeFeatureDiscovery{
229+
Spec: nfdv1.NodeFeatureDiscoverySpec{
230+
Operand: nfdv1.OperandSpec{
231+
WorkerEnvs: []corev1.EnvVar{},
232+
},
233+
},
234+
}
235+
236+
res := getWorkerEnvs(&nfdCR)
237+
Expect(res).To(Equal(getBasicEnvs()))
238+
})
239+
240+
It("worker envs contains value", func() {
241+
nfdCR := nfdv1.NodeFeatureDiscovery{
242+
Spec: nfdv1.NodeFeatureDiscoverySpec{
243+
Operand: nfdv1.OperandSpec{
244+
WorkerEnvs: []corev1.EnvVar{
245+
{
246+
Name: "name1",
247+
Value: "value1",
248+
},
249+
{
250+
Name: "name2",
251+
Value: "value2",
252+
},
253+
},
254+
},
255+
},
256+
}
257+
expectedRes := append(getBasicEnvs(), nfdCR.Spec.Operand.WorkerEnvs[0], nfdCR.Spec.Operand.WorkerEnvs[1])
258+
259+
res := getWorkerEnvs(&nfdCR)
260+
Expect(res).To(Equal(expectedRes))
261+
})
262+
})

internal/deployment/deployment.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (d *deployment) SetMasterDeploymentAsDesired(nfdInstance *nfdv1.NodeFeature
8585
"nfd-master",
8686
},
8787
Args: getArgs(nfdInstance),
88-
Env: getEnvs(),
88+
Env: getMasterEnvs(nfdInstance),
8989
SecurityContext: getMasterSecurityContext(),
9090
LivenessProbe: getLivenessProbe(),
9191
ReadinessProbe: getReadinessProbe(),
@@ -246,6 +246,10 @@ func getEnvs() []corev1.EnvVar {
246246
}
247247
}
248248

249+
func getMasterEnvs(nfdInstance *nfdv1.NodeFeatureDiscovery) []corev1.EnvVar {
250+
return append(getEnvs(), nfdInstance.Spec.Operand.MasterEnvs...)
251+
}
252+
249253
func getMasterSecurityContext() *corev1.SecurityContext {
250254
return &corev1.SecurityContext{
251255
RunAsNonRoot: ptr.To(true),

internal/deployment/deployment_test.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,3 +277,54 @@ var _ = Describe("getPodsTolerations", func() {
277277
Expect(res).To(Equal(expectedTolerations))
278278
})
279279
})
280+
281+
var _ = Describe("getMasterEnvs", func() {
282+
It("master envs not defined (nil)", func() {
283+
nfdCR := nfdv1.NodeFeatureDiscovery{
284+
Spec: nfdv1.NodeFeatureDiscoverySpec{
285+
Operand: nfdv1.OperandSpec{
286+
MasterEnvs: nil,
287+
},
288+
},
289+
}
290+
291+
res := getMasterEnvs(&nfdCR)
292+
Expect(res).To(Equal(getEnvs()))
293+
})
294+
295+
It("master envs is an empty slice", func() {
296+
nfdCR := nfdv1.NodeFeatureDiscovery{
297+
Spec: nfdv1.NodeFeatureDiscoverySpec{
298+
Operand: nfdv1.OperandSpec{
299+
MasterEnvs: []corev1.EnvVar{},
300+
},
301+
},
302+
}
303+
304+
res := getMasterEnvs(&nfdCR)
305+
Expect(res).To(Equal(getEnvs()))
306+
})
307+
308+
It("master envs contains value", func() {
309+
nfdCR := nfdv1.NodeFeatureDiscovery{
310+
Spec: nfdv1.NodeFeatureDiscoverySpec{
311+
Operand: nfdv1.OperandSpec{
312+
MasterEnvs: []corev1.EnvVar{
313+
{
314+
Name: "name1",
315+
Value: "value1",
316+
},
317+
{
318+
Name: "name2",
319+
Value: "value2",
320+
},
321+
},
322+
},
323+
},
324+
}
325+
expectedRes := append(getEnvs(), nfdCR.Spec.Operand.MasterEnvs[0], nfdCR.Spec.Operand.MasterEnvs[1])
326+
327+
res := getMasterEnvs(&nfdCR)
328+
Expect(res).To(Equal(expectedRes))
329+
})
330+
})

0 commit comments

Comments
 (0)