From 2abe8dc72bf8a4a420c81e33b08f0b22a096e418 Mon Sep 17 00:00:00 2001 From: Christopher Haar Date: Wed, 31 Jan 2024 21:32:44 +0100 Subject: [PATCH] feat(composition): integration of composition and examples Signed-off-by: Christopher Haar --- README.md | 160 ++++++++++++++- apis/composition.yaml | 283 ++++++++++++++++++++++++++ apis/definition.yaml | 205 +++++++++++++++++++ crossplane.yaml | 5 +- examples/castai-default-provider.yaml | 11 + examples/cluster.yaml | 37 ++++ 6 files changed, 699 insertions(+), 2 deletions(-) create mode 100644 apis/composition.yaml create mode 100644 apis/definition.yaml create mode 100644 examples/castai-default-provider.yaml create mode 100644 examples/cluster.yaml diff --git a/README.md b/README.md index dfcfe4c..f7093f4 100644 --- a/README.md +++ b/README.md @@ -1 +1,159 @@ -# platform-ref-aws-castai +# Platform Reference Architecture for AWS EKS with CASTAI + +This repo provides a configuration for AWS EKS with CASTAI, built on top of Crossplane. This configuration exposes a simple API to your internal developers for creating Kubernetes clusters. In the background, this configuration can create clusters in AWS. It automatically applies common recommended practices, such as connecting the cluster to existing Flux deployments, automating VPC setup, and creating a Flux operator in a cluster and uses CASTAI as cluster autoscaler. + +This repo is a starting point for you to deliver your own Cluster-as-a-Service. Fork this repository and customize the configuration to meet your teams' needs. + +Advantages of Cluster-as-a-Service: + +- GitOps workflow +- Production-ready template +- Scalable architecture +- CASTAI cluster autoscaler +- Product agnostic approach + +## Quickstart + +To deploy in a new organization, follow the [Get Started guide](https://docs.upbound.io/quickstart/). + +For deployments to an existing organization, log in to your Upbound organization +and go to **Configurations** and click **Create Configuration**. + +Connect your Upbound organization to GitHub. Select the Github organization and +repository name for your cloned repo and choose the **platform-ref-aws-castai** configuration. + +When your new configuration is ready, create a new control plane based on the +cloned repo you just created. + +After a few minutes, your new control plane is ready! + +Once authenticated and configured, your self-service Upbound console lists +available cloud resources. + +### Prerequisites + +- CAST AI account +- CAST AI Credentials +- AWS Credentials + +### Set up ProviderConfig for CASTAI + +Before we can use the reference configuration we need to configure it with CAST AI FullAccess API Access Key: +- Obtained CAST AI [API Access Key](https://docs.cast.ai/docs/authentication#obtaining-api-access-key) + +```console +# Create Secret with CAST AI API Access Key +cat <