Infrastructure Services
The infra-services-apps.yaml file defines multiple Applications for core infrastructure services running on the Infra Management Cluster.
ArgoCD Resources
| Application | Namespace | Purpose |
|---|---|---|
infra-docs-portal | argocd | Infrastructure documentation site |
atlantis | argocd | Terraform PR automation |
webhooks | argocd | Generic webhook handler |
misc | argocd | Miscellaneous cluster resources |
dex | argocd | OIDC identity provider |
coredns | argocd | Custom DNS for private zones |
File Path: k8s/infra-services/argocd/overlays/infra-platform-cluster/apps/infra-services-apps.yaml
Source Structure
Each application has its own manifest directory:
k8s/infra-services/
├── infra-docs-portal/ # Documentation site
├── atlantis/ # Terraform automation
├── webhooks/ # Webhook handler
├── cluster-init/ # Cluster bootstrap resources
│ └── overlays/
│ └── infra-mgmt/ # Misc resources for infra-mgmt
├── dex/ # OIDC provider
└── coredns/ # Custom DNS
Applications
Infra Docs Portal
The internal infrastructure documentation portal (this site).
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: infra-docs-portal
annotations:
argocd-image-updater.argoproj.io/image-list: docs=europe-west1-docker.pkg.dev/tb-infra-management-395208/infra/docs:latest
argocd-image-updater.argoproj.io/docs.update-strategy: digest
spec:
syncPolicy:
automated:
prune: true
destination:
namespace: argocd
server: https://kubernetes.default.svc
project: infra-services
source:
path: k8s/infra-services/infra-docs-portal
repoURL: https://github.com/Titanbay/infra-services
targetRevision: 'main'
Features:
- Auto image updates via ArgoCD Image Updater
- Digest-based update strategy for latest tag
Manifests: k8s/infra-services/infra-docs-portal/
Atlantis
Terraform PR automation for infrastructure changes.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: atlantis
spec:
syncPolicy:
automated:
prune: true
destination:
namespace: argocd
server: https://kubernetes.default.svc
project: infra-services
source:
path: k8s/infra-services/atlantis
repoURL: https://github.com/Titanbay/infra-services
targetRevision: 'main'
Manifests: k8s/infra-services/atlantis/
Webhooks
Generic webhook handler for various integrations.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: webhooks
annotations:
argocd-image-updater.argoproj.io/image-list: webhooks=europe-west1-docker.pkg.dev/tb-infra-management-395208/infra/webhooks:latest
argocd-image-updater.argoproj.io/webhooks.update-strategy: digest
spec:
syncPolicy:
automated:
prune: true
destination:
namespace: argocd
server: https://kubernetes.default.svc
project: infra-services
source:
path: k8s/infra-services/webhooks
repoURL: https://github.com/Titanbay/infra-services
targetRevision: 'main'
Features:
- Auto image updates via ArgoCD Image Updater
Manifests: k8s/infra-services/webhooks/
Misc (Cluster Init)
Miscellaneous resources for other apps and services, including cluster bootstrap resources.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: misc
spec:
destination:
namespace: argocd
server: https://kubernetes.default.svc
project: infra-services
source:
path: k8s/infra-services/cluster-init/overlays/infra-mgmt
repoURL: https://github.com/Titanbay/infra-services
targetRevision: 'main'
Note: No automated sync - changes require manual sync.
Manifests: k8s/infra-services/cluster-init/overlays/infra-mgmt/
Dex
Shared OIDC identity provider for ArgoCD instances and other tools.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: dex
spec:
syncPolicy:
automated:
prune: true
destination:
namespace: argocd
server: https://kubernetes.default.svc
project: infra-services
source:
path: k8s/infra-services/dex
repoURL: https://github.com/Titanbay/infra-services
targetRevision: 'main'
Manifests: k8s/infra-services/dex/
CoreDNS
Custom CoreDNS instance for private DNS zones.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: coredns
annotations:
argocd-image-updater.argoproj.io/image-list: coredns=europe-west1-docker.pkg.dev/tb-infra-mgmt-gke-prod-uk-40fd/tb-infra/coredns-sql:latest
argocd-image-updater.argoproj.io/coredns.update-strategy: digest
spec:
syncPolicy:
automated:
prune: true
syncOptions:
- CreateNamespace=true
destination:
namespace: argocd
server: https://kubernetes.default.svc
project: infra-services
source:
path: k8s/infra-services/coredns
repoURL: https://github.com/Titanbay/infra-services
targetRevision: 'main'
Features:
- Custom CoreDNS with SQL backend
- Auto image updates
Manifests: k8s/infra-services/coredns/
How to Update
Modifying Service Configuration
- Edit manifests in the service’s directory (e.g.,
k8s/infra-services/atlantis/) - Commit and push to
main - ArgoCD auto-syncs the changes
Adding a New Service
- Create the service manifests in
k8s/infra-services/<service-name>/ - Add an Application definition to
infra-services-apps.yamlor create a new file - If creating a new file, add it to
apps/kustomization.yaml - Commit and push to
main
Related Directories
| Directory | Purpose |
|---|---|
k8s/infra-services/infra-docs-portal/ | Docs portal deployment |
k8s/infra-services/atlantis/ | Atlantis deployment |
k8s/infra-services/webhooks/ | Webhooks service |
k8s/infra-services/cluster-init/ | Cluster bootstrap resources |
k8s/infra-services/dex/ | Dex OIDC provider |
k8s/infra-services/coredns/ | Custom CoreDNS |