Upbound repositories lets you centrally store control plane artifacts, extensions, and build dependencies as part of an integrated Upbound experience.
This guide shows you how to:
- Create a repository on Upbound
- Build and push a Crossplane package to a repository
- Publish the package in the repository to the Marketplace for public consumption
Prerequisites
For this guide, you’ll need:
- The up CLI installed
- An account on Upbound
Create a repository
Create a repository to store the Configuration created as part of this guide.
- Run the following command to create a new repository named
quickstart-project-repo
:
up repository create quickstart-project-repo
- Verify your repository exists with the
up repository list
command:
up repository list
- Open the Repositories page in the Upbound Console.
- Select
Create Repository
. - Name the repository
quickstart-project-repo
. - Select Create.
The repository list now shows your new repository.
Build a package
Build a package using up xpkg build
.
The up xpkg build
command expects a crossplane.yaml
file to provide the metadata for the package file.
The default name is the metadata.name
value in the crossplane.yaml
file.
up xpkg build
xpkg saved to /home/vagrant/pkg/test-config-15ab02d92a30.xpkg
Provide a specific package name with up xpkg build --name <package name>
.
By default up xpkg build
saves the package to the current directory. Specify a specific location with up xpkg build -o <path>
.
The up xpkg build
command reference contains all available options.
Push a package to the repository
Push a package to the Upbound Marketplace using the up xpkg push
command.
The up xpkg push
command requires:
- The repository to push a package to.
- A package version tag. The package version tag is a semantic versioning number determining package upgrades and dependency requirements.
The push command syntax is
up xpkg push <repository>:<version tag> -f <xpkg file>
.
For example, to push a package with the following parameters:
- Repository
upbound-docs/my-repo
- Version
v0.2
- Package file named
my-package.xpkg
Use the following up xpkg push
command:
up xpkg push upbound-docs/my-repo:v0.2 -f my-package.xpkg
xpkg pushed to upbound-docs/my-repo:v0.2
The package is now available from the Upbound Marketplace. View the Marketplace listing at:
https://marketplace.upbound.io/<package_type>/<organization or user>/<repository>/
For example, the Upbound AWS Official Provider is a provider
package in the upbound
organization’s provider-aws
repository. The package address is https://marketplace.upbound.io/providers/upbound/provider-aws/
Publishing public packages
Upbound reviews all public packages, and new repositories have a default publishing policy of requiring a one-time manual approval. Contact the Upbound team via the #upbound
channel in the Crossplane Slack to request Upbound to review your package.
Upbound needs the following information before considering a package:
- Public Git repository of the package.
- The Upbound account to list as an owner and point of contact.
- The Upbound repository name.
Publish status indicates whether a package version appears in the Marketplace, while privacy indicates who can access it.
Published | Not Published | |
---|---|---|
Public | Pull: Anyone View: Anyone | Pull: Anonymous View: No one |
Private | Pull: Authorized View: Authorized | Pull: Authorized View: No one |
Troubleshooting
Add annotations to your package
The Upbound Marketplace automatically renders specific metadata annotations into listing pages. Upbound recommends that all package maintainers add these annotations into their crossplane.yaml
. Adding annotations ensures listing have all the required information like licenses, links to source code, and contact information for maintainers.
Upbound supports all annotations specified in the xpkg specification.