zot: helm chart and app cue configuration
Zot OCI registry: https://zotregistry.dev/
Change-Id: I40ec7383cdc6450613deae862d92d25cc647c892
diff --git a/charts/zot/unittests/__snapshot__/ingress_test.yaml.snap b/charts/zot/unittests/__snapshot__/ingress_test.yaml.snap
new file mode 100644
index 0000000..115a740
--- /dev/null
+++ b/charts/zot/unittests/__snapshot__/ingress_test.yaml.snap
@@ -0,0 +1,29 @@
+should match snapshot of default values:
+ 1: |
+ apiVersion: networking.k8s.io/v1
+ kind: Ingress
+ metadata:
+ annotations:
+ kubernetes.io/ingress.class: nginx
+ kubernetes.io/tls-acme: "true"
+ labels:
+ app: zot
+ release: RELEASE-NAME
+ name: RELEASE-NAME-zot
+ spec:
+ ingressClassName: nginx-test
+ rules:
+ - host: chart-example.local
+ http:
+ paths:
+ - backend:
+ service:
+ name: RELEASE-NAME-zot
+ port:
+ number: 5000
+ path: /
+ pathType: ImplementationSpecific
+ tls:
+ - hosts:
+ - chart-example.local
+ secretName: chart-example-tls
diff --git a/charts/zot/unittests/configmap_checksum_test.yaml b/charts/zot/unittests/configmap_checksum_test.yaml
new file mode 100644
index 0000000..9d366e4
--- /dev/null
+++ b/charts/zot/unittests/configmap_checksum_test.yaml
@@ -0,0 +1,23 @@
+suite: configmap checksum in deployment
+# Can't use global templates in this test suite as it will break the checksum calculation
+# causing false negative test outcome.
+# templates:
+# - deployment.yaml
+tests:
+ - it: has no checksum/config if no config
+ template: deployment.yaml
+ asserts:
+ - isNull:
+ path: spec.template.metadata.annotations.checksum/config
+ - it: generate checksum/config if config is present
+ template: deployment.yaml
+ set:
+ mountConfig: true
+ configFiles:
+ config.json: "{}"
+ asserts:
+ - isNotNull:
+ path: spec.template.metadata.annotations.checksum/config
+ - matchRegex:
+ path: spec.template.metadata.annotations.checksum/config
+ pattern: "^[a-f0-9]{64}$" # SHA256 hex output
diff --git a/charts/zot/unittests/ingress_test.yaml b/charts/zot/unittests/ingress_test.yaml
new file mode 100644
index 0000000..0e71833
--- /dev/null
+++ b/charts/zot/unittests/ingress_test.yaml
@@ -0,0 +1,47 @@
+suite: test ingress
+templates:
+ - ingress.yaml
+tests:
+ - it: should be empty if ingress is not enabled
+ asserts:
+ - hasDocuments:
+ count: 0
+ - it: should have apiVersion networking.k8s.io/v1 for k8s >= 1.19
+ set:
+ ingress.enabled: true
+ capabilities:
+ majorVersion: 1
+ minorVersion: 19
+ asserts:
+ - hasDocuments:
+ count: 1
+ - isKind:
+ of: Ingress
+ - isAPIVersion:
+ of: networking.k8s.io/v1
+ - it: should have an ingressClassName for k8s >= 1.19
+ set:
+ ingress.enabled: true
+ ingress.className: nginx-test
+ capabilities:
+ majorVersion: 1
+ minorVersion: 19
+ asserts:
+ - hasDocuments:
+ count: 1
+ - equal:
+ path: spec.ingressClassName
+ value: nginx-test
+ - it: should match snapshot of default values
+ set:
+ ingress.enabled: true
+ ingress.className: nginx-test
+ ingress.annotations:
+ kubernetes.io/ingress.class: nginx
+ kubernetes.io/tls-acme: "true"
+ ingress.tls:
+ - secretName: chart-example-tls
+ hosts:
+ - chart-example.local
+ asserts:
+ - matchSnapshot: { }