Declare railiance01 ArgoCD bootstrap on its own path, automated sync off (RPF-WP-0044-T01).
Founder's Option A: argocd/railiance01/bootstrap (3 AppProjects, root with no automated block, tenants whitelist + postgresql.cnpg.io/Cluster), root path argocd/railiance01/applications (README placeholder, renders zero children), pinned child drafts in argocd/railiance01/drafts (issue-core repointed to rapp-issue-core manifests), rapp-issue-core repository template; issue-core template marked obsolete. argocd/bootstrap and argocd/applications untouched (coulombcore). Nothing applied. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 63291@bnt-lap001 Assistant-Session: 8bd77868-ca68-4f49-bb1e-d539ecc0d703
This commit is contained in:
parent
538a3087fe
commit
c3ebd6dddc
12 changed files with 322 additions and 0 deletions
14
argocd/railiance01/applications/README.md
Normal file
14
argocd/railiance01/applications/README.md
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# railiance01 child Applications
|
||||||
|
|
||||||
|
Synced by `railiance-apps-root` on railiance01 (declared in
|
||||||
|
`argocd/railiance01/bootstrap/`), by hand only until RPF-WP-0044-T07.
|
||||||
|
|
||||||
|
This file is a placeholder: git does not keep an empty directory, and a
|
||||||
|
missing path is a `ComparisonError` in ArgoCD. ArgoCD's directory source reads
|
||||||
|
only `*.yaml`, `*.yml` and `*.json`, so this README renders to zero children.
|
||||||
|
|
||||||
|
Add a child Application here only as part of its RPF-WP-0044 adoption task,
|
||||||
|
with the founder's go-ahead: no `automated` block, no finalizer, and a pinned
|
||||||
|
`targetRevision`. A merge here plus a hand sync of the root is a live
|
||||||
|
production change on railiance01. Drafts wait in `../drafts/`, which no root
|
||||||
|
syncs.
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: AppProject
|
||||||
|
metadata:
|
||||||
|
name: railiance-bootstrap
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance-platform/component: gitops
|
||||||
|
spec:
|
||||||
|
description: Platform-owned ArgoCD bootstrap project for Railiance app-of-apps.
|
||||||
|
sourceRepos:
|
||||||
|
- https://forgejo.coulomb.social/coulomb/railiance-platform.git
|
||||||
|
destinations:
|
||||||
|
- server: https://kubernetes.default.svc
|
||||||
|
namespace: argocd
|
||||||
|
clusterResourceWhitelist: []
|
||||||
|
namespaceResourceWhitelist:
|
||||||
|
- group: argoproj.io
|
||||||
|
kind: Application
|
||||||
|
orphanedResources:
|
||||||
|
warn: true
|
||||||
|
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: AppProject
|
||||||
|
metadata:
|
||||||
|
name: railiance-tenants
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance-platform/component: gitops
|
||||||
|
spec:
|
||||||
|
description: Guardrails for Railiance tenant applications deployed by ArgoCD.
|
||||||
|
sourceRepos:
|
||||||
|
- https://forgejo.coulomb.social/coulomb/*.git
|
||||||
|
# Emergency rollback only (T12 Option A through 2026-08-07)
|
||||||
|
- https://gitea.coulomb.social/coulomb/*.git
|
||||||
|
destinations:
|
||||||
|
- server: https://kubernetes.default.svc
|
||||||
|
namespace: "*"
|
||||||
|
clusterResourceWhitelist:
|
||||||
|
- group: ""
|
||||||
|
kind: Namespace
|
||||||
|
namespaceResourceWhitelist:
|
||||||
|
- group: ""
|
||||||
|
kind: ConfigMap
|
||||||
|
- group: ""
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
- group: ""
|
||||||
|
kind: Secret
|
||||||
|
- group: ""
|
||||||
|
kind: Service
|
||||||
|
- group: ""
|
||||||
|
kind: ServiceAccount
|
||||||
|
- group: apps
|
||||||
|
kind: Deployment
|
||||||
|
- group: apps
|
||||||
|
kind: StatefulSet
|
||||||
|
- group: autoscaling
|
||||||
|
kind: HorizontalPodAutoscaler
|
||||||
|
- group: batch
|
||||||
|
kind: CronJob
|
||||||
|
- group: batch
|
||||||
|
kind: Job
|
||||||
|
- group: external-secrets.io
|
||||||
|
kind: ExternalSecret
|
||||||
|
- group: postgresql.cnpg.io
|
||||||
|
kind: Cluster
|
||||||
|
- group: networking.k8s.io
|
||||||
|
kind: Ingress
|
||||||
|
- group: networking.k8s.io
|
||||||
|
kind: NetworkPolicy
|
||||||
|
- group: traefik.io
|
||||||
|
kind: IngressRoute
|
||||||
|
- group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
orphanedResources:
|
||||||
|
warn: true
|
||||||
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: AppProject
|
||||||
|
metadata:
|
||||||
|
name: railiance-platform-addons
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance-platform/component: gitops
|
||||||
|
spec:
|
||||||
|
description: Platform-owned cluster add-ons required by tenant workloads.
|
||||||
|
sourceRepos:
|
||||||
|
- https://forgejo.coulomb.social/coulomb/railiance-platform.git
|
||||||
|
- https://charts.external-secrets.io
|
||||||
|
destinations:
|
||||||
|
- server: https://kubernetes.default.svc
|
||||||
|
namespace: "*"
|
||||||
|
clusterResourceWhitelist:
|
||||||
|
- group: ""
|
||||||
|
kind: Namespace
|
||||||
|
- group: apiextensions.k8s.io
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
- group: admissionregistration.k8s.io
|
||||||
|
kind: MutatingWebhookConfiguration
|
||||||
|
- group: admissionregistration.k8s.io
|
||||||
|
kind: ValidatingWebhookConfiguration
|
||||||
|
- group: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
- group: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
- group: external-secrets.io
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
namespaceResourceWhitelist:
|
||||||
|
- group: ""
|
||||||
|
kind: ConfigMap
|
||||||
|
- group: ""
|
||||||
|
kind: Secret
|
||||||
|
- group: ""
|
||||||
|
kind: Service
|
||||||
|
- group: ""
|
||||||
|
kind: ServiceAccount
|
||||||
|
- group: apps
|
||||||
|
kind: Deployment
|
||||||
|
- group: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
- group: rbac.authorization.k8s.io
|
||||||
|
kind: RoleBinding
|
||||||
|
orphanedResources:
|
||||||
|
warn: true
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
# railiance01 root app (RPF-WP-0044, founder's Option A, 2026-09-21).
|
||||||
|
# No `automated` block: the root syncs only when synced by hand, with the
|
||||||
|
# revision pinned in the sync operation. T07 restores automated sync after
|
||||||
|
# T03-T06 are proven. coulombcore keeps argocd/bootstrap -> argocd/applications
|
||||||
|
# until phase C; nothing here is read by coulombcore.
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: railiance-apps-root
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance-platform/component: gitops
|
||||||
|
spec:
|
||||||
|
project: railiance-bootstrap
|
||||||
|
source:
|
||||||
|
repoURL: https://forgejo.coulomb.social/coulomb/railiance-platform.git
|
||||||
|
targetRevision: main
|
||||||
|
path: argocd/railiance01/applications
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: argocd
|
||||||
|
syncPolicy:
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=false
|
||||||
|
- ApplyOutOfSyncOnly=true
|
||||||
|
- PruneLast=true
|
||||||
11
argocd/railiance01/bootstrap/kustomization.yaml
Normal file
11
argocd/railiance01/bootstrap/kustomization.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# railiance01 ArgoCD bootstrap, applied by hand (RPF-WP-0044-T02).
|
||||||
|
# Separate from argocd/bootstrap/, which is coulombcore's and stays unchanged
|
||||||
|
# until phase C. Do not point `make argocd-bootstrap-deploy` at the old path on
|
||||||
|
# railiance01: its root declares automated prune + self-heal.
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- 00-railiance-bootstrap-project.yaml
|
||||||
|
- 01-railiance-tenants-project.yaml
|
||||||
|
- 02-railiance-platform-addons-project.yaml
|
||||||
|
- 10-railiance-apps-root.application.yaml
|
||||||
35
argocd/railiance01/drafts/external-secrets.application.yaml
Normal file
35
argocd/railiance01/drafts/external-secrets.application.yaml
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
# DRAFT for railiance01 (RPF-WP-0044). Not synced by any root: move to
|
||||||
|
# ../applications/ only in this app's adoption task, with the founder's go-ahead.
|
||||||
|
# No automated sync, no finalizer. targetRevision: chart version; T06 adds CRD Prune=false,Delete=false before merge.
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: external-secrets
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance-platform/component: external-secrets
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "0"
|
||||||
|
spec:
|
||||||
|
project: railiance-platform-addons
|
||||||
|
source:
|
||||||
|
repoURL: https://charts.external-secrets.io
|
||||||
|
chart: external-secrets
|
||||||
|
targetRevision: 0.16.1
|
||||||
|
helm:
|
||||||
|
releaseName: external-secrets
|
||||||
|
values: |
|
||||||
|
installCRDs: true
|
||||||
|
serviceAccount:
|
||||||
|
create: true
|
||||||
|
name: external-secrets
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: external-secrets
|
||||||
|
syncPolicy:
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
- ServerSideApply=true
|
||||||
|
- ApplyOutOfSyncOnly=true
|
||||||
|
- PruneLast=true
|
||||||
27
argocd/railiance01/drafts/issue-core.application.yaml
Normal file
27
argocd/railiance01/drafts/issue-core.application.yaml
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
# DRAFT for railiance01 (RPF-WP-0044). Not synced by any root: move to
|
||||||
|
# ../applications/ only in this app's adoption task, with the founder's go-ahead.
|
||||||
|
# No automated sync, no finalizer. targetRevision: rapp-issue-core commit diffed 2026-09-21.
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: issue-core
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance.io/domain: issue-core
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "10"
|
||||||
|
spec:
|
||||||
|
project: railiance-tenants
|
||||||
|
source:
|
||||||
|
repoURL: https://forgejo.coulomb.social/coulomb/rapp-issue-core.git
|
||||||
|
targetRevision: a78f38cfd8afb29ed23d150a4ea3e3dcd1f35381
|
||||||
|
path: manifests
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: issue-core
|
||||||
|
syncPolicy:
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
- ApplyOutOfSyncOnly=true
|
||||||
|
- PruneLast=true
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
# DRAFT for railiance01 (RPF-WP-0044). Not synced by any root: move to
|
||||||
|
# ../applications/ only in this app's adoption task, with the founder's go-ahead.
|
||||||
|
# No automated sync, no finalizer. targetRevision: railiance-platform commit, last to touch argocd/platform-addons/openbao-secretstore.
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: openbao-secretstore
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance-platform/component: external-secrets
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
spec:
|
||||||
|
project: railiance-platform-addons
|
||||||
|
source:
|
||||||
|
repoURL: https://forgejo.coulomb.social/coulomb/railiance-platform.git
|
||||||
|
targetRevision: d2dbc19c254247652c49fda8721c80d53bca206a
|
||||||
|
path: argocd/platform-addons/openbao-secretstore
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: external-secrets
|
||||||
|
syncPolicy:
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
- ApplyOutOfSyncOnly=true
|
||||||
|
- PruneLast=true
|
||||||
29
argocd/railiance01/drafts/target-revenue.application.yaml
Normal file
29
argocd/railiance01/drafts/target-revenue.application.yaml
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# DRAFT for railiance01 (RPF-WP-0044). Not synced by any root: move to
|
||||||
|
# ../applications/ only in this app's adoption task, with the founder's go-ahead.
|
||||||
|
# No automated sync, no finalizer. targetRevision: target-revenue commit diffed 2026-09-21.
|
||||||
|
# Target Revenue Trust Service + Control Plane (WP-0011).
|
||||||
|
# Source of truth: coulomb/target-revenue k8s/railiance (issue-core pattern).
|
||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: target-revenue
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance.io/domain: target-revenue
|
||||||
|
annotations:
|
||||||
|
argocd.argoproj.io/sync-wave: "10"
|
||||||
|
spec:
|
||||||
|
project: railiance-tenants
|
||||||
|
source:
|
||||||
|
repoURL: https://forgejo.coulomb.social/coulomb/target-revenue.git
|
||||||
|
targetRevision: f1109d54eeda9f187daa215cf1c7163610d35d0a
|
||||||
|
path: k8s/railiance
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: target-revenue
|
||||||
|
syncPolicy:
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
- ApplyOutOfSyncOnly=true
|
||||||
|
- PruneLast=true
|
||||||
|
|
@ -1,3 +1,7 @@
|
||||||
|
# OBSOLETE (RPF-WP-0044, 2026-09-21): issue-core.git is public and no longer
|
||||||
|
# the deploy source (runtime moved to rapp-issue-core, issue-core 51440da).
|
||||||
|
# Use rapp-issue-core.repository.sops.yaml.template. Do not instantiate.
|
||||||
|
#
|
||||||
# Copy to issue-core.repository.sops.yaml, fill from the approved
|
# Copy to issue-core.repository.sops.yaml, fill from the approved
|
||||||
# operator/OpenBao path, then encrypt with:
|
# operator/OpenBao path, then encrypt with:
|
||||||
# sops -e -i argocd/repositories/issue-core.repository.sops.yaml
|
# sops -e -i argocd/repositories/issue-core.repository.sops.yaml
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Copy to rapp-issue-core.repository.sops.yaml, fill from the approved
|
||||||
|
# OpenBao path platform/operators/argocd/repositories/rapp-issue-core
|
||||||
|
# (read-only deploy token, via its CCR; RPF-WP-0044-T04), then encrypt with:
|
||||||
|
# sops -e -i argocd/repositories/rapp-issue-core.repository.sops.yaml
|
||||||
|
#
|
||||||
|
# Do not commit plaintext credentials.
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: rapp-issue-core-repository
|
||||||
|
namespace: argocd
|
||||||
|
labels:
|
||||||
|
argocd.argoproj.io/secret-type: repository
|
||||||
|
app.kubernetes.io/part-of: railiance-gitops
|
||||||
|
railiance-platform/component: gitops
|
||||||
|
stringData:
|
||||||
|
type: git
|
||||||
|
project: railiance-tenants
|
||||||
|
url: https://forgejo.coulomb.social/coulomb/rapp-issue-core.git
|
||||||
|
username: CHANGE_ME
|
||||||
|
password: CHANGE_ME
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue