Use go-toolkit component

Update our configuration to use the go toolkit component in replacement of the TBC golang & operator template.

This require an adaptation of the existing makefile to fit in the new logic of the CI component see below.

Clean now deprecated renovate config

This component is not just a conversion from GitLab CI templates to components; it also changes the existing logic. The previous templates relied on custom images for each job, which made them difficult to maintain because project and tooling versions could drift apart. They also did not ensure that the Makefile targets actually worked.

The new component uses the provided Makefile as the entry point for most jobs instead of relying on custom images. In return, the consuming project must define a tools/ directory listing the required dependencies. This keeps the tooling versions aligned with the Go version used by the project.

Old job Source New job (go-toolkit, prefix <as>) Notes
ensure-manifests-are-generated ci-templates/operator-template.yml <as>-generate Same pattern: run make manifests generate then git diff --quiet.
test-operator ci-templates/operator-template.yml <as>-test Same JUnit + Cobertura publishing; report tools installed from consumer's tools/go.mod instead of @latest.
test-operator-e2e ci-templates/operator-template.yml <as>-e2e Opt-in via e2e-enabled: true. Docker CLI now installed as a static binary pinned to docker-version.
test-operator-kube-api-linter ci-templates/operator-template.yml <as>-kube-api-linter Opt-in via kube-api-linter-enabled: true. File-change rules dropped (component doesn't hardcode project paths).
deploy-operator ci-templates/operator-template.yml — Not replaced. Operator-specific kind-cluster deploy step; belongs elsewhere.
go-ci-lint to-be-continuous/golang <as>-lint Now delegates to make lint. Consumer controls the exact command in the Makefile.
go-build-test to-be-continuous/golang <as>-build + <as>-test Split into two jobs running in parallel after <as>-lint.
go-govulncheck to-be-continuous/golang <as>-govulncheck Text output as artifact. Exit code 3 (vulns found) tolerated so job stays green. GitLab report integration dropped — govulncheck's schemas aren't accepted by sast.
go-sbom to-be-continuous/golang <as>-sbom CycloneDX via cyclonedx-gomod, published as reports.cyclonedx (surfaces in GitLab Dependency List).
go-semgrep to-be-continuous/golang <as>-semgrep Now uses semgrep ci --config=auto (CI-aware, diff-only on MR pipelines), publishes GitLab-native SAST report.
go-outdated to-be-continuous/golang — Not replaced (follow-up).
go-fmt, go-vet to-be-continuous/golang folded into <as>-lint Standard operator Makefiles chain fmt vet into lint.

Worth to note, I've changed the go vulncheck job so It will never failed (except a failure in command itself) as we are using it more as an informative job; We never block MRs for that.

deploy-operator job was dropped, as we now have e2e testing that replaced it. It also avoid to maintain a custom image (which was never well aligned with what we are doing in sylva-core) go mod outdated job was dropped, previously it was a manual job and I don't think we have people running it (can be added later, if required)


go-toolkit component: sylva-projects/sylva-elements/ci-tooling/ci-components/go-toolkit!1 (merged) part of sylva-projects/sylva-elements/ci-tooling/ci-components/go-toolkit#1 (closed)

Edited by Loic Nicolle

Merge request reports

Loading
Loading