mirror of
https://github.com/truenas/charts.git
synced 2026-04-05 03:39:20 +08:00
* 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
241 lines
7.5 KiB
YAML
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
|