Enable Gateway API in GKE
warning
The following guide is for demonstration purposes only and is not designed for production purposes.
info
Expose with GKE Gateway API in ShamanOps is only designed for gke-l7-global-external-managed GatewayClass.
If you are going to use a GKE Gateway API you can take as a reference the following enabling steps:
1. In GCloud console select the project of GKE cluster
gcloud config set project PROJECT_ID
2. Enable Gateway Controller in you existing GKE cluster
gcloud container clusters update CLUSTER_NAME \
--location=CLUSTER_LOCATION \
--gateway-api=standard
3. Log in to the GKE cluster as user kubeadmin
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_LOCATION
4. Apply the following YAML containing the GatewayClass and a Self-Signed SSL certificate
gkeGatewayAPI-example.yaml
---
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: external-gateway
namespace: kube-system
spec:
gatewayClassName: gke-l7-global-external-managed
listeners:
- name: http
protocol: HTTP
port: 80
allowedRoutes:
kinds:
- kind: HTTPRoute
namespaces:
from: All
- name: https
protocol: HTTPS
port: 443
allowedRoutes:
kinds:
- kind: HTTPRoute
namespaces:
from: All
tls:
mode: Terminate
certificateRefs:
- group: ""
kind: Secret
name: selfsigned-cert-secret
---
apiVersion: v1
kind: Secret
metadata:
name: selfsigned-cert-secret
namespace: kube-system
type: kubernetes.io/tls
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVDVENDQXZHZ0F3SUJBZ0lVSDg3Y0h5SmlnK0ErS2ltY3BObDJuS0wzZm9Nd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2daTXhDekFKQmdOVkJBWVRBbGhZTVJNd0VRWURWUVFJREFwVFpXeG1VMmxuYm1Wa01STXdFUVlEVlFRSApEQXBUWld4bVUybG5ibVZrTVJNd0VRWURWUVFLREFwVFpXeG1VMmxuYm1Wa01STXdFUVlEVlFRTERBcFRaV3htClUybG5ibVZrTVJJd0VBWURWUVFEREFsc2IyTmhiR2h2YzNReEhEQWFCZ2txaGtpRzl3MEJDUUVXRFc1dmJtVkEKYm05dVpTNWpiMjB3SGhjTk1qUXhNakV4TVRnd016TXlXaGNOTWpVeE1qRXhNVGd3TXpNeVdqQ0JrekVMTUFrRwpBMVVFQmhNQ1dGZ3hFekFSQmdOVkJBZ01DbE5sYkdaVGFXZHVaV1F4RXpBUkJnTlZCQWNNQ2xObGJHWlRhV2R1ClpXUXhFekFSQmdOVkJBb01DbE5sYkdaVGFXZHVaV1F4RXpBUkJnTlZCQXNNQ2xObGJHWlRhV2R1WldReEVqQVEKQmdOVkJBTU1DV3h2WTJGc2FHOXpkREVjTUJvR0NTcUdTSWIzRFFFSkFSWU5ibTl1WlVCdWIyNWxMbU52YlRDQwpBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1sRzJIcGhTL1F4SGY5OTdLVk9YclBtClhaMWlXSkN2dW9yK0RNb3ZoMGFrK1JBdy91MWVnWHBjZVhRQjk5VnBnUkxNNUgvcWMyV3NEam05MVg5RzYwekgKL0VqaUxSZFY2V2VobE1wZkFEVjVzMnVoOCsrbERTZTJHU1VIbnZBY2JKQlBOMVAxdmtyd1V3R3FJNjJmZTRwRAo1ZVpDZFluc0FmeC9GeGJ4aEs0bGN6U3pNZEd5emgrTm9YQnFOYkZ4NnUwRGc2SzlGbmZOL2VLTVdneTVQWGlFCmlTYWtzL3NHWjZWRE15M3owK21VNVN2bTZBZ1cxd2l6SXd5VFZKMkFlTUdFVHVNUlRNR1NQL3Yya3JiRTZCRVEKdjhtZkxxZ2FMZlovNnA3SWRweFhQUGE4VDZ6V1JUdWtGRmxRVTBBMjFod3h0cjAzMVZRYUFNNndvRjRydldjQwpBd0VBQWFOVE1GRXdIUVlEVlIwT0JCWUVGRmVIMGJmUzJOc3FkcnlpV2podlpBbVJvOFZZTUI4R0ExVWRJd1FZCk1CYUFGRmVIMGJmUzJOc3FkcnlpV2podlpBbVJvOFZZTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RFFZSktvWkkKaHZjTkFRRUxCUUFEZ2dFQkFCVkFmNXF2RHRqc0dJMnNvTW9ISHZrMnRGejlQWDlaMm5CNmJpbCtpdEttRnoxcApUMllzd0tUQjA4bWJiSEhmVDFhOTRMdUhwZWdEZ2VBeVA1cWx3ZzcvUFNOSWNzZDBPckpRdEtMNXlXbVpXU0NzCjl3cXBaRGNoMDVhYm5qS1htRGNFZ1VWbGU2d1d2b2lYWlFYTlRYSlNPV2Q5MUR5OFRwWEJoUFJLbmN4QS9IVWIKalNRUDIzNzE0TkJ5ejNGWGN5VG1WYU5nUzF5REgyWkdWWkExSmdZb2R4VW5JeXRwdFlndExHdytDaTJHTndjQgpYZmlZWWprM0V5VlMvdHIrNnNvUVhvTHVhTGMyYS9nZkN6NE9JVDI3Yk5qam1kQ0c2dzlsMndNdjRaZUZObFVyCkdzb2szQ21iTHRKdHUwbG9jNDFBQ0NRNXhCY1p4TW5HQ3Vvc3NGMD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2QUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktZd2dnU2lBZ0VBQW9JQkFRREpSdGg2WVV2ME1SMy8KZmV5bFRsNno1bDJkWWxpUXI3cUsvZ3pLTDRkR3BQa1FNUDd0WG9GNlhIbDBBZmZWYVlFU3pPUi82bk5sckE0NQp2ZFYvUnV0TXgveEk0aTBYVmVsbm9aVEtYd0ExZWJOcm9mUHZwUTBudGhrbEI1N3dIR3lRVHpkVDliNUs4Rk1CCnFpT3RuM3VLUStYbVFuV0o3QUg4ZnhjVzhZU3VKWE0wc3pIUnNzNGZqYUZ3YWpXeGNlcnRBNE9pdlJaM3pmM2kKakZvTXVUMTRoSWttcExQN0JtZWxRek10ODlQcGxPVXI1dWdJRnRjSXN5TU1rMVNkZ0hqQmhFN2pFVXpCa2ovNwo5cEsyeE9nUkVML0pueTZvR2kzMmYrcWV5SGFjVnp6MnZFK3Mxa1U3cEJSWlVGTkFOdFljTWJhOU45VlVHZ0RPCnNLQmVLNzFuQWdNQkFBRUNnZ0VBT3FDbHRzUDNmVW4vVEdmUUVmaUpja3BrTTA4dHIvdFgwVnVkdXhqc0JPSlIKMytyOW5vT2NJRm1tVU9tdjJGeHlhZGovcDlqUlF5akNQZ1J6Rnk4L282NU82S1hrNzNxcFVYUEo1TWFXUjMxTApDMHR4dy9pbUk4NlJkVzFLV1BOV2xoUlU3K0pSU3YvRWxlUUtuMnlvYmdaSUJYR1BUaHpPR1UrbG1KdkNBMzFFCjU0d1ZqbEVlSGQrc1QvL3UyK040WjlOalFYMEhaaU9GSjJtQ1lkS0RPcjM4WTlvL3Q3QnlEQ0FWdW85SzYxYnEKMW5vL3ZhYUtubm9LbzVUaEwxSUdDVUgvbHM4N3BjNWtKYUhFeEVLR09CbERsYkJBa3l4QzZ5TmEzL1FNYzB5UAoyZC9hTXFNR1RKWERaSi9IWTQwVjdJZHJLa2tIZU5Vb3AwQ3BKbDdXdFFLQmdRRC84RHdHRWNuWUpPYjVtdW5SCjhJYlNPYTJCQnFvYnhobmdNV2hNQjM5dzRwVThxa2Y2OXJ0TVR5WDNKbnJjSS9MQnQvT2c5bVl5dkVDZlhobTQKWmYreDhhb0NYd1Y1bGkrc1l4elN5RkplM082eE82VmVDR01abjF0VE5WeXhTc05mSEh1em00REt5QnRqT25JbApnYjU2TTdtZGZUZnhHSnlTSDNxYTRWN0szUUtCZ1FESlV6NTZBRmFuTGRYRlhKTmNXTDl0aTMxSjJzeEppZjFMCkVUMEhKS0MraU9XWU1MZmtwaEdsY1pCUm10SDh0STZvUjEycXdEUTFid1I1RFZQTmF0UTMvK1U3QXM0RU1xSUgKYmhsWC8rUDlPdEdDeHdhKzc3bDNIZXhlSWFENmNKTnFWQnF5ZUZtNVBwdklNNXJkUy9BZzd3NUpmZGlrYUNwVAozVlVQdG16N0V3S0JnRUxQbjV1bUFSN2ZZenc5YUZSWmlaaFBYaStVWWN1bVJ4THpVdHFtQ21xWmU0TytuOU92Cm5PMHFyQ3A4YlE0U2hFaDFrSyt3SXJXVDF2ckRRY3VWTk01cTI0cUs2NDcxMmJRU20yK2F3NFhuL3BkZGpxbWgKWHQxTmNEV2tkSElEcGtTcDF0RG9BeExzY2RuUlpBTE9mNzYreWZHR3dwZTVhUVhzR2NGY203WXhBb0dBZkZTTgpXOWpEcXVEeWlMemdRSUtLVGNOOEwxVVJIa1U2aU5admd1N0syb0Era2h0Y0piZXRaQ2ZiQVpxRUhmVC91TXJCCi9NWlFOOE9FMXFFMVpNR1pwNisveUE2MlhmOUs4eDI2Unc4L3BFNWp2c2pjMEtQSlBOZmM5bEQ4VWsyZHJHZWUKU1NOci9hdTlsd2pQbGVUa3VlSUlSN2lSUnc4UlBOT09TWExXb01NQ2dZQnZnWmo5cGVBNDFmT0xqRmIvbCs1bgpDWUJhaDFkcjlSS3BFRXFQaGgyS0ZHU3BWU0RKeU1GNitURGZqVGlOdGZqU3B1dWZ1Zy9rTDJ5TGFCNi8rR01DCjg3SlZiUTkzY2ZaemJiU2xXeFI4QUw4ak1PY2ZhOERIaUw2MExJV3dWWkJBMWtkaWd2dkFxYjJUTmFHUE5yOVUKMW5aZG0zclNuWTByTTUrZk4zUlZwUT09Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
---
5. Use ShamanOps and Enjoy! ✨