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
@@ -0,0 +1,17 @@
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: << resource_name >>
spec:
acme:
email: << acme_email >>
server: << acme_server >>
privateKeySecretRef:
name: << privatekey_secret_name >>
solvers:
- dns01:
cloudflare:
apiTokenSecretRef:
name: << api_token_secret_name >>
key: << api_token_secret_key >>
@@ -0,0 +1,196 @@
{
"slug": "certmanager-clusterissuer",
"kind": "kubernetes",
"metadata": {
"name": "Cert-Manager ClusterIssuer (Cloudflare)",
"description": "Cert-manager ClusterIssuer for automatic TLS certificate management using Let's Encrypt with Cloudflare DNS-01 challenge validation. Cluster-scoped resource available to all namespaces.",
"tags": [],
"icon": {
"provider": "mdi",
"id": "certificate-outline"
},
"draft": true,
"version": {
"name": "1.16.2",
"source_dep_name": "manual/certmanager-clusterissuer"
}
},
"variables": [
{
"title": "General",
"name": "general",
"items": [
{
"name": "resource_name",
"type": "str",
"title": "Resource Name",
"required": false,
"default": "cloudflare-clusterissuer",
"config": {
"placeholder": "cloudflare-clusterissuer"
}
},
{
"name": "namespace",
"type": "str",
"title": "Namespace",
"required": false,
"default": "cert-manager",
"description": "Namespace (ClusterIssuer is cluster-scoped, but needed for schema)",
"config": {
"placeholder": "cert-manager"
}
},
{
"name": "acme_email",
"type": "str",
"title": "ACME Email",
"required": true,
"description": "Email address for ACME account registration"
},
{
"name": "acme_server",
"type": "str",
"title": "ACME server URL",
"required": false,
"default": "https://acme-v02.api.letsencrypt.org/directory",
"config": {
"placeholder": "https://acme-v02.api.letsencrypt.org/directory"
}
},
{
"name": "privatekey_secret_name",
"type": "str",
"title": "Private Key Secret",
"required": false,
"default": "cloudflare-clusterissuer-account-key",
"config": {
"placeholder": "cloudflare-clusterissuer-account-key"
}
},
{
"name": "api_token_secret_name",
"type": "str",
"title": "API Token Secret",
"required": false,
"default": "cloudflare-api-token-secret",
"config": {
"placeholder": "cloudflare-api-token-secret"
}
},
{
"name": "api_token_secret_key",
"type": "str",
"title": "API Token Key",
"required": false,
"default": "api-token",
"description": "Key name in secret containing Cloudflare API token",
"config": {
"placeholder": "api-token"
}
}
]
},
{
"title": "Resource Limits",
"name": "resources",
"items": [
{
"name": "resources_enabled",
"type": "bool",
"title": "Resources",
"required": false,
"default": false
},
{
"name": "resources_cpu_limit",
"type": "str",
"title": "CPU limit",
"required": false,
"default": "100m",
"config": {
"placeholder": "100m"
}
},
{
"name": "resources_cpu_request",
"type": "str",
"title": "CPU request",
"required": false,
"default": "50m",
"config": {
"placeholder": "50m"
}
},
{
"name": "resources_memory_limit",
"type": "str",
"title": "Memory limit",
"required": false,
"default": "128Mi",
"config": {
"placeholder": "128Mi"
}
},
{
"name": "resources_memory_request",
"type": "str",
"title": "Memory request",
"required": false,
"default": "64Mi",
"config": {
"placeholder": "64Mi"
}
}
]
},
{
"title": "Traefik Integration",
"name": "traefik",
"items": [
{
"name": "traefik_enabled",
"type": "bool",
"title": "Traefik",
"required": false,
"default": false
},
{
"name": "traefik_host",
"type": "str",
"title": "Traefik host",
"required": true,
"config": {
"placeholder": "app"
}
},
{
"name": "traefik_domain",
"type": "str",
"title": "Traefik domain",
"required": true,
"config": {
"placeholder": "home.arpa"
}
},
{
"name": "traefik_tls_enabled",
"type": "bool",
"title": "TLS",
"required": false,
"default": true
},
{
"name": "traefik_tls_certresolver",
"type": "str",
"title": "TLS certificate resolver",
"required": false,
"default": "letsencrypt-prod",
"config": {
"placeholder": "letsencrypt-prod"
}
}
]
}
]
}