GKE: app registry and bootstrap Application for gke-toolshed-prd-usc1

Adds the GCP counterpart of the homelab's cluster entry point, alongside
it rather than replacing it, so the two clusters never share a values
file:

- values/incubator-infra-gke-toolshed-prd-usc1-values.yaml, starting with
  only argocd, gitea and cert-manager. Every appSpec entry's nameOverride
  equals the Helm release name each is installed under by hand, which is
  what makes ArgoCD adopt those releases instead of rendering a second
  copy of each.
- incubator/incubator-infra-gke-toolshed-prd-usc1.yaml, the parent
  Application, applied once by hand.
- app-of-projects.yaml and the devops AppProject now point at this
  cluster's Gitea over cluster DNS, not the homelab's LAN hostname.

Sources are reached at gitea-http.gitea.svc.cluster.local:3000 rather
than through an Ingress: ArgoCD has to read them before Contour exists,
since Contour is itself one of the Applications it installs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LEsTefWWifp4ikvhHF5s6N
This commit is contained in:
Mukul Sharma
2026-09-12 13:16:01 +05:30
co-authored by Claude Opus 5
parent bf814854fd
commit 5aa0439a20
4 changed files with 71 additions and 4 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ metadata:
spec:
project: default
source:
repoURL: 'http://gitea.192.168.1.7.nip.io/mukul/devops-infra-argo-config.git'
repoURL: 'http://gitea-http.gitea.svc.cluster.local:3000/gitadmin/devops-infra-argo-config-gcp.git'
targetRevision: main
path: projects
directory:
@@ -0,0 +1,19 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: incubator-infra-gke-toolshed-prd-usc1
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: 'http://gitea-http.gitea.svc.cluster.local:3000/gitadmin/devops-infra-argo-config-gcp.git'
targetRevision: main
path: generic-argo-apps-chart
helm:
valueFiles:
- ../values/incubator-infra-gke-toolshed-prd-usc1-values.yaml
destination:
name: in-cluster
namespace: argocd
+2 -3
View File
@@ -3,13 +3,12 @@ kind: AppProject
metadata:
name: devops
# Single ArgoCD instance — projects live in the same namespace as
# ArgoCD itself (see the argocd/argocd-admin note in
# values/incubator-infra-k8s-admin-prd-ase1-values.yaml).
# ArgoCD itself (see values/incubator-infra-gke-toolshed-prd-usc1-values.yaml).
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
description: "devops project for infra apps on the homelab VM (team: devops in the appSpec labels)."
description: "devops project for infra apps on the GKE cluster (team: devops in the appSpec labels)."
sourceRepos:
- '*'
destinations:
@@ -0,0 +1,49 @@
# GKE counterpart of incubator-infra-k8s-admin-prd-ase1-values.yaml. Starts
# with only the three components installed by hand at bootstrap; every
# other homelab component is added here as it is ported, each with its own
# helm-overrides/gke-toolshed-prd-usc1/<name>/custom-values.yaml.
clusterSpec:
destination:
server: ""
name: "in-cluster"
argocdSpec:
namespace: argocd
teamSpec:
devops:
source:
# Cluster DNS, not an Ingress: ArgoCD must be able to read this before
# Contour exists, because Contour is itself one of these Applications.
repoURL: http://gitea-http.gitea.svc.cluster.local:3000/gitadmin/devops-infra-helm-charts-gcp.git
targetRevision: main
path: helm-templates
valueFiles: ../../helm-overrides/gke-toolshed-prd-usc1
labels:
bu: infra
team: devops
env: prd
cluster: gke-toolshed-prd-usc1
# nameOverride on every entry must equal the Helm release name used for the
# manual bootstrap install. ArgoCD uses the Application name as the release
# name, so a mismatch renders a second copy instead of adopting the first.
appSpec:
- name: argocd
nameOverride: argocd-admin-prd
namespace: argocd
chartDir: argo-cd
valuesDir: argocd-admin-prd
- name: gitea
nameOverride: gitea
namespace: gitea
chartDir: gitea
valuesDir: gitea
- name: cert-manager
nameOverride: cert-manager
namespace: cert-manager
chartDir: cert-manager
valuesDir: cert-manager
# cert-manager's CRDs embed large OpenAPI schemas; SSA avoids the
# 256KiB last-applied-configuration limit, same as external-secrets.
serverSideApply: true