You pushed a change, it passed pre-commit hooks, and then the deploy pipeline refused to talk to the cluster. Permissions, again. The classic DevOps traffic jam. That is exactly where Gitea and Google GKE can play nicely together, if you wire the identity and automation the right way.
Gitea gives you a self-hosted Git service that behaves like a well-trained dog instead of a cloud mystery box. Google Kubernetes Engine runs your workloads at scale, but securing that pipeline without endless token juggling is usually painful. Gitea Google GKE integration eliminates that pain by making source commits, CI runners, and Kubernetes objects speak the same trust language.
The trick is service identity. When a Gitea runner triggers a deployment, it should use workload identity instead of raw service account keys. In Google GKE, that means binding a Kubernetes Service Account to a Google Service Account via Workload Identity Federation. Your Gitea job can then call kubectl or hit the API securely without a stray credential file in sight. No one should ever store keys in a secret repo again.
Within Gitea, connect the CI system’s runtime to use OIDC tokens. That maps cleanly into GKE’s IAM roles so you control what repo actions actually have cluster power. Deploy jobs get “write,” everything else stays “read.” You can trace the user through Google Cloud audit logs, which helps when someone inevitably asks, “Who deployed that thing at 2 A.M.?”
How do I connect Gitea to Google GKE?
Use Workload Identity Federation to link your Gitea runner’s identity to a Google Service Account. In your GKE modules, reference that account and apply fine-grained IAM roles, such as roles/container.developer. This setup removes static keys and enables secure, auditable automation.