Skip to content

Commit cd6c2c3

Browse files
ArnobKumarSahatamalsaha
authored andcommitted
Convert ingress to gateway
Signed-off-by: Arnob kumar saha <arnob@appscode.com>
1 parent 9734d26 commit cd6c2c3

File tree

9 files changed

+308
-0
lines changed

9 files changed

+308
-0
lines changed

charts/ace-installer/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ The following table lists the configurable parameters of the `ace-installer` cha
7373
| helm.releases.aceshifter.version | | <code>"v2026.1.15"</code> |
7474
| helm.releases.capi-catalog.enabled | | <code>false</code> |
7575
| helm.releases.capi-catalog.version | | <code>"v2024.10.24"</code> |
76+
| helm.releases.catalog-manager.enabled | | <code>false</code> |
77+
| helm.releases.catalog-manager.version | | <code>"v2025.12.15"</code> |
7678
| helm.releases.cert-manager.enabled | | <code>true</code> |
7779
| helm.releases.cert-manager.version | | <code>"v1.19.2"</code> |
7880
| helm.releases.cert-manager-csi-driver-cacerts.enabled | | <code>true</code> |
@@ -99,6 +101,8 @@ The following table lists the configurable parameters of the `ace-installer` cha
99101
| helm.releases.panopticon.values | | <code>{"monitoring":{"agent":"prometheus.io/operator","enabled":true,"serviceMonitor":{"labels":{"release":"kube-prometheus-stack"}}}}</code> |
100102
| helm.releases.reloader.enabled | | <code>true</code> |
101103
| helm.releases.reloader.version | | <code>"1.0.79"</code> |
104+
| helm.releases.service-gateway-presets.enabled | | <code>false</code> |
105+
| helm.releases.service-gateway-presets.version | | <code>"v2025.12.15"</code> |
102106
| helm.releases.stash-presets.enabled | | <code>false</code> |
103107
| helm.releases.stash-presets.version | | <code>"v2026.1.15"</code> |
104108
| helm.releases.cluster-manager-spoke.enabled | | <code>false</code> |
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{{- with (index .Values "helm" "releases" "catalog-manager") }}
2+
{{- if .enabled }}
3+
4+
{{ $defaults := dict "registryFQDN" (include "registry.ghcr" $) }}
5+
6+
{{ $vals := dig "values" dict . }}
7+
{{ $vals = mergeOverwrite $defaults $vals }}
8+
9+
apiVersion: helm.toolkit.fluxcd.io/v2
10+
kind: HelmRelease
11+
metadata:
12+
name: catalog-manager
13+
namespace: {{ $.Release.Namespace }}
14+
labels:
15+
app.kubernetes.io/component: catalog-manager
16+
app.kubernetes.io/part-of: saas-core
17+
spec:
18+
interval: 5m
19+
timeout: 30m
20+
releaseName: catalog-manager
21+
targetNamespace: envoy-gateway-system
22+
storageNamespace: envoy-gateway-system
23+
install:
24+
createNamespace: {{ $.Values.helm.createNamespace }}
25+
remediation:
26+
retries: -1
27+
upgrade:
28+
crds: CreateReplace
29+
remediation:
30+
retries: -1
31+
dependsOn:
32+
- name: kubedb
33+
namespace: {{ $.Release.Namespace }}
34+
{{- if (dig "cert-manager" "enabled" false $.Values.helm.releases) }}
35+
- name: cert-manager
36+
namespace: {{ $.Release.Namespace }}
37+
{{- end }}
38+
chart:
39+
spec:
40+
chart: catalog-manager
41+
version: {{ .version | quote }}
42+
interval: 60m
43+
sourceRef:
44+
kind: HelmRepository
45+
name: appscode-charts-oci
46+
namespace: {{ $.Release.Namespace }}
47+
48+
{{- with $vals }}
49+
{{- dict "values" . | toYaml | nindent 2 }}
50+
{{- end }}
51+
52+
{{- end }}
53+
{{- end }}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{{- with (index .Values "helm" "releases" "service-gateway-presets") }}
2+
{{- if .enabled }}
3+
4+
{{ $defaults := dict "registryFQDN" (include "registry.ghcr" $) }}
5+
6+
{{ $vals := dig "values" dict . }}
7+
{{ $vals = mergeOverwrite $defaults $vals }}
8+
9+
apiVersion: helm.toolkit.fluxcd.io/v2
10+
kind: HelmRelease
11+
metadata:
12+
name: service-gateway-presets
13+
namespace: {{ $.Release.Namespace }}
14+
labels:
15+
app.kubernetes.io/component: service-gateway-presets
16+
app.kubernetes.io/part-of: saas-core
17+
spec:
18+
interval: 5m
19+
timeout: 30m
20+
releaseName: service-gateway-presets
21+
targetNamespace: ace-gw
22+
storageNamespace: ace-gw
23+
install:
24+
createNamespace: {{ $.Values.helm.createNamespace }}
25+
remediation:
26+
retries: -1
27+
upgrade:
28+
crds: CreateReplace
29+
remediation:
30+
retries: -1
31+
dependsOn:
32+
- name: catalog-manager
33+
namespace: {{ $.Release.Namespace }}
34+
{{- if (dig "cert-manager" "enabled" false $.Values.helm.releases) }}
35+
- name: cert-manager
36+
namespace: {{ $.Release.Namespace }}
37+
{{- end }}
38+
chart:
39+
spec:
40+
chart: service-gateway-presets
41+
version: {{ .version | quote }}
42+
interval: 60m
43+
sourceRef:
44+
kind: HelmRepository
45+
name: appscode-charts-oci
46+
namespace: {{ $.Release.Namespace }}
47+
48+
{{- with $vals }}
49+
{{- dict "values" . | toYaml | nindent 2 }}
50+
{{- end }}
51+
52+
{{- end }}
53+
{{- end }}

