diff --git a/Makefile.build b/Makefile.build index cbcec1393e..05be032c2f 100644 --- a/Makefile.build +++ b/Makefile.build @@ -24,24 +24,24 @@ define GIT_SHA endef endif -ifndef DEBUG_KOTSADM +ifeq ("$(DEBUG_KOTSADM)", "1") define LDFLAGS -ldflags "\ - -s -w \ -X ${VERSION_PACKAGE}.version=${VERSION} \ -X ${VERSION_PACKAGE}.gitSHA=${GIT_SHA} \ -X ${VERSION_PACKAGE}.buildTime=${DATE} \ " endef +define GCFLAGS +-gcflags="all=-N -l" +endef else define LDFLAGS -ldflags "\ + -s -w \ -X ${VERSION_PACKAGE}.version=${VERSION} \ -X ${VERSION_PACKAGE}.gitSHA=${GIT_SHA} \ -X ${VERSION_PACKAGE}.buildTime=${DATE} \ " endef -define GCFLAGS --gcflags="all=-N -l" -endef endif diff --git a/hack/CONTRIBUTING.md b/hack/CONTRIBUTING.md index 8f9bc3bff4..78e5a650d3 100644 --- a/hack/CONTRIBUTING.md +++ b/hack/CONTRIBUTING.md @@ -25,6 +25,12 @@ Next, you can build and run all server components in the Kubernetes cluster with skaffold dev ``` +To enable delve run: + +``` +DEBUG_KOTSADM=1 skaffold dev +``` + ## Notes: - Go code will not be rebuilt automatically. Run `make kotsadm` again to make the new binary and restart the pod. - After installing restic/velero, `kubectl -n velero edit daemonset restic` to change the volume hostPath mount from: diff --git a/hack/dev/Dockerfile.skaffold b/hack/dev/Dockerfile.skaffold index 86f91d8c40..b3b26cc155 100644 --- a/hack/dev/Dockerfile.skaffold +++ b/hack/dev/Dockerfile.skaffold @@ -12,9 +12,12 @@ COPY web/webcontent.go ./web/webcontent.go COPY web/dist ./web/dist COPY kotskinds ./kotskinds -RUN DEBUG_KOTSADM="true" make kotsadm +ARG DEBUG_KOTSADM=0 + +RUN make kotsadm FROM debian:buster + RUN apt-get update && apt-get install -y --no-install-recommends curl gnupg2 \ && curl -k https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ && echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/PostgreSQL.list \ @@ -165,5 +168,10 @@ COPY --from=builder /go/src/github.com/replicatedhq/kots/bin/kotsadm . EXPOSE 40000 # Should be entrypoint -ENTRYPOINT [ "/dlv", "--listen=:40000", "--continue", "--headless=true", "--api-version=2", "--accept-multiclient", "exec"] -CMD ["/kotsadm", "api"] + +ARG DEBUG_KOTSADM=0 + +ENV DEBUG_KOTSADM=${DEBUG_KOTSADM} + +ADD hack/dev/entrypoint.sh . +ENTRYPOINT [ "./entrypoint.sh"] diff --git a/hack/dev/entrypoint.sh b/hack/dev/entrypoint.sh new file mode 100755 index 0000000000..d739b07c6e --- /dev/null +++ b/hack/dev/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if [ "$DEBUG_KOTSADM" = "1" ]; then + /dlv --listen=:40000 --continue --headless=true --api-version=2 --accept-multiclient exec /kotsadm api +else + /kotsadm api +fi diff --git a/skaffold.yaml b/skaffold.yaml index c9764ae0f6..8cc0cf9c75 100644 --- a/skaffold.yaml +++ b/skaffold.yaml @@ -9,9 +9,17 @@ profiles: kustomize: paths: - "./kustomize/overlays/kotsstore" + - name: debug + activation: + - env: DEBUG_KOTSADM=1 + patches: + - op: add + path: /build/artifacts/1/docker/buildArgs + value: + DEBUG_KOTSADM: 1 - name: codespace activation: - - env: USER=codespace + - env: USER=codespace build: local: concurrency: 0