This repository contains a Crossplane configuration, tailored for users establishing their initial control plane with Upbound. This configuration deploys fully managed Amazon Elastic Kubernetes Service (EKS) instances, leveraging the robust capabilities of the Upbound Official AWS Provider.
The core components of a custom API in Crossplane include:
- CompositeResourceDefinition (XRD): Defines the API's structure.
- Composition(s): Implements the API by orchestrating a set of Crossplane managed resources.
In this configuration, the EKS API contains:
- an EKS custom resource type.
- Composition of the EKS resources: Configured in /apis/composition.yaml, it provisions an EKS cluster and fundamental security and networking resources in the
upbound-system
namespace.
To deploy this configuration into a new Crossplane installation, use the --set configuration.packages
flag in your helm install
command.
apiVersion: pkg.crossplane.io/v1
kind: Configuration
metadata:
name: configuration-aws-eks
spec:
package: xpkg.upbound.io/upbound/configuration-aws-eks:v0.12.0
This repository serves as a foundational step. To enhance your control plane, consider:
- create new API definitions in this same repo
- editing the existing API definition to your needs
Upbound will automatically detect the commits you make in your repo and build the configuration package for you. To learn more about how to build APIs for your managed control planes in Upbound, read the guide on Upbound's docs.
make render
target automates the rendering of Crossplane manifests using specified annotations within your YAML files.
The annotations guide the rendering process, specifying paths to composition, function, environment, and observe files.
The make render
target relies on specific annotations in your YAML files to determine how to process each file.
The following annotations are supported:
render.crossplane.io/composition-path: Specifies the path to the composition file to be used in rendering.
render.crossplane.io/function-path: Specifies the path to the function file to be used in rendering.
render.crossplane.io/environment-path (optional): Specifies the path to the environment file. If not provided, the rendering will proceed without an environment.
render.crossplane.io/observe-path (optional): Specifies the path to the observe file. If not provided, the rendering will proceed without observation settings.
apiVersion: aws.platform.upbound.io/v1alpha1
kind: XEKS
metadata:
name: configuration-aws-eks
annotations:
render.crossplane.io/composition-path: apis/pat/composition.yaml
render.crossplane.io/function-path: examples/functions.yaml
spec:
parameters:{}