ancient-wolf-19325
07/24/2024, 7:25 AMvendor_react-aa7f8ae5.js:2 Mixed Content: The page at 'https://<ingress-domain-name>/console/projects/flytesnacks/domains/development/executions/f14481fe8200f4bbba1b' was loaded over HTTPS, but requested an insecure frame '<http://minio.flyte.svc.cluster.local:9200/flyte-bucket/metadata/propeller/flytesnacks-development-f14481fe8200f4bbba1b/n2/data/0/deck.html?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio-flyte%2F20240724%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240724T071925Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=31657b5da33a0813cce3daa359001baeb03191e81fac0e0fe72df40c31449b42>'. This request has been blocked; the content must be served over HTTPS.
We have certain limitations with security that we can not make a ingress for minio and can't public it on our server. And this minio.flyte.svc.cluster can't be accessible on different server on same network. We need some type of reverse proxy if possible that can help to render it.
Could you guys suggest me some approach that I can make it possible So that we can easily enable this feature for us.
Thank you!!
# Answer
The error you're encountering is due to a mixed content issue where the Flyte Deck is being served over HTTP while your Flyte Console is served over HTTPS. This is blocked by modern browsers for security reasons. Since you cannot expose Minio publicly, you can use a reverse proxy to serve Minio content over HTTPS.
Solution: Use a Reverse Proxy
You can set up a reverse proxy to serve Minio content over HTTPS. Here’s a step-by-step approach:
1. Set Up a Reverse Proxy: Use a reverse proxy like Nginx or Traefik to forward requests from an HTTPS endpoint to your Minio service.
2. Configure FlyteAdmin: Update FlyteAdmin to use the reverse proxy URL for Minio.
Example with Nginx
1. Install Nginx: Ensure Nginx is installed on your server.
2. Configure Nginx: Create an Nginx configuration file to proxy requests to Minio.
server {
listen 443 ssl;
server_name <your-ingress-domain-name>;
ssl_certificate /path/to/your/cert.crt;
ssl_certificate_key /path/to/your/cert.key;
location /minio/ {
proxy_pass http://minio.flyte.svc.cluster.local:9200/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3. Update FlyteAdmin Configuration: Modify the FlyteAdmin configuration to use the reverse proxy URL.
storage:
signedUrl:
stowConfigOverride:
endpoint: https://<your-ingress-domain-name>/minioancient-wolf-19325
07/24/2024, 7:25 AM>>4. Restart Nginx: Apply the configuration and restart Nginx.
sudo systemctl restart nginx
Example with Traefik
1. Install Traefik: Ensure Traefik is installed and running.
2. Configure Traefik: Add a new IngressRoute for Minio.
apiVersion: <http://traefik.containo.us/v1alpha1|traefik.containo.us/v1alpha1>
kind: IngressRoute
metadata:
name: minio-ingress
namespace: flyte
spec:
entryPoints:
- websecure
routes:
- match: Host(`<your-ingress-domain-name>`) && PathPrefix(`/minio`)
kind: Rule
services:
- name: minio
port: 9200
scheme: http
3. Update FlyteAdmin Configuration: Modify the FlyteAdmin configuration to use the Traefik URL.
storage:
signedUrl:
stowConfigOverride:
endpoint: https://<your-ingress-domain-name>/minio
Verify Configuration
1. Check Access: Ensure you can access Minio content via the reverse proxy URL.
2. Test Flyte Deck: Navigate to the Flyte Console and verify that the Flyte Deck is accessible without mixed content errors.
Would you like more detailed steps or assistance with a specific part of this setup?
Sources:
- Flyte Deployment Discussion
Slack Link
https://flyte-org.slack.com/archives/CP2HDHKE1/p1721805882.944699 👍 0 button 👎 0 button 💡 Hint: Mention @runllm in the thread for followups.