Skip to content

Commit 1fc4c73

Browse files
authored
Merge pull request #37 from replicatedhq/gerard/sc-120411/nginx-letsencrypt
feat: add Nginx Ingress with TLS cert generated by LetsEncrypt + CertManager
2 parents 09fd899 + 3b7a38b commit 1fc4c73

File tree

12 files changed

+118
-10
lines changed

12 files changed

+118
-10
lines changed

applications/fake-services/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ helm-install-dry-run:
2323
helm-template:
2424
helm template $(REPLICATED_APP) $(CHART_DIR)
2525

26+
helm-template-with-values:
27+
yq '.spec.values' replicated/kots-sample-config-values.yaml | helm template $(REPLICATED_APP) --values - $(CHART_DIR)
28+
2629
helm-install:
2730
helm install $(REPLICATED_APP) --debug --wait $(CHART_DIR)
2831

applications/fake-services/app/Chart.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ dependencies:
44
version: 4.11.3
55
- name: replicated
66
repository: oci://registry.replicated.com/library
7-
version: 1.0.0-beta.31
8-
digest: sha256:c349fc2fe99276ed430877ef2a0cf0e05150cd27f6e4eae2d7bfe47733f64846
9-
generated: "2025-02-04T08:53:26.530341+11:00"
7+
version: 1.1.1
8+
digest: sha256:6dd6d2b307511c54683f36157c6763aa55b9913b2717972e55feb6ef007797a0
9+
generated: "2025-03-05T13:09:57.471411+11:00"

applications/fake-services/app/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ dependencies:
2626
condition: ingress-nginx.enabled
2727
- name: replicated
2828
repository: oci://registry.replicated.com/library
29-
version: 1.0.0-beta.31
29+
version: 1.1.1
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: cert-manager.io/v1
2+
kind: Certificate
3+
metadata:
4+
name: {{ include "fake-service.name" . }}-cert
5+
spec:
6+
secretName: {{ include "fake-service.name" . }}-tls
7+
duration: 2160h # 90 days
8+
renewBefore: 360h # 15 days
9+
subject:
10+
organizations:
11+
- Replicated
12+
privateKey:
13+
algorithm: RSA
14+
encoding: PKCS1
15+
size: 2048
16+
dnsNames:
17+
- {{ .Values.ingress.host }}
18+
issuerRef:
19+
name: letsencrypt
20+
kind: ClusterIssuer
21+
group: cert-manager.io
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: cert-manager.io/v1
2+
kind: ClusterIssuer
3+
metadata:
4+
name: letsencrypt
5+
spec:
6+
acme:
7+
server: https://acme-v02.api.letsencrypt.org/directory
8+
9+
privateKeySecretRef:
10+
name: letsencrypt-account-key
11+
solvers:
12+
- http01:
13+
ingress:
14+
class: nginx

applications/fake-services/app/templates/ingress.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,17 @@ apiVersion: networking.k8s.io/v1
22
kind: Ingress
33
metadata:
44
name: {{ include "fake-service.name" . }}-ingress
5+
annotations:
6+
cert-manager.io/cluster-issuer: "letsencrypt"
57
spec:
68
ingressClassName: nginx
9+
tls:
10+
- hosts:
11+
- {{ .Values.ingress.host }}
12+
secretName: {{ include "fake-service.name" . }}-tls
713
rules:
8-
- http:
14+
- host: {{ .Values.ingress.host }}
15+
http:
916
paths:
1017
- path: /
1118
pathType: Prefix

applications/fake-services/app/values.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ image:
77

88
frontend:
99
name: "frontend"
10-
message: "Hello from frontend!"
10+
message: "New frontend update! This is the way!"
1111
serverType: "http"
1212
logLevel: "debug"
1313
port: 9090
1414

1515
backend:
1616
name: "backend"
17-
message: "Hello from backend!"
17+
message: "New backend update"
1818
serverType: "http"
1919
logLevel: "debug"
2020
port: 9091
@@ -40,7 +40,8 @@ ingress-nginx:
4040
service:
4141
type: NodePort
4242
nodePorts:
43-
http: 30080
43+
http: 80
44+
https: 443
4445
ingressClassResource:
4546
default: true
4647

@@ -54,3 +55,6 @@ rqliteui:
5455

5556
cert-manager:
5657
enabled: true
58+
59+
ingress:
60+
host: gerard-vm.testcluster.net

applications/fake-services/replicated/k8s-app.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ spec:
77
descriptor:
88
links:
99
- description: Open App
10-
url: https://repl{{ ConfigOption "hostname" }}:30080
10+
url: https://repl{{ ConfigOption "hostname" }}

applications/fake-services/replicated/kots-chart.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,19 @@ spec:
3636
image:
3737
registry: '{{repl HasLocalRegistry | ternary LocalRegistryHost "quirkyquokka.dev" }}'
3838
image: '{{repl HasLocalRegistry | ternary LocalRegistryNamespace "proxy/gerard-helm-fake-service/429114214526.dkr.ecr.ap-southeast-2.amazonaws.com/gerard" }}/kube-webhook-certgen'
39+
service:
40+
type: NodePort
41+
nodePorts:
42+
http: "80"
43+
https: "443"
3944
rqliteui:
4045
image:
4146
registry: '{{repl HasLocalRegistry | ternary LocalRegistryHost "quirkyquokka.dev" }}'
4247
repository: '{{repl HasLocalRegistry | ternary LocalRegistryNamespace "proxy/gerard-helm-fake-service/429114214526.dkr.ecr.ap-southeast-2.amazonaws.com/gerard" }}/rqman'
4348
imagePullSecrets:
4449
- name: "{{repl ImagePullSecretName }}"
50+
ingress:
51+
host: '{{repl ConfigOption "hostname" }}'
52+
replicated:
53+
podLabels:
54+
message: thisistheway

applications/fake-services/replicated/kots-ec.yaml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: embeddedcluster.replicated.com/v1beta1
22
kind: Config
33
spec:
4-
version: 2.0.0+k8s-1.30
4+
version: 2.1.2+k8s-1.30
55
roles:
66
controller:
77
name: management
@@ -11,3 +11,10 @@ spec:
1111
- name: app
1212
labels:
1313
app: "true"
14+
unsupportedOverrides:
15+
k0s: |
16+
config:
17+
spec:
18+
api:
19+
extraArgs:
20+
service-node-port-range: 80-32767

0 commit comments

Comments
 (0)