This repository contains the definition for a Crossplane configuration that bundles a set of API definitions. This configuration is a starting point for new users who are creating their first control plane in Upbound.
When this configuration is installed on a control plane, the control plane will have APIs to provision fully configured Amazon Elastic Kubernetes Service (EKS) clusters with secure networking, composed using cloud service primitives from the Upbound Official AWS Provider. App deployments can securely connect to the infrastructure they need using secrets distributed directly to the app namespace.
A custom API in Crossplane is defined by:
- a CompositeResourceDefinition (XRD). This defines the schema or shape of the API.
- A Composition(s). Compositions implement the schema by composing a set of Crossplane managed resources together.
For this configuration, the EKS API is defined by:
- a KubernetesCluster type
- the KubernetesCluster is composed of an XNetwork and XEKS types.
- the XNetwork is composed of a the following resources: a VPC, InternetGateway, 4 Subnets, a RouteTable, Routes, 5 RouteTableAssociations, a SecurityGroup, and 2 security group role.
- the XEKS is composed of the following resources: Cluster, a NodeGroup, an OpenIDConnectProvider, 2 Roles, 4 RolePolicyAttachments, and ClusterAuth.
This repository also contains an example claim. You can apply this file on your control plane to invoke the EKS API and cause a cluster to be created.
This repository is a starting point. You should be feel encouraged to:
- create new API definitions in this same repo
- tweak the existing API definition for EKS 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.