This commit is contained in:
Mike McFetridge
2026-07-20 09:23:17 -04:00
parent c1315882da
commit 72272e4006
3179 changed files with 562960 additions and 14 deletions
+377
View File
@@ -0,0 +1,377 @@
{
"slug": "flux-bootstrap",
"kind": "kubernetes",
"metadata": {
"name": "Flux Bootstrap",
"description": "Draft Flux bootstrap manifests for wiring an already-installed Flux control plane to a Git repository and root Kustomization, with optional Helm source and release resources.",
"tags": [],
"icon": {
"provider": "simple-icons",
"id": "flux"
},
"draft": true,
"version": {
"name": "2.7.5",
"source_dep_name": "manual/flux-bootstrap"
}
},
"variables": [
{
"title": "General",
"name": "general",
"items": [
{
"name": "namespace",
"type": "str",
"title": "Flux namespace",
"required": false,
"default": "flux-system",
"description": "Namespace where Flux source and Kustomization resources live.",
"config": {
"placeholder": "flux-system"
}
},
{
"name": "create_namespace",
"type": "bool",
"title": "Create namespace",
"required": false,
"default": false,
"description": "Render the Flux namespace manifest as part of this file."
},
{
"name": "git_repository_name",
"type": "str",
"title": "GitRepository name",
"required": false,
"default": "homelab-cluster",
"config": {
"placeholder": "homelab-cluster"
}
},
{
"name": "git_repository_url",
"type": "str",
"title": "Git repository URL",
"required": false,
"default": "https://github.com/example/homelab-gitops",
"description": "HTTPS or SSH URL for the GitOps repository.",
"config": {
"placeholder": "https://github.com/example/homelab-gitops"
}
},
{
"name": "git_branch",
"type": "str",
"title": "Git branch",
"required": false,
"default": "main",
"description": "Branch Flux should reconcile from.",
"config": {
"placeholder": "main"
}
},
{
"name": "git_interval",
"type": "str",
"title": "Git interval",
"required": false,
"default": "5m0s",
"description": "How often Flux fetches the Git repository.",
"config": {
"placeholder": "5m0s"
}
},
{
"name": "git_timeout",
"type": "str",
"title": "Git timeout",
"required": false,
"default": "60s",
"description": "Timeout for Git clone and fetch operations.",
"config": {
"placeholder": "60s"
}
},
{
"name": "kustomization_name",
"type": "str",
"title": "Kustomization name",
"required": false,
"default": "cluster-root",
"config": {
"placeholder": "cluster-root"
}
},
{
"name": "kustomization_path",
"type": "str",
"title": "Kustomization path",
"required": false,
"default": "./clusters/production",
"description": "Path inside the Git repository that contains the root kustomization.",
"config": {
"placeholder": "./clusters/production"
}
},
{
"name": "kustomization_interval",
"type": "str",
"title": "Kustomization interval",
"required": false,
"default": "10m0s",
"description": "How often Flux reconciles the root Kustomization.",
"config": {
"placeholder": "10m0s"
}
},
{
"name": "kustomization_timeout",
"type": "str",
"title": "Kustomization timeout",
"required": false,
"default": "5m0s",
"description": "Timeout for apply and health-check operations.",
"config": {
"placeholder": "5m0s"
}
}
]
},
{
"title": "Reconciliation",
"name": "reconciliation",
"items": [
{
"name": "kustomization_prune",
"type": "bool",
"title": "Prune",
"required": false,
"default": true,
"description": "Remove resources from the cluster when they disappear from Git."
},
{
"name": "kustomization_wait",
"type": "bool",
"title": "Wait",
"required": false,
"default": true,
"description": "Wait for reconciled resources to become healthy."
},
{
"name": "kustomization_force",
"type": "bool",
"title": "Force",
"required": false,
"default": false,
"description": "Force apply resources when immutable field changes require replacement."
},
{
"name": "target_namespace_enabled",
"type": "bool",
"title": "Target namespace",
"required": false,
"default": false,
"description": "Override the namespace for resources reconciled by this Kustomization."
},
{
"name": "target_namespace",
"type": "str",
"title": "Target namespace value",
"required": false,
"default": "platform",
"description": "Namespace applied to resources when target namespace is enabled.",
"config": {
"placeholder": "platform"
}
},
{
"name": "depends_on_enabled",
"type": "bool",
"title": "Depends on",
"required": false,
"default": false,
"description": "Add a single Flux Kustomization dependency before this root applies."
},
{
"name": "depends_on_name",
"type": "str",
"title": "Dependency name",
"required": false,
"default": "cluster-prereqs",
"config": {
"placeholder": "cluster-prereqs"
}
}
]
},
{
"title": "Authentication and Decryption",
"name": "security",
"items": [
{
"name": "git_secret_ref_enabled",
"type": "bool",
"title": "Git secretRef",
"required": false,
"default": false,
"description": "Reference a Kubernetes secret for Git authentication."
},
{
"name": "git_secret_ref_name",
"type": "str",
"title": "Git secret name",
"required": false,
"default": "flux-system",
"config": {
"placeholder": "flux-system"
}
},
{
"name": "decryption_enabled",
"type": "bool",
"title": "SOPS decryption",
"required": false,
"default": false
},
{
"name": "decryption_secret_name",
"type": "str",
"title": "Decryption secret",
"required": false,
"default": "sops-age",
"config": {
"placeholder": "sops-age"
}
}
]
},
{
"title": "Optional Helm Release",
"name": "helm",
"items": [
{
"name": "helm_repository_enabled",
"type": "bool",
"title": "HelmRepository",
"required": false,
"default": false,
"description": "Render a HelmRepository resource alongside the bootstrap objects."
},
{
"name": "helm_repository_name",
"type": "str",
"title": "HelmRepository name",
"required": false,
"default": "podinfo",
"config": {
"placeholder": "podinfo"
}
},
{
"name": "helm_repository_url",
"type": "str",
"title": "HelmRepository URL",
"required": false,
"default": "https://stefanprodan.github.io/podinfo",
"description": "Chart repository URL used by the optional Helm source.",
"config": {
"placeholder": "https://stefanprodan.github.io/podinfo"
}
},
{
"name": "helm_repository_interval",
"type": "str",
"title": "HelmRepository interval",
"required": false,
"default": "15m0s",
"description": "How often Flux refreshes the Helm repository index.",
"config": {
"placeholder": "15m0s"
}
},
{
"name": "helm_release_enabled",
"type": "bool",
"title": "HelmRelease",
"required": false,
"default": false,
"description": "Render a starter HelmRelease managed by Flux."
},
{
"name": "helm_release_name",
"type": "str",
"title": "HelmRelease name",
"required": false,
"default": "podinfo",
"config": {
"placeholder": "podinfo"
}
},
{
"name": "helm_release_namespace",
"type": "str",
"title": "HelmRelease namespace",
"required": false,
"default": "flux-system",
"description": "Namespace where the HelmRelease custom resource should live.",
"config": {
"placeholder": "flux-system"
}
},
{
"name": "helm_release_interval",
"type": "str",
"title": "HelmRelease interval",
"required": false,
"default": "15m0s",
"description": "How often Flux reconciles the optional Helm release.",
"config": {
"placeholder": "15m0s"
}
},
{
"name": "helm_chart_name",
"type": "str",
"title": "Chart name",
"required": false,
"default": "podinfo",
"description": "Chart name inside the optional Helm repository.",
"config": {
"placeholder": "podinfo"
}
},
{
"name": "helm_chart_version",
"type": "str",
"title": "Chart version",
"required": false,
"default": "6.9.3",
"description": "Chart version for the optional HelmRelease.",
"config": {
"placeholder": "6.9.3"
}
},
{
"name": "helm_target_namespace_enabled",
"type": "bool",
"title": "Release target namespace",
"required": false,
"default": true,
"description": "Install the optional Helm chart into a different namespace."
},
{
"name": "helm_target_namespace",
"type": "str",
"title": "Release target namespace value",
"required": false,
"default": "apps",
"description": "Namespace where the Helm release should be deployed.",
"config": {
"placeholder": "apps"
}
}
]
}
]
}