Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: A Helm chart to build and deploy secrets using external-secrets for
keywords:
- pattern
name: aap-config
version: 0.1.4
version: 0.1.5
dependencies:
- name: vp-rbac
version: '0.1.*'
Expand Down
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# aap-config

![Version: 0.1.4](https://img.shields.io/badge/Version-0.1.4-informational?style=flat-square)
![Version: 0.1.5](https://img.shields.io/badge/Version-0.1.5-informational?style=flat-square)

A Helm chart to build and deploy secrets using external-secrets for ansible-edge-gitops

Expand All @@ -20,6 +20,9 @@ the 10-minute mark instead of every ten minutes as previously).
external secrets validation job to prevent argo from proceeding past ES creation and
erroring out early.

* v0.1.5: Extend default deadline for external secret validation job. Remove
namespaces from external secrets validation.

## Requirements

| Repository | Name | Version |
Expand Down Expand Up @@ -47,7 +50,7 @@ erroring out early.
| secretStore.name | string | `"vault-backend"` | |
| serviceAccountName | string | `"aap-config-sa"` | |
| serviceAccountNamespace | string | `"aap-config"` | |
| validationJob.activeDeadlineSeconds | int | `600` | |
| validationJob.activeDeadlineSeconds | int | `3600` | |
| validationJob.disabled | bool | `false` | |
| vp-rbac.clusterRoles.view-routes.rules[0].apiGroups[0] | string | `"route.openshift.io"` | |
| vp-rbac.clusterRoles.view-routes.rules[0].resources[0] | string | `"routes"` | |
Expand Down
3 changes: 3 additions & 0 deletions README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ the 10-minute mark instead of every ten minutes as previously).
external secrets validation job to prevent argo from proceeding past ES creation and
erroring out early.

* v0.1.5: Extend default deadline for external secret validation job. Remove
namespaces from external secrets validation.

{{ template "chart.homepageLine" . }}

{{ template "chart.maintainersSection" . }}
Expand Down
17 changes: 7 additions & 10 deletions templates/external-secrets-validation-job.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ spec:
parallelism: 1
completions: 1
backoffLimit: 3
activeDeadlineSeconds: {{ $.Values.validationJob.activeDeadlineSeconds | default 300 }}
activeDeadlineSeconds: {{ $.Values.validationJob.activeDeadlineSeconds }}
template:
spec:
restartPolicy: Never
Expand All @@ -25,7 +25,7 @@ spec:
- |
set -euo pipefail

echo "Starting external secrets validation for aap-config namespace..."
echo "Starting external secrets validation..."

# List of external secrets to validate
EXTERNAL_SECRETS=(
Expand All @@ -40,13 +40,13 @@ spec:
echo "Checking secret: $secret_name"

# Check if secret exists
if ! kubectl get secret "$secret_name" -n aap-config >/dev/null 2>&1; then
if ! kubectl get secret "$secret_name" >/dev/null 2>&1; then
echo "ERROR: Secret $secret_name does not exist"
return 1
fi

# Check if secret has data
local data_count=$(kubectl get secret "$secret_name" -n aap-config -o jsonpath='{.data}' | jq -r 'length')
local data_count=$(kubectl get secret "$secret_name" -o jsonpath='{.data}' | jq -r 'length')
if [ "$data_count" -eq 0 ]; then
echo "ERROR: Secret $secret_name exists but has no data"
return 1
Expand All @@ -62,17 +62,17 @@ spec:
echo "Checking ExternalSecret status: $external_secret_name"

# Check if ExternalSecret exists
if ! kubectl get externalsecret "$external_secret_name" -n aap-config >/dev/null 2>&1; then
if ! kubectl get externalsecret "$external_secret_name" >/dev/null 2>&1; then
echo "ERROR: ExternalSecret $external_secret_name does not exist"
return 1
fi

# Check ExternalSecret status
local ready_status=$(kubectl get externalsecret "$external_secret_name" -n aap-config -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}')
local ready_status=$(kubectl get externalsecret "$external_secret_name" -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}')
if [ "$ready_status" != "True" ]; then
echo "ERROR: ExternalSecret $external_secret_name is not ready. Status: $ready_status"
# Get more details about the error
kubectl get externalsecret "$external_secret_name" -n aap-config -o jsonpath='{.status.conditions[?(@.type=="Ready")].message}' | xargs -I {} echo "Message: {}"
kubectl get externalsecret "$external_secret_name" -o jsonpath='{.status.conditions[?(@.type=="Ready")].message}' | xargs -I {} echo "Message: {}"
return 1
fi

Expand Down Expand Up @@ -136,9 +136,6 @@ spec:
for secret in "${EXTERNAL_SECRETS[@]}"; do
echo "✅ $secret: ExternalSecret ready and Secret populated"
done
env:
- name: NAMESPACE
value: aap-config
resources:
requests:
memory: "64Mi"
Expand Down
10 changes: 5 additions & 5 deletions values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ serviceAccountNamespace: aap-config
# Validation job configuration
validationJob:
disabled: false
activeDeadlineSeconds: 600
activeDeadlineSeconds: 3600

# RBAC configuration using vp-rbac subchart
vp-rbac:
Expand All @@ -44,27 +44,27 @@ vp-rbac:
clusterRoles:
- view-secrets-cms
- view-routes

clusterRoles:
view-secrets-cms:
rules:
- apiGroups: [""]
resources: ["secrets", "configmaps"]
verbs: ["get", "list", "watch"]

view-routes:
rules:
- apiGroups: ["route.openshift.io"]
resources: ["routes"]
verbs: ["get", "list", "watch"]

roles:
view-all:
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["get", "list", "watch"]

# RBAC for external secrets validation (namespace-scoped)
external-secrets-validator:
rules:
Expand Down