Crossplane provider for Forgejo: organizations, teams, repositories, users as Kubernetes objects
432
A Crossplane provider for Forgejo: organizations, teams, repositories and their settings (deploy keys, webhooks, collaborators, branch protection), users and their tokens, as Kubernetes objects.
It is generated with Upjet from the Forgejo Terraform provider (svalabs/terraform-provider-forgejo), whose Go code is compiled in: no Terraform or OpenTofu binary runs, at any time.
The Crossplane package itself: Crossplane reads the package metadata and
CRDs (/package.yaml) from it and runs the same image as the provider. The
provider binary is /usr/local/bin/provider, on distroless static, as a
non-root user. The licenses of everything in it are under /licenses.
Crossplane v2:
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata: {name: forgejo}
spec:
package: docker.io/vincentbrobald/provider-forgejo:<tag>
---
apiVersion: forgejo.m.crossplane.brobald.be/v1beta1
kind: ClusterProviderConfig
metadata: {name: default}
spec:
credentials:
source: Secret
secretRef: {namespace: crossplane-system, name: forgejo-credentials, key: credentials}
The Secret's key holds {"host": "https://forgejo.example.org", "api_token": "..."}.
The provider supports safe-start: activate its kinds with a
ManagedResourceActivationPolicy. Details:
Use the provider.
Each kind exists namespaced (*.forgejo.m.crossplane.brobald.be) and
cluster-scoped (*.forgejo.crossplane.brobald.be):
| Group | Kinds |
|---|---|
repository. | Repository, DeployKey, Webhook, Collaborator, BranchProtection, TeamRepository |
organization. | Organization, OrganizationOwner, Team, TeamMember |
user. | User, PersonalAccessToken |
External names, required fields and caveats: Kinds.
v<version>-<commit>: one per commit of the main branch (e.g. v0.7.0-836701d);
pin one of these.latest: the newest of them.Source: github.com/vincentbrobald/provider-forgejo.
Our own code is under the Mozilla Public License 2.0; the files from
Crossplane's Upjet provider template and the generated code keep the Apache
License 2.0, the vendored Terraform provider the MPL-2.0 (the repository's
NOTICE lists every file). /licenses in the image holds these and every
dependency's license.
Content type
Image
Digest
sha256:e9140aed3…
Size
25.1 MB
Last updated
28 minutes ago
docker pull vincentbrobald/provider-forgejo