Skip to content

Commit 45b1c5e

Browse files
authored
Merge pull request #1207 from jvanz/issue1206
fix: policies file generation missing timeoutEvalSeconds.
2 parents 4dbb413 + 483b948 commit 45b1c5e

File tree

2 files changed

+32
-19
lines changed

2 files changed

+32
-19
lines changed

internal/controller/policyserver_controller_configmap.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ func (p policyServerConfigEntry) MarshalJSON() ([]byte, error) {
9292
ContextAwareResources []policiesv1.ContextAwareResource `json:"contextAwareResources,omitempty"`
9393
Settings runtime.RawExtension `json:"settings,omitempty"`
9494
Message string `json:"message,omitempty"`
95+
TimeoutEvalSeconds *int32 `json:"timeoutEvalSeconds,omitempty"`
9596
}{
9697
NamespacedName: p.NamespacedName,
9798
Module: p.Module,
@@ -100,6 +101,7 @@ func (p policyServerConfigEntry) MarshalJSON() ([]byte, error) {
100101
ContextAwareResources: p.ContextAwareResources,
101102
Settings: p.Settings,
102103
Message: p.Message,
104+
TimeoutEvalSeconds: p.TimeoutEvalSeconds,
103105
})
104106
if err != nil {
105107
return nil, errors.New("failed to encode policy server configuration")

internal/controller/policyserver_controller_test.go

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ var _ = Describe("PolicyServer controller", func() {
350350
AllowedToMutate: clusterAdmissionPolicy.IsMutating(),
351351
Settings: clusterAdmissionPolicy.GetSettings(),
352352
ContextAwareResources: clusterAdmissionPolicy.GetContextAwareResources(),
353+
TimeoutEvalSeconds: clusterAdmissionPolicy.GetTimeoutEvalSeconds(),
353354
}
354355
policiesMap[admissionPolicyGroup.GetUniqueName()] = policyServerConfigEntry{
355356
NamespacedName: types.NamespacedName{
@@ -364,6 +365,7 @@ var _ = Describe("PolicyServer controller", func() {
364365
Policies: buildPolicyGroupMembersWithContext(admissionPolicyGroup.GetPolicyGroupMembersWithContext()),
365366
Expression: admissionPolicyGroup.GetExpression(),
366367
Message: admissionPolicyGroup.GetMessage(),
368+
TimeoutEvalSeconds: &timeoutEvalSeconds,
367369
}
368370
policiesMap[clusterPolicyGroup.GetUniqueName()] = policyServerConfigEntry{
369371
NamespacedName: types.NamespacedName{
@@ -378,6 +380,7 @@ var _ = Describe("PolicyServer controller", func() {
378380
Policies: buildPolicyGroupMembersWithContext(clusterPolicyGroup.GetPolicyGroupMembersWithContext()),
379381
Expression: clusterPolicyGroup.GetExpression(),
380382
Message: clusterPolicyGroup.GetMessage(),
383+
TimeoutEvalSeconds: &timeoutEvalSeconds,
381384
}
382385

383386
policies, err := json.Marshal(policiesMap)
@@ -399,7 +402,7 @@ var _ = Describe("PolicyServer controller", func() {
399402
err = json.Unmarshal(policies, &policiesData)
400403
return policiesData, err
401404
}, MatchKeys(IgnoreExtras, Keys{
402-
admissionPolicy.GetUniqueName(): MatchKeys(IgnoreExtras, Keys{
405+
admissionPolicy.GetUniqueName(): And(MatchKeys(IgnoreExtras, Keys{
403406
"namespacedName": MatchAllKeys(Keys{
404407
"Namespace": Equal(admissionPolicy.GetNamespace()),
405408
"Name": Equal(admissionPolicy.GetName()),
@@ -408,15 +411,19 @@ var _ = Describe("PolicyServer controller", func() {
408411
"policyMode": Equal(string(admissionPolicy.GetPolicyMode())),
409412
"message": Equal(admissionPolicy.GetMessage()),
410413
}),
414+
Not(MatchAllKeys(Keys{
415+
"timeoutEvalSeconds": Ignore(),
416+
}))),
411417
clusterAdmissionPolicy.GetUniqueName(): And(MatchAllKeys(Keys{
412418
"namespacedName": MatchAllKeys(Keys{
413419
"Namespace": Equal(clusterAdmissionPolicy.GetNamespace()),
414420
"Name": Equal(clusterAdmissionPolicy.GetName()),
415421
}),
416-
"module": Equal(clusterAdmissionPolicy.GetModule()),
417-
"policyMode": Equal(string(clusterAdmissionPolicy.GetPolicyMode())),
418-
"allowedToMutate": Equal(clusterAdmissionPolicy.IsMutating()),
419-
"settings": BeNil(),
422+
"module": Equal(clusterAdmissionPolicy.GetModule()),
423+
"policyMode": Equal(string(clusterAdmissionPolicy.GetPolicyMode())),
424+
"allowedToMutate": Equal(clusterAdmissionPolicy.IsMutating()),
425+
"timeoutEvalSeconds": BeNumerically("==", *clusterAdmissionPolicy.GetTimeoutEvalSeconds()),
426+
"settings": BeNil(),
420427
"contextAwareResources": And(ContainElement(MatchAllKeys(Keys{
421428
"apiVersion": Equal("v1"),
422429
"kind": Equal("Pod"),
@@ -425,25 +432,28 @@ var _ = Describe("PolicyServer controller", func() {
425432
"kind": Equal("Deployment"),
426433
})), HaveLen(2)),
427434
}), Not(MatchAllKeys(Keys{
428-
"expression": Ignore(),
429-
"message": Ignore(),
430-
"timeoutEvalSeconds": Equal(clusterAdmissionPolicy.GetTimeoutEvalSeconds()),
431-
"policies": Ignore(),
435+
"expression": Ignore(),
436+
"message": Ignore(),
437+
"policies": Ignore(),
432438
}))),
433-
admissionPolicyGroup.GetUniqueName(): MatchKeys(IgnoreExtras, Keys{
439+
admissionPolicyGroup.GetUniqueName(): And(MatchKeys(IgnoreExtras, Keys{
434440
"namespacedName": MatchAllKeys(Keys{
435441
"Namespace": Equal(admissionPolicyGroup.GetNamespace()),
436442
"Name": Equal(admissionPolicyGroup.GetName()),
437443
}),
438444
"policies": MatchKeys(IgnoreExtras, Keys{
439-
"pod_privileged": MatchKeys(IgnoreExtras, Keys{
445+
"pod_privileged": And(MatchKeys(IgnoreExtras, Keys{
440446
"module": Equal(admissionPolicyGroup.GetPolicyGroupMembersWithContext()["pod_privileged"].Module),
441-
}),
447+
}), Not(MatchAllKeys(Keys{
448+
"timeoutEvalSeconds": Ignore(),
449+
}))),
442450
}),
443451
"policyMode": Equal(string(admissionPolicyGroup.GetPolicyMode())),
444452
"expression": Equal(admissionPolicyGroup.GetExpression()),
445453
"message": Equal(admissionPolicyGroup.GetMessage()),
446-
}),
454+
}), Not(MatchAllKeys(Keys{
455+
"timeoutEvalSeconds": Ignore(),
456+
}))),
447457
clusterPolicyGroup.GetUniqueName(): And(MatchAllKeys(Keys{
448458
"namespacedName": MatchAllKeys(Keys{
449459
"Namespace": Equal(clusterPolicyGroup.GetNamespace()),
@@ -453,29 +463,30 @@ var _ = Describe("PolicyServer controller", func() {
453463
"pod_privileged": MatchAllKeys(Keys{
454464
"module": Equal(clusterPolicyGroup.GetPolicyGroupMembersWithContext()["pod_privileged"].Module),
455465
"settings": Ignore(),
456-
"timeoutEvalSeconds": Equal(float64(timeoutEvalSeconds)),
466+
"timeoutEvalSeconds": BeNumerically("==", timeoutEvalSeconds),
457467
"contextAwareResources": And(ContainElement(MatchAllKeys(Keys{
458468
"apiVersion": Equal("v1"),
459469
"kind": Equal("Pod"),
460470
})), HaveLen(1)),
461471
}),
462-
"user_group_psp": MatchAllKeys(Keys{
472+
"user_group_psp": And(MatchAllKeys(Keys{
463473
"module": Equal(clusterPolicyGroup.GetPolicyGroupMembersWithContext()["user_group_psp"].Module),
464474
"settings": Ignore(),
465475
"contextAwareResources": And(ContainElement(MatchAllKeys(Keys{
466476
"apiVersion": Equal("v1"),
467477
"kind": Equal("Deployment"),
468478
})), HaveLen(1)),
469-
}),
479+
}), Not(MatchAllKeys(Keys{
480+
"timeoutEvalSeconds": Ignore(),
481+
}))),
470482
}),
471483
"policyMode": Equal(string(clusterPolicyGroup.GetPolicyMode())),
472484
"expression": Equal(clusterPolicyGroup.GetExpression()),
473485
"message": Equal(clusterPolicyGroup.GetMessage()),
474486
}),
475487
Not(MatchKeys(IgnoreExtras, Keys{
476-
"settings": Ignore(),
477-
"allowedToMutate": Ignore(),
478-
"contextAwareResources": Ignore(),
488+
"settings": Ignore(),
489+
"timeoutEvalSeconds": Ignore(),
479490
}))),
480491
}),
481492
)),

0 commit comments

Comments
 (0)