|
15 | 15 |
|
16 | 16 | set -euo pipefail |
17 | 17 |
|
18 | | -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
19 | | -PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" |
20 | | -HELM_CHART_DIR="$PROJECT_ROOT/manifests/helm/kepler-operator" |
21 | | -CRD_SOURCE_DIR="$PROJECT_ROOT/config/crd/bases" |
22 | | -CRD_DEST_DIR="$HELM_CHART_DIR/crds" |
| 18 | +PROJECT_ROOT="$(git rev-parse --show-toplevel)" |
| 19 | +declare -r PROJECT_ROOT |
| 20 | +declare -r TMP_DIR="$PROJECT_ROOT/tmp" |
| 21 | +declare -r BIN_DIR="$TMP_DIR/bin" |
| 22 | + |
| 23 | +declare -r HELM_CHART_DIR="$PROJECT_ROOT/manifests/helm/kepler-operator" |
| 24 | +declare -r CRD_SOURCE_DIR="$PROJECT_ROOT/config/crd/bases" |
| 25 | +declare -r CRD_DEST_DIR="$HELM_CHART_DIR/crds" |
23 | 26 |
|
24 | 27 | # Image versions for validation |
25 | | -OPERATOR_IMAGE="${OPERATOR_IMAGE:-quay.io/sustainable_computing_io/kepler-operator:0.21.0}" |
26 | | -KEPLER_IMAGE="${KEPLER_IMAGE:-quay.io/sustainable_computing_io/kepler:latest}" |
27 | | -KUBE_RBAC_PROXY_IMAGE="${KUBE_RBAC_PROXY_IMAGE:-quay.io/brancz/kube-rbac-proxy:v0.18.1}" |
| 28 | +declare OPERATOR_IMAGE="${OPERATOR_IMAGE:-quay.io/sustainable_computing_io/kepler-operator:0.21.0}" |
| 29 | +declare KEPLER_IMAGE="${KEPLER_IMAGE:-quay.io/sustainable_computing_io/kepler:latest}" |
| 30 | +declare KUBE_RBAC_PROXY_IMAGE="${KUBE_RBAC_PROXY_IMAGE:-quay.io/brancz/kube-rbac-proxy:v0.18.1}" |
28 | 31 |
|
29 | 32 | # shellcheck source=hack/utils.bash |
30 | | -source "$SCRIPT_DIR/../utils.bash" |
31 | | - |
32 | | -# Validate that required tools are available |
33 | | -check_tools() { |
34 | | - local bin_dir="$PROJECT_ROOT/tmp/bin" |
35 | | - local tools=("helm" "kustomize" "yq") |
36 | | - for tool in "${tools[@]}"; do |
37 | | - if [[ ! -x "$bin_dir/$tool" ]]; then |
38 | | - fail "$tool is not installed. Please run 'make $tool' to install it." |
39 | | - return 1 |
40 | | - fi |
41 | | - done |
42 | | -} |
43 | | - |
44 | | -# Use project-local tools |
45 | | -export PATH="$PROJECT_ROOT/tmp/bin:$PATH" |
| 33 | +source "$PROJECT_ROOT/hack/utils.bash" |
46 | 34 |
|
47 | 35 | # Render Helm templates with standard test values |
48 | 36 | render_helm_template() { |
@@ -81,6 +69,11 @@ validate_helm_template() { |
81 | 69 | return 0 |
82 | 70 | } |
83 | 71 |
|
| 72 | +ensure_all_tools() { |
| 73 | + info "Ensuring tools are installed" |
| 74 | + "$PROJECT_ROOT/hack/tools.sh" helm |
| 75 | +} |
| 76 | + |
84 | 77 | # Validate CRD sync status |
85 | 78 | validate_crd_sync() { |
86 | 79 | info "Validating CRD sync status..." |
@@ -146,7 +139,11 @@ validate_resources() { |
146 | 139 | main() { |
147 | 140 | info "Starting Helm chart validation..." |
148 | 141 |
|
149 | | - check_tools |
| 142 | + cd "$PROJECT_ROOT" |
| 143 | + export PATH="$BIN_DIR:$PATH" |
| 144 | + mkdir -p "${TMP_DIR}" |
| 145 | + ensure_all_tools |
| 146 | + |
150 | 147 | validate_helm_syntax |
151 | 148 | validate_helm_template |
152 | 149 | validate_crd_sync |
|
0 commit comments