From da85ffecb62625b113d57e308811025fff4d17d1 Mon Sep 17 00:00:00 2001 From: Crossplane Date: Thu, 12 Sep 2019 23:06:38 +0000 Subject: [PATCH] docs snapshot for crossplane version `master` --- docs/master/gitlab/gitlab-aws.md | 37 +++++++++++++++++-------------- docs/master/gitlab/gitlab-gcp.md | 2 +- docs/master/install-crossplane.md | 31 ++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 18 deletions(-) diff --git a/docs/master/gitlab/gitlab-aws.md b/docs/master/gitlab/gitlab-aws.md index d48bab7a..6364f965 100644 --- a/docs/master/gitlab/gitlab-aws.md +++ b/docs/master/gitlab/gitlab-aws.md @@ -26,8 +26,11 @@ The following components are dynamically provisioned and configured during this Follow [GitLab instruction](https://docs.gitlab.com/charts/installation/cloud/eks.html#scripted-cluster-creation) to create and bootstrap EKS Kubernetes cluster ### Crossplane + Using the newly provisioned cluster: -- Install Crossplane from master helm channel using the [Crossplane Installation Guide](../install-crossplane.md#master) + +- Install Crossplane from master channel using the [Crossplane Installation Guide](../install-crossplane.md#master) +- Install the AWS stack into Crossplane using the [AWS stack section](../install-crossplane.md#aws-stack) of the install guide. - Obtain [Cloud Provider Credentials](../cloud-providers.md) #### Region @@ -54,16 +57,16 @@ sed -e "s|REGION|$REGION|g;s|BASE64ENCODED_AWS_PROVIDER_CREDS|`base64 ~/.aws/cre kubectl get providers.aws.crossplane.io -n crossplane-system kubectl get secrets -n crossplane-system ``` - - - You should see output similar to: - + + - You should see output similar to: + ```bash NAME PROJECT-ID AGE demo-aws your-project-123456 11m NAME TYPE DATA AGE default-token-974db kubernetes.io/service-account-token 3 2d16h demo-aws-creds Opaque 1 103s - ``` + ``` #### Create an RDS subnet group 1. Navigate to the aws console in same region as the EKS cluster @@ -117,9 +120,9 @@ This is for **EXAMPLE PURPOSES ONLY** and is **NOT RECOMMENDED** for production ```console export REDIS_SUBNET_GROUP=replace-me-with-redis-subnet-group -``` +``` + - #### Resource Classes Create Crossplane Resource Class needed to provision managed resources for GitLab applications @@ -131,7 +134,7 @@ sed -e "s|REDIS_SECURITY_GROUP|$REDIS_SECURITY_GROUP|g;s|REDIS_SUBNET_GROUP|$RED resourceclass.core.crossplane.io/standard-aws-bucket created resourceclass.core.crossplane.io/standard-aws-postgres created resourceclass.core.crossplane.io/standard-aws-redis created -``` +``` Verify @@ -156,7 +159,7 @@ kubectl create -Rf cluster/examples/gitlab/aws/resource-claims/ ``` ``` postgresqlinstance.database.crossplane.io/gitlab-postgresql created -rediscluster.cache.crossplane.io/gitlab-redis created +rediscluster.cache.crossplane.io/gitlab-redis created bucket.storage.crossplane.io/gitlab-artifacts created bucket.storage.crossplane.io/gitlab-backups-tmp created bucket.storage.crossplane.io/gitlab-backups created @@ -168,7 +171,7 @@ bucket.storage.crossplane.io/gitlab-registry created bucket.storage.crossplane.io/gitlab-uploads created ``` -Verify that the resource claims were successfully provisioned. +Verify that the resource claims were successfully provisioned. ```bash kubectl get -f cluster/examples/gitlab/aws/resource-claims/postgres.yaml kubectl get -f cluster/examples/gitlab/aws/resource-claims/redis.yaml @@ -210,9 +213,9 @@ gitlab-uploads Bound standard-aws-bucket What we are looking for is for `STATUS` value to become `Bound` which indicates the managed resource was successfully provisioned and is ready for consumption ##### Resource Claims Connection Secrets -Verify that every resource has created a connection secret +Verify that every resource has created a connection secret ```bash -kubectl get secrets -n default +kubectl get secrets -n default ``` ``` NAME TYPE DATA AGE @@ -281,7 +284,7 @@ secret/bucket-pseudonymizer created secret/bucket-registry created secret/bucket-uploads created -``` +``` ## Install Render the official GitLab Helm chart with the generated values files, and your settings into a `gitlab-aws.yaml` file. @@ -316,12 +319,12 @@ kubectl get jobs,deployments,statefulsets It usually takes few minutes for all GitLab components to get initialized and be ready. -Note: During the initialization "wait", some pods could automatically restart, but this should stabilize once all the +Note: During the initialization "wait", some pods could automatically restart, but this should stabilize once all the dependent components become available. Note: There also could be intermittent `ImagePullBackOff`, but those, similar to above should clear up by themselves. -Note: It appears the `gitlab-demo-unicorn-test-runner-*` (job/pod) will Error and will not re-run, unless the pod is resubmitted. +Note: It appears the `gitlab-demo-unicorn-test-runner-*` (job/pod) will Error and will not re-run, unless the pod is resubmitted. After few minutes your output for: ```bash @@ -353,7 +356,7 @@ gitlab-demo-unicorn-6dd757db97-nmglt 2/2 Running gitlab-demo-unicorn-test-runner-f2ttk 0/1 Error 0 9m ``` -Note: if `ImagePullBackOff` error Pod does not get auto-cleared, consider deleting the pod. +Note: if `ImagePullBackOff` error Pod does not get auto-cleared, consider deleting the pod. A new pod should come up with "Running" STATUS. ## Use @@ -406,7 +409,7 @@ kubectl get -Rf cluster/examples/gitlab/aws/resource-claims ``` Note: typically it may take few seconds for Crossplane to process the request. By running resource and provider removal in the same command or back-to-back, we are running the risk of having orphaned resource. -I.E., a resource that could not be cleaned up because the provider is no longer available. +I.E., a resource that could not be cleaned up because the provider is no longer available. Delete all resource classes: ```bash diff --git a/docs/master/gitlab/gitlab-gcp.md b/docs/master/gitlab/gitlab-gcp.md index 7b18aeb6..0f3ba3c8 100644 --- a/docs/master/gitlab/gitlab-gcp.md +++ b/docs/master/gitlab/gitlab-gcp.md @@ -27,8 +27,8 @@ kubectl config get-contexts kubectl config set-context [your-cluster-context] ``` - ### Crossplane + Using the newly provisioned cluster: - Install Crossplane from master channel using the [Crossplane Installation Guide](../install-crossplane.md#master) diff --git a/docs/master/install-crossplane.md b/docs/master/install-crossplane.md index 76ebd86f..fa2bc283 100644 --- a/docs/master/install-crossplane.md +++ b/docs/master/install-crossplane.md @@ -80,6 +80,31 @@ Then you can install the GCP stack into Crossplane in the `gcp` namespace with t kubectl apply -f stack-gcp.yaml ``` +### AWS Stack + +To get started with Amazon Web Services (AWS), create a file named `stack-aws.yaml` with the following content: + +```yaml +apiVersion: v1 +kind: Namespace +metadata: + name: aws +--- +apiVersion: stacks.crossplane.io/v1alpha1 +kind: StackRequest +metadata: + name: stack-aws + namespace: aws +spec: + package: "crossplane/stack-aws:master" +``` + +Then you can install the AWS stack into Crossplane in the `aws` namespace with the following command: + +```console +kubectl apply -f stack-aws.yaml +``` + ### Azure Stack To get started with Microsoft Azure, create a file named `stack-azure.yaml` with the following content: @@ -119,6 +144,12 @@ depending on which cloud provider you are removing, to remove its stack from Cro kubectl delete -f stack-gcp.yaml ``` +#### Uninstalling AWS + +```console +kubectl delete -f stack-aws.yaml +``` + #### Uninstalling Azure ```console