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
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "MKurator DevContainer",
"image": "golang:1.26.9-bookworm",
"image": "golang:1.26.10-bookworm",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:3": {
"moby": true,
Expand Down
6 changes: 4 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Build the manager binary
FROM golang:1.26.9@sha256:d7722066f0b60ceccb6c0643cbed1f5f9e15506ac237146c95333504d7805d89 AS builder
# golang 1.26.10 (digest-only pin: Sonar docker:S8431 rejects tag plus digest)
FROM golang@sha256:670bb5aa5349ae03b8516764718486f4f16399134bdc9acd0c46a23f043ab05c AS builder
ARG TARGETOS
ARG TARGETARCH

Expand All @@ -23,7 +24,8 @@ RUN CGO_ENABLED=0 GOOS="${TARGETOS:-linux}" GOARCH="${TARGETARCH}" go build -a -

# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
FROM gcr.io/distroless/static:nonroot@sha256:f7f8f729987ad0fdf6b05eeeae94b26e6a0f613bdf46feea7fc40f7bd72953e6
# distroless static, nonroot variant (digest-only pin, see above)
FROM gcr.io/distroless/static@sha256:f7f8f729987ad0fdf6b05eeeae94b26e6a0f613bdf46feea7fc40f7bd72953e6
WORKDIR /
COPY --from=builder /workspace/manager .
USER 65532:65532
Expand Down
8 changes: 4 additions & 4 deletions docs/LOCAL_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ separately — they ship via `go.mod` `tool` directives (see below).

| Tool | Pinned version (CI) | Where defined |
|------|---------------------|---------------|
| Go | **1.26.9** | `go.mod` (Taskfile derives `GOTOOLCHAIN` from it) |
| Go | **1.26.10** | `go.mod` (Taskfile derives `GOTOOLCHAIN` from it) |
| Task | **3.51.1** | `Taskfile.yml` (`TASK_VERSION`) + CI `arduino/setup-task` |
| kind | **v0.32.0** | `Taskfile.yml` (`KIND_VERSION`) |
| mkcert | **v1.4.4** | `Taskfile.yml` (`MKCERT_VERSION`) |
Expand All @@ -49,7 +49,7 @@ release. Terraform must be **≥ 1.5.0** (`hack/kind-cluster/terraform/versions.

## Go toolchain (pinned in go.mod)

Install Go **1.26.9** (or enable auto-download — `task` sets `GOTOOLCHAIN` from `go.mod`).
Install Go **1.26.10** (or enable auto-download — `task` sets `GOTOOLCHAIN` from `go.mod`).

These tools are **already pinned** in `go.mod` and invoked with `go tool …` —
no separate install step:
Expand Down Expand Up @@ -146,7 +146,7 @@ mkcert -install # trust local CA (may prompt for password)
```sh
# Go — use https://go.dev/dl/ or your distro if it ships 1.26+
# Example (adjust arch/version):
# curl -fsSL https://go.dev/dl/go1.26.9.linux-amd64.tar.gz | sudo tar -C /usr/local -xz
# curl -fsSL https://go.dev/dl/go1.26.10.linux-amd64.tar.gz | sudo tar -C /usr/local -xz

# Tier A — Task
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin v3.51.1
Expand Down Expand Up @@ -204,7 +204,7 @@ Run from the repository root after installing your tier:

```sh
TOOLS_TIER=A task tools:check
go version # go1.26.9
go version # go1.26.10
task --version # 3.x (3.51.1 matches CI)
task install
task lint
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/platformrelay/mkurator

go 1.26.9
go 1.26.10

require (
github.com/go-logr/logr v1.4.4
Expand Down
4 changes: 2 additions & 2 deletions hack/test/sonar_mk_11_dockerfile_digest_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ require_digest() {
fi
}

require_digest "${ROOT}/Dockerfile" "golang:"
require_digest "${ROOT}/Dockerfile" "gcr.io/distroless/static:"
require_digest "${ROOT}/Dockerfile" "golang"
require_digest "${ROOT}/Dockerfile" "gcr.io/distroless/static"
require_digest "${ROOT}/test/e2e/fixtures/metrics-curl/Dockerfile" "alpine:"

# ARG expansion must be quoted so a malicious/empty TARGETOS cannot word-split.
Expand Down
Loading