-
Notifications
You must be signed in to change notification settings - Fork 4
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
Enabling TLS Termination at the Pod level #2
Comments
@cloud-j-luna just to clarify, this issue will include/cover the cert-manager (lets encrypt or a similar ACME compatible cert issuer) mentioned in #3 ? |
Hey @andy108369 , just updated the issue. And no it does not include the cert-manager yet. This one allows users to manage their own certificates. |
makes sense on changes for services:
website:
image: <image>
env:
- |
TLS_CRT=${crt}
- |
TLS_KEY=${key}
expose:
- port: 443
as: 80
http_options:
max_body_size: 104857600
https_options: # HERE
ssl_passthrough: true # HERE
to:
- global: true
accept:
- ${full_domain} SDL part tho needs some work.
services:
website:
image: <image>
env:
- |
TLS_CRT=${crt}
- |
TLS_KEY=${key}
expose:
- port: 8080
as: 80
http_options:
max_body_size: 104857600
redirect_https: true # default false
to:
- global: true
accept:
- ${full_domain}
- port: 8443
as: 443
http_options:
max_body_size: 104857600
options:
ssl_passthrough: true # default false
to:
- global: true
accept:
- ${full_domain} |
Using port 443 gives users an externalPort instead of a url like port 80. The example I gave worked perfectly (with the support of @andy108369) even with SSL going through port 80 on the Ingress (forwarded to 443 on the NGINX Pod). |
FWIW, you can leverage the IP leasing for having As of:
This can be done by the cert-manager (Let's Encrypt) configured with the |
I'm working on a feature to allow users of the Akash Network to specify that their deployments have TLS termination at the Pod level. This will allows everyone to have SSL on their deployments as long as they do the SSL Termination on the container. This is easily achievable in NGINX servers. This greatly improves decentralization as the network becomes less reliable on Cloudflare to offer encrypted traffic. Please note that providers can have access to your certificates so make sure you only use trusted providers. If you trust Cloudflare more than you trust the provider for the type of workload you will run, stay with Cloudflare
I have a working PoC and I'll submit a PR soon once I have tested everything locally. I'll also update this issue with relevant information and concerns regarding this approach.
The idea is to allow the
Ingress
resources to be customized to include theannotations
required to perform SSL Passthrough to the Pod. Theannotations
are:Steps to feature:
SslPassthrough
is enabled at the directive level.SslPassthrough
according to the exposed serviceManifestServiceExpose
such as:I have a working version on my provider that dynamically accepts SSL Passthrough and its working perfectly (still missing the manifest part though as of writting).
Link to the fork commit: akash-network/provider@67928e0
WIP: akash-network/provider#77
What am I missing? Any suggestions?
The text was updated successfully, but these errors were encountered: