簡體   English   中英

Pulumi GKE Ingress SSL

[英]Pulumi GKE Ingress with SSL

我正在嘗試使用#Pulumi 進行設置

  • #Ingress 我的#GKE 服務
  • 與 HTTPS 負載均衡器
  • 使用 Google 管理的 SSL 證書。 由於某種原因,Ingress 創建永遠停留在“Creating Ingress”。

我正在使用 GCE Ingress Controller。有沒有我可以參考的工作示例? 如果您需要更多信息,請隨時詢問,我很樂意提供。 下面是我到目前為止嘗試過的代碼片段(經過無數次試驗后到達這個 state)。 我錯過了什么?

#kube.netes #gcp

const authDeploymentService = new k8s.core.v1.Service(authDeploymentName,
            {
                metadata: {
                    name: "auth-svc",
                    labels: authDeploymentAppLabels,
                    namespace: namespaceName,
                },
                spec: {
                    type: "LoadBalancer",
                    ports: [{ port: 80, targetPort: 8080 }],
                    selector: authDeploymentAppLabels,
                },
            },
            {
                provider: clusterProvider,
                dependsOn: [authDeployment]
            }
        );


        const authServiceManagedCert = new gcp.compute.ManagedSslCertificate("auth-cert-001", {
            name: "auth-cert-001",
            project: myGcpProject.projectId,
            description: "Managed SSL Certificate For auth service",
            managed: {
                domains: [
                    "mydomain.com"
                ]
            }
        });

        const managedCertConfigMap = new k8s.core.v1.ConfigMap("managed-certificate-config", {
            data: {
                "1": pulumi.interpolate`{"Key":{"Namespace":"${namespaceName}","Name":"${authServiceManagedCert.name}"},"Value":{"ExcludedFromSLO":false,"SoftDeleted":false,"SslCertificateName":"${authServiceManagedCert.id}","SslCertificateBindingReported":true,"SslCertificateCreationReported":true}}}`
            },
            metadata: {
                name: "managed-certificate-config",
                namespace: "kube-system",
            }
        })

        const ingress = new k8s.networking.v1beta1.Ingress(authDeploymentName + "-ingress", {
            metadata: {
                namespace: namespaceName,
                annotations: {
                    "ingress.gcp.kubernetes.io/pre-shared-cert": authServiceManagedCert.name,
                    "networking.gke.io/managed-certificates": authServiceManagedCert.name
                }
            },
            spec: {
                ingressClassName: "gce",
                backend: {
                    serviceName: authDeploymentService.metadata.name,
                    servicePort: 80
                },
                tls: [
                    {
                        hosts: ["mydomain.com"],
                    }
                ],
                rules: [
                    {
                        host: "mydomain.com",
                        http: {
                            paths: [
                                {
                                    path: "/",
                                    backend: {
                                        serviceName: authDeploymentService.metadata.name,
                                        servicePort: authDeploymentService.spec.ports[0].port,
                                    },
                                }
                            ],
                        },
                    },
                ]
            }
        },
            {
                provider: clusterProvider,
                dependsOn: [managedCertConfigMap]
            });

好的,以防萬一其他人無意中發現了這個問題,感謝這篇文章,我找到了一個關鍵輸入……我使用的是networking/v1beta (顯然已棄用)而不是networking/v1 更改為 v1 后,我開始看到自動創建的不同行為,例如后端、前端、目標代理等。

我只希望 Pulumi 更新其文檔以反映這一點,這樣像我這樣的人就不會掙扎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM