mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-31 03:45:17 +00:00
fix: allow empty image (#6767)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
parent
89928e286a
commit
4cf5903545
7 changed files with 87 additions and 1 deletions
|
@ -88,7 +88,7 @@ func extract(obj interface{}, path []string, keyPath, valuePath string, fields [
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
value, ok := output[valuePath].(string)
|
value, ok := output[valuePath].(string)
|
||||||
if !ok {
|
if !ok || strings.TrimSpace(value) == "" {
|
||||||
// the image may not be present
|
// the image may not be present
|
||||||
logging.V(4).Info("image information is not present", "pointer", pointer)
|
logging.V(4).Info("image information is not present", "pointer", pointer)
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
apiVersion: kuttl.dev/v1beta1
|
||||||
|
kind: TestStep
|
||||||
|
apply:
|
||||||
|
- policy.yaml
|
||||||
|
assert:
|
||||||
|
- policy-assert.yaml
|
|
@ -0,0 +1,4 @@
|
||||||
|
apiVersion: kuttl.dev/v1beta1
|
||||||
|
kind: TestStep
|
||||||
|
apply:
|
||||||
|
- file: resource.yaml
|
|
@ -0,0 +1,8 @@
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This test creates a policy to verify images signature.
|
||||||
|
It then creates a `Deployment` that references an image with an empty string.
|
||||||
|
|
||||||
|
## Expected Behavior
|
||||||
|
|
||||||
|
The deployment should be created without error.
|
|
@ -0,0 +1,9 @@
|
||||||
|
apiVersion: kyverno.io/v1
|
||||||
|
kind: ClusterPolicy
|
||||||
|
metadata:
|
||||||
|
name: keyed-basic-policy
|
||||||
|
status:
|
||||||
|
conditions:
|
||||||
|
- reason: Succeeded
|
||||||
|
status: "True"
|
||||||
|
type: Ready
|
|
@ -0,0 +1,27 @@
|
||||||
|
apiVersion: kyverno.io/v1
|
||||||
|
kind: ClusterPolicy
|
||||||
|
metadata:
|
||||||
|
name: keyed-basic-policy
|
||||||
|
spec:
|
||||||
|
validationFailureAction: enforce
|
||||||
|
background: false
|
||||||
|
webhookTimeoutSeconds: 30
|
||||||
|
failurePolicy: Fail
|
||||||
|
rules:
|
||||||
|
- name: keyed-basic-rule
|
||||||
|
match:
|
||||||
|
any:
|
||||||
|
- resources:
|
||||||
|
kinds:
|
||||||
|
- Pod
|
||||||
|
verifyImages:
|
||||||
|
- imageReferences:
|
||||||
|
- '*'
|
||||||
|
attestors:
|
||||||
|
- entries:
|
||||||
|
- keys:
|
||||||
|
publicKeys: |-
|
||||||
|
-----BEGIN PUBLIC KEY-----
|
||||||
|
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8nXRh950IZbRj8Ra/N9sbqOPZrfM
|
||||||
|
5/KAQN0/KjHcorm/J5yctVd7iEcnessRQjU917hmKO6JWVGHpDguIyakZA==
|
||||||
|
-----END PUBLIC KEY-----
|
|
@ -0,0 +1,32 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
image.openshift.io/triggers: '[{"from":{"kind":"ImageStreamTag","name":"httpd:latest","namespace":"example-namespace"},"fieldPath":"spec.template.spec.containers[?(@.name==\"httpd\")].image"}]'
|
||||||
|
openshift.io/generated-by: OpenShiftNewApp
|
||||||
|
labels:
|
||||||
|
app: httpd
|
||||||
|
app.kubernetes.io/component: httpd
|
||||||
|
app.kubernetes.io/instance: httpd
|
||||||
|
name: httpd
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
deployment: httpd
|
||||||
|
strategy: {}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
openshift.io/generated-by: OpenShiftNewApp
|
||||||
|
labels:
|
||||||
|
deployment: httpd
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: ' '
|
||||||
|
name: httpd
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 8443
|
||||||
|
protocol: TCP
|
Loading…
Add table
Reference in a new issue