Helm Deployment via VMware Aria Automation Code Stream + Kubernetes
Overview
This deployment model integrates VMware Aria Automation Code Stream with Kubernetes to securely and automatically execute Helm chart deployments.
The approach leverages a short-lived Kubernetes Job that handles:
-
Git repository checkout
-
Helm chart installation/upgrade
-
Automatic cleanup post-execution
This ensures secure, ephemeral, and repeatable deployments with minimal cluster footprint.
Design Components
🔹 Code Stream Pipeline
-
Type: Kubernetes Task
-
Trigger: Manual or scheduled
-
Inputs: Git credentials (e.g.,
gitusername1,gitpassword2) -
Purpose: Submits Kubernetes Job manifest to the target cluster
🔹 Kubernetes Job
-
API Version:
batch/v1 -
Namespace: <Name Space>
-
Service Account:
crypto(preconfigured RBAC permissions) -
Image: Custom Alpine with Helm + Git CLI (
k8s:1.33.3) -
Execution Steps:
-
Clone Helm chart from internal GitLab
-
Run
helm upgrade --installwith values file -
Deploy resources into target namespace
🔹 Security Controls
-
ServiceAccount RBAC: Least-privilege access (create/update/patch on deployments, secrets, configmaps)
-
ImagePullSecrets: (
creds) for private registry authentication -
Git Access: HTTPS with token-based authentication
🔹 Lifecycle Management
-
Restart Policy:
Never -
Retries:
backoffLimit: 0(fail fast) -
Cleanup:
ttlSecondsAfterFinished: 60for automatic pod/job deletion
Deployment Flow
-
Pipeline Trigger → User initiates Code Stream pipeline with GitLab inputs
-
Job Submission → Code Stream submits manifest to Kubernetes API
-
Git & Helm Execution → Job container clones repo and runs
helm upgrade --install -
Helm Deployment → Resources applied into namespace (
--create-namespaceif needed) -
Cleanup → Job & pod auto-delete after 60s/120s
-
Validation → Operator checks with
helm status& Kubernetes resources
Key Highlights
-
Ephemeral Execution → No long-running CI/CD pods; jobs auto-cleanup
-
Isolation → Each deployment runs independently, avoiding conflicts
-
Rollback Ready →
helm rollback services <REVISION> --namespace <NS>supported via pipeline -
Secure by Design → ServiceAccount with least privilege, private registry auth
-
Namespace Agnostic → Can target any namespace via manifest update
-
Minimal Footprint → TTL ensures no resource leftovers
-
Scalable → Parallel deployments for multiple teams without interference
Implementation & Output
-
Code Stream pipeline screenshot
vRO task execution (optional)
-
Kubernetes Job logs
-
Helm release status (
helm status <release> -n <namespace>)
-
Namespace pods/services after deployment
Further Automation
If you need enhancements or additional automation features, feel free to reach out. HashtagForge



Comments
Post a Comment