源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
+189
@@ -0,0 +1,189 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
chart_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
tmp_dir="$(mktemp -d)"
|
||||
trap 'rm -rf "$tmp_dir"' EXIT
|
||||
|
||||
assert_count() {
|
||||
local file="$1"
|
||||
local needle="$2"
|
||||
local expected="$3"
|
||||
local count
|
||||
count="$(grep -F -c -- "$needle" "$file" || true)"
|
||||
if [[ "$count" != "$expected" ]]; then
|
||||
printf 'Expected %s occurrences of %s, found %s\n' "$expected" "$needle" "$count" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
assert_contains() {
|
||||
local file="$1"
|
||||
local needle="$2"
|
||||
if ! grep -F -q -- "$needle" "$file"; then
|
||||
printf 'Expected rendered chart to contain %s\n' "$needle" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
assert_not_contains() {
|
||||
local file="$1"
|
||||
local needle="$2"
|
||||
if grep -F -q -- "$needle" "$file"; then
|
||||
printf 'Expected rendered chart not to contain %s\n' "$needle" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
assert_failure() {
|
||||
local values_file="$1"
|
||||
local expected="$2"
|
||||
local output_file="$tmp_dir/failure-output.yaml"
|
||||
local error_file="$tmp_dir/failure-error.txt"
|
||||
|
||||
if helm template openwork-ee "$chart_dir" -f "$values_file" > "$output_file" 2> "$error_file"; then
|
||||
printf 'Expected helm template to fail for %s\n' "$values_file" >&2
|
||||
return 1
|
||||
fi
|
||||
assert_contains "$error_file" "$expected"
|
||||
}
|
||||
|
||||
default_rendered="$tmp_dir/default.yaml"
|
||||
disabled_values="$tmp_dir/disabled-values.yaml"
|
||||
disabled_rendered="$tmp_dir/disabled.yaml"
|
||||
helm template openwork-ee "$chart_dir" --set inference.enabled=true > "$default_rendered"
|
||||
cat > "$disabled_values" <<'YAML'
|
||||
inference:
|
||||
enabled: true
|
||||
customCa:
|
||||
enabled: false
|
||||
existingSecret: ignored-ca-secret
|
||||
key: ignored.pem
|
||||
YAML
|
||||
helm template openwork-ee "$chart_dir" -f "$disabled_values" > "$disabled_rendered"
|
||||
cmp -s "$default_rendered" "$disabled_rendered"
|
||||
assert_not_contains "$default_rendered" 'name: NODE_EXTRA_CA_CERTS'
|
||||
assert_not_contains "$default_rendered" '/etc/openwork/custom-ca'
|
||||
assert_not_contains "$default_rendered" 'name: custom-ca'
|
||||
|
||||
secret_values="$tmp_dir/secret-values.yaml"
|
||||
secret_rendered="$tmp_dir/secret.yaml"
|
||||
cat > "$secret_values" <<'YAML'
|
||||
customCa:
|
||||
enabled: true
|
||||
existingSecret: openwork-ca-secret
|
||||
key: corp-root.pem
|
||||
YAML
|
||||
helm template openwork-ee "$chart_dir" -f "$secret_values" > "$secret_rendered"
|
||||
assert_count "$secret_rendered" 'name: NODE_EXTRA_CA_CERTS' 4
|
||||
assert_count "$secret_rendered" 'value: "/etc/openwork/custom-ca/ca-bundle.pem"' 5
|
||||
assert_count "$secret_rendered" 'name: custom-ca' 8
|
||||
assert_count "$secret_rendered" 'secretName: "openwork-ca-secret"' 4
|
||||
assert_count "$secret_rendered" 'key: "corp-root.pem"' 4
|
||||
assert_count "$secret_rendered" 'path: ca-bundle.pem' 4
|
||||
assert_count "$secret_rendered" 'mountPath: "/etc/openwork/custom-ca"' 4
|
||||
assert_not_contains "$secret_rendered" 'subPath:'
|
||||
assert_not_contains "$secret_rendered" 'name: "openwork-ca-config"'
|
||||
assert_not_contains "$secret_rendered" 'name: openwork-ee-inference'
|
||||
|
||||
configmap_values="$tmp_dir/configmap-values.yaml"
|
||||
configmap_rendered="$tmp_dir/configmap.yaml"
|
||||
cat > "$configmap_values" <<'YAML'
|
||||
inference:
|
||||
enabled: true
|
||||
customCa:
|
||||
enabled: true
|
||||
existingConfigMap: openwork-ca-config
|
||||
key: ca.crt
|
||||
YAML
|
||||
helm template openwork-ee "$chart_dir" -f "$configmap_values" > "$configmap_rendered"
|
||||
assert_contains "$configmap_rendered" 'name: openwork-ee-den-api'
|
||||
assert_contains "$configmap_rendered" 'name: openwork-ee-den-web'
|
||||
assert_contains "$configmap_rendered" 'name: openwork-ee-inference'
|
||||
assert_contains "$configmap_rendered" 'name: openwork-ee-migrate'
|
||||
assert_count "$configmap_rendered" 'name: NODE_EXTRA_CA_CERTS' 5
|
||||
assert_count "$configmap_rendered" 'value: "/etc/openwork/custom-ca/ca-bundle.pem"' 6
|
||||
assert_count "$configmap_rendered" 'name: custom-ca' 10
|
||||
assert_count "$configmap_rendered" 'name: "openwork-ca-config"' 5
|
||||
assert_count "$configmap_rendered" 'key: "ca.crt"' 5
|
||||
assert_count "$configmap_rendered" 'path: ca-bundle.pem' 5
|
||||
assert_count "$configmap_rendered" 'mountPath: "/etc/openwork/custom-ca"' 5
|
||||
assert_not_contains "$configmap_rendered" 'subPath:'
|
||||
assert_not_contains "$configmap_rendered" 'secretName: "openwork-ca-secret"'
|
||||
|
||||
installer_values="$tmp_dir/installer-values.yaml"
|
||||
installer_rendered="$tmp_dir/installer.yaml"
|
||||
cat > "$installer_values" <<'YAML'
|
||||
customCa:
|
||||
enabled: true
|
||||
existingSecret: openwork-ca-secret
|
||||
installerArtifacts:
|
||||
enabled: true
|
||||
existingClaim: installer-artifacts-pvc
|
||||
YAML
|
||||
helm template openwork-ee "$chart_dir" -f "$installer_values" > "$installer_rendered"
|
||||
assert_contains "$installer_rendered" 'name: installer-artifacts'
|
||||
assert_contains "$installer_rendered" 'claimName: "installer-artifacts-pvc"'
|
||||
assert_contains "$installer_rendered" 'name: OPENWORK_INSTALLER_ARTIFACTS_DIR'
|
||||
assert_contains "$installer_rendered" 'name: custom-ca'
|
||||
assert_contains "$installer_rendered" 'name: NODE_EXTRA_CA_CERTS'
|
||||
|
||||
missing_source_values="$tmp_dir/missing-source-values.yaml"
|
||||
cat > "$missing_source_values" <<'YAML'
|
||||
customCa:
|
||||
enabled: true
|
||||
YAML
|
||||
assert_failure "$missing_source_values" 'customCa.existingSecret or customCa.existingConfigMap is required when customCa.enabled=true'
|
||||
|
||||
multiple_sources_values="$tmp_dir/multiple-sources-values.yaml"
|
||||
cat > "$multiple_sources_values" <<'YAML'
|
||||
customCa:
|
||||
enabled: true
|
||||
existingSecret: openwork-ca-secret
|
||||
existingConfigMap: openwork-ca-config
|
||||
YAML
|
||||
assert_failure "$multiple_sources_values" 'customCa.existingSecret and customCa.existingConfigMap are mutually exclusive when customCa.enabled=true'
|
||||
|
||||
empty_key_values="$tmp_dir/empty-key-values.yaml"
|
||||
cat > "$empty_key_values" <<'YAML'
|
||||
customCa:
|
||||
enabled: true
|
||||
existingSecret: openwork-ca-secret
|
||||
key: ""
|
||||
YAML
|
||||
assert_failure "$empty_key_values" 'customCa.key is required when customCa.enabled=true'
|
||||
|
||||
den_api_conflict_values="$tmp_dir/den-api-conflict-values.yaml"
|
||||
cat > "$den_api_conflict_values" <<'YAML'
|
||||
customCa:
|
||||
enabled: true
|
||||
existingSecret: openwork-ca-secret
|
||||
denApi:
|
||||
env:
|
||||
NODE_EXTRA_CA_CERTS: /already/set.pem
|
||||
YAML
|
||||
assert_failure "$den_api_conflict_values" 'denApi.env.NODE_EXTRA_CA_CERTS conflicts with customCa.enabled=true; remove it and use customCa instead'
|
||||
|
||||
den_web_conflict_values="$tmp_dir/den-web-conflict-values.yaml"
|
||||
cat > "$den_web_conflict_values" <<'YAML'
|
||||
customCa:
|
||||
enabled: true
|
||||
existingSecret: openwork-ca-secret
|
||||
denWeb:
|
||||
env:
|
||||
NODE_EXTRA_CA_CERTS: /already/set.pem
|
||||
YAML
|
||||
assert_failure "$den_web_conflict_values" 'denWeb.env.NODE_EXTRA_CA_CERTS conflicts with customCa.enabled=true; remove it and use customCa instead'
|
||||
|
||||
inference_conflict_values="$tmp_dir/inference-conflict-values.yaml"
|
||||
cat > "$inference_conflict_values" <<'YAML'
|
||||
customCa:
|
||||
enabled: true
|
||||
existingSecret: openwork-ca-secret
|
||||
inference:
|
||||
env:
|
||||
NODE_EXTRA_CA_CERTS: /already/set.pem
|
||||
YAML
|
||||
assert_failure "$inference_conflict_values" 'inference.env.NODE_EXTRA_CA_CERTS conflicts with customCa.enabled=true; remove it and use customCa instead'
|
||||
|
||||
node "$chart_dir/tests/custom-ca-node-trust.mjs"
|
||||
Reference in New Issue
Block a user