22[ ![ GoTemplate] ( https://img.shields.io/badge/go/template-black?logo=go )] ( https://github.com/golang-standards/project-layout )
33[ ![ Go] ( https://img.shields.io/badge/go-1.21.0-blue?logo=go )] ( https://golang.org/ )
44[ ![ Helm] ( https://img.shields.io/badge/helm-3.12.3-blue?logo=helm )] ( https://helm.sh/ )
5- [ ![ Kubernetes] ( https://img.shields.io/badge/kubernetes-1.28 .0-blue?logo=kubernetes )] ( https://kubernetes.io/ )
6- [ ![ Cert Manager] ( https://img.shields.io/badge/cert--manager-1.12.3 -blue?logo=cert-manager )] ( https://cert-manager.io/ )
5+ [ ![ Kubernetes] ( https://img.shields.io/badge/kubernetes-1.26 .0-blue?logo=kubernetes )] ( https://kubernetes.io/ )
6+ [ ![ Cert Manager] ( https://img.shields.io/badge/cert--manager-1.11.0 -blue?logo=cert-manager )] ( https://cert-manager.io/ )
77[ ![ Releases] ( https://img.shields.io/github/v/release/stackitcloud/stackit-cert-manager-webhook?include_prereleases )] ( https://github.com/stackitcloud/stackit-cert-manager-webhook/releases )
8- [ ![ CI] ( https://github.com/stackitcloud/stackit-api -manager-cli /actions/workflows/main.yml/badge.svg )] ( https://github.com/stackitcloud/stackit-cert-manager-webhook/actions/workflows/main.yml )
8+ [ ![ CI] ( https://github.com/stackitcloud/stackit-cert -manager-webhook /actions/workflows/main.yml/badge.svg )] ( https://github.com/stackitcloud/stackit-cert-manager-webhook/actions/workflows/main.yml )
99[ ![ Semgrep] ( https://github.com/stackitcloud/stackit-api-manager-cli/actions/workflows/semgrep.yml/badge.svg )] ( https://github.com/stackitcloud/stackit-cert-manager-webhook/actions/workflows/semgrep.yml )
10- [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/stackitcloud/stackit-api -manager-cli )] ( https://goreportcard.com/report/github.com/stackitcloud/stackit-cert-manager-webhook )
10+ [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/stackitcloud/stackit-cert -manager-webhook )] ( https://goreportcard.com/report/github.com/stackitcloud/stackit-cert-manager-webhook )
1111
1212Facilitate a webhook integration for leveraging the STACKIT DNS alongside
1313its [ API] ( https://docs.api.stackit.cloud/documentation/dns/version/v1 ) to act as a DNS01
@@ -43,11 +43,11 @@ For scenarios wherein zones and record sets are encapsulated within a singular p
4343 name: letsencrypt-prod
4444 solvers:
4545 - dns01:
46- webhook:
47- solverName: stackit
48- groupName: stackit.de
49- config:
50- projectId: <STACKIT PROJECT ID>
46+ webhook:
47+ solverName: stackit
48+ groupName: stackit.de
49+ config:
50+ projectId: <STACKIT PROJECT ID>
5151 ` ` `
5252
5353 For diverse project architectures where zones are spread across varying projects, necessitating distinct
@@ -72,15 +72,60 @@ For scenarios wherein zones and record sets are encapsulated within a singular p
7272 name: letsencrypt-prod
7373 solvers:
7474 - dns01:
75- webhook:
76- solverName: stackit
77- groupName: stackit.de
78- config:
79- projectId: <STACKIT PROJECT ID>
80- authTokenSecretNamespace: default
75+ webhook:
76+ solverName: stackit
77+ groupName: stackit.de
78+ config:
79+ projectId: <STACKIT PROJECT ID>
80+ authTokenSecretNamespace: default
8181 ` ` `
8282 * Note:* Ensure the creation of an authentication token secret within the namespace linked to the issuer.
8383 The secret must be vested with permissions to access zones in the stipulated project configuration.
84+ 3. *** Demonstration of Ingress Integration with Wildcard SSL/TLS Certificate Generation***
85+ Given the preceding configuration, it is possible to exploit the capabilities of the Issuer or ClusterIssuer to
86+ dynamically produce wildcard SSL/TLS certificates in the following manner:
87+ ` ` ` yaml
88+ apiVersion: cert-manager.io/v1
89+ kind: Certificate
90+ metadata:
91+ name: wildcard-example
92+ namespace: default
93+ spec:
94+ secretName: wildcard-example-tls
95+ issuerRef:
96+ name: letsencrypt-prod
97+ kind: Issuer
98+ commonName: ' *.example.runs.onstackit.cloud' # project must be the owner of this zone
99+ duration: 8760h0m0s
100+ dnsNames:
101+ - example.runs.onstackit.cloud
102+ - '*.example.runs.onstackit.cloud'
103+ ---
104+ apiVersion: networking.k8s.io/v1
105+ kind: Ingress
106+ metadata:
107+ name: app-ingress
108+ namespace: default
109+ annotations:
110+ ingress.kubernetes.io/rewrite-target: /
111+ kubernetes.io/ingress.class: "nginx"
112+ spec:
113+ rules:
114+ - host: "app.example.runs.onstackit.cloud"
115+ http:
116+ paths:
117+ - path: /
118+ pathType: Prefix
119+ backend:
120+ service:
121+ name: webapp
122+ port:
123+ number: 80
124+ tls:
125+ - hosts:
126+ - "app.example.runs.onstackit.cloud"
127+ secretName: wildcard-example-tls
128+ ` ` `
84129
85130# # Test Procedures
86131- Unit Testing:
0 commit comments