cmd/gerritbot: move to Workload Identity
Create a new service account, and move the deployment over to the prod
namespace.
Also fix AutoCert configuration so we can serve our happy little home
page.
Fixes golang/go#37377.
For golang/go#48263.
Change-Id: I9d0a5e49db53c0224379f448b49c9b679d59d23b
Reviewed-on: https://go-review.googlesource.com/c/build/+/348433
Trust: Heschi Kreinick <heschi@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/cmd/gerritbot/Makefile b/cmd/gerritbot/Makefile
index 98901dc..4c9cb0e 100644
--- a/cmd/gerritbot/Makefile
+++ b/cmd/gerritbot/Makefile
@@ -17,12 +17,14 @@
push-prod: docker-prod
docker push $(IMAGE_PROD):$(VERSION)
+ docker push $(IMAGE_PROD):$(MUTABLE_VERSION)
push-staging: docker-staging
docker push $(IMAGE_STAGING):$(VERSION)
+ docker push $(IMAGE_STAGING):$(MUTABLE_VERSION)
deploy-prod: push-prod
go install golang.org/x/build/cmd/xb
- xb --prod kubectl set image deployment/gerritbot-deployment gerritbot=$(IMAGE_PROD):$(VERSION)
+ xb --prod kubectl --namespace prod set image deployment/gerritbot-deployment gerritbot=$(IMAGE_PROD):$(VERSION)
deploy-staging: push-staging
go install golang.org/x/build/cmd/xb
xb --staging kubectl set image deployment/gerritbot-deployment gerritbot=$(IMAGE_STAGING):$(VERSION)
diff --git a/cmd/gerritbot/deployment-prod.yaml b/cmd/gerritbot/deployment-prod.yaml
index 23349ad..dfdfe34 100644
--- a/cmd/gerritbot/deployment-prod.yaml
+++ b/cmd/gerritbot/deployment-prod.yaml
@@ -1,6 +1,7 @@
apiVersion: apps/v1
kind: Deployment
metadata:
+ namespace: prod
name: gerritbot-deployment
spec:
replicas: 1
@@ -15,6 +16,9 @@
container.seccomp.security.alpha.kubernetes.io/gerritbot: docker/default
container.apparmor.security.beta.kubernetes.io/gerritbot: runtime/default
spec:
+ serviceAccountName: gerritbot
+ nodeSelector:
+ cloud.google.com/gke-nodepool: workload-identity-pool
containers:
- name: gerritbot
image: gcr.io/symbolic-datum-552/gerritbot:latest
diff --git a/cmd/gerritbot/service.yaml b/cmd/gerritbot/service.yaml
index 03d906b..e655eb5 100644
--- a/cmd/gerritbot/service.yaml
+++ b/cmd/gerritbot/service.yaml
@@ -1,6 +1,7 @@
apiVersion: v1
kind: Service
metadata:
+ namespace: prod
name: gerritbot
spec:
ports:
diff --git a/devapp/Makefile b/devapp/Makefile
index 4209a0a..5451a04 100644
--- a/devapp/Makefile
+++ b/devapp/Makefile
@@ -17,8 +17,10 @@
push-prod: docker-prod
docker push $(IMAGE_PROD):$(VERSION)
+ docker push $(IMAGE_PROD):$(MUTABLE_VERSION)
push-staging: docker-staging
docker push $(IMAGE_STAGING):$(VERSION)
+ docker push $(IMAGE_STAGING):$(MUTABLE_VERSION)
deploy-prod: push-prod
go install golang.org/x/build/cmd/xb
diff --git a/internal/https/https.go b/internal/https/https.go
index 45cef37..35b9ab1 100644
--- a/internal/https/https.go
+++ b/internal/https/https.go
@@ -131,11 +131,7 @@
},
Cache: autocertcache.NewGoogleCloudStorageCache(sc, bucket),
}
- config := &tls.Config{
- GetCertificate: m.GetCertificate,
- NextProtos: []string{"h2", "http/1.1"},
- }
- tlsLn := tls.NewListener(tcpKeepAliveListener{ln.(*net.TCPListener)}, config)
+ tlsLn := tls.NewListener(tcpKeepAliveListener{ln.(*net.TCPListener)}, m.TLSConfig())
if err := http2.ConfigureServer(server, nil); err != nil {
return fmt.Errorf("http2.ConfigureServer: %v", err)
}