JFrog Crossplane Providers
Manage the JFrog Platform declaratively from Kubernetes with the JFrog Crossplane providers.
The JFrog Crossplane providers let you manage the JFrog Platform declaratively from Kubernetes. You describe JFrog objects, such as repositories, users, projects, and security policies, as Kubernetes objects. The providers then create and keep those objects in JFrog.
Find What You Need
The following table lists common goals and the page that covers each one.
| I want to… | Go to |
|---|---|
| Install and try the providers | Get Started with the JFrog Crossplane Providers |
| Understand identity, references, and conditions | How the JFrog Crossplane Providers Work |
| Create and manage JFrog objects, and see worked examples | Manage JFrog Objects with Crossplane |
| Upgrade, troubleshoot, or remove the providers | Operate the JFrog Crossplane Providers |
| Look up a Kind and its fields | JFrog Crossplane Kinds Reference |
This section covers installation and configuration, how the providers work, object management, best practices, recipes, the Kind reference, upgrade, uninstall, and troubleshooting.
This section is for platform engineers and DevOps teams who operate Kubernetes and administer a JFrog Platform:
- You need to be familiar with kubectl and YAML.
- You don't need prior Crossplane knowledge.
The Four Providers
The following table shows what each provider manages and its package image.
| Provider | Manages | Package image |
|---|---|---|
| provider-artifactory | Repositories (local, remote, virtual, federated for every package type), users, groups, permission targets, webhooks, replication, release bundles, instance configuration (LDAP, SAML, OAuth, proxies, backups, property sets, layouts, cleanup and archive policies, mail server, trash can) | releases-authenticated-docker.jfrog.io/jfrog/crossplane-provider-artifactory:v0.0.1 |
| provider-xray | Security, license, operational-risk, and curation policies, watches, ignore rules, custom issues, reports, Xray settings and indexing | releases-authenticated-docker.jfrog.io/jfrog/crossplane-provider-xray:v0.0.1 |
| provider-project | Projects, environments, project roles, project membership, repository assignment and sharing | releases-authenticated-docker.jfrog.io/jfrog/crossplane-provider-project:v0.0.1 |
| provider-platform | Global roles, groups, group membership, permissions, System for Cross-domain Identity Management (SCIM), OpenID Connect (OIDC), SAML, Crowd, HTTP SSO, AWS IAM roles, lifecycle stages, license, reverse proxy, Workers | releases-authenticated-docker.jfrog.io/jfrog/crossplane-provider-platform:v0.0.1 |
The providers operate independently. Install only the providers you need.
Supported Kinds
The providers support 260 Kinds. Each Kind is available in two forms:
- Namespaced (recommended):
<group>.<provider>.m.crossplane.io - Legacy cluster-scoped:
<group>.<provider>.crossplane.io
The following table shows the number of Kinds for each provider and API group.
| Provider | Kinds | API groups (number of Kinds) |
|---|---|---|
| provider-artifactory | 214 | artifact (2), configuration (16), lifecycle (2), replication (5), repository (150), security (11), user (4), webhook (24) |
| provider-xray | 21 | configuration (7), policy (7), report (5), watch (1), webhook (1) |
| provider-project | 8 | access (3), project (2), repository (3) |
| provider-platform | 17 | access (6), authentication (6), configuration (3), lifecycle (2) |
How It Works
To manage JFrog resources with the providers:
- Install the providers.
- Provide a JFrog URL and token through a ClusterProviderConfig.
- Create Kubernetes objects such as LocalDockerV2Repository, User, Project, or SecurityPolicy.
Each object acts as a managed resource. For each managed resource, the provider does the following:
- Creates the matching JFrog object.
- Updates the object when the manifest changes.
- Reverts changes made outside Kubernetes (drift).
- Deletes the object when the Kubernetes object is deleted (unless configured otherwise).
Conditions and events on each object report whether JFrog accepted the configuration.
Conventions
- Examples use namespace
team-aand a ClusterProviderConfig namedjfrog. - Values in angle brackets, such as
<access-token>, are placeholders. - A Kind is a Kubernetes resource type.
- Namespaced Kinds live in API groups ending in
.m.crossplane.io(recommended). - Legacy cluster-scoped variants use groups ending in
.crossplane.io. - Field names use the manifest (camelCase) form, for example
xrayIndex. Upstream JFrog Terraform documentation uses snake_case (xray_index) for the same fields. - Use fully-qualified names with kubectl. Several providers share these short names: Group, User, Permission, Role, Repository, and Webhook. Fully-qualified names avoid this ambiguity. For example:
kubectl get localnpmrepositories.repository.artifactory.m.crossplane.io -n team-aPages in This Section
Get Started
- Get Started with the JFrog Crossplane Providers: Get a working install that you have verified.
- Install the JFrog Crossplane Providers: Check the prerequisites, install Crossplane, and deploy the providers.
- Configure Credentials for the JFrog Crossplane Providers: Connect the providers to your JFrog Platform and tune their behavior.
- Verify the JFrog Crossplane Providers: Create and delete a test repository.
How the Providers Work
- How the JFrog Crossplane Providers Work: Learn the building blocks, the reconcile loop, conditions, and identifiers.
Manage JFrog Objects
- Manage JFrog Objects with Crossplane: Create, update, adopt, pause, and delete JFrog objects safely.
- Best Practices for the JFrog Crossplane Providers: Plan naming, apply order, ownership, multi-tenancy, and GitOps.
- Set Up JFrog Identity and Projects with Crossplane: Create users, groups, roles, projects, and environments.
- Create Repositories and Xray Policies with Crossplane: Create repositories, permissions, cleanup policies, and Xray policies.
- Configure GitHub Actions OIDC and Safe Teardown with Crossplane: Set up passwordless GitHub Actions and tear down objects in order.
Operate the Providers
- Operate the JFrog Crossplane Providers: Upgrade, troubleshoot, and uninstall the providers.
- Upgrade the JFrog Crossplane Providers: Move the providers and Crossplane to a new version.
- Troubleshoot the JFrog Crossplane Providers: Triage provider and managed resource issues.
- Uninstall the JFrog Crossplane Providers: Remove the providers in the required order.
Kinds Reference
- JFrog Crossplane Kinds Reference: Read a reference entry and find the Kinds of each provider.
- Artifactory Provider Kinds: Look up the Kinds of provider-artifactory.
- Xray Provider Kinds: Look up the Kinds of provider-xray.
- Project Provider Kinds: Look up the Kinds of provider-project.
- Platform Provider Kinds: Look up the Kinds of provider-platform.
Updated about 1 hour ago
