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:

    1. Clone Helm chart from internal GitLab

    2. Run helm upgrade --install with values file

    3. 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: 60 for automatic pod/job deletion


Deployment Flow

  1. Pipeline Trigger → User initiates Code Stream pipeline with GitLab inputs

  2. Job Submission → Code Stream submits manifest to Kubernetes API

  3. Git & Helm Execution → Job container clones repo and runs helm upgrade --install

  4. Helm Deployment → Resources applied into namespace (--create-namespace if needed)

  5. Cleanup → Job & pod auto-delete after 60s/120s

  6. Validation → Operator checks with helm status & Kubernetes resources


Process Flow Diagram



Key Highlights

  1. Ephemeral Execution → No long-running CI/CD pods; jobs auto-cleanup

  2. Isolation → Each deployment runs independently, avoiding conflicts

  3. Rollback Readyhelm rollback services <REVISION> --namespace <NS> supported via pipeline

  4. Secure by Design → ServiceAccount with least privilege, private registry auth

  5. Namespace Agnostic → Can target any namespace via manifest update

  6. Minimal Footprint → TTL ensures no resource leftovers

  7. Scalable → Parallel deployments for multiple teams without interference


Implementation & Output

  • Code Stream pipeline screenshot




  • vRO task execution (optional)

  • Kubernetes Job logs

         kubectl get jobs -n <name space>
  • Helm release status (helm status <release> -n <namespace>)

        helm history application-name -n <name space>
  • Namespace pods/services after deployment


Further Automation

If you need enhancements or additional automation features, feel free to reach out. HashtagForge


Comments

Popular posts from this blog

Creating Snapshots for Unmanaged VMs in Aria Automation (vRealize Automation)

Bulk import security policies into Palo Alto Networks firewalls

Automating Tag Creation & Assignment to VMs with vRA + vRO