Skip to content

Conversation

@joshuatowner
Copy link
Contributor

Add Authentication Middleware and Traefik Integration to AWS HyperPod Helm Chart

Adds comprehensive authentication and reverse proxy infrastructure to enable secure access to Jupyter workspaces with JWT-based authentication and Traefik routing.

Changes

Authentication Middleware: Deployment, RBAC, and service for JWT validation, cookie management, and CSRF protection
Traefik Reverse Proxy: Deployment with AWS LoadBalancer integration, TLS termination, RBAC permissions, and health check services
Auth Middlewares: Traefik middleware configurations for authentication flow, header management, and path routing

This is mainly pulled from the other helm chart, but with changes to support bearer-auth and removing oauth support.

JGuinegagne
JGuinegagne previously approved these changes Oct 27, 2025
kind: ClusterRole
metadata:
name: authmiddleware-role
rules: [] # No Kubernetes API permissions needed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Watch out: you might need these permissions for cookie renewal

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will add in follow up. atm it seems it will be tripped by this.

apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: authmiddleware-auth
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consider renaming bearer-auth to avoid conflicts in the future if a cluster supports both oauth and bearer flows.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah sorry I did some replacing but missed this. let me update.

service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
# Pass TLS traffic to Traefik as TCP to allow Traefik to handle TLS termination using Let's Encrypt
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sanity-check: doesn't the TLS termination occurs in the NLB in this chart? does this comment need to be updated?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this comment needs to be updated... i have not implemented TLS in this chart yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants