Skip to content

Doc changes/crossplane #58

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions crossplane-integrations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,33 @@
Please use the below command to deploy an IDP reference implementation with an Argo application for preparing up the setup for terraform integrations:

```bash
idpbuilder create \
--use-path-routing \
--package https://github.com/cnoe-io/stacks//ref-implementation \
--package https://github.com/cnoe-io/stacks//crossplane-integrations
idpbuilder create --use-path-routing --package https://github.com/cnoe-io/stacks//ref-implementation --package https://github.com/cnoe-io/stacks//crossplane-integrations
```
## What is installed?

1. Crossplane Runtime
1. AWS providers
1. Basic Compositions

This needs your credentials for this to work. Follow the Crossplane installation documentation on how to add your credentials.
> [!NOTE]
> [Using the reference](https://github.com/cnoe-io/stacks/blob/main/ref-implementation/README.md#using-it) example explains how to use each UI's that idpbuilder creates from the reference implementation. Make sure each ArgoCD application is synced and healthy before proceeding.

## Application with cloud resources.

With this integration, we can deploy an application with cloud resources using Backstage templates from the reference implementation, together with Crossplane integrations.
## Preparing to use Crossplane

In this example, we will create an application with a S3 Bucket.
With this integration, we can deploy an application with cloud resources using Backstage templates from the reference implementation, together with Crossplane integrations. Before doing so the credentials file needs to updated and applied to the cluster to allow Crossplane to deploy cloud resources on your behalf. To do so you need to update [the credentials secret file](crossplane-providers/provider-secret.yaml), with your user credentials then apply the updated file to the cluster using:
`kubectl apply -f provider-secret.yaml`

If you do not currently have an IAM user with permissions to deploy resources follow these [instructions](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) to create one and apply the proper permissions. For testing purposes the admin permissions should be sufficient; make sure to follow best practice of least-privilege permissions in production.

Choose a template named `App with S3 bucket`, type `demo3` as the name, then choose a region to create this bucket in.
## Creating app with cloud resources
In this example, we will create an application with a S3 Bucket.

Once you click the create button, you will have a very similar setup as the basic example.
The only difference is we now have a resource for a S3 Bucket which is managed by Crossplane.
Choose a template that mentions `with AWS resources`, type `demo3` as the name, then choose a region to create this bucket in.

Note that Bucket is **not** created because Crossplane doesn't have necessary credentials to do so.
If you'd like it to actually create a bucket, update [the credentials secret file](crossplane-providers/provider-secret.yaml), then run `idpbuilder create --package https://github.com/cnoe-io/stacks//ref-implementation`.
Once you click the create button, you will have a very similar setup as the [basic example](https://github.com/cnoe-io/stacks/tree/main/ref-implementation#basic-deployment).
The only difference is we now have a resource for a S3 Bucket with kind ObjectStorage which is managed by Crossplane.

In this example, we used Crossplane to provision resources, but you can use other cloud resource management tools such as Terraform instead.
> [!NOTE]
>In this example, we used Crossplane to provision resources, but you can use other cloud resource management tools such as [Terraform](../terraform-integrations/README.md) instead. If you want to explore a local option, take a look at the [localstack](../localstack-integration/README.md). Regardless of your tool choice, concepts are the same. We use Backstage as the templating mechanism and UI for users, then use Kubernetes API with GitOps to deploy resources.

Regardless of your tool choice, concepts are the same. We use Backstage as the templating mechanism and UI for users, then use Kubernetes API with GitOps to deploy resources.