Skip to content

Commit 8566628

Browse files
authored
Merge pull request #5698 from stormqueen1990/fix/validation-name-reference
fix(namereference): add configuration for new admission API
2 parents 16a7ce2 + 3065eb3 commit 8566628

File tree

2 files changed

+89
-0
lines changed

2 files changed

+89
-0
lines changed

api/internal/konfig/builtinpluginconsts/namereference.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,13 @@ nameReference:
421421
fieldSpecs:
422422
- path: spec/ingressClassName
423423
kind: Ingress
424+
425+
- kind: ValidatingAdmissionPolicy
426+
group: admissionregistration.k8s.io
427+
fieldSpecs:
428+
- path: spec/policyName
429+
kind: ValidatingAdmissionPolicyBinding
430+
group: admissionregistration.k8s.io
424431
`
425432
)
426433

api/krusty/namereference_test.go

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,3 +786,85 @@ spec:
786786
name: tester
787787
`)
788788
}
789+
790+
func TestBackReferenceAdmissionPolicy(t *testing.T) {
791+
th := kusttest_test.MakeHarness(t)
792+
th.WriteK(".", `
793+
resources:
794+
- admission.yaml
795+
796+
namePrefix: a-prefix-
797+
`)
798+
th.WriteF("admission.yaml", `---
799+
apiVersion: admissionregistration.k8s.io/v1beta1
800+
kind: ValidatingAdmissionPolicy
801+
metadata:
802+
name: sample-policy
803+
spec:
804+
failurePolicy: Fail
805+
paramKind:
806+
apiVersion: apps/v1
807+
kind: Deployment
808+
matchConstraints:
809+
resourceRules:
810+
- apiGroups:
811+
- apps
812+
apiVersions:
813+
- v1
814+
operations:
815+
- CREATE
816+
- UPDATE
817+
resources:
818+
- deployments
819+
validations:
820+
- expression: "!object.metadata.name.startsWith('test-')"
821+
message: prefix 'test-' is not allowed
822+
reason: Invalid
823+
---
824+
apiVersion: admissionregistration.k8s.io/v1beta1
825+
kind: ValidatingAdmissionPolicyBinding
826+
metadata:
827+
name: sample-policy-binding
828+
spec:
829+
policyName: sample-policy
830+
validationActions:
831+
- Deny
832+
`)
833+
834+
m := th.Run(".", th.MakeDefaultOptions())
835+
th.AssertActualEqualsExpected(m, `
836+
apiVersion: admissionregistration.k8s.io/v1beta1
837+
kind: ValidatingAdmissionPolicy
838+
metadata:
839+
name: a-prefix-sample-policy
840+
spec:
841+
failurePolicy: Fail
842+
matchConstraints:
843+
resourceRules:
844+
- apiGroups:
845+
- apps
846+
apiVersions:
847+
- v1
848+
operations:
849+
- CREATE
850+
- UPDATE
851+
resources:
852+
- deployments
853+
paramKind:
854+
apiVersion: apps/v1
855+
kind: Deployment
856+
validations:
857+
- expression: '!object.metadata.name.startsWith(''test-'')'
858+
message: prefix 'test-' is not allowed
859+
reason: Invalid
860+
---
861+
apiVersion: admissionregistration.k8s.io/v1beta1
862+
kind: ValidatingAdmissionPolicyBinding
863+
metadata:
864+
name: a-prefix-sample-policy-binding
865+
spec:
866+
policyName: a-prefix-sample-policy
867+
validationActions:
868+
- Deny
869+
`)
870+
}

0 commit comments

Comments
 (0)