From f8837bbe82bb7828befd4a433848d14c39a2a861 Mon Sep 17 00:00:00 2001 From: Mint Bot Date: Wed, 10 Sep 2025 15:47:39 +0200 Subject: [PATCH] feat(forgejoRunner): add Buildx builder kubeconfig setup and RBAC configuration --- forgejoRunner/README.md | 35 +++++++++++++++++++++++++++++++ forgejoRunner/templates/rbac.yaml | 24 +++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 forgejoRunner/templates/rbac.yaml diff --git a/forgejoRunner/README.md b/forgejoRunner/README.md index de65e77..13b5160 100644 --- a/forgejoRunner/README.md +++ b/forgejoRunner/README.md @@ -12,6 +12,41 @@ kubectl create secret generic forgejo-runner \ -n ``` +## Builder + +To use the Buildx builder in your Forgejo action a kubeconfig is required. + +```bash +name=buildx-sa-token +server=$(kubectl config view --minify --output 'jsonpath={.clusters[0].cluster.server}') +ca=$(kubectl get secret/$name -o jsonpath='{.data.ca\.crt}') +token=$(kubectl get secret/$name -o jsonpath='{.data.token}' | base64 --decode) +namespace=$(kubectl get secret/$name -o jsonpath='{.data.namespace}' | base64 --decode) + +echo " +apiVersion: v1 +kind: Config +clusters: +- name: default-cluster + cluster: + certificate-authority-data: ${ca} + server: ${server} +contexts: +- name: default-context + context: + cluster: default-cluster + namespace: default + user: default-user +current-context: default-context +users: +- name: default-user + user: + token: ${token} +" > buildx.kubeconfig +``` + +Setup secret `KUBECONFIG_BUILDX` with content of `buildx.kubeconfig`. + ## Parameters ### Forgejo Runner parameters diff --git a/forgejoRunner/templates/rbac.yaml b/forgejoRunner/templates/rbac.yaml new file mode 100644 index 0000000..2a88ae5 --- /dev/null +++ b/forgejoRunner/templates/rbac.yaml @@ -0,0 +1,24 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: buildx +--- +apiVersion: v1 +kind: Secret +metadata: + annotations: + kubernetes.io/service-account.name: buildx + name: buildx-sa-token +type: kubernetes.io/service-account-token +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: admin +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: admin +subjects: +- kind: ServiceAccount + name: buildx