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
28 changes: 14 additions & 14 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Stage 1: CI base image with essential build tools
# Pinned by digest (Scorecard "pinned dependencies"); Dependabot's docker
# ecosystem keeps version + digest current together.
FROM golang:1.27.1-bookworm@sha256:69a7b9788769bec032d238959b61854e9ae87f57be9029ec04e9885fabf99195 AS ci
FROM golang:1.27.3-bookworm@sha256:972b4110ba0f47539a975c31e52c64765e1ff19f2d74469ae4a595c6676e80a5 AS ci

# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
Expand Down Expand Up @@ -67,23 +67,23 @@ RUN apt-get update \

ENV PATH="/go/bin:/usr/local/go/bin:${PATH}" \
KUBECTL_VERSION=v1.37.1 \
KUSTOMIZE_VERSION=5.8.2 \
KUSTOMIZE_VERSION=5.8.3 \
KUBEBUILDER_VERSION=4.16.0 \
GOLANGCI_LINT_VERSION=v2.14.0 \
HELM_VERSION=v4.3.0 \
GOLANGCI_LINT_VERSION=v2.15.0 \
HELM_VERSION=v4.3.1 \
K3D_VERSION=v5.9.0 \
FLUX_VERSION=2.9.6 \
FLUX_OPERATOR_VERSION=0.61.0 \
TASK_VERSION=v3.54.0 \
ACTIONLINT_VERSION=1.7.12 \
HADOLINT_VERSION=2.15.1 \
VALKEY_VERSION=9.1.2 \
COSIGN_VERSION=v3.1.3 \
ORAS_VERSION=1.3.4 \
COSIGN_VERSION=v3.1.4 \
ORAS_VERSION=1.3.5 \
NODE_MAJOR=24 \
MARKDOWNLINT_CLI2_VERSION=0.23.3 \
MARKDOWNLINT_CLI2_VERSION=0.24.0 \
VALE_VERSION=3.24.0 \
TRIVY_VERSION=0.75.0
TRIVY_VERSION=0.76.1

# Fail early on unsupported architectures instead of producing a partial image.
RUN test "$(dpkg --print-architecture)" = "amd64" \
Expand Down Expand Up @@ -284,10 +284,10 @@ RUN chgrp -R godev /go && \
# by mtime -- so once this layer is older than trimLimit (5 days) the first
# `go` build in any container deletes ~90% of it regardless. Cleaning in the
# same layer keeps those ~400MB out of the image instead of merely hiding them.
RUN go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.22.0 \
&& go install github.com/onsi/ginkgo/v2/ginkgo@v2.33.0 \
RUN go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.23.0 \
&& go install github.com/onsi/ginkgo/v2/ginkgo@v2.33.1 \
&& go install sigs.k8s.io/controller-runtime/tools/setup-envtest@v0.25.2 \
&& go install golang.org/x/tools/cmd/goimports@v0.49.0 \
&& go install golang.org/x/tools/cmd/goimports@v0.51.0 \
&& go install github.com/boyter/scc/v4@v4.1.0 \
&& go clean -cache

Expand Down Expand Up @@ -350,10 +350,10 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# DLV_VERSION -> https://github.com/go-delve/delve/releases
# GOPLS_VERSION -> https://github.com/golang/tools/releases
# STATICCHECK_VERSION -> https://github.com/dominikh/go-tools/releases
ENV TILT_VERSION=v0.37.7 \
ENV TILT_VERSION=v0.37.8 \
DLV_VERSION=v1.27.2 \
GOPLS_VERSION=v0.23.0 \
STATICCHECK_VERSION=v0.8.1
GOPLS_VERSION=v0.24.0 \
STATICCHECK_VERSION=v0.8.2

