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
feat: make API internal-only, expose only Portal externally
- Disable api.gateway and api.ingress by default
- Portal remains externally accessible via Gateway API (default)
- Add helper functions to auto-generate internal Service URLs
- Portal accesses API via cluster Service (http://<release>-api:8000)
- Update values-gateway.yaml and values-ingress.yaml examples
- Update README.md documentation
BREAKING CHANGE: API is no longer exposed externally by default.
The Portal communicates with the API via internal cluster Service.
By default, the chart uses Kubernetes Gateway API to expose services. To configure:
129
+
By default, only the **Portal is exposed externally** via Gateway API. The API is internal-only and accessed by the Portal via cluster Service.
130
130
131
131
```yaml
132
-
api:
133
-
gateway:
134
-
enabled: true
135
-
gatewayRef:
136
-
name: my-gateway
137
-
namespace: default # Optional, uses release namespace if not specified
138
-
hostnames:
139
-
- api.tron.example.com
140
-
rules:
141
-
- path: /
142
-
pathType: PathPrefix
143
-
tls:
144
-
enabled: true
145
-
mode: Terminate
146
-
certificateRefs:
147
-
- name: tron-api-tls
148
-
kind: Secret
149
-
150
132
portal:
151
133
gateway:
152
134
enabled: true
153
135
gatewayRef:
154
136
name: my-gateway
155
-
namespace: default
137
+
namespace: default# Optional, uses release namespace if not specified
156
138
hostnames:
157
-
- portal.tron.example.com
139
+
- tron.example.com
158
140
rules:
159
141
- path: /
160
142
pathType: PathPrefix
@@ -168,42 +150,28 @@ portal:
168
150
169
151
**Note**: To use Gateway API, you need to have Gateway API CRDs installed in your cluster. The chart does not create the Gateway resource, only the HTTPRoutes that reference an existing Gateway.
170
152
153
+
See `values-gateway.yaml` for a complete example configuration.
154
+
171
155
### Ingress Controller (Alternative)
172
156
173
-
The chart also supports traditional Ingress Controller as an alternative to Gateway API. To use Ingress:
157
+
The chart also supports traditional Ingress Controller as an alternative to Gateway API. To use Ingress for the Portal:
174
158
175
159
```yaml
176
-
api:
177
-
gateway:
178
-
enabled: false # Disable Gateway API
179
-
ingress:
180
-
enabled: true
181
-
className: nginx
182
-
hosts:
183
-
- host: api.tron.example.com
184
-
paths:
185
-
- path: /
186
-
pathType: Prefix
187
-
tls:
188
-
- secretName: tron-api-tls
189
-
hosts:
190
-
- api.tron.example.com
191
-
192
160
portal:
193
161
gateway:
194
162
enabled: false # Disable Gateway API
195
163
ingress:
196
164
enabled: true
197
165
className: nginx
198
166
hosts:
199
-
- host: portal.tron.example.com
167
+
- host: tron.example.com
200
168
paths:
201
169
- path: /
202
170
pathType: Prefix
203
171
tls:
204
172
- secretName: tron-portal-tls
205
173
hosts:
206
-
- portal.tron.example.com
174
+
- tron.example.com
207
175
```
208
176
209
177
See `values-ingress.yaml` for a complete example configuration using Ingress Controller.
@@ -399,49 +367,32 @@ portal:
399
367
enabled: true
400
368
minReplicas: 3
401
369
maxReplicas: 15
402
-
403
-
postgresql:
404
-
primary:
405
-
persistence:
406
-
size: 100Gi
407
-
resources:
408
-
requests:
409
-
cpu: 1000m
410
-
memory: 2Gi
411
-
limits:
412
-
cpu: 2000m
413
-
memory: 4Gi
414
-
415
-
api:
416
370
gateway:
417
371
enabled: true
418
372
gatewayRef:
419
373
name: production-gateway
420
374
namespace: gateway-system
421
375
hostnames:
422
-
- api.tron.example.com
423
-
tls:
424
-
enabled: true
425
-
mode: Terminate
426
-
certificateRefs:
427
-
- name: tron-api-tls
428
-
kind: Secret
429
-
430
-
portal:
431
-
gateway:
432
-
enabled: true
433
-
gatewayRef:
434
-
name: production-gateway
435
-
namespace: gateway-system
436
-
hostnames:
437
-
- portal.tron.example.com
376
+
- tron.example.com
438
377
tls:
439
378
enabled: true
440
379
mode: Terminate
441
380
certificateRefs:
442
381
- name: tron-portal-tls
443
382
kind: Secret
444
383
384
+
postgresql:
385
+
primary:
386
+
persistence:
387
+
size: 100Gi
388
+
resources:
389
+
requests:
390
+
cpu: 1000m
391
+
memory: 2Gi
392
+
limits:
393
+
cpu: 2000m
394
+
memory: 4Gi
395
+
445
396
networkPolicy:
446
397
enabled: true
447
398
```
@@ -482,7 +433,8 @@ This chart is available on [Artifact Hub](https://artifacthub.io/packages/helm/g
482
433
483
434
### Chart Features
484
435
485
-
- ✅ Support for Gateway API (default) and Ingress Controller
436
+
- ✅ Portal exposed via Gateway API (default) or Ingress Controller
437
+
- ✅ API internal-only (accessed via cluster Service)
0 commit comments