glamorous-rainbow-77959
01/29/2024, 12:47 PMpyflyte run --remote basics/hello_world.py hello_world_wf
Running Execution on Remote.
Failed with Exception Code: SYSTEM:Unknown
RPC Failed, with Status: StatusCode.PERMISSION_DENIED
details: Received http2 header with status: 403
Debug string UNKNOWN:Error received from peer {grpc_message:"Received http2 header with status: 403", grpc_status:7, created_time:"2024-01-29T16:44:06.737655+04:00"}
What could be the reason of this? Possibly Cloudflare SSL termination? I am using self-signed certificate for testing purposesglamorous-rainbow-77959
01/29/2024, 1:25 PMglamorous-rainbow-77959
01/29/2024, 3:26 PMaverage-finland-92144
01/29/2024, 5:48 PMglamorous-rainbow-77959
01/30/2024, 12:57 PMglamorous-rainbow-77959
01/30/2024, 12:57 PMglamorous-rainbow-77959
01/30/2024, 1:05 PMflytectl create project --id "poc" --name "poc"
However, I can’t run a workflow:
pyflyte -v run --remote -p poc -d development ./workflows/poc.py wf
Running Execution on Remote.
E0130 17:02:15.506599000 7953469440 <http://ssl_transport_security.cc:1511]|ssl_transport_security.cc:1511]> Handshake failed with fatal error SSL_ERROR_SSL: error:1000012e:SSL routines:OPENSSL_internal:KEY_USAGE_BIT_INCORRECT.
E0130 17:02:15.586829000 7953469440 <http://ssl_transport_security.cc:1511]|ssl_transport_security.cc:1511]> Handshake failed with fatal error SSL_ERROR_SSL: error:1000012e:SSL routines:OPENSSL_internal:KEY_USAGE_BIT_INCORRECT.
E0130 17:02:15.667737000 7953469440 <http://ssl_transport_security.cc:1511]|ssl_transport_security.cc:1511]> Handshake failed with fatal error SSL_ERROR_SSL: error:1000012e:SSL routines:OPENSSL_internal:KEY_USAGE_BIT_INCORRECT.
My ELB config is the following:
ingressClassName: alb
commonAnnotations:
<http://alb.ingress.kubernetes.io/certificate-arn|alb.ingress.kubernetes.io/certificate-arn>: 'XXXX'
<http://alb.ingress.kubernetes.io/group.name|alb.ingress.kubernetes.io/group.name>: flyte
<http://alb.ingress.kubernetes.io/listen-ports|alb.ingress.kubernetes.io/listen-ports>: '[{"HTTP": 80}, {"HTTPS":443}]'
<http://alb.ingress.kubernetes.io/scheme|alb.ingress.kubernetes.io/scheme>: internal
<http://alb.ingress.kubernetes.io/ssl-redirect|alb.ingress.kubernetes.io/ssl-redirect>: '443'
<http://alb.ingress.kubernetes.io/target-type|alb.ingress.kubernetes.io/target-type>: ip
httpAnnotations:
<http://alb.ingress.kubernetes.io/actions.app-root|alb.ingress.kubernetes.io/actions.app-root>: '{"Type": "redirect", "RedirectConfig": {"Path": "/console", "StatusCode": "HTTP_302"}}'
grpcAnnotations:
<http://alb.ingress.kubernetes.io/backend-protocol-version|alb.ingress.kubernetes.io/backend-protocol-version>: GRPC
# host: none #replace with your fully-qualified domain name
glamorous-rainbow-77959
01/30/2024, 1:12 PMopenssl s_client -connect
is working successfully for me. Verification fails, but that’s expected since I am using self-signed certificateglamorous-rainbow-77959
01/30/2024, 2:18 PMingressClassName: alb
commonAnnotations:
<http://alb.ingress.kubernetes.io/group.name|alb.ingress.kubernetes.io/group.name>: flyte
<http://alb.ingress.kubernetes.io/scheme|alb.ingress.kubernetes.io/scheme>: internal
<http://alb.ingress.kubernetes.io/target-type|alb.ingress.kubernetes.io/target-type>: ip
httpAnnotations:
<http://alb.ingress.kubernetes.io/listen-ports|alb.ingress.kubernetes.io/listen-ports>: '[{"HTTP": 8080}]'
<http://alb.ingress.kubernetes.io/actions.app-root|alb.ingress.kubernetes.io/actions.app-root>: '{"Type": "redirect", "RedirectConfig": {"Path": "/console", "StatusCode": "HTTP_302"}}'
grpcAnnotations:
<http://alb.ingress.kubernetes.io/listen-ports|alb.ingress.kubernetes.io/listen-ports>: '[{"HTTP": 8089}]'
<http://alb.ingress.kubernetes.io/backend-protocol-version|alb.ingress.kubernetes.io/backend-protocol-version>: GRPC
average-finland-92144
01/30/2024, 3:39 PM$HOME/.flyte/config.yaml
file? when using a self-signed cert you should set insecure: true
glamorous-rainbow-77959
01/30/2024, 3:40 PMglamorous-rainbow-77959
01/30/2024, 3:41 PMadmin:
# For GRPC endpoints you might want to use dns:///flyte.myexample.com
endpoint: dns:///internal-k8s-flyte-XXX-XXX.ap-XXX-1.elb.amazonaws.com
authType: Pkce
insecure: true
insecureSkipVerify: true
logger:
show-source: true
level: 6
average-finland-92144
01/30/2024, 3:42 PMinsecureSkipVerify: false
, it doesn't do much when insecure is trueglamorous-rainbow-77959
01/30/2024, 3:43 PMpyflyte run
RPC Failed, with Status: StatusCode.UNAVAILABLE
details: failed to connect to all addresses; last error: UNKNOWN: ipv4:11.11.11.11:443: Peer name internal-k8s-flyte-268cef442b-2123384988.ap-south-1.elb.amazonaws.com is not in peer certificate
glamorous-rainbow-77959
01/30/2024, 3:51 PMflytectl
works with invalid certificates without issue
• pflyte
sends certificate validation errors despite verification being disabledglamorous-rainbow-77959
01/30/2024, 3:54 PMaverage-finland-92144
01/30/2024, 3:55 PMinternal ELB without fixed domain nameI'm not AWS expert for sure but do you mean the hostname of the ELB instance eventually changes even if it's not redeployed? You don't need an A record on a managed zone to work with Flyte, you can use the ELB hostname and probably trick your OS with a local DNS entry pointing to your ELB hostname
glamorous-rainbow-77959
01/30/2024, 3:57 PMyou can use the ELB hostname and probably trick your OS with a local DNS entry pointing to your ELB hostnameYes, but that would make setup tricky for other team members
average-finland-92144
01/30/2024, 3:58 PMaverage-finland-92144
01/30/2024, 4:01 PMglamorous-rainbow-77959
01/30/2024, 4:02 PMso, let me recap, who’s terminating the SSL connection?Currently noone, since I have opted for internal VPC deployment instead of exposing Flyte via public DNS
glamorous-rainbow-77959
01/30/2024, 4:08 PM[Client] -> [VPN] -> {Internal AWS ELB} -> [VPC] -> [K8S] -> {Flyte binary]
glamorous-rainbow-77959
01/30/2024, 4:19 PMdetails: failed to connect to all addresses; last error: UNKNOWN: ipv4:XX.XX.XX.XX:443: Peer name <http://internal-k8s-flyte-XXXX-XXXX.ap-south-1.elb.amazonaws.com|internal-k8s-flyte-XXXX-XXXX.ap-south-1.elb.amazonaws.com> is not in peer certificate
average-finland-92144
01/30/2024, 4:28 PMglamorous-rainbow-77959
01/30/2024, 4:28 PMok and I guess the self-signed cert uses the ELB host name as the CN?I can not do this, since the hostname is way larger than 64 symbols
glamorous-rainbow-77959
01/30/2024, 4:28 PMglamorous-rainbow-77959
01/30/2024, 4:31 PMaverage-finland-92144
01/30/2024, 4:40 PMinsecure: false
insecureSkipVerify: true
glamorous-rainbow-77959
01/30/2024, 5:45 PMadmin:
# For GRPC endpoints you might want to use dns:///flyte.myexample.com
endpoint: dns:///internal-k8s-flyte-XXXX-XXXX.ap-south-1.elb.amazonaws.com
authType: Pkce
insecure: false
insecureSkipVerify: true
logger:
show-source: true
level: 6
glamorous-rainbow-77959
01/31/2024, 12:49 PM