Skip to content

Add multi-cloud support, Azure Key Vault, ECR pull secrets, and analytics Redis SSL#29

Merged
MarceloRGonc merged 6 commits into
mainfrom
mg/add-azure-support
May 8, 2026
Merged

Add multi-cloud support, Azure Key Vault, ECR pull secrets, and analytics Redis SSL#29
MarceloRGonc merged 6 commits into
mainfrom
mg/add-azure-support

Conversation

@MarceloRGonc
Copy link
Copy Markdown
Contributor

@MarceloRGonc MarceloRGonc commented May 6, 2026

Fixes OPS-4265

Copilot AI review requested due to automatic review settings May 6, 2026 12:26
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Azure Key Vault as an External Secrets Operator backend option for this Helm chart, allowing secrets to be synced from either AWS Secrets Manager (existing behavior) or Azure Key Vault (new behavior) based on a values flag.

Changes:

  • Added externalSecrets.provider and externalSecrets.azureKeyVault.vaultUrl values to configure Azure Key Vault usage.
  • Updated the SecretStore and ExternalSecret templates to switch between AWS Secrets Manager and Azure Key Vault based on the selected provider.
  • Added optional externalSecrets.serviceAccount.labels support when the chart creates the external-secrets ServiceAccount.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
chart/values.yaml Introduces provider selection and Azure Key Vault configuration values for external secrets.
chart/templates/external-secret.yaml Implements provider-based rendering of SecretStore/ExternalSecret and supports SA labels.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread chart/templates/external-secret.yaml Outdated
Comment thread chart/templates/external-secret.yaml Outdated
Comment thread chart/templates/external-secret.yaml Outdated
@linear
Copy link
Copy Markdown

linear Bot commented May 8, 2026

OPS-4265

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 12 comments.

Comment thread chart/templates/cronjob-ecr-credential-refresh.yaml
Comment thread chart/templates/cronjob-ecr-credential-refresh.yaml
Comment thread chart/templates/cronjob-ecr-credential-refresh.yaml Outdated
Comment thread chart/templates/cronjob-ecr-credential-refresh.yaml Outdated
Comment thread chart/values.yaml Outdated
Comment thread chart/templates/external-secret.yaml Outdated
Comment thread README.md
Comment on lines +50 to +64
{{- if .Values.global.containerSecurityContext.enabled }}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
runAsNonRoot: false
runAsUser: 0
capabilities:
drop:
- ALL
add:
- NET_BIND_SERVICE
- CHOWN
- SETGID
- SETUID
{{- end }}
Comment thread README.md
Comment thread chart/templates/deployment-analytics.yaml Outdated
- Add required validation for vaultUrl/tenantId when azure-keyvault provider
- Add fail for unsupported externalSecrets.provider values
- Extract $provider variable to reduce duplication in external-secret.yaml
- Restrict ECR cronjob RBAC to specific secret resourceNames
- Pin kubectl version to v1.32.3 in ECR cronjob
- Fix appSecretName fallback when empty (use secretName instead)
- Update renderEnv comment to document skipDuplicateSecrets param
- Fix analytics configOverride whitespace (avoid left-trim concatenation)
- Fix values.yaml comment for ECR secret key names (AWS_ACCESS_KEY_ID)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@MarceloRGonc MarceloRGonc changed the title Add support for Azure Key vault Multi-cloud support — Azure Key Vault, ECR pull secrets, and analytics Redis SSL May 8, 2026
…tics configOverride

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 8, 2026 12:50
@MarceloRGonc MarceloRGonc changed the title Multi-cloud support — Azure Key Vault, ECR pull secrets, and analytics Redis SSL Add multi-cloud support, Azure Key Vault, ECR pull secrets, and analytics Redis SSL May 8, 2026
@MarceloRGonc MarceloRGonc marked this pull request as ready for review May 8, 2026 12:52
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 10 comments.

