Skip to content

Commit 6630bb2

Browse files
committed
G2P-4380 Status of secrets read from cluster rather than relying on a markup file
1 parent ed34dfc commit 6630bb2

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

automation/lib/env-phase1.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -493,9 +493,10 @@ GWEOF
493493
env_phase1_step7_keycloak_secret() {
494494
local env_name=$(cfg "environment")
495495
local step_id="env-${env_name}.phase1.keycloak_secret"
496-
skip_if_done "$step_id" "Keycloak secret in '${env_name}'" && return 0
497496

498-
log_step "E1.7" "Creating Keycloak client-manager secret in namespace '${env_name}'"
497+
# Always verify the secret exists on the cluster — don't trust the state
498+
# marker alone, because cleanup/uninstall may have deleted it.
499+
log_step "E1.7" "Ensuring Keycloak client-manager secret in namespace '${env_name}'"
499500

500501
ensure_kubeconfig || return 1
501502

@@ -510,6 +511,7 @@ env_phase1_step7_keycloak_secret() {
510511
if kubectl -n "$env_name" get secret keycloak-client-manager &>/dev/null; then
511512
log_info "Secret 'keycloak-client-manager' already exists in namespace '${env_name}'."
512513
else
514+
log_info "Creating secret 'keycloak-client-manager'..."
513515
kubectl -n "$env_name" create secret generic keycloak-client-manager \
514516
--from-literal=keycloak-client-manager-password="$cm_pass" || {
515517
log_error "Failed to create keycloak-client-manager secret" \

automation/lib/env-phase2.sh

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -198,10 +198,28 @@ env_phase2_step1_commons_base() {
198198
# Clean uninstall if stale release exists (full cleanup: secrets + PVCs)
199199
clean_uninstall_release "$env_name" "$release_name" "full"
200200

201-
# Recreate keycloak-client-manager secret (may have been deleted by full cleanup)
202-
if [[ -n "$cm_pass" ]] && ! kubectl -n "$env_name" get secret keycloak-client-manager &>/dev/null; then
203-
kubectl -n "$env_name" create secret generic keycloak-client-manager \
204-
--from-literal=keycloak-client-manager-password="$cm_pass" > /dev/null 2>&1 || true
201+
# Always ensure keycloak-client-manager secret exists before install.
202+
# It may have been deleted by full cleanup above, by a manual uninstall,
203+
# or may never have been created if phase 1 was skipped.
204+
if [[ -n "$cm_pass" ]]; then
205+
if kubectl -n "$env_name" get secret keycloak-client-manager &>/dev/null; then
206+
log_info "Secret 'keycloak-client-manager' already exists."
207+
else
208+
log_info "Creating secret 'keycloak-client-manager' in namespace '${env_name}'..."
209+
kubectl -n "$env_name" create secret generic keycloak-client-manager \
210+
--from-literal=keycloak-client-manager-password="$cm_pass" || {
211+
log_error "Failed to create keycloak-client-manager secret" \
212+
"This secret is required by the commons chart" \
213+
"Check namespace and credentials"
214+
return 1
215+
}
216+
log_success "Secret 'keycloak-client-manager' created."
217+
fi
218+
else
219+
log_error "Keycloak client-manager password not available" \
220+
"Cannot create the required keycloak-client-manager secret" \
221+
"Set keycloak.client_manager_password in env config or check saved state"
222+
return 1
205223
fi
206224

207225
log_info "Chart: ${chart_ref}"

0 commit comments

Comments
 (0)