fix: parse uninitialized OpenBao status
This commit is contained in:
parent
026b191c84
commit
99eb19fba4
|
|
@ -268,18 +268,29 @@ func writeSecret(kubeconfig, rootToken, secretPath string, values map[string]str
|
|||
|
||||
func waitForPod(kubeconfig string) error {
|
||||
deadline := time.Now().Add(10 * time.Minute)
|
||||
var lastErr error
|
||||
for time.Now().Before(deadline) {
|
||||
if _, err := getStatus(kubeconfig); err == nil {
|
||||
return nil
|
||||
} else {
|
||||
lastErr = err
|
||||
}
|
||||
time.Sleep(2 * time.Second)
|
||||
}
|
||||
if lastErr != nil {
|
||||
return fmt.Errorf("OpenBao pod did not become ready: %w", lastErr)
|
||||
}
|
||||
return fmt.Errorf("OpenBao pod did not become ready")
|
||||
}
|
||||
|
||||
func getStatus(kubeconfig string) (status, error) {
|
||||
command := []string{"--kubeconfig", kubeconfig, "-n", "openbao", "exec", "openbao-0", "--", "bao", "status", "-format=json"}
|
||||
output, err := commandOutput(nil, "kubectl", command...)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), commandTimeout)
|
||||
defer cancel()
|
||||
output, err := exec.CommandContext(ctx, "kubectl", command...).Output()
|
||||
if errors.Is(ctx.Err(), context.DeadlineExceeded) {
|
||||
return status{}, fmt.Errorf("get OpenBao status timed out after %s", commandTimeout)
|
||||
}
|
||||
if err != nil && !json.Valid(output) {
|
||||
return status{}, fmt.Errorf("get OpenBao status: %w", err)
|
||||
}
|
||||
|
|
@ -333,7 +344,7 @@ read -r reviewer_token
|
|||
export BAO_TOKEN="$root_token"
|
||||
bao secrets enable -path=secret kv-v2 >/dev/null 2>&1 || true
|
||||
bao auth enable kubernetes >/dev/null 2>&1 || true
|
||||
bao write auth/kubernetes/config token_reviewer_jwt="$reviewer_token" kubernetes_host="https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}" kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt >/dev/null 2>&1 || fail kubernetes-auth-config
|
||||
bao write auth/kubernetes/config token_reviewer_jwt="$reviewer_token" kubernetes_host="https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}" kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt >/dev/null || fail kubernetes-auth-config
|
||||
cat >/tmp/external-secrets.hcl <<'EOF'
|
||||
path "secret/data/platform/*" {
|
||||
capabilities = ["read"]
|
||||
|
|
|
|||
Loading…
Reference in a new issue