-
Notifications
You must be signed in to change notification settings - Fork 26
Support TLS for ingress #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 23 commits
Commits
Show all changes
25 commits
Select commit
Hold shift + click to select a range
72fddd9
Swap to caddy and support TLS
sjmiller609 217117d
Add logging
sjmiller609 80abaca
test pass
sjmiller609 63139d0
check if timing was issue
sjmiller609 876238f
Raf style AI review
sjmiller609 744511c
More review
sjmiller609 f0ace41
fix build
sjmiller609 d74c402
error handle port taken
sjmiller609 79fbe57
404 hint: didn't match hostname
sjmiller609 aadbf43
version check
sjmiller609 26e68fc
Fix caddy shutdown
sjmiller609 ad4dd8e
Configurable allowed domains
sjmiller609 955d6c7
Domain allow list
sjmiller609 e0e72e1
Match ingress by partial id and name
sjmiller609 a10f902
Use SNI in test
sjmiller609 6c0d006
Tls integration tests passes locally
sjmiller609 b89c6cb
Add a few logs
sjmiller609 4848b08
Use DNS for discovery and support instance name matching
sjmiller609 dca078c
Accept using sudo for tests, get caching and parallelism
sjmiller609 2acd03d
Remove route53 for now
sjmiller609 528ee62
Docker login work when run tests with root
sjmiller609 987b9ce
Fix one more spot with unauth'd docker pull
sjmiller609 e152638
Review
sjmiller609 843ddf0
Address review comments
sjmiller609 62d252e
Merge remote-tracking branch 'origin/main' into tls
sjmiller609 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,101 @@ | ||
| # Required | ||
| JWT_SECRET='your-secret-key-here' | ||
| DATA_DIR=/home/your-user/hypeman/.datadir # or leave unset to default to /var/lib/hypeman | ||
|
|
||
| # Data directory (default: /var/lib/hypeman) | ||
| DATA_DIR=/home/your-user/hypeman/.datadir | ||
|
|
||
| # Server configuration | ||
| # PORT=8080 | ||
|
|
||
| # Network configuration | ||
| # BRIDGE_NAME=vmbr0 | ||
| # SUBNET_CIDR=10.100.0.0/16 | ||
| # SUBNET_GATEWAY= # empty = derived from SUBNET_CIDR | ||
| # UPLINK_INTERFACE= # empty = auto-detect from default route | ||
| # DNS_SERVER=1.1.1.1 | ||
|
|
||
| # Logging | ||
| # LOG_LEVEL=info # debug, info, warn, error | ||
|
|
||
| # Caddy / Ingress configuration | ||
| # CADDY_LISTEN_ADDRESS=0.0.0.0 | ||
| # CADDY_ADMIN_ADDRESS=127.0.0.1 | ||
| # CADDY_ADMIN_PORT=2019 | ||
| # CADDY_STOP_ON_SHUTDOWN=false # Set to true if you want Caddy to stop when hypeman stops | ||
|
|
||
| # ============================================================================= | ||
| # TLS / ACME Configuration (for HTTPS ingresses) | ||
| # ============================================================================= | ||
| # Required for TLS ingresses: | ||
| # ACME_EMAIL=admin@example.com | ||
| # ACME_DNS_PROVIDER=cloudflare # or "route53" | ||
|
|
||
| # IMPORTANT: You must specify which domains are allowed for TLS certificates. | ||
| # This prevents typos and ensures you only request certificates for domains you control. | ||
| # TLS_ALLOWED_DOMAINS=*.example.com,api.other.com | ||
| # Supports: | ||
| # - Exact matches: api.example.com | ||
| # - Wildcard subdomains: *.example.com (matches foo.example.com, NOT foo.bar.example.com) | ||
| # If not set, no TLS ingresses are allowed. | ||
|
|
||
| # Optional ACME settings: | ||
| # ACME_CA= # empty = Let's Encrypt production | ||
| # Use https://acme-staging-v02.api.letsencrypt.org/directory for testing | ||
|
|
||
| # DNS propagation settings (applies to all providers): | ||
| # DNS_PROPAGATION_TIMEOUT=2m # Max time to wait for DNS propagation | ||
| # DNS_RESOLVERS=1.1.1.1,8.8.8.8 # Custom DNS resolvers for propagation checking | ||
|
|
||
| # ----------------------------------------------------------------------------- | ||
| # Cloudflare DNS Provider (ACME_DNS_PROVIDER=cloudflare) | ||
| # ----------------------------------------------------------------------------- | ||
| # CLOUDFLARE_API_TOKEN=your-api-token | ||
| # Token needs Zone:DNS:Edit permissions for the domains you want certificates for | ||
|
|
||
| # ----------------------------------------------------------------------------- | ||
| # AWS Route53 DNS Provider (ACME_DNS_PROVIDER=route53) | ||
| # ----------------------------------------------------------------------------- | ||
| # Route53 supports three authentication methods: | ||
|
|
||
| # Method 1: Explicit credentials | ||
| # AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE | ||
| # AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY | ||
| # AWS_REGION=us-east-1 | ||
|
|
||
| # Method 2: Named profile (uses ~/.aws/credentials) | ||
| # AWS_PROFILE=my-route53-profile | ||
| # AWS_REGION=us-east-1 | ||
|
|
||
| # Method 3: IAM role / instance profile (leave credentials empty) | ||
| # Just set AWS_REGION and ensure the instance has appropriate IAM permissions | ||
| # AWS_REGION=us-east-1 | ||
|
|
||
| # Optional Route53 settings: | ||
| # AWS_HOSTED_ZONE_ID=Z1234567890ABC # Specific hosted zone (auto-detected if not set) | ||
| # AWS_MAX_RETRIES=5 # Max retries for Route53 API calls | ||
|
|
||
| # ============================================================================= | ||
| # OpenTelemetry Configuration | ||
| # ============================================================================= | ||
| # OTEL_ENABLED=false | ||
| # OTEL_ENDPOINT=127.0.0.1:4317 | ||
| # OTEL_SERVICE_NAME=hypeman | ||
| # OTEL_SERVICE_INSTANCE_ID= # default: hostname | ||
| # OTEL_INSECURE=true | ||
| # ENV=dev # deployment environment | ||
|
|
||
| # ============================================================================= | ||
| # Resource Limits | ||
| # ============================================================================= | ||
| # Per-instance limits | ||
| # MAX_VCPUS_PER_INSTANCE=16 | ||
| # MAX_MEMORY_PER_INSTANCE=32GB | ||
|
|
||
| # Aggregate limits (0 or empty = unlimited) | ||
| # MAX_TOTAL_VCPUS=0 | ||
| # MAX_TOTAL_MEMORY= | ||
| # MAX_TOTAL_VOLUME_STORAGE= | ||
|
|
||
| # Other limits | ||
| # MAX_CONCURRENT_BUILDS=1 | ||
| # MAX_OVERLAY_SIZE=100GB | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.