Providers allow Upbound to provision infrastructure on an external service. Providers handle communication between your Upbound control plane and the external resource, like AWS, GCP or Azure. Providers capture the external resources they can create as an API endpoint and result in managed resources.
Upbound Marketplace
The Upbound Marketplace is the central repository for provider information. Review your provider reference documentation here to determine what specific resources you need to create or the provider family group to look for.
The Marketplace contains three provider tiers:
Provider Level | Description |
---|---|
Upbound Official | Developed, maintained, and fully supported by Upbound. They undergo testing, security audits, and follow Upbound’s best practices to ensure high reliability and enterprise-grade support. |
Partner 🏅 | Developed and maintained by trusted partners in collaboration with Upbound. They follow best practices and have some level of verification, but the partner provides long-term maintenance and support. |
Community 🌍 | Developed and maintained by the open source community. They may not be officially verified by Upbound, and their maintenance and support depend on community contributors. |
Provider families
The Marketplace segments the AWS, Azure, and GCP providers into distinct resource areas
called provider families. For instance, the provider-family-aws
handles the
ProviderConfig
for your deployments, but sub-providers like provider-aws-s3
manages individual S3 resources. When you install a sub-provider, the
root family provider is also installed automatically.
Install a Provider
You can install providers into your control plane project as a dependency or you can use Helm to deploy directly to an Upbound control plane.
up
CLI
In your control plane project file, you can add your providers with the up add dependency
command.
up add dependency xpkg.upbound.io/upbound/provider-aws-s3:v1.16.0
In your upbound.yaml
file, the provider information is in the
spec.dependsOn
value:
apiVersion: meta.dev.upbound.io/v1alpha1
kind: Project
metadata:
name: <projectName>
spec:
dependsOn:
- provider: xpkg.upbound.io/upbound/provider-aws-s3
version: v1.16.0
description: This is where you can describe your project.
license: Apache-2.0
maintainer: Upbound User <user@example.com>
readme: |
This is where you can add a readme for your project.
repository: xpkg.upbound.io/<userOrg>/<userProject>
Control plane creation
You can manually install a provider in your control plane with a Provider
manifest and kubectl apply
.
cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-aws-s3
spec:
package: xpkg.upbound.io/upbound/provider-aws-s3:<version>
EOF