You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*Note:* Ensure the creation of an authentication token secret within the namespace linked to the issuer.
113
-
The secret must be vested with permissions to access zones in the stipulated project configuration.
98
+
*Note on service accounts and namespaces:*
99
+
- Issuer-per-namespace (recommended forisolation): create a STACKIT service-account key (sa.json) for each STACKIT project you need to manage and place that keyin a Kubernetes Secret in the same namespace as the Issuer. This means one sa.json (one SA key) per Issuer/namespace when the Issuers target different STACKIT projects.
100
+
Example (create a secret in the Issuer namespace):
Ensure the webhook can read the secret in that namespace (create the secret where the Issuer lives).
107
+
- Alternative (single SA key for multiple projects): you can grant the service account broader permissions at folder or organization level so one sa.json can manage zones across multiple projects. This is more convenient but grants wider access — evaluate security and follow least-privilege principles.
108
+
- Tradeoffs:
109
+
- Per-namespace/per-project SA keys: better isolation and least privilege, easier to rotate keys per project.
110
+
- Folder/org-level SA key: lower operational overhead (single key), but larger blast radius if compromised.
111
+
114
112
3. ***Demonstration of Ingress Integration with Wildcard SSL/TLS Certificate Generation***
115
113
Given the preceding configuration, it is possible to exploit the capabilities of the Issuer or ClusterIssuer to
116
114
dynamically produce wildcard SSL/TLS certificates in the following manner:
@@ -181,20 +179,13 @@ spec:
181
179
config:
182
180
projectId: string
183
181
apiBasePath: string
184
-
authTokenSecretRef: string
185
-
authTokenSecretKey: string
186
-
authTokenSecretNamespace: string
187
182
serviceAccountKeyPath: string
188
183
serviceAccountBaseUrl: string
189
184
acmeTxtRecordTTL: int64
190
185
```
191
186
192
187
- projectId: The unique identifier for the STACKIT project.
193
188
- apiBasePath: The base path for the STACKIT DNS API. (Default: https://dns.api.stackit.cloud)
194
-
- authTokenSecretRef: The reference to the secret containing the STACKIT authentication token. (Default:
195
-
stackit-cert-manager-webhook)
196
-
- authTokenSecretKey: The key within the secret containing the STACKIT authentication token. (Default: auth-token)
197
-
- authTokenSecretNamespace: The namespace of the secret containing the STACKIT authentication token. (Default: cert-manager)
198
189
- serviceAccountKeyPath: The path to the service account key file. The file must be mounted into the container.
199
190
- serviceAccountBaseUrl: The base URL for the STACKIT service account API. (Default: https://service-account.api.stackit.cloud/token)
200
191
- acmeTxtRecordTTL: The TTL for the ACME TXT record. (Default: 600)
0 commit comments