Project Provider Kinds
Look up the fields, identifiers, and caveats of every Kind in the JFrog Crossplane Project provider.
This page lists every Kind of the provider-project package releases-authenticated-docker.jfrog.io/jfrog/crossplane-provider-project:v0.0.1. The package requires registry credentials. For more information, see Install the JFrog Crossplane Providers. The provider configuration API group is project.m.crossplane.io. The provider has 8 Kinds, all version v1alpha1.
The apiVersion of each Kind is <group>/v1alpha1. The legacy cluster-scoped variant drops .m from the group. For more information about how to read an entry, see JFrog Crossplane Kinds Reference.
Projects and Environments
JFrog Projects and their environments. API group project.project.m.crossplane.io, 2 Kinds.
Environment
Creates a new environment for the specified project.
- kubectl:
environments.project.project.m.crossplane.io. - Identifier:
metadata.nameis thename. - Upstream:
project_environment. - Fields: required
projectKey. - Immutable:
projectKey. - References:
projectKeyReftoProject. - The API stores the environment as
<projectKey>-<name>. The combined length must be at most 32 characters. - Delete environments before their project. After the project is gone, the environment refresh fails with
Could not find projectand the finalizer never clears. projectKeyis immutable.
Project
Provides an Artifactory project resource.
- kubectl:
projects.project.project.m.crossplane.io. - Identifier:
metadata.nameis thekey. - Upstream:
project_project. - Fields: required
displayName. Optional:adminPrivileges,blockDeploymentsOnLimit,description,emailNotification,group,maxStorageInGibibytes,member,repos,role,useProjectGroupResource,useProjectRepositoryResource,useProjectRoleResource,useProjectUserResource. metadata.nameis the project key: 2-32 lowercase alphanumeric or hyphen characters, starting with a letter.displayNameis the human-readable name.- Requires an access token with the Administer the Platform permission (or Project Admin with
adminPrivileges.manageResources). - Deletion removes the project and everything assigned to it. Deletion is slow and can take several minutes. Delete the project last, after environments, roles, member assignments, and repository assignments.
- Choose keys that you own exclusively. If you adopt a generic key such as
myprojecton a shared JFrog Platform, deleting the managed resource deletes the project of someone else.
Project Roles and Membership
Custom project roles, and assignment of existing users and groups to a project. API group access.project.m.crossplane.io, 3 Kinds.
Group
Add a group as a project member.
- kubectl:
groups.access.project.m.crossplane.io. - Identifier:
metadata.nameis thename. - Upstream:
project_group. - Fields: required
projectKey,roles. - Immutable:
projectKey. - References:
projectKeyReftoProject. - Assignment only:
metadata.namemust be the name of an existing Artifactory or Platform group. This Kind adds the group to the project withroles. It doesn't create the group. - For some fields, updates have no effect.
nameandprojectKeyare immutable.
Role
Create a project role.
- kubectl:
roles.access.project.m.crossplane.io. - Identifier:
metadata.nameis thename. - Upstream:
project_role. - Fields: required
actions,environments,projectKey,type. - Immutable:
projectKey. - References:
projectKeyReftoProject. - Creates a custom project role.
environmentsmust name environments that exist in the project (for example,DEV,PROD, or a custom<projectKey>-<env>). nameandprojectKeyare immutable.
User
Add a user as a project member.
- kubectl:
users.access.project.m.crossplane.io. - Identifier:
metadata.nameis thename. - Upstream:
project_user. - Fields: required
projectKey,roles. Optional:ignoreMissingUser. - Immutable:
projectKey. - References:
projectKeyReftoProject. - Assignment only:
metadata.namemust be an existing user. This Kind adds the user to the project withroles. nameandprojectKeyare immutable.
Repository Assignment and Sharing
Assign repositories to a project and share them with other projects. These Kinds can't be updated: delete and recreate them. API group repository.project.m.crossplane.io, 3 Kinds.
Repository
Assign a repository to a project.
- kubectl:
repositories.repository.project.m.crossplane.io. - Identifier:
metadata.nameis thekey. - Upstream:
project_repository. - Fields: required
projectKey. - Immutable:
projectKey. - References:
projectKeyReftoProject. - Assignment only:
metadata.nameis the key of an existing Artifactory repository. You can assign a repository to only one project at a time. - Updates aren't supported (upstream returns an
Update not supportedwarning), and every field is immutable. To move a repository, delete and recreate the managed resource.
ShareRepository
Share a local or remote repository with a list of projects.
- kubectl:
sharerepositories.repository.project.m.crossplane.io. - Identifier: composite
<repoKey>:<targetProjectKey>. - Upstream:
project_share_repository. - Fields: required
repoKey,targetProjectKey. Optional:readOnly. - Immutable:
repoKey,targetProjectKey,readOnly. - References:
targetProjectKeyReftoProject. - Requires Artifactory 7.90.1 or later.
readOnlyrequires Artifactory 7.94.0 or later. - Every field is immutable, because updates have no effect. The external name is
<repoKey>:<targetProjectKey>.
ShareRepositoryWithAll
Share a local or remote repository with all projects.
- kubectl:
sharerepositorywithalls.repository.project.m.crossplane.io. - Identifier: spec field
repoKey.metadata.nameis free. - Upstream:
project_share_repository_with_all. - Fields: required
repoKey. Optional:readOnly. - Immutable:
repoKey,readOnly. - Requires Artifactory 7.90.1 or later. Shares the repository with every project.
- Every field is immutable. The external name is the repository key.
Next Steps
- To create a project, an environment, a role, and project membership from these Kinds, see Set Up JFrog Identity and Projects with Crossplane.
- To learn how to create, update, adopt, and delete managed resources, see Manage JFrog Objects with Crossplane.
- To look up the Kinds of the other providers, see JFrog Crossplane Kinds Reference.
- If a managed resource doesn't become ready, see Troubleshoot the JFrog Crossplane Providers.
Updated about 1 hour ago
