Creating and Pushing Packages
This section covers creating and pushing packages to the Upbound Marketplace. For information about installing packages read the Crossplane Packages section.
Crossplane supports two package types, Configurations
and Providers
.
Configuration
packages combine Crossplane Composite Resource Definitions, Compositions and metadata.Provider
packages combine a Kubernetes controller container, associated Custom Resource Definitions (CRDs
) and metadata. The Crossplane open source AWS provider package is an example a provider’s metadata andCRDs
.
- Building and pushing packages require the
up
command-line. - Pushing packages requires an Upbound account.
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.
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.
Before pushing a package you must login to the Upbound Marketplace using up login
.
Upbound hosts packages in an Upbound repository. Create a repository with the up repository create
command.
For example, to create a repository called my-repo
All repositories are private by default.
View any existing repositories with up repository list
.
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 isup xpkg push <repoository>:<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:
You need to login to the Marketplace to see packages in private repositories.
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/
Upbound reviews all public packages. To request Upbound to make a package public email support@upbound.io or message the #Upbound channel in the Crossplane Slack.
Upbound needs the following information before considering a package:
- Public public Git repository of the package.
- The Upbound account to list as an owner and point of contact.
- The Upbound repository name.