Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
da4ae6e
feat: gateway
aicam Dec 14, 2025
372a3d9
fix: image tags
aicam Jan 6, 2026
d3a5998
fix: add HTTPS listener patches for auth and routing
aicam Jan 6, 2026
d284af1
feat: https support
aicam Jan 20, 2026
8ae1fb8
fix: test static gateway name
aicam Jan 20, 2026
bbc40d9
fix: test static gateway name
aicam Jan 20, 2026
bc7069f
fix: dynamic gateway naming
aicam Jan 20, 2026
59787d8
fix: dynamic gateway naming
aicam Jan 23, 2026
2a1b6c3
fix: dynamic gateway naming
aicam Jan 23, 2026
e8465d4
fix: backend ref
aicam Jan 27, 2026
b9dfd05
test
aicam Jan 28, 2026
b115951
feat: using gateway backend instead of patch policy
aicam Jan 29, 2026
f8a600e
fix: issuer
aicam Jan 30, 2026
e973abf
fix: remove patch policy
aicam Jan 30, 2026
494a98b
fix: storageClass
aicam Jan 30, 2026
3c9e34e
Merge pull request #2 from aicam/main
aicam Feb 2, 2026
bffb039
fix: values
aicam Feb 2, 2026
7131bb6
feat: MinIO on EG
aicam Feb 3, 2026
fd49ee5
fix: MinIO on EG
aicam Feb 3, 2026
e8396ea
fix: delete redundant file
aicam Feb 3, 2026
b4bd924
fix: image path
aicam Feb 3, 2026
c922610
fix: Apache header and metadata naming
aicam Feb 3, 2026
a58460f
fix: dependency
aicam Feb 5, 2026
7912e60
Merge branch 'main' into gateway-sec-ext-policies
aicam Feb 5, 2026
0ac4d16
feat: move to config
aicam Feb 9, 2026
2f14a75
Merge remote-tracking branch 'origin/gateway-sec-ext-policies' into g…
aicam Feb 9, 2026
250d36c
Merge branch 'main' into gateway-sec-ext-policies
aicam Feb 9, 2026
5bf2601
fix: lint
aicam Feb 9, 2026
f2825e2
Merge remote-tracking branch 'origin/gateway-sec-ext-policies' into g…
aicam Feb 9, 2026
c2a251c
fix: env
aicam Feb 9, 2026
582c59a
fix: python test cases
aicam Feb 9, 2026
345c642
fix: revert
aicam Feb 9, 2026
b4721f1
Merge branch 'main' into gateway-sec-ext-policies
aicam Feb 9, 2026
d665363
Merge branch 'main' into gateway-sec-ext-policies
aicam Feb 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import jakarta.ws.rs.{Consumes, GET, POST, Path, Produces}
import org.apache.texera.auth.JwtParser.parseToken
import org.apache.texera.auth.SessionUser
import org.apache.texera.auth.util.{ComputingUnitAccess, HeaderField}
import org.apache.texera.config.{GuiConfig, LLMConfig}
import org.apache.texera.config.{GuiConfig, KubernetesConfig, LLMConfig}
import org.apache.texera.dao.jooq.generated.enums.PrivilegeEnum

import java.net.URLDecoder
Expand Down Expand Up @@ -121,12 +121,21 @@ object AccessControlResource extends LazyLogging {
return Response.status(Response.Status.FORBIDDEN).build()
}

// Dynamic Routing Logic
val workflowComputingUnitPoolName = KubernetesConfig.computeUnitPoolName
val workflowComputingUnitPoolNamespace = KubernetesConfig.computeUnitPoolNamespace
val workflowComputingUnitPoolPort = KubernetesConfig.computeUnitPortNumber

val targetHost =
s"computing-unit-$cuidInt.$workflowComputingUnitPoolName-svc.$workflowComputingUnitPoolNamespace.svc.cluster.local:$workflowComputingUnitPoolPort"

Response
.ok()
.header(HeaderField.UserComputingUnitAccess, cuAccess.toString)
.header(HeaderField.UserId, userSession.get().getUid.toString)
.header(HeaderField.UserName, userSession.get().getName)
.header(HeaderField.UserEmail, userSession.get().getEmail)
.header("Host", targetHost) // Envoy ExtAuth: Rewrite Host
.build()
}

Expand Down
10 changes: 5 additions & 5 deletions bin/k8s/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,6 @@ appVersion: "1.16.0"


dependencies:
- name: ingress-nginx
version: 4.11.3
repository: https://kubernetes.github.io/ingress-nginx
condition: ingress-nginx.enabled

- name: postgresql
version: 16.5.6
repository: https://charts.bitnami.com/bitnami
Expand All @@ -59,6 +54,11 @@ dependencies:
version: 1.4.5
repository: https://charts.lakefs.io

- name: gateway-helm
version: 1.6.3
repository: oci://docker.io/envoyproxy
alias: envoy-gateway

- name: metrics-server
version: 3.12.2
repository: https://kubernetes-sigs.github.io/metrics-server/
Expand Down
4 changes: 4 additions & 0 deletions bin/k8s/templates/access-control-service-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ spec:
secretKeyRef:
name: {{ .Release.Name }}-postgresql
key: postgres-password
- name: KUBERNETES_COMPUTE_UNIT_POOL_NAME
value: {{ .Values.workflowComputingUnitPool.name }}
- name: KUBERNETES_COMPUTE_UNIT_POOL_NAMESPACE
value: {{ .Values.workflowComputingUnitPool.namespace }}
livenessProbe:
httpGet:
path: /api/healthcheck
Expand Down
147 changes: 0 additions & 147 deletions bin/k8s/templates/envoy-config.yaml

This file was deleted.

49 changes: 0 additions & 49 deletions bin/k8s/templates/envoy-deployment.yaml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,10 @@
# specific language governing permissions and limitations
# under the License.

apiVersion: v1
kind: Service
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: Backend
metadata:
name: envoy-svc
name: {{ .Release.Name }}-dynamic-backend
namespace: {{ .Release.Namespace }}
spec:
type: {{ .Values.envoy.service.type }}
selector:
app: envoy
ports:
- protocol: TCP
port: {{ .Values.envoy.service.port }}
targetPort: {{ .Values.envoy.service.port }}
# if service type is set to NodePort, include nodePort attribute
{{- if eq .Values.envoy.service.type "NodePort" }}
nodePort: {{ .Values.envoy.service.nodePort }}
{{- end }}
type: DynamicResolver
Loading
Loading