Comment thread README.md Outdated
Comment thread README.md
Comment on lines +50 to +64
{{- if .Values.global.containerSecurityContext.enabled }}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
runAsNonRoot: false
runAsUser: 0
capabilities:
drop:
- ALL
add:
- NET_BIND_SERVICE
- CHOWN
- SETGID
- SETUID
{{- end }}
Comment thread chart/templates/deployment-analytics.yaml
Comment thread chart/templates/cronjob-ecr-credential-refresh.yaml Outdated
Comment thread chart/templates/cronjob-ecr-credential-refresh.yaml Outdated
Comment thread chart/templates/cronjob-ecr-credential-refresh.yaml
Comment thread chart/templates/cronjob-ecr-credential-refresh.yaml
Comment thread chart/templates/_helpers.tpl
Comment on lines +19 to +25
- apiGroups: [""]
resources: ["secrets"]
resourceNames: [{{ .Values.ecrCredentialRefresh.imagePullSecretName | default "ecr-pull-secret" | quote }}]
verbs: ["get", "patch", "delete"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["create"]
MarceloRGonc and others added 2 commits May 8, 2026 14:41
…ent secret refresh

- README: fix imagePullSecrets example to use string list (not objects)
- deployment-analytics: add checksum/analytics-config annotation for rollout on configOverride changes
- cronjob-ecr-credential-refresh: require registry when enabled via Helm required()
- cronjob-ecr-credential-refresh: use dry-run + apply instead of delete + create to avoid secret gap

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…efresh

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 8, 2026 14:01
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Comment thread README.md
--from-literal=AWS_SECRET_ACCESS_KEY=<YOUR_ECR_SECRET_ACCESS_KEY>
```

The IAM user needs only `ecr:GetAuthorizationToken`, `ecr:BatchGetImage`, and `ecr:GetDownloadUrlForLayer` permissions.
Comment thread README.md

**External Secrets Operator (manual):**
```yaml
apiVersion: external-secrets.io/v1beta1
Comment on lines +51 to +63
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
runAsNonRoot: false
runAsUser: 0
capabilities:
drop:
- ALL
add:
- NET_BIND_SERVICE
- CHOWN
- SETGID
- SETUID
Comment on lines +88 to +99
KUBECTL_VERSION="v1.32.3"
KUBECTL_SHA256="ab209d0c5134b61486a0486585604a616a5bb2fc07df46d304b3c95817b2d79f"
curl -sLO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl"
echo "${KUBECTL_SHA256} kubectl" | sha256sum -c -
chmod +x kubectl && mv kubectl /usr/local/bin/
TOKEN=$(aws ecr get-login-password --region "$AWS_REGION")
kubectl create secret docker-registry "$SECRET_NAME" \
-n "$NAMESPACE" \
--docker-server="$ECR_REGISTRY" \
--docker-username=AWS \
--docker-password="$TOKEN" \
--dry-run=client -o yaml | kubectl apply -f -
Comment on lines +83 to +100
command:
- /bin/bash
- -c
- |
set -euo pipefail
KUBECTL_VERSION="v1.32.3"
KUBECTL_SHA256="ab209d0c5134b61486a0486585604a616a5bb2fc07df46d304b3c95817b2d79f"
curl -sLO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl"
echo "${KUBECTL_SHA256} kubectl" | sha256sum -c -
chmod +x kubectl && mv kubectl /usr/local/bin/
TOKEN=$(aws ecr get-login-password --region "$AWS_REGION")
kubectl create secret docker-registry "$SECRET_NAME" \
-n "$NAMESPACE" \
--docker-server="$ECR_REGISTRY" \
--docker-username=AWS \
--docker-password="$TOKEN" \
--dry-run=client -o yaml | kubectl apply -f -
echo "✅ ECR pull secret refreshed successfully"
@MarceloRGonc MarceloRGonc merged commit 980c174 into main May 8, 2026
7 checks passed
@MarceloRGonc MarceloRGonc deleted the mg/add-azure-support branch May 8, 2026 14:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants