Files
chart/library/common-test/tests/externalInterface/metadata_test.yaml
Stavros Kois 929e60d801 NAS-121003 / 23.10 / Adapt charts CI and improve/fix common (#1011)
* Adapt charts CI and improve/fix common

* add check on permissions contaienr

* add postgres template

* update comments

* Update create_app.sh

* add check

* update script

* auto gen item.yaml from Chart,yaml

* rename readme on dest

* duplicate readme from the same source

* correct comment

* reoder

* remove extra space

* keep both README and app-readme

* update regex, to also allow 2 letter names, which is also valid

* No need to check host network if there aren't any pod values

* use same pattern as the pod.name label (not prepending release-name

* update deps

* add chart dirs to ci

* Add a validation to check if there is any yaml errors after merging files

* update charts path on ci

* common/1.0.0/ -> common/

* update common-test dep path

* temp update create_app script

* make permissions container name configurable, incase we want to change order of execution

* update naming convention

* fix typo and a missed name change

* do not allow `--` in names
2023-03-16 17:36:19 +02:00

241 lines
7.5 KiB
YAML

suite: externalInterface metadata test
templates:
- common.yaml
release:
name: release-name
tests:
- it: should generate correct annotations without selector
set:
# Simulate middleware injection
ixExternalInterfacesConfiguration:
- '{"cniVersion": "0.3.1", "name": "ix-release-name-0", "type": "macvlan", "master": "ens3s0", "ipam": {"type": "dhcp"}}'
- '{"cniVersion": "0.3.1", "name": "ix-release-name-0", "type": "macvlan", "master": "ens4s0", "ipam": {"type": "dhcp"}}'
ixExternalInterfacesConfigurationNames:
- ix-release-name-0
- ix-release-name-1
scaleExternalInterface:
- hostInterface: enp0s3
ipam:
type: dhcp
- hostInterface: enp0s4
ipam:
type: dhcp
image: &image
repository: nginx
tag: 1.21.4
pullPolicy: IfNotPresent
workload:
workload-name1:
enabled: true
primary: true
type: Deployment
podSpec:
containers:
container-name1:
enabled: true
primary: true
imageSelector: image
probes: &probes
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
workload-name2:
enabled: true
primary: false
type: Deployment
podSpec:
containers:
container-name1:
enabled: true
primary: true
imageSelector: image
probes: *probes
asserts:
- documentIndex: &deploymentDoc 2
isKind:
of: Deployment
- documentIndex: *deploymentDoc
isAPIVersion:
of: apps/v1
- documentIndex: *deploymentDoc
equal:
path: metadata.name
value: release-name-common-test
- documentIndex: *deploymentDoc
isSubset:
path: spec.template.metadata.annotations
content:
k8s.v1.cni.cncf.io/networks: ix-release-name-0, ix-release-name-1
- documentIndex: &otherDeploymentDoc 3
isKind:
of: Deployment
- documentIndex: *otherDeploymentDoc
isAPIVersion:
of: apps/v1
- documentIndex: *otherDeploymentDoc
equal:
path: metadata.name
value: release-name-common-test-workload-name2
- documentIndex: *otherDeploymentDoc
isNotSubset:
path: spec.template.metadata.annotations
content:
k8s.v1.cni.cncf.io/networks: ix-release-name-0, ix-release-name-1
- it: should generate correct annotations with targetSelectAll
set:
# Simulate middleware injection
ixExternalInterfacesConfiguration:
- '{"cniVersion": "0.3.1", "name": "ix-release-name-0", "type": "macvlan", "master": "ens3s0", "ipam": {"type": "dhcp"}}'
- '{"cniVersion": "0.3.1", "name": "ix-release-name-0", "type": "macvlan", "master": "ens4s0", "ipam": {"type": "dhcp"}}'
ixExternalInterfacesConfigurationNames:
- ix-release-name-0
- ix-release-name-1
scaleExternalInterface:
- hostInterface: enp0s3
ipam:
type: dhcp
targetSelectAll: true
- hostInterface: enp0s4
ipam:
type: dhcp
targetSelectAll: true
image: *image
workload:
workload-name1:
enabled: true
primary: true
type: Deployment
podSpec:
containers:
container-name1:
enabled: true
primary: true
imageSelector: image
probes: *probes
workload-name2:
enabled: true
primary: false
type: Job
podSpec:
restartPolicy: Never
containers:
container-name1:
enabled: true
primary: true
imageSelector: image
probes: *probes
asserts:
- documentIndex: *deploymentDoc
isKind:
of: Deployment
- documentIndex: *deploymentDoc
isAPIVersion:
of: apps/v1
- documentIndex: *deploymentDoc
equal:
path: metadata.name
value: release-name-common-test
- documentIndex: *deploymentDoc
isSubset:
path: spec.template.metadata.annotations
content:
k8s.v1.cni.cncf.io/networks: ix-release-name-0, ix-release-name-1
- documentIndex: &jobDoc 3
isKind:
of: Job
- documentIndex: *jobDoc
isAPIVersion:
of: batch/v1
- documentIndex: *jobDoc
equal:
path: metadata.name
value: release-name-common-test-workload-name2
- documentIndex: *jobDoc
isSubset:
path: spec.template.metadata.annotations
content:
k8s.v1.cni.cncf.io/networks: ix-release-name-0, ix-release-name-1
- it: should generate correct annotations with targetSelector
set:
# Simulate middleware injection
ixExternalInterfacesConfiguration:
- '{"cniVersion": "0.3.1", "name": "ix-release-name-0", "type": "macvlan", "master": "ens3s0", "ipam": {"type": "dhcp"}}'
- '{"cniVersion": "0.3.1", "name": "ix-release-name-0", "type": "macvlan", "master": "ens4s0", "ipam": {"type": "dhcp"}}'
ixExternalInterfacesConfigurationNames:
- ix-release-name-0
- ix-release-name-1
scaleExternalInterface:
- hostInterface: enp0s3
ipam:
type: dhcp
targetSelector:
- workload-name1
- workload-name2
- hostInterface: enp0s4
ipam:
type: dhcp
targetSelector:
- workload-name1
image: *image
workload:
workload-name1:
enabled: true
primary: true
type: Deployment
podSpec:
containers:
container-name1:
enabled: true
primary: true
imageSelector: image
probes: *probes
workload-name2:
enabled: true
primary: false
type: CronJob
schedule: "*/1 * * * *"
podSpec:
restartPolicy: Never
containers:
container-name1:
enabled: true
primary: true
imageSelector: image
probes: *probes
asserts:
- documentIndex: *deploymentDoc
isKind:
of: Deployment
- documentIndex: *deploymentDoc
isAPIVersion:
of: apps/v1
- documentIndex: *deploymentDoc
equal:
path: metadata.name
value: release-name-common-test
- documentIndex: *deploymentDoc
isSubset:
path: spec.template.metadata.annotations
content:
k8s.v1.cni.cncf.io/networks: ix-release-name-0, ix-release-name-1
- documentIndex: &cronJobDoc 3
isKind:
of: CronJob
- documentIndex: *cronJobDoc
isAPIVersion:
of: batch/v1
- documentIndex: *cronJobDoc
equal:
path: metadata.name
value: release-name-common-test-workload-name2
- documentIndex: *cronJobDoc
isSubset:
path: spec.jobTemplate.spec.template.metadata.annotations
content:
k8s.v1.cni.cncf.io/networks: ix-release-name-0