Git Product home page Git Product logo

foo's Introduction

Crossplane configuration for an Internal Cloud Platform on AWS

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 EC2 instances, EKS clusters, and PostgreSQL databases, 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.

What's Inside

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 VirtualMachine API is defined by:

  • a VirtualMachine type
  • the VirtualMachine is composed of an XVirtualMachine type.
  • Because the AMI required for the EC2 Instance is different depending on the AWS region selected, the XVirtualMachine uses a nested composition to select the appropriate configuration for the managed resource.

Finally, this configuration declares dependencies on configuration-eks and configuration-rds, which means the APIs and providers defined as part of those configurations will automatically get pulled in as part of this package. This demonstrates how you can separate APIs into their own packages and nest configurations together.

This repository also contains an example claim. You can apply this file on your control plane to invoke the VirtualMachine API and cause a virtual machine to be created

Next Steps

This repository is a starting point. You should be feel encouraged to:

  1. create new API definitions in this same repo
  2. tweak the existing API definition for VirtualMachine 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.

foo's People

Contributors

hasheddan avatar avalanche123 avatar cwilhit avatar

Watchers

Simon KP avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.