Add isolated kind dependency testbed
This commit is contained in:
parent
74ac822d43
commit
5759938f3f
1 changed files with 1155 additions and 0 deletions
226
tests/kind/probe.yaml.in
Normal file
226
tests/kind/probe.yaml.in
Normal file
|
|
@ -0,0 +1,226 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: probe-payload
|
||||
namespace: nuthatch-testbed
|
||||
data:
|
||||
payload: nuthatch-dependency-compatibility-probe
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: state-probe
|
||||
namespace: nuthatch-testbed
|
||||
spec:
|
||||
backoffLimit: 0
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
automountServiceAccountToken: false
|
||||
enableServiceLinks: false
|
||||
restartPolicy: Never
|
||||
initContainers:
|
||||
- name: postgres
|
||||
image: @@POSTGRES_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [psql]
|
||||
args:
|
||||
- -h
|
||||
- postgres
|
||||
- -U
|
||||
- nuthatch
|
||||
- -d
|
||||
- nuthatch
|
||||
- -v
|
||||
- ON_ERROR_STOP=1
|
||||
- -c
|
||||
- "CREATE TABLE dependency_probe (value text NOT NULL)"
|
||||
- -c
|
||||
- "INSERT INTO dependency_probe VALUES ('passed')"
|
||||
- -c
|
||||
- "SELECT value = 'passed' FROM dependency_probe"
|
||||
env:
|
||||
- {name: PGPASSWORD, value: synthetic-postgres}
|
||||
- name: redis
|
||||
image: @@REDIS_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [/bin/sh, -ec]
|
||||
args: ["redis-cli -h redis SET nuthatch-probe passed && test \"$(redis-cli -h redis GET nuthatch-probe)\" = passed"]
|
||||
containers:
|
||||
- name: dragonfly
|
||||
image: @@REDIS_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [/bin/sh, -ec]
|
||||
args: ["redis-cli -h dragonfly SET nuthatch-probe passed && test \"$(redis-cli -h dragonfly GET nuthatch-probe)\" = passed && printf 'PostgreSQL and Redis-compatible stores passed\\n'"]
|
||||
resources:
|
||||
requests: {cpu: 25m, memory: 32Mi}
|
||||
limits: {cpu: "1", memory: 128Mi}
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: oidc-probe
|
||||
namespace: nuthatch-testbed
|
||||
spec:
|
||||
backoffLimit: 0
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
automountServiceAccountToken: false
|
||||
enableServiceLinks: false
|
||||
restartPolicy: Never
|
||||
dnsPolicy: None
|
||||
dnsConfig:
|
||||
nameservers: [10.96.0.53]
|
||||
containers:
|
||||
- name: curl
|
||||
image: @@CURL_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [/bin/sh, -ec]
|
||||
args:
|
||||
- |
|
||||
probe() {
|
||||
url="$1"
|
||||
pattern="$2"
|
||||
attempt=0
|
||||
until curl --fail --silent --show-error "$url" | grep -q "$pattern"; do
|
||||
attempt=$((attempt + 1))
|
||||
test "$attempt" -lt 30
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
probe http://keycloak.nuthatch.test:8080/realms/master/.well-known/openid-configuration '"issuer"'
|
||||
probe http://keycloak.nuthatch.test:8080/realms/master/protocol/openid-connect/certs '"keys"'
|
||||
probe http://zitadel.nuthatch.test:8080/.well-known/openid-configuration '"issuer"'
|
||||
probe http://zitadel.nuthatch.test:8080/oauth/v2/keys '"keys"'
|
||||
printf 'Keycloak and ZITADEL discovery passed through controlled DNS\n'
|
||||
resources:
|
||||
requests: {cpu: 25m, memory: 32Mi}
|
||||
limits: {cpu: "1", memory: 128Mi}
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: garage-probe
|
||||
namespace: nuthatch-testbed
|
||||
spec:
|
||||
backoffLimit: 0
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
automountServiceAccountToken: false
|
||||
enableServiceLinks: false
|
||||
restartPolicy: Never
|
||||
initContainers:
|
||||
- name: upload
|
||||
image: @@AWS_CLI_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [/bin/sh, -ec]
|
||||
args:
|
||||
- |
|
||||
attempt=0
|
||||
until aws --endpoint-url http://garage:3900 s3api put-object --bucket nuthatch-fixture --key probe/payload --body /fixture/payload; do
|
||||
attempt=$((attempt + 1))
|
||||
test "$attempt" -lt 30
|
||||
sleep 1
|
||||
done
|
||||
env:
|
||||
- {name: AWS_ACCESS_KEY_ID, value: GK00000000000000000000000000000000}
|
||||
- {name: AWS_SECRET_ACCESS_KEY, value: "0000000000000000000000000000000000000000000000000000000000000000"}
|
||||
- {name: AWS_DEFAULT_REGION, value: garage}
|
||||
volumeMounts:
|
||||
- {name: fixture, mountPath: /fixture}
|
||||
- name: download
|
||||
image: @@AWS_CLI_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [aws]
|
||||
args: [--endpoint-url, "http://garage:3900", s3api, get-object, --bucket, nuthatch-fixture, --key, probe/payload, /work/result]
|
||||
env:
|
||||
- {name: AWS_ACCESS_KEY_ID, value: GK00000000000000000000000000000000}
|
||||
- {name: AWS_SECRET_ACCESS_KEY, value: "0000000000000000000000000000000000000000000000000000000000000000"}
|
||||
- {name: AWS_DEFAULT_REGION, value: garage}
|
||||
volumeMounts:
|
||||
- {name: work, mountPath: /work}
|
||||
containers:
|
||||
- name: compare
|
||||
image: @@CURL_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [/bin/sh, -ec]
|
||||
args: ["cmp /fixture/payload /work/result && printf 'Garage put/get passed\\n'"]
|
||||
volumeMounts:
|
||||
- {name: fixture, mountPath: /fixture}
|
||||
- {name: work, mountPath: /work}
|
||||
resources:
|
||||
requests: {cpu: 25m, memory: 32Mi}
|
||||
limits: {cpu: "1", memory: 128Mi}
|
||||
volumes:
|
||||
- name: fixture
|
||||
configMap: {name: probe-payload}
|
||||
- name: work
|
||||
emptyDir: {}
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: versitygw-probe
|
||||
namespace: nuthatch-testbed
|
||||
spec:
|
||||
backoffLimit: 0
|
||||
ttlSecondsAfterFinished: 300
|
||||
template:
|
||||
spec:
|
||||
automountServiceAccountToken: false
|
||||
enableServiceLinks: false
|
||||
restartPolicy: Never
|
||||
initContainers:
|
||||
- name: bucket
|
||||
image: @@AWS_CLI_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [/bin/sh, -ec]
|
||||
args:
|
||||
- |
|
||||
aws --endpoint-url http://versitygw:10000 s3api create-bucket --bucket nuthatch-fixture ||
|
||||
aws --endpoint-url http://versitygw:10000 s3api head-bucket --bucket nuthatch-fixture
|
||||
env:
|
||||
- {name: AWS_ACCESS_KEY_ID, value: synthetic-s3-access}
|
||||
- {name: AWS_SECRET_ACCESS_KEY, value: synthetic-s3-secret}
|
||||
- {name: AWS_DEFAULT_REGION, value: us-east-1}
|
||||
- name: upload
|
||||
image: @@AWS_CLI_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [aws]
|
||||
args: [--endpoint-url, "http://versitygw:10000", s3api, put-object, --bucket, nuthatch-fixture, --key, probe/payload, --body, /fixture/payload]
|
||||
env:
|
||||
- {name: AWS_ACCESS_KEY_ID, value: synthetic-s3-access}
|
||||
- {name: AWS_SECRET_ACCESS_KEY, value: synthetic-s3-secret}
|
||||
- {name: AWS_DEFAULT_REGION, value: us-east-1}
|
||||
volumeMounts:
|
||||
- {name: fixture, mountPath: /fixture}
|
||||
- name: download
|
||||
image: @@AWS_CLI_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [aws]
|
||||
args: [--endpoint-url, "http://versitygw:10000", s3api, get-object, --bucket, nuthatch-fixture, --key, probe/payload, /work/result]
|
||||
env:
|
||||
- {name: AWS_ACCESS_KEY_ID, value: synthetic-s3-access}
|
||||
- {name: AWS_SECRET_ACCESS_KEY, value: synthetic-s3-secret}
|
||||
- {name: AWS_DEFAULT_REGION, value: us-east-1}
|
||||
volumeMounts:
|
||||
- {name: work, mountPath: /work}
|
||||
containers:
|
||||
- name: compare
|
||||
image: @@CURL_IMAGE@@
|
||||
imagePullPolicy: Never
|
||||
command: [/bin/sh, -ec]
|
||||
args: ["cmp /fixture/payload /work/result && printf 'VersityGW put/get passed\\n'"]
|
||||
volumeMounts:
|
||||
- {name: fixture, mountPath: /fixture}
|
||||
- {name: work, mountPath: /work}
|
||||
resources:
|
||||
requests: {cpu: 25m, memory: 32Mi}
|
||||
limits: {cpu: "1", memory: 128Mi}
|
||||
volumes:
|
||||
- name: fixture
|
||||
configMap: {name: probe-payload}
|
||||
- name: work
|
||||
emptyDir: {}
|
||||
Loading…
Reference in a new issue