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.24
ARG GOVERSION=1.27
FROM --platform=$BUILDPLATFORM golang:${GOVERSION} AS delve
ARG BUILDPLATFORM
ARG TARGETOS
ARG TARGETARCH

ARG DELVE_VERSION=1.24.1
ARG DELVE_VERSION=1.27.2

# 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
9 changes: 9 additions & 0 deletions go/skaffold.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,14 @@ profiles:
docker:
buildArgs:
GOVERSION: '1.24'
- op: add
path: /build/artifacts/-
value:
image: go127app
context: test/goapp
docker:
buildArgs:
GOVERSION: '1.27'

deploy:
kubectl:
Expand All @@ -105,6 +113,7 @@ profiles:
- test/k8s-test-go122.yaml
- test/k8s-test-go123.yaml
- test/k8s-test-go124.yaml
- test/k8s-test-go127.yaml

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

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