Files
grafana/hack
Matheus MacabuandDenis Vodopianov 10648b91f4 [release-12.0.6] Go: Update to 1.25.2 + golangci-lint v2.5.0 + golang.org/x/net v0.45.0 (#112161)
* Go: Update to 1.25.2

* Chore: Detaching go tools from the main Grafana workspace  (#104861)

* add script for tooling

* add to make

* not to forget

* reworked go tools

* add tool installation script

* adding readme

* updating readme

* updating readme

* cleanup install.sh and makefile

* update the readme file

* cleanup scripts

* switch variables.mk to lazy evaluation

* add tools ache to gitignore

* get rid of absolute path in hte Variables.mk file

* switch to reusable function for path generation

* add debug statements

* add create cache tool dir

* add debuig statements to make file

* drop tool cache

* fix race condition n ci

* fix race condition n ci

* cleanup workspace

* add lefthook.rc to codeowners

* copy .citools folder to docker image

* switch back to main branch of grafana-build

* Add .citools to the drone builder

* fix wording in generate.sh and README.md

(cherry picked from commit cefd2dab7a)

* golangci-lint: Update to 2.5.0

* Dependencies: Bump golang.org/x/net to v0.45.0

---------

Co-authored-by: Denis Vodopianov <vodopyanovd@gmail.com>
2025-10-08 14:02:29 +02:00
..

Kubernetes HACK Alert

This is a hack folder for kubernetes codegen scripts. Oddly, a /hack/ folder seems to be standard kubernetes development practice ¯_(ツ)_/¯

The workflow is a WIP, however we are trying to leverage as many off-the-shelf patterns as possible.

For these scripts to work, your local GOROOT/src/grafana/grafana must point to this git checkout. For my setup this is:

❯ pwd
/Users/ryan/go/src/github.com/grafana
❯ ls -l
total 0
lrwxr-xr-x  1 ryan  staff  37 Oct  5 09:34 grafana -> /Users/ryan/workspace/grafana/grafana

The current workflow is to run the following:

# ensure k8s.io/code-generator pkg is up to date
go mod download

# the happy path
./hack/update-codegen.sh

Note that the script deletes existing openapi go code and regenerates in place so that you will temporarily see deleted files in your git status. After a successful run, you should see them restored.

If resource client is not generated for your resource make sure that it follows the k8s guidelines for structuring the resource definition

  • the directory is named after resource version, i.e. <resource_name>/v<version> (e.g. service/v0alpha1)
  • the resource directory contains file types.go that includes resource definitions
  • the resource definitions are annotated with comment // +genclient