Compare commits

...

2 Commits

Author SHA1 Message Date
jorgen.stensrud 53cd44d6a2 feat(auth-sidecar): inject AUTH_OIDC_COOKIE_DOMAIN from annotation
/ test (pull_request) Successful in 31s
Empty when the annotation is unset = host-only = unchanged for every app.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 13:04:50 +02:00
jorgen.stensrud 3a23451802 feat(forte-drop): issuer dnsZones for *.drop.forteapps.net (subdomain-per-drop) (#22)
/ test (push) Successful in 12s
2026-06-26 11:38:30 +00:00
2 changed files with 20 additions and 4 deletions
+18 -4
View File
@@ -24,8 +24,15 @@ spec:
name: azuredns-config name: azuredns-config
key: client-secret key: client-secret
selector: selector:
dnsNames: # NOTE: cert-manager solver selectors are NOT TLS-style wildcards. selector.dnsNames
- '*.forteapps.net' # matches by exact FQDN, so '*.forteapps.net' here would match only a cert literally
# named '*.forteapps.net' — it would NOT cover 'drop.forteapps.net'. selector.dnsZones
# instead suffix-matches the zone apex AND every subdomain at any depth, so this single
# entry routes all forteapps.net ACME challenges (forteapps.net, *.forteapps.net,
# drop.forteapps.net, *.drop.forteapps.net, mcp.drop.forteapps.net, ...) through this
# Azure dns01 solver. Wildcard names require dns01; non-wildcard names that ever fail
# to match fall through to the http01 solver below.
dnsZones:
- 'forteapps.net' - 'forteapps.net'
# HTTP-01 fallback for non-wildcard certificates # HTTP-01 fallback for non-wildcard certificates
- http01: - http01:
@@ -58,8 +65,15 @@ spec:
name: azuredns-config name: azuredns-config
key: client-secret key: client-secret
selector: selector:
dnsNames: # NOTE: cert-manager solver selectors are NOT TLS-style wildcards. selector.dnsNames
- '*.forteapps.net' # matches by exact FQDN, so '*.forteapps.net' here would match only a cert literally
# named '*.forteapps.net' — it would NOT cover 'drop.forteapps.net'. selector.dnsZones
# instead suffix-matches the zone apex AND every subdomain at any depth, so this single
# entry routes all forteapps.net ACME challenges (forteapps.net, *.forteapps.net,
# drop.forteapps.net, *.drop.forteapps.net, mcp.drop.forteapps.net, ...) through this
# Azure dns01 solver. Wildcard names require dns01; non-wildcard names that ever fail
# to match fall through to the http01 solver below.
dnsZones:
- 'forteapps.net' - 'forteapps.net'
# HTTP-01 fallback for non-wildcard certificates # HTTP-01 fallback for non-wildcard certificates
- http01: - http01:
@@ -233,6 +233,8 @@ spec:
value: "{{ regex_replace_all('https?://[^/]*', request.object.metadata.annotations.\"policies.forteapps.io/auth-oidc-callback-path\", '') }}" value: "{{ regex_replace_all('https?://[^/]*', request.object.metadata.annotations.\"policies.forteapps.io/auth-oidc-callback-path\", '') }}"
- name: AUTH_OIDC_SCOPES - name: AUTH_OIDC_SCOPES
value: "{{ request.object.metadata.annotations.\"policies.forteapps.io/auth-oidc-scopes\" || 'openid,profile,email' }}" value: "{{ request.object.metadata.annotations.\"policies.forteapps.io/auth-oidc-scopes\" || 'openid,profile,email' }}"
- name: AUTH_OIDC_COOKIE_DOMAIN
value: "{{ request.object.metadata.annotations.\"policies.forteapps.io/auth-oidc-cookie-domain\" || '' }}"
- name: AUTH_PUBLIC_PATHS - name: AUTH_PUBLIC_PATHS
value: "{{ request.object.metadata.annotations.\"policies.forteapps.io/auth-public-paths\" || '/healthz' }}" value: "{{ request.object.metadata.annotations.\"policies.forteapps.io/auth-public-paths\" || '/healthz' }}"
- name: AUTH_OIDC_COOKIE_SECRET - name: AUTH_OIDC_COOKIE_SECRET