Files
toolhive/bootstrap/applicationset.yaml
T
olb042andClaude Sonnet 4.6 50fdec56cb add ServerSideDiff=true to bypass incomingAuth.oidc schema error
ArgoCD's client-side structured merge diff fails on VirtualMCPServer
resources that use spec.incomingAuth.oidc because the CRD schema does
not declare that subfield. ServerSideDiff=true switches diff computation
to a server-side dry-run which handles preserved-unknown-fields correctly.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
2026-06-15 13:03:54 +00:00

66 lines
2.3 KiB
YAML

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: toolhive
namespace: argocd
spec:
ignoreApplicationDifferences:
- jsonPointers:
- /spec/syncPolicy
goTemplate: true
goTemplateOptions: ["missingkey=error"]
generators:
- list:
elements:
- environment: production
namespace: toolhive-system
overlay: production
chartVersion: 0.29.3
template:
metadata:
name: 'toolhive-{{ .environment }}'
labels:
app.kubernetes.io/managed-by: argocd
app.kubernetes.io/name: toolhive
spec:
project: default
sources:
# 1. ToolHive CRDs (MCPServer, MCPRegistry, ...). No values needed.
- repoURL: ghcr.io/stacklok/toolhive
chart: toolhive-operator-crds
targetRevision: '{{ .chartVersion }}'
# 2. ToolHive operator, values pulled from this repo via $values.
- repoURL: ghcr.io/stacklok/toolhive
chart: toolhive-operator
targetRevision: '{{ .chartVersion }}'
helm:
releaseName: toolhive-operator
valueFiles:
- $values/manifest/overlays/{{ .overlay }}/helm-values/values.yaml
# 3. Values source ref for the operator chart above.
- repoURL: http://gitea-ha-http.apps:3000/olb42/toolhive.git
targetRevision: main
ref: values
- repoURL: http://gitea-ha-http.apps:3000/olb42/toolhive.git
targetRevision: main
path: 'manifest/overlays/{{ .overlay }}'
kustomize:
commonAnnotationsEnvsubst: true
commonAnnotations:
app-source: ${ARGOCD_APP_SOURCE_REPO_URL}
app-revision: ${ARGOCD_APP_SOURCE_TARGET_REVISION}
destination:
server: https://kubernetes.default.svc
namespace: '{{ .namespace }}'
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
# CRD schemas are large; SSA avoids the last-applied-config annotation limit.
- ServerSideApply=true
# Use server-side dry-run for diff computation to bypass CRD schema
# validation errors on fields marked x-kubernetes-preserve-unknown-fields.
- ServerSideDiff=true