Skip to content

Commit

Permalink
feat: go 1.22 support
Browse files Browse the repository at this point in the history
  • Loading branch information
shaxbee authored and Zibi Mandziejewicz committed Apr 2, 2024
1 parent ce64064 commit 00fa99f
Show file tree
Hide file tree
Showing 4 changed files with 186 additions and 8 deletions.
4 changes: 2 additions & 2 deletions go/helper-image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
ARG GOVERSION=1.20
ARG GOVERSION=1.22
FROM --platform=$BUILDPLATFORM golang:${GOVERSION} as delve
ARG BUILDPLATFORM
ARG TARGETOS
ARG TARGETARCH

ARG DELVE_VERSION=1.20.1
ARG DELVE_VERSION=1.22.1

# Patch delve to make defaults for --check-go-version and --only-same-user
# to be set at build time. We must install patch(1) to apply the patch.
Expand Down
12 changes: 6 additions & 6 deletions go/skaffold.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,27 +41,27 @@ profiles:
- op: add
path: /build/artifacts/-
value:
image: go118app
image: go119app
context: test/goapp
docker:
buildArgs:
GOVERSION: 1.18
GOVERSION: '1.19'
- op: add
path: /build/artifacts/-
value:
image: go119app
image: go120app
context: test/goapp
docker:
buildArgs:
GOVERSION: 1.19
GOVERSION: '1.20'
- op: add
path: /build/artifacts/-
value:
image: go120app
image: go121app
context: test/goapp
docker:
buildArgs:
GOVERSION: '1.20'
GOVERSION: '1.22'
deploy:
kubectl:
manifests:
Expand Down
89 changes: 89 additions & 0 deletions go/test/k8s-test-go121.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# This test approximates `skaffold debug` for a go app.
apiVersion: v1
kind: Pod
metadata:
name: go121pod
labels:
app: hello
protocol: dlv
runtime: go121
spec:
containers:
- name: go121app
image: go121app
args:
- /dbg/go/bin/dlv
- exec
- --log
- --headless
- --continue
- --accept-multiclient
# listen on 0.0.0.0 as it is exposed as a service
- --listen=0.0.0.0:56286
- --api-version=2
- ./app
ports:
- containerPort: 8080
- containerPort: 56286
name: dlv
readinessProbe:
httpGet:
path: /
port: 8080
volumeMounts:
- mountPath: /dbg
name: go-debugging-support
initContainers:
- image: skaffold-debug-go
name: install-go-support
resources: {}
volumeMounts:
- mountPath: /dbg
name: go-debugging-support
volumes:
- emptyDir: {}
name: go-debugging-support

---
apiVersion: v1
kind: Service
metadata:
name: hello-dlv-go121
spec:
ports:
- name: http
port: 8080
protocol: TCP
- name: dlv
port: 56286
protocol: TCP
selector:
app: hello
protocol: dlv
runtime: go121

---
apiVersion: batch/v1
kind: Job
metadata:
name: connect-to-go121
labels:
project: container-debug-support
type: integration-test
spec:
ttlSecondsAfterFinished: 10
backoffLimit: 1
template:
spec:
restartPolicy: Never
initContainers:
- name: wait-for-go121
image: kubectl
command: [sh, -c, "while ! curl -s hello-dlv-go121:8080 2>/dev/null; do echo waiting for app; sleep 1; done"]
containers:
- name: dlv-to-go121
image: skaffold-debug-go
command: [sh, -c, '
(echo bt; echo exit -c) > init.txt;
set -x;
/duct-tape/go/bin/dlv connect --init init.txt hello-dlv-go121:56286']
89 changes: 89 additions & 0 deletions go/test/k8s-test-go122.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# This test approximates `skaffold debug` for a go app.
apiVersion: v1
kind: Pod
metadata:
name: go122pod
labels:
app: hello
protocol: dlv
runtime: go122
spec:
containers:
- name: go122app
image: go122app
args:
- /dbg/go/bin/dlv
- exec
- --log
- --headless
- --continue
- --accept-multiclient
# listen on 0.0.0.0 as it is exposed as a service
- --listen=0.0.0.0:56286
- --api-version=2
- ./app
ports:
- containerPort: 8080
- containerPort: 56286
name: dlv
readinessProbe:
httpGet:
path: /
port: 8080
volumeMounts:
- mountPath: /dbg
name: go-debugging-support
initContainers:
- image: skaffold-debug-go
name: install-go-support
resources: {}
volumeMounts:
- mountPath: /dbg
name: go-debugging-support
volumes:
- emptyDir: {}
name: go-debugging-support

---
apiVersion: v1
kind: Service
metadata:
name: hello-dlv-go122
spec:
ports:
- name: http
port: 8080
protocol: TCP
- name: dlv
port: 56286
protocol: TCP
selector:
app: hello
protocol: dlv
runtime: go122

---
apiVersion: batch/v1
kind: Job
metadata:
name: connect-to-go122
labels:
project: container-debug-support
type: integration-test
spec:
ttlSecondsAfterFinished: 10
backoffLimit: 1
template:
spec:
restartPolicy: Never
initContainers:
- name: wait-for-go122
image: kubectl
command: [sh, -c, "while ! curl -s hello-dlv-go122:8080 2>/dev/null; do echo waiting for app; sleep 1; done"]
containers:
- name: dlv-to-go122
image: skaffold-debug-go
command: [sh, -c, '
(echo bt; echo exit -c) > init.txt;
set -x;
/duct-tape/go/bin/dlv connect --init init.txt hello-dlv-go122:56286']

0 comments on commit 00fa99f

Please sign in to comment.