{"id":18332571,"url":"https://github.com/tigera-solutions/cc-rancher-ec2-tf-stack","last_synced_at":"2026-04-30T10:09:27.192Z","repository":{"id":153125810,"uuid":"521287293","full_name":"tigera-solutions/cc-rancher-ec2-tf-stack","owner":"tigera-solutions","description":"This repository brings the Terraform code for building an AWS infrastructure, deploying the Rancher GUI and  spin up a RKE cluster on AWS EC2 instances. With the basics in place, we go through the installation of the Online Boutique application and how to connect your RKE cluster to Calico Cloud.","archived":false,"fork":false,"pushed_at":"2022-09-21T20:50:34.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-15T11:19:58.275Z","etag":null,"topics":["aws","calico-cloud","demo","rancher","regismartins","rke","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tigera-solutions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-04T13:56:14.000Z","updated_at":"2023-08-01T12:09:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"c728dfed-3105-4c16-a50d-d49a528317d1","html_url":"https://github.com/tigera-solutions/cc-rancher-ec2-tf-stack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigera-solutions%2Fcc-rancher-ec2-tf-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigera-solutions%2Fcc-rancher-ec2-tf-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigera-solutions%2Fcc-rancher-ec2-tf-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tigera-solutions%2Fcc-rancher-ec2-tf-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tigera-solutions","download_url":"https://codeload.github.com/tigera-solutions/cc-rancher-ec2-tf-stack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248089404,"owners_count":21045898,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","calico-cloud","demo","rancher","regismartins","rke","terraform"],"created_at":"2024-11-05T19:39:25.474Z","updated_at":"2026-04-30T10:09:22.167Z","avatar_url":"https://github.com/tigera-solutions.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"![cc-rancher-ec2-tf-stack](https://user-images.githubusercontent.com/104035488/183506194-23b9f298-8c0c-44dd-81b4-eb8f0929945c.png)\n\n# Calico Cloud Trial on Rancher using Terraform on AWS.\n\n[![Tigera][tigera.io-badge]][tigera.io] [![Amazon Web Services][aws-badge]][aws.link] [![Terraform][terraform-badge]][terraform.io] [![Rancher][rancher-badge]][rancher.link]\n\nThis repository was built to speed up the process of creating a Rancher server and a RKE cluster for Calico Cloud trial. It provides the steps to create a RKE (Rancher Kubernetes Engine) cluster through a Rancher server on AWS using EC2 instances. Also, you can find here the steps for deploying the [Online Boutique](https://github.com/GoogleCloudPlatform/microservices-demo) as an example application, and connecting your cluster to Calico Cloud.\n\n\n## The Terraform Code\n\nThis section will guide you through the initial steps of setting up a RKE cluster using Rancher on AWS EC2 instances.\nThe Terraform code presented here consists of a stack with 3 layers:\n \n- AWS Infrastructure\n- Rancher Server\n- RKE Cluster\n\nEach layer has a Terraform code for a specific task and it is built on the top of the previous layer. This layer segmentation will help if you want partially destroy the infrastructure later on.\n\n\n## Pre-requisites\n\n\u003eThe following applications should be installed on your computer:\n\u003e- git\n\u003e- aws cli\n\u003e- terraform \n\u003e- kubectl\n\u003e- k9s (optionally)\n\n\n## Using Terraform to build the infrastucture\n\nThis section will explain how to run the Terraform code and what are the expected results:\n\n1. The next step is to clone this git repository:\n\n```bash\ngit clone https://github.com/regismartins/cc-rancher-ec2-tf-stack.git\n```\nAfter cloning the repository, your working directory will look like the following:\n\n```bash\ncc-rancher-ec2-tf-stack\n├── README.md\n├── aws-infra\n│   ├── aws_infra.tf\n│   ├── data.tf\n│   ├── outputs.tf\n│   └── terraform.tf\n├── common\n│   ├── output.tf\n│   └── variables.tf\n├── rancher-server\n│   ├── bootstrap.tf\n│   ├── data.tf\n│   ├── helm.tf\n│   ├── k3s.tf\n│   ├── output.tf\n│   └── terraform.tf\n└── rke-cluster\n    ├── data.tf\n    ├── output.tf\n    ├── rke.tf\n    ├── terraform.tf\n    └── variables.tf\n```\n\n2. The variables to be used across all layers are in the the `variables.tf` in the `common` folder. They are loaded as a module.\nThe first step is to customize the variables for your environment.\nThe following table describes the variables:\n\n| Variable | Description | Default Value |\n| --- | --- | --- |\n| owner | Name to be used in the Owner tag of the AWS resources | Regis Martins |\n| prefix | The prefix will precede all the resources to be created for easy identification | regis |\n| aws_region | AWS region to be used in the deployment | ca-central-1 |\n| aws_az | AWS availability zone to be used in the deployment | b |\n| vpc_cidr | VPC CIDR for the EC2 instances | 100.0.0.0/16 |\n| instance_type | Instance type used for Rancher server EC2 instance | t3a.medium |\n| hosted_zone | The hosted zone domain to be used for the Rancher server | tigera.rocks |\n| domain_prefix |Domain prefix of the Rancher server. https://domain_prefix.hosted_zone (ie: https://rancher.tigera.rocks) | rancher |\n| rancher_kubernetes_version | Kubernetes version to use for Rancher server cluster | v1.22.9+k3s1 |\n| cert_manager_version | Version of cert-manager to install alongside Rancher (format: 0.0.0) | 1.7.1 |\n| rancher_version | Rancher server version (format: v0.0.0) | 2.6.5 |\n| admin_password | Password to be defined for the admin user by the bootstrap (12 char. minimum) | rancherpassword |\n| workload_kubernetes_version | Kubernetes version to use for managed RKE cluster | v1.22.10-rancher1-1 | \n| rancher_cluster_name | Prefix for the RKE cluster| rke |\n| aws_access_key_id | export TF_VAR_aws_access_key_id = \u003cACCESS_KEY\u003e for the Rancher server to provision the RKE cluster | \"\" |\n| aws_secret_access_key | export TF_VAR_aws_secret_access_key = \u003cSECRET_KEY\u003e for the Rancher server to provision the RKE cluster | \"\" |\n\n\nAfter reviewing and customizing the variables, let's start applying the Terraform code beggining with the aws-infra, which will build the infrastructure on AWS.\n\n\n---\n\n\n### AWS Infrastructure (aws-infra)\n\nThe following elements will be created on AWS for the Rancher server installation:\n\n- VPC\n- Subnet\n- Internet Gateway\n- Default route\n- Security Group\n- TLS keys\n- EC2 Instance\n- Load Balancer\n- Hosted Zone Record\n- Certificate\n- IAM role and policy\n\n![aws-infra-rancher](https://user-images.githubusercontent.com/104035488/183460237-8ae29de1-3060-4f44-acd7-3c3c90ec2898.jpg)\n\n1. Change to the `aws-infra` folder.\n\n```sh\ncd ./cc-rancher-ec2-tf-stack/aws-infra\n```\n\n2. Lets now initiate the Terraform in the `aws-infra` directory.\n\n```sh\nterraform init\n```\n\nThe output should be something like the bellow\n```sh\n$ terraform init\nInitializing modules...\n- common in ../common\n\nInitializing the backend...\n\nInitializing provider plugins...\n- Finding hashicorp/aws versions matching \"4.18.0\"...\n- Finding hashicorp/local versions matching \"2.2.3\"...\n- Finding hashicorp/tls versions matching \"3.4.0\"...\n- Installing hashicorp/aws v4.18.0...\n- Installed hashicorp/aws v4.18.0 (signed by HashiCorp)\n- Installing hashicorp/local v2.2.3...\n- Installed hashicorp/local v2.2.3 (signed by HashiCorp)\n- Installing hashicorp/tls v3.4.0...\n- Installed hashicorp/tls v3.4.0 (signed by HashiCorp)\n\nTerraform has created a lock file .terraform.lock.hcl to record the provider\nselections it made above. Include this file in your version control repository\nso that Terraform can guarantee to make the same selections by default when\nyou run \"terraform init\" in the future.\n\nTerraform has been successfully initialized!\n\nYou may now begin working with Terraform. Try running \"terraform plan\" to see\nany changes that are required for your infrastructure. All Terraform commands\nshould now work.\n\nIf you ever set or change modules or backend configuration for Terraform,\nrerun this command to reinitialize your working directory. If you forget, other\ncommands will detect it and remind you to do so if necessary.\n$\n```\n\n3. Once the Terrafor has being successfully initialized in the `aws-infra` directory, you can apply the Terraform code.\n\n```sh\nterraform apply -auto-approve\n```\n\nGreat! Now you just need to wait until Terraform finishes the infrastructure creation process. This process may take about 5 minutes, on average.\nAt the end, the outputs will be like:\n\nYou don't need to remember them. They will be referred by the next modules.\n\n```sh\nApply complete! Resources: 22 added, 0 changed, 0 destroyed.\n\nOutputs:\n\naws_iam_profile_name = \"regis-rancher-profile\"\naws_security_group = \"regis-rancher-allow-all\"\naws_subnet_id = \"subnet-035c3d2350d89c030\"\nprivate_key = \u003csensitive\u003e\nrancher_server_private_ip = \"100.0.14.233\"\nrancher_server_public_ip = \"35.183.125.29\"\nrancher_url = \"rancher.tigera.rocks\"\nvpc_id = \"vpc-06e23cbacb3622e0d\"\n\n$\n```\n\nAfter all the resources has being successfully created, you can connect to the AWS console and check the resources that were created, if you will. They will have a prefix as you configured in the `variables.tf` file, in the common folder. Also, the following tags were included in all resources:\n\n```text\nEnvironment = \"rancher-workshop\"\nOwner       = \u003cowner_variable\u003e\nTerraform   = \"true\"\n```\n\nYou can change or add more tags by editing the `terraform.tf` file in the `aws-infra` folder.\n\nFor the next step, let's apply the Terraform code to build a Rancher server using the AWS infrastructure deployed here.\n\n---\n\n\n### Rancher Server (rancher-server)\n\nThis piece of Terraform code will install a Kubernetes K3s cluster in the EC2  instance previously deployed and use Helm charts to install the Certificate Manager (https://artifacthub.io/packages/helm/cert-manager/cert-manager) and the Rancher server itself. The final step is to bootstrap the Rancher server, changing the admin password to the value of the variable `admin_password` speficied in the `variable.tf` file in the `common` folder.\n\n1. Change to the `rancher-server` folder.\n\n```sh\ncd ../rancher-server\n```\n\n2. Lets now initiate the Terraform in the `rancher-server` directory.\n\n```sh\nterraform init\n```\n\nThe output should be something like the bellow\n```sh\n$ terraform init\nInitializing modules...\n- common in ../common\n\nInitializing the backend...\n\nInitializing provider plugins...\n- terraform.io/builtin/terraform is built in to Terraform\n- Finding hashicorp/helm versions matching \"2.5.1\"...\n- Finding rancher/rancher2 versions matching \"1.24.0\"...\n- Finding hashicorp/local versions matching \"2.2.3\"...\n- Finding loafoe/ssh versions matching \"2.0.1\"...\n- Installing hashicorp/local v2.2.3...\n- Installed hashicorp/local v2.2.3 (signed by HashiCorp)\n- Installing loafoe/ssh v2.0.1...\n- Installed loafoe/ssh v2.0.1 (self-signed, key ID C0E4EB79E9E6A23D)\n- Installing hashicorp/helm v2.5.1...\n- Installed hashicorp/helm v2.5.1 (signed by HashiCorp)\n- Installing rancher/rancher2 v1.24.0...\n- Installed rancher/rancher2 v1.24.0 (signed by a HashiCorp partner, key ID 2EEB0F9AD44A135C)\n\nPartner and community providers are signed by their developers.\nIf you\\'d like to know more about provider signing, you can read about it here:\nhttps://www.terraform.io/docs/cli/plugins/signing.html\n\nTerraform has created a lock file .terraform.lock.hcl to record the provider\nselections it made above. Include this file in your version control repository\nso that Terraform can guarantee to make the same selections by default when\nyou run \"terraform init\" in the future.\n\nTerraform has been successfully initialized!\n\nYou may now begin working with Terraform. Try running \"terraform plan\" to see\nany changes that are required for your infrastructure. All Terraform commands\nshould now work.\n\nIf you ever set or change modules or backend configuration for Terraform,\nrerun this command to reinitialize your working directory. If you forget, other\ncommands will detect it and remind you to do so if necessary.\n$\n```\nIf you will, you can optionaly set an environment variable to be used as the password by the bootstrap process. If this variable is not set, the variable configured in the common module will be used. This is optional\n\n```sh\nexport TF_VAR_admin_password=\u003cadmin_password\u003e\n```\n\n3. Once the Terrafor has being successfully initialized in the `rancher-server` directory, you can apply the Terraform code.\n\n```sh\nterraform apply -auto-approve\n```\n\nThis apply will take tipically from 5 to 7 min to complete. At the end, you should be able to see a message similar to this:\n\n```sh\nApply complete! Resources: 7 added, 0 changed, 0 destroyed.\n\nOutputs:\n\nadmin_token = \u003csensitive\u003e\n\n$\n```\n\nPerfect! Another layer deployed. Now you have the Rancher Server up and running. Test the access to your Rancher server using the following https address: http://\u003c`domain_prefix`\u003e.\u003c`hosted-zone`\u003e. In my case, https://rancher.tigera.rocks.\n\nThe username to log in is `admin` and the password is the one you speficied in the variable `admin_password` in the `variable.tf` file at the `common` folder.\n\n![ranche-server](https://user-images.githubusercontent.com/104035488/183494110-3947374f-3eaf-4ae0-9894-4fb1c76a9e7c.gif)\n\nOk. Now the last layer, RKE cluster creation.\n\n\n---\n\n\n### RKE Cluster (rke-cluster)\n\nThis layer will use Terraform to provision a \"Calico Cloud-ready\" RKE cluster in Rancher, so Rancher will use AWS APIs to create EC2 instances for the nodes and install RKE on them. \n\n\n1. Change to the `rke-cluster` folder.\n\n```sh\ncd ../rke-cluster\n```\n\n2. Lets now initiate the Terraform in the `rke-cluster` directory.\n\n```sh\nterraform init\n```\n\nThe output should be something like the bellow:\n```sh\n$ terraform init\nInitializing modules...\n- common in ../common\n\nInitializing the backend...\n\nInitializing provider plugins...\n- terraform.io/builtin/terraform is built in to Terraform\n- Finding rancher/rancher2 versions matching \"1.24.0\"...\n- Finding hashicorp/null versions matching \"3.1.1\"...\n- Finding hashicorp/aws versions matching \"4.18.0\"...\n- Finding latest version of hashicorp/local...\n- Installing rancher/rancher2 v1.24.0...\n- Installed rancher/rancher2 v1.24.0 (signed by a HashiCorp partner, key ID 2EEB0F9AD44A135C)\n- Installing hashicorp/null v3.1.1...\n- Installed hashicorp/null v3.1.1 (signed by HashiCorp)\n- Installing hashicorp/aws v4.18.0...\n- Installed hashicorp/aws v4.18.0 (signed by HashiCorp)\n- Installing hashicorp/local v2.2.3...\n- Installed hashicorp/local v2.2.3 (signed by HashiCorp)\n\nPartner and community providers are signed by their developers.\nIf you\\'d like to know more about provider signing, you can read about it here:\nhttps://www.terraform.io/docs/cli/plugins/signing.html\n\nTerraform has created a lock file .terraform.lock.hcl to record the provider\nselections it made above. Include this file in your version control repository\nso that Terraform can guarantee to make the same selections by default when\nyou run \"terraform init\" in the future.\n\nTerraform has been successfully initialized!\n\nYou may now begin working with Terraform. Try running \"terraform plan\" to see\nany changes that are required for your infrastructure. All Terraform commands\nshould now work.\n\nIf you ever set or change modules or backend configuration for Terraform,\nrerun this command to reinitialize your working directory. If you forget, other\ncommands will detect it and remind you to do so if necessary.\n\n$\n```\n\n3. This Terraform code uses the AWS credentials from the environments so, you will need to export the access key and the secret access for your AWS account, as follow:\n\n```sh\nexport TF_VAR_aws_access_key_id=\u003caws_access_key_id\u003e\nexport TF_VAR_aws_secret_access_key=\u003caws_secret_access_key\u003e\n```\n\n4. Once the Terrafor has being successfully initialized in the `rke-cluster` directory, and the credentials were loaded, you can apply the Terraform code.\n\n```sh\nterraform apply -auto-approve\n```\n\nThis apply will take less than 10 minutes to complete, in general. At the end, you should be able to see a message similar to this:\n\n```sh\nApply complete! Resources: 8 added, 0 changed, 0 destroyed.\n\n$\n```\n\nNow you have the rke cluster installed and ready to connect to Calico Cloud. \n\n![rke-cluster](https://user-images.githubusercontent.com/104035488/183494148-828fc696-da7c-4e97-b30a-c47c1fce6299.gif)\n\nThe terraform will also load the kubeconfig so you can kubectl to your cluster right away.\nTry the following:\n\n```sh\nkubectl get nodes\n```\n\nYou should see an output like:\n\n```sh\n$ kubectl get nodes\nNAME                                           STATUS   ROLES                      AGE   VERSION\nip-100-0-5-27.ca-central-1.compute.internal    Ready    worker                     25m   v1.22.10\nip-100-0-5-7.ca-central-1.compute.internal     Ready    worker                     25m   v1.22.10\nip-100-0-7-167.ca-central-1.compute.internal   Ready    controlplane,etcd,worker   28m   v1.22.10\n$\n```\n\nThe way this layer was built allows you to launch more RKE clusters using the `terraform workspace` resource. It is possible to change the RKE cluster name using the `cluster_name` variable in a new workspace.\n\n1. Create a new terraform workspace:\n   \n   ```bash\n   terraform workspace new development\n   ```\n\n2. Check if you are in the right workspace\n\n   ```bash\n   terraform workspace list\n   ```\n\n   \u003e Ouput:\n   \u003e\n   \u003e```bash\n   \u003eterraform workspace list\n   \u003e  default\n   \u003e* development\n   \u003e```   \n\n3. Run the `terraform apply` using a new value for the `cluster_name` variable:\n\n   ```bash\n   terraform apply -var=\"cluster_name=dev\" -auto-approve\n   ```\n\n4. A new RKE cluster will be created.\n\n![image](https://user-images.githubusercontent.com/104035488/191606926-89f37b31-fd22-43ec-ab82-f5fc60c4991f.png)\n\nYou can repeat this process as much as you want, creating new workspaces and new values for the `cluster_name` variable.\n\n\nThe next step would be to install an exemple application, the Online Boutique.\n\n---\n\n### Installing the Online Boutique application\n\nOnline Boutique is a cloud-native microservices demo application. Online Boutique consists of an 11-tier microservices application. The application is a web-based e-commerce app where users can browse items, add them to the cart, and purchase them.\n\n1. Start by cloning the repository.\n\n```sh\ncd ..\ngit clone https://github.com/GoogleCloudPlatform/microservices-demo.git\ncd microservices-demo\n```\n\n2. Deploy the sample app to the RKE cluster.\n\n```sh\nkubectl apply -f ./release/kubernetes-manifests.yaml\n```\n\n3. Wait for the Pods to be ready.\n\n```sh\nkubectl get pods\n``` \n\n4. After a few minutes, you should see:\n\n```sh\nNAME                                     READY   STATUS    RESTARTS   AGE\nadservice-694f4ff98-n6b46                1/1     Running   0          74s\ncartservice-85f8bc44fd-gtvjl             1/1     Running   0          75s\ncheckoutservice-8fc47bbbd-ptjjs          1/1     Running   0          76s\ncurrencyservice-597bdf576b-zvknb         1/1     Running   0          74s\nemailservice-d5c6f74dd-kh48c             1/1     Running   0          77s\nfrontend-7ffbf49884-bq9kl                1/1     Running   0          76s\nloadgenerator-65779994db-5xdrm           1/1     Running   0          75s\npaymentservice-76b9c8b87d-xq4mq          1/1     Running   0          75s\nproductcatalogservice-6969d4f5fd-92tk6   1/1     Running   0          75s\nrecommendationservice-58798d5c8-zkt5t    1/1     Running   0          76s\nredis-cart-6f65887b5d-xlrl6              1/1     Running   0          74s\nshippingservice-ff5f4d7d-gp6lg           1/1     Running   0          74s\n```\n\n5. Access the web frontend in a browser using the frontend's EXTERNAL_IP.\n\n```sh \nkubectl get service frontend-external | awk '{print $4}'\n```\n\nExample output - do not copy\n\n```text\nEXTERNAL-IP\na2179342230294b15b2ab7a2e15ace8d-1437444666.ca-central-1.elb.amazonaws.com\n```\n\nNote- you may see \u003cpending\u003e while Rancher provisions the load balancer on AWS. If this happens, wait a few minutes and re-run the command.\nEven after the loadbalancer is assigned it may take a few minutes to the traffic starts to be redirected to the frontend service on the RKE.\n\n### Connecting your cluster to Calico Cloud.\n\nFor connecting your cluster to Calico Cloud, sign up for a trial by accessing https://www.calicocloud.io/home and follow the instructions.\n\n---\n\n## Housekeeping\n\nIn order to clean up, follow the reverse order.\n\n- Delete the Online Shop\n- Destroy the RKE Cluster\n- Destroy the Rancher server\n- Destroy the AWS infrastructure.\n\nNote- due to some issues with Rancher provisioning API used to create the AWS resources for the RKE cluster, when destroying the AWS infrastructure the VPC destruction may get stuck. If it is too long, use the AWS console to check if the security group created for the frontend loadbalancer still existing. If so, delete it manually and the VPC destruction may resume successfully.\n\n\n[⬆️ Back to the top](https://github.com/regismartins/cc-rancher-ec2-tf-stack/blob/main/README.md#calico-cloud-trial-on-rancher-using-terraform-on-aws)\n\n---\n\n[tigera.io-badge]: https://img.shields.io/badge/Powered%20by-Tigera-orange\n[tigera.io]: https://www.tigera.io\n[terraform.io-badge]: https://img.shields.io/badge/Powered%20by-Terraform-purple\n[terraform.io]: https://www.terraform.io\n[terraform-badge]: https://img.shields.io/badge/-Terraform-7b3fc4?style=?style=flat-square\u0026logo=terraform\u0026logoColor=white\n[aws-badge]: https://img.shields.io/badge/-AWS-FF9900?style=?style=flat-square\u0026logo=amazonaws\u0026logoColor=white\n[aws.link]: https://aws.amazon.com/\n[rancher-badge]: https://img.shields.io/badge/-Rancher-0000FF?style=?style=flat-square\u0026logo=rancher\u0026logoColor=white\n[rancher.link]: https://rancher.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigera-solutions%2Fcc-rancher-ec2-tf-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftigera-solutions%2Fcc-rancher-ec2-tf-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftigera-solutions%2Fcc-rancher-ec2-tf-stack/lists"}