# Kind is already installed in the ci stage above.
RUN apt-get update \
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1.10.1": {},
"ghcr.io/devcontainers/features/common-utils:2.7.0": {
"ghcr.io/devcontainers/features/common-utils:2.7.1": {
"userUid": "automatic",
"userGid": "automatic",
"username": "vscode"
Expand Down
6 changes: 3 additions & 3 deletions .github/actions/docker-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,19 @@ runs:
using: 'composite'
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1

- name: Log in to Container Registry
if: ${{ inputs.login == 'true' }}
uses: docker/login-action@c99871dec2022cc055c062a10cc1a1310835ceb4 # v4.3.0
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
with:
registry: ${{ inputs.registry }}
username: ${{ inputs.username }}
password: ${{ inputs.password }}

- name: Build and push Docker image
id: build
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
platforms: ${{ inputs.platforms }}
Expand Down
34 changes: 17 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
persist-credentials: false

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@594f3bf4285d9ea8dc53c9a0c9c4092420091003 # v4.4.0
uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1

- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
Expand Down Expand Up @@ -127,7 +127,7 @@ jobs:

- name: Upload CI container image artifact (PR)
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: ci-container-image
path: ci-container-image.tar
Expand Down Expand Up @@ -193,7 +193,7 @@ jobs:
run: docker save "${{ steps.image.outputs.name }}" -o project-image.tar

- name: Upload project image artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: project-image
path: project-image.tar
Expand Down Expand Up @@ -274,7 +274,7 @@ jobs:
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: digests-amd64
path: /tmp/digests/*
Expand Down Expand Up @@ -338,7 +338,7 @@ jobs:
touch "/tmp/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: digests-arm64
path: /tmp/digests/*
Expand All @@ -359,7 +359,7 @@ jobs:
persist-credentials: false

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@594f3bf4285d9ea8dc53c9a0c9c4092420091003 # v4.4.0
uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1

- name: Build dev container (validation only)
uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
Expand Down Expand Up @@ -420,7 +420,7 @@ jobs:

- name: Download CI container image (PR)
if: github.event_name == 'pull_request'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: ci-container-image
path: .
Expand Down Expand Up @@ -453,7 +453,7 @@ jobs:
'

- name: Upload release bundle artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: release-bundle
path: |
Expand Down Expand Up @@ -485,7 +485,7 @@ jobs:

- name: Download CI container image (PR)
if: github.event_name == 'pull_request'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: ci-container-image
path: .
Expand Down Expand Up @@ -610,7 +610,7 @@ jobs:

- name: Download CI container image (PR)
if: github.event_name == 'pull_request'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: ci-container-image
path: .
Expand Down Expand Up @@ -673,13 +673,13 @@ jobs:
persist-credentials: false

- name: Download project image
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: project-image
path: .

- name: Download CI container image
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: ci-container-image
path: .
Expand Down Expand Up @@ -811,7 +811,7 @@ jobs:
# always(): the SARIF is written by the report pass BEFORE the gate runs, so a
# gate failure must not swallow the report that explains it.
if: always()
uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
uses: github/codeql-action/upload-sarif@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
with:
sarif_file: trivy-image.sarif
# Distinct category so the amd64 and arm64 legs don't overwrite each
Expand Down Expand Up @@ -951,14 +951,14 @@ jobs:

- name: Download release bundle artifact
if: matrix.needs_artifact
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: release-bundle
path: .

- name: Download CI container image (PR)
if: github.event_name == 'pull_request'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: ci-container-image
path: .
Expand All @@ -978,7 +978,7 @@ jobs:
- name: Download project image
# The project image is never pushed; pull the tarball built by the
# build job (on PR and main alike).
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: project-image
path: .
Expand Down Expand Up @@ -1123,7 +1123,7 @@ jobs:

- name: Upload E2E raw Ginkgo JSON reports
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: e2e-ginkgo-reports-${{ matrix.name }}
path: .stamps/**/ginkgo-report-*.json
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ jobs:
steps:
- name: Download digests
# Same-run artifacts uploaded by the called ci.yml (build-release-*).
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
path: /tmp/digests
pattern: digests-*
Expand All @@ -112,7 +112,7 @@ jobs:
echo "Found ${count} release digest(s) to retag"

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@594f3bf4285d9ea8dc53c9a0c9c4092420091003 # v4.4.0
uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1

- name: Login to registry
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
Expand Down Expand Up @@ -156,7 +156,7 @@ jobs:
# is the only other job that signs release artifacts (publish-helm),
# and it gets cosign from that image. Without this input the action
# defaults to its own (older) pinned cosign release.
cosign-release: v3.1.3
cosign-release: v3.1.4

- name: Sign the multi-arch image (cosign keyless)
# One signature on the digest covers every tag pointing at it.
Expand Down Expand Up @@ -289,7 +289,7 @@ jobs:
run: git config --global --add safe.directory /__w/gitops-reverser/gitops-reverser

- name: Download tested release bundle artifact
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: release-bundle
path: .
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ jobs:
persist-credentials: false

- name: Run Scorecard analysis
uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0
with:
results_file: results.sarif
results_format: sarif
publish_results: true

- name: Upload SARIF to code scanning
uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
uses: github/codeql-action/upload-sarif@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
with:
sarif_file: results.sarif
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Build the manager binary
# Base images are pinned by digest (Scorecard "pinned dependencies");
# Dependabot's docker ecosystem keeps version + digest current together.
FROM golang:1.27.1@sha256:3680233e3204827fbdc66088528ae6d4b3d034f51d03a99d454f6de034888244 AS builder
FROM golang:1.27.3@sha256:f20d83a83e18dbd2a4714b8ffd4b30b287b6243962dd75608e86abcc63ba4efc AS builder

# Automatic platform arguments provided by Docker BuildKit
ARG TARGETOS
Expand Down Expand Up @@ -49,7 +49,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \
-ldflags "-X main.version=${VERSION} -X main.gitCommit=${GIT_COMMIT} -X main.gitDirty=${GIT_DIRTY} -X main.buildDate=${BUILD_DATE}" \
-o manager ./cmd

FROM golang:1.27.1@sha256:3680233e3204827fbdc66088528ae6d4b3d034f51d03a99d454f6de034888244 AS sops-builder
FROM golang:1.27.3@sha256:f20d83a83e18dbd2a4714b8ffd4b30b287b6243962dd75608e86abcc63ba4efc AS sops-builder

# Automatic platform arguments provided by Docker BuildKit
ARG TARGETOS
Expand Down Expand Up @@ -94,7 +94,7 @@ RUN --mount=type=cache,target=/root/.cache/go-build \

# 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:debug@sha256:07148a6899406df51906b183f581cf66e5b05fd51aca438bdf1d3998df566961
FROM gcr.io/distroless/static:debug@sha256:11c839f18a0d7b91b093cda53a5d4cee84f23ec450a6f6e1bf17ab12bf296333
WORKDIR /
COPY --from=builder /workspaces/manager .
COPY --from=sops-builder /out/sops /usr/local/bin/sops
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/configbutler.ai_argocdtriggers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.22.0
controller-gen.kubebuilder.io/version: v0.23.0
name: argocdtriggers.configbutler.ai
spec:
group: configbutler.ai
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/configbutler.ai_clusterwatchrules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.22.0
controller-gen.kubebuilder.io/version: v0.23.0
name: clusterwatchrules.configbutler.ai
spec:
group: configbutler.ai
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/configbutler.ai_commitrequests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.22.0
controller-gen.kubebuilder.io/version: v0.23.0
name: commitrequests.configbutler.ai
spec:
group: configbutler.ai
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/configbutler.ai_fluxtriggers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.22.0
controller-gen.kubebuilder.io/version: v0.23.0
name: fluxtriggers.configbutler.ai
spec:
group: configbutler.ai
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/configbutler.ai_gitbranches.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.22.0
controller-gen.kubebuilder.io/version: v0.23.0
name: gitbranches.configbutler.ai
spec:
group: configbutler.ai
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/configbutler.ai_gitproviders.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.22.0
controller-gen.kubebuilder.io/version: v0.23.0
name: gitproviders.configbutler.ai
spec:
group: configbutler.ai
Expand Down
2 changes: 1 addition & 1 deletion config/crd/bases/configbutler.ai_gitreceivers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.22.0
controller-gen.kubebuilder.io/version: v0.23.0
name: gitreceivers.configbutler.ai
spec:
group: configbutler.ai
Expand Down
Loading
Loading