Vintner
Infrastructure Templates

ArgoCD Components

Pre-installed Kubernetes components managed by ArgoCD after cluster provisioning.

ArgoCD Components

After cluster provisioning, Tendril installs ArgoCD and deploys a set of supporting components via the App of Apps pattern. These templates live in infra/templates/argocd/.

Component Manifests

TemplateComponentPurpose
aws-load-balancer-controller.yamlAWS Load Balancer ControllerProvisions ALB/NLB for Kubernetes Ingress and Service resources
external-dns.yamlExternal DNSSyncs Route53/Cloud DNS/Azure DNS records from Kubernetes Ingress annotations
external-secrets-operator.yamlExternal Secrets OperatorPulls secrets from Secrets Manager/Secret Manager/Key Vault into Kubernetes Secrets
karpenter.yamlKarpenterJust-in-time node provisioning based on pod resource requests (AWS)
metrics-server.yamlMetrics ServerProvides CPU/memory metrics for Horizontal Pod Autoscaler
storage-class-gp3.yamlStorage ClassGP3 EBS / Persistent Disk / Managed Disk storage provisioner
project-infra.yamlArgoCD ProjectApplication deployment boundary and RBAC

How Templates Are Rendered

Each template is a Kubernetes manifest with Helm-style placeholders. During deployment, the Tendril:

  1. Extracts infrastructure facts from Terraform outputs (cluster name, VPC ID, database endpoints, etc.)
  2. Renders the facts into a Helm values file
  3. Applies each component manifest as an ArgoCD Application

The ArgoCD Application resources reference Helm charts from public repositories with the infrastructure facts injected as values.

Infrastructure Facts

Example facts passed to component Helm charts:

cluster:
  name: api-backend-production
  endpoint: https://ABC123.gr7.eu-west-1.eks.amazonaws.com
  oidcProviderArn: arn:aws:iam::123456789012:oidc-provider/...

vpc:
  id: vpc-0123456789abcdef0

database:
  endpoint: api-backend-production.cluster-abc123.eu-west-1.rds.amazonaws.com
  port: 5432

cache:
  endpoint: api-backend-production.abc123.euw1.cache.amazonaws.com
  port: 6379

dns:
  domain: api.example.com
  zoneId: Z1234567890

Components use these values for provider-specific configuration (e.g., External DNS needs the hosted zone ID, External Secrets Operator needs the cluster OIDC provider ARN for IRSA).

Adding Custom Applications

After the initial deployment, users can add their own applications by pushing YAML files to the manifests/applications/ directory in the infrastructure Git repository. ArgoCD automatically deploys any new Application manifest it discovers.

On this page