Skip to content

Latest commit

 

History

History
112 lines (77 loc) · 5.04 KB

README.md

File metadata and controls

112 lines (77 loc) · 5.04 KB

configuration-getting-started

An introductory example to Crossplane and Compositions using provider-nop. This will enable provisioning of several different fake resource types.

This repository contains a reference configuration for Crossplane. This configuration is built with provider-nop, a Crossplane provider that simulates the creation of external resources.

Overview

This platform offers APIs for setting up a variety of basic resources that mirror what you'd find in a Cloud Service Provider such as AWS, Azure, or GCP. The resource types include:

  • Cluster, a resource that loosely represents a Kubernetes cluster.
  • NodePool, a resource that loosely represents a Nodepool in a Kubernetes cluster.
  • Database, a resource that loosely represents a cloud database.
  • Network, a resource that loosely represents a cloud network resource.
  • Subnetwork, a resource that loosely represents a subnetwork resource within a cloud network.
  • Service Account, a resource that loosely represents a service account in the cloud.

This configuration also demonstrates the power of Crossplane to build abstractions called "compositions", which assemble multiple basic resources into a more complex resource. These are demonstrated with:

  • CompositeCluster, a resource abstraction that composes a cluster, nodepool, network, subnetwork, and service account.
  • AccountScaffold, a resource abstraction that composes a service account, network, and subnetwork.

Learn more about Composite Resources in the Crossplane Docs.

Quickstart

Prerequisites

Before we can install the reference platform we should install the up CLI. This is a utility that makes following this quickstart guide easier. Everything described here can also be done in a declarative approach - which we highly recommend for any production type use-case.

To install up run this install script:

curl -sL https://cli.upbound.io | sh

See up docs for more install options.

We need a running Crossplane control plane to install our instance. Use Upbound to create a managed control plane. You can create an account and start a free 30 day trial if you haven't signed up for Upbound before.

Install the Getting Started configuration

Now you can install this reference platform. It's packaged as a Crossplane configuration package so there is a single command to install it:

up ctp configuration install xpkg.upbound.io/upbound/configuration-getting-started:v0.1.0

Validate the install by inspecting the provider and configuration packages:

kubectl get providers,providerrevision

kubectl get configurations,configurationrevisions

Check the marketplace for the latest version of this platform.

Using the Getting Started configuration

🎉 Congratulations. You have just installed your first Crossplane-powered platform!

You can now use the managed control plane to request resources which will simulate getting provisioned in an external cloud service. You do this by creating "claims" against the APIs available on yuor control palne. In our example here we simply create the claims directly:

Create a custom defined cluster:

kubectl apply -f examples/XCluster/claim.yaml

Create a custom defined database:

kubectl apply -f examples/XDatabase/claim.yaml

You can verify the status by inspecting the claims, composites and managed resources:

kubectl get claim,composite,managed

To delete the provisioned resources you would simply delete the claims:

kubectl delete -f examples/XCluster/claim.yaml,examples/XDatabase/claim.yaml

To uninstall the provider & platform configuration:

kubectl delete configurations.pkg.crossplane.io configuration-getting-started

Next Steps

We recommend you check out of one of Upbound's platform reference architectures to learn how to use Crossplane to provision real external resources, such as in a Cloud Serice Provider's environment. Have a look:

Questions?

For any questions, thoughts and comments don't hesitate to reach out or drop by slack.crossplane.io, and say hi!