charts/ace-installer/values.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ helm:
5959
capi-catalog:
6060
enabled: false
6161
version: "v2024.10.24"
62+
catalog-manager:
63+
enabled: false
64+
version: "v2025.12.15"
6265
cert-manager:
6366
enabled: true
6467
version: "v1.19.2"
@@ -119,6 +122,9 @@ helm:
119122
reloader:
120123
enabled: true
121124
version: "1.0.79"
125+
service-gateway-presets:
126+
enabled: false
127+
version: "v2025.12.15"
122128
stash-presets:
123129
enabled: false
124130
version: "v2026.1.15"
@@ -143,6 +149,7 @@ selfManagement:
143149
enableFeatures: []
144150
disableFeatures: []
145151
useGateway: false
152+
146153
precheck:
147154
enabled: true
148155
# Docker registry containing app image
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
apiVersion: gateway.networking.k8s.io/v1
2+
kind: Gateway
3+
metadata:
4+
name: {{ include "ace.fullname" . }}
5+
namespace: {{ .Release.Namespace }}
6+
labels:
7+
{{- include "ace.labels" . | nindent 4 }}
8+
spec:
9+
gatewayClassName: ace
10+
listeners:
11+
- name: https
12+
protocol: HTTPS
13+
port: 443
14+
tls:
15+
mode: Terminate
16+
certificateRefs:
17+
- group: ""
18+
kind: Secret
19+
name: {{ include "ace.fullname" . }}-cert
20+
namespace: {{ .Release.Namespace }}
21+
allowedRoutes:
22+
namespaces:
23+
from: Same
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{{ if and (index .Values "setupJob" "config" "selfManagement" "useGateway") (index .Values "platform-ui" "enabled") (not (eq .Values.global.platform.deploymentType "Hosted")) }}
2+
3+
apiVersion: gateway.networking.k8s.io/v1
4+
kind: HTTPRoute
5+
metadata:
6+
name: {{ include "ace.fullname" . }}-home
7+
namespace: {{ .Release.Namespace }}
8+
spec:
9+
parentRefs:
10+
- group: gateway.networking.k8s.io
11+
kind: Gateway
12+
name: {{ include "ace.fullname" . }}
13+
namespace: {{ .Release.Namespace }}
14+
sectionName: https
15+
rules:
16+
- matches:
17+
- path:
18+
type: PathPrefix
19+
value: /
20+
filters:
21+
- type: URLRewrite
22+
urlRewrite:
23+
path:
24+
type: ReplaceFullPath
25+
replaceFullPath: /accounts/selfhost-home
26+
backendRefs:
27+
- group: ""
28+
kind: Service
29+
name: {{ include "ace.fullname" . }}-platform-api
30+
namespace: {{ .Release.Namespace }}
31+
port: 80
32+
weight: 1
33+
34+
{{- end }}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
{{ if (index .Values "setupJob" "config" "selfManagement" "useGateway") }}
2+
3+
apiVersion: gateway.networking.k8s.io/v1
4+
kind: HTTPRoute
5+
metadata:
6+
name: {{ include "ace.fullname" . }}
7+
namespace: {{ .Release.Namespace }}
8+
spec:
9+
parentRefs:
10+
- group: gateway.networking.k8s.io
11+
kind: Gateway
12+
name: {{ include "ace.fullname" . }}
13+
namespace: {{ .Release.Namespace }}
14+
sectionName: https
15+
rules:
16+
- matches:
17+
- path:
18+
type: PathPrefix
19+
value: /api
20+
backendRefs:
21+
- group: ""
22+
kind: Service
23+
name: {{ include "ace.fullname" . }}-platform-api
24+
namespace: {{ .Release.Namespace }}
25+
port: 80
26+
weight: 1
27+
- matches:
28+
- path:
29+
type: PathPrefix
30+
value: /accounts
31+
backendRefs:
32+
- group: ""
33+
kind: Service
34+
name: {{ include "ace.fullname" . }}-platform-api
35+
namespace: {{ .Release.Namespace }}
36+
port: 80
37+
weight: 1
38+
- matches:
39+
- path:
40+
type: PathPrefix
41+
value: /console
42+
backendRefs:
43+
- group: ""
44+
kind: Service
45+
name: {{ include "ace.fullname" . }}-cluster-ui
46+
namespace: {{ .Release.Namespace }}
47+
port: 80
48+
weight: 1
49+
- matches:
50+
- path:
51+
type: PathPrefix
52+
value: /db
53+
backendRefs:
54+
- group: ""
55+
kind: Service
56+
name: {{ include "ace.fullname" . }}-kubedb-ui
57+
namespace: {{ .Release.Namespace }}
58+
port: 80
59+
weight: 1
60+
- matches:
61+
- path:
62+
type: PathPrefix
63+
value: /id
64+
backendRefs:
65+
- group: ""
66+
kind: Service
67+
name: {{ include "ace.fullname" . }}-platform-ui
68+
namespace: {{ .Release.Namespace }}
69+
port: 80
70+
weight: 1
71+
- matches:
72+
- path:
73+
type: PathPrefix
74+
value: /grafana
75+
backendRefs:
76+
- group: ""
77+
kind: Service
78+
name: {{ include "ace.fullname" . }}-grafana
79+
namespace: {{ .Release.Namespace }}
80+
port: 80
81+
weight: 1
82+
- matches:
83+
- path:
84+
type: PathPrefix
85+
value: /prometheus
86+
backendRefs:
87+
- group: ""
88+
kind: Service
89+
name: {{ include "ace.fullname" . }}-trickster
90+
namespace: {{ .Release.Namespace }}
91+
port: 4000
92+
weight: 1
93+
{{- end }}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{{ if (and (index .Values "setupJob" "config" "selfManagement" "useGateway") (and .Values.nats.enabled (not .Values.nats.nats.externalAccess))) }}
2+
3+
apiVersion: gateway.networking.k8s.io/v1
4+
kind: HTTPRoute
5+
metadata:
6+
name: {{ include "ace.fullname" . }}-nats
7+
namespace: {{ .Release.Namespace }}
8+
spec:
9+
parentRefs:
10+
- group: gateway.networking.k8s.io
11+
kind: Gateway
12+
name: {{ include "ace.fullname" . }}
13+
namespace: {{ .Release.Namespace }}
14+
sectionName: https
15+
rules:
16+
- matches:
17+
- path:
18+
type: PathPrefix
19+
value: /nats # /nats(/|$)(.*)
20+
filters:
21+
- type: URLRewrite
22+
urlRewrite:
23+
path:
24+
type: ReplacePrefixMatch
25+
replacePrefixMatch: /
26+
backendRefs:
27+
- group: ""
28+
kind: Service
29+
name: {{ include "ace.fullname" . }}-nats
30+
namespace: {{ .Release.Namespace }}
31+
port: 443
32+
weight: 1
33+
34+
{{- end }}

charts/ace/templates/ingress/issuer.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,13 @@ spec:
7070
{{- else }}
7171
# Use ACEM http challenge for everything else
7272
http01:
73+
gatewayHTTPRoute:
74+
parentRefs:
75+
- group: gateway.networking.k8s.io
76+
kind: Gateway
77+
name: {{ include "ace.fullname" . }}
78+
namespace: {{ .Release.Namespace }}
79+
sectionName: api
7380
ingress:
7481
ingressClassName: {{ index .Values "ingress-nginx" "controller" "ingressClassResource" "name" }}
7582
serviceType: ClusterIP

0 commit comments

Comments
 (0)