Merge pull request #8680 from dokku/8675-extend-raw-computed-report-key-split-8631-to-nginx-openresty-registry-scheduler-k3s
Split more report global keys into raw and computed
This commit is contained in:
@@ -58,6 +58,10 @@ assert_nginx_property_set_get() {
|
||||
|
||||
run /bin/bash -c "dokku nginx:set --global $prop"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku nginx:report $TEST_APP --format json | jq -r '.\"global-$prop\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
}
|
||||
|
||||
@test "(nginx:report) timeout properties raw/global/computed" {
|
||||
@@ -100,4 +104,5 @@ assert_nginx_property_set_get() {
|
||||
assert_nginx_property_set_get "disable-custom-config" "false" "true"
|
||||
assert_nginx_property_set_get "underscore-in-headers" "on" "off"
|
||||
assert_nginx_property_set_get "proxy-keepalive" "8" "16"
|
||||
assert_nginx_property_set_get "nginx-conf-sigil-path" "custom.sigil" "global.sigil"
|
||||
}
|
||||
|
||||
@@ -226,6 +226,77 @@ teardown() {
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "(registry:report --global) computed and global keys" {
|
||||
run /bin/bash -c "dokku registry:set --global push-on-release"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku registry:set --global server"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku registry:set --global image-repo-template"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-global-push-on-release\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-computed-push-on-release\"'"
|
||||
assert_success
|
||||
assert_output "false"
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-global-server\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-computed-server\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-global-image-repo-template\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-computed-image-repo-template\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku registry:set --global push-on-release true"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku registry:set --global server ghcr.io"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku registry:set --global image-repo-template 'dokku/{{ APP }}'"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-global-push-on-release\"'"
|
||||
assert_success
|
||||
assert_output "true"
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-computed-push-on-release\"'"
|
||||
assert_success
|
||||
assert_output "true"
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-global-server\"'"
|
||||
assert_success
|
||||
assert_output "ghcr.io"
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-computed-server\"'"
|
||||
assert_success
|
||||
assert_output "ghcr.io/"
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-global-image-repo-template\"'"
|
||||
assert_success
|
||||
assert_output 'dokku/{{ APP }}'
|
||||
|
||||
run /bin/bash -c "dokku registry:report --global --format json | jq -r '.\"registry-computed-image-repo-template\"'"
|
||||
assert_success
|
||||
assert_output 'dokku/{{ APP }}'
|
||||
|
||||
run /bin/bash -c "dokku registry:set --global push-on-release"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku registry:set --global server"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku registry:set --global image-repo-template"
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "(registry:report) push-extra-tags raw" {
|
||||
run /bin/bash -c "dokku registry:report $TEST_APP --format json | jq -r '.\"registry-push-extra-tags\"'"
|
||||
assert_success
|
||||
|
||||
124
tests/unit/scheduler-k3s-report.bats
Normal file
124
tests/unit/scheduler-k3s-report.bats
Normal file
@@ -0,0 +1,124 @@
|
||||
#!/usr/bin/env bats
|
||||
|
||||
load test_helper
|
||||
|
||||
setup() {
|
||||
global_setup
|
||||
}
|
||||
|
||||
teardown() {
|
||||
for prop in deploy-timeout image-pull-secrets ingress-class kubeconfig-path kube-context kustomize-root-path namespace network-interface rollback-on-failure shm-size; do
|
||||
dokku scheduler-k3s:set --global "$prop" >/dev/null 2>/dev/null || true
|
||||
done
|
||||
global_teardown
|
||||
}
|
||||
|
||||
# assert_k3s_global_unset_set verifies that a global property cycles correctly
|
||||
# through the raw/computed split: when unset, the global key is empty and the
|
||||
# computed key returns the built-in default; after setting, both pair members
|
||||
# match the set value. Excludes letsencrypt-* properties whose set path applies
|
||||
# cluster issuers via helm and requires a live k3s cluster.
|
||||
assert_k3s_global_unset_set() {
|
||||
declare prop="$1" expected_default="$2" set_value="$3"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:set --global $prop"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-global-$prop\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-$prop\"'"
|
||||
assert_success
|
||||
assert_output "$expected_default"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:set --global $prop '$set_value'"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-global-$prop\"'"
|
||||
assert_success
|
||||
assert_output "$set_value"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-$prop\"'"
|
||||
assert_success
|
||||
assert_output "$set_value"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:set --global $prop"
|
||||
assert_success
|
||||
}
|
||||
|
||||
@test "(scheduler-k3s:report --global) defaulted properties raw/computed cycle" {
|
||||
assert_k3s_global_unset_set "deploy-timeout" "300s" "600s"
|
||||
assert_k3s_global_unset_set "kustomize-root-path" "config/kustomize" "deploy/kustomize"
|
||||
assert_k3s_global_unset_set "namespace" "default" "production"
|
||||
assert_k3s_global_unset_set "rollback-on-failure" "false" "true"
|
||||
assert_k3s_global_unset_set "ingress-class" "nginx" "traefik"
|
||||
assert_k3s_global_unset_set "network-interface" "eth0" "eth1"
|
||||
assert_k3s_global_unset_set "kubeconfig-path" "/etc/rancher/k3s/k3s.yaml" "/tmp/custom-kubeconfig.yaml"
|
||||
}
|
||||
|
||||
@test "(scheduler-k3s:report --global) empty-default properties expose computed sibling" {
|
||||
for prop in image-pull-secrets shm-size kube-context; do
|
||||
run /bin/bash -c "dokku scheduler-k3s:set --global $prop"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-global-$prop\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-$prop\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
done
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:set --global image-pull-secrets my-secret"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku scheduler-k3s:set --global shm-size 64Mi"
|
||||
assert_success
|
||||
run /bin/bash -c "dokku scheduler-k3s:set --global kube-context my-context"
|
||||
assert_success
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-global-image-pull-secrets\"'"
|
||||
assert_success
|
||||
assert_output "my-secret"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-image-pull-secrets\"'"
|
||||
assert_success
|
||||
assert_output "my-secret"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-global-shm-size\"'"
|
||||
assert_success
|
||||
assert_output "64Mi"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-shm-size\"'"
|
||||
assert_success
|
||||
assert_output "64Mi"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-global-kube-context\"'"
|
||||
assert_success
|
||||
assert_output "my-context"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-kube-context\"'"
|
||||
assert_success
|
||||
assert_output "my-context"
|
||||
}
|
||||
|
||||
@test "(scheduler-k3s:report --global) letsencrypt properties unset state" {
|
||||
for prop in letsencrypt-server letsencrypt-email-prod letsencrypt-email-stag; do
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-global-$prop\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
done
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-letsencrypt-server\"'"
|
||||
assert_success
|
||||
assert_output "prod"
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-letsencrypt-email-prod\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
|
||||
run /bin/bash -c "dokku scheduler-k3s:report --global --format json | jq -r '.\"scheduler-k3s-computed-letsencrypt-email-stag\"'"
|
||||
assert_success
|
||||
assert_output ""
|
||||
}
|
||||
Reference in New Issue
Block a user