Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.23
ARG GOVERSION=1.24
FROM --platform=$BUILDPLATFORM golang:${GOVERSION} AS delve
ARG BUILDPLATFORM
ARG TARGETOS
ARG TARGETARCH

ARG DELVE_VERSION=1.23.1
ARG DELVE_VERSION=1.24.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
4 changes: 2 additions & 2 deletions go/helper-image/delve-as-options.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
diff --git cmd/dlv/cmds/commands.go cmd/dlv/cmds/commands.go
index b5b7662c..dcdae257 100644
index 374b5451..ad1c6b69 100644
--- cmd/dlv/cmds/commands.go
+++ cmd/dlv/cmds/commands.go
@@ -61,6 +61,8 @@ var (
Expand Down Expand Up @@ -31,7 +31,7 @@ index b5b7662c..dcdae257 100644
rootCommand.PersistentFlags().StringVar(&backend, "backend", "default", `Backend selection (see 'dlv help backend').`)
must(rootCommand.RegisterFlagCompletionFunc("backend", cobra.FixedCompletions([]string{"default", "native", "lldb", "rr"}, cobra.ShellCompDirectiveNoFileComp)))
rootCommand.PersistentFlags().StringArrayVarP(&redirects, "redirect", "r", []string{}, "Specifies redirect rules for target process (see 'dlv help redirect')")
@@ -1250,3 +1254,14 @@ func must(err error) {
@@ -1249,3 +1253,14 @@ func must(err error) {
log.Fatal(err)
}
}
Expand Down
9 changes: 9 additions & 0 deletions go/skaffold.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,14 @@ profiles:
docker:
buildArgs:
GOVERSION: '1.23'
- op: add
path: /build/artifacts/-
value:
image: go124app
context: test/goapp
docker:
buildArgs:
GOVERSION: '1.24'

deploy:
kubectl:
Expand All @@ -96,6 +104,7 @@ profiles:
- test/k8s-test-go121.yaml
- test/k8s-test-go122.yaml
- test/k8s-test-go123.yaml
- test/k8s-test-go124.yaml

# release: pushes images to production with :latest
- name: release
Expand Down
89 changes: 89 additions & 0 deletions go/test/k8s-test-go124.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: go124pod
labels:
app: hello
protocol: dlv
runtime: go124
spec:
containers:
- name: go124app
image: go124app
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-go124
spec:
ports:
- name: http
port: 8080
protocol: TCP
- name: dlv
port: 56286
protocol: TCP
selector:
app: hello
protocol: dlv
runtime: go124

---
apiVersion: batch/v1
kind: Job
metadata:
name: connect-to-go124
labels:
project: container-debug-support
type: integration-test
spec:
ttlSecondsAfterFinished: 10
backoffLimit: 1
template:
spec:
restartPolicy: Never
initContainers:
- name: wait-for-go124
image: kubectl
command: [sh, -c, "while ! curl -s hello-dlv-go124:8080 2>/dev/null; do echo waiting for app; sleep 1; done"]
containers:
- name: dlv-to-go124
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-go124:56286']
Loading