{"id":27370122,"url":"https://github.com/datastaxdevs/terraform-tryout","last_synced_at":"2026-01-29T07:06:04.138Z","repository":{"id":248887595,"uuid":"830086268","full_name":"datastaxdevs/terraform-tryout","owner":"datastaxdevs","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-17T16:33:50.000Z","size":39277,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-10T07:43:57.123Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/datastaxdevs.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,"zenodo":null}},"created_at":"2024-07-17T15:01:34.000Z","updated_at":"2024-07-19T14:13:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"00939a9b-b189-454d-89fe-8d8815cf8df5","html_url":"https://github.com/datastaxdevs/terraform-tryout","commit_stats":null,"previous_names":["datastaxdevs/terraform-tryout"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/datastaxdevs/terraform-tryout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fterraform-tryout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fterraform-tryout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fterraform-tryout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fterraform-tryout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datastaxdevs","download_url":"https://codeload.github.com/datastaxdevs/terraform-tryout/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datastaxdevs%2Fterraform-tryout/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28868877,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T06:56:44.678Z","status":"ssl_error","status_checked_at":"2026-01-29T06:56:35.794Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-04-13T08:48:03.032Z","updated_at":"2026-01-29T07:06:04.131Z","avatar_url":"https://github.com/datastaxdevs.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## Terraform Providers for RagStack AI\n\n## Table of content\n\n1. [Overview](#1-overview)\n2. [Installation and Prerequisites](#2-installation-and-prerequisites)\n3. [AWS Deployments]()\n4. [GCP Deployments]()\n5. [Azure Deployments]()\n\n## 1. Overview\n\nTerraform module which helps you quickly deploy an opinionated AI/RAG stack to AWS, provided by Datastax.\n\n## 2. Installation and Prerequisites\n\n### 2.1 - Terraform Installation\n\n\u003e Note: Check [Terraform Documentation](https://developer.hashicorp.com/terraform/install)\n\n\n- ✅ `2.1.a` **Update Homebrew**: Before installing any new package, it's good practice to update Homebrew:\n\n```sh\nbrew update\n```\n\n- ✅ `2.1.b` **Install Terraform**: To install Terraform using Homebrew, run the following command:\n\n```sh\nbrew tap hashicorp/tap\nbrew install hashicorp/tap/terraform\n```\n\n- ✅ `2.1.c` **Verification**; After the installation completes, verify that Terraform is installed correctly by checking its version:\n\n```sh\nterraform -v\n```\n\n### 2.2 - Astra CLI Installation\n\nAstra CLI is a command-line interface (CLI) tool that enables users to interact with and manage the \nAstra database-as-a-service platform. It provides developers with a streamlined way to create, configure, and \nmanipulate databases, making it easier to integrate Astra into their applications and workflows.\n\nAstra CLI goes beyond basic database management by facilitating the seamless integration of external tools like **dsbulk**, \n**cqlsh**, and **pulshar-shell** or by providing useful shortcuts like **dotenv** file generation.\n\n- ✅ `2.2.a` **Update Homebrew**: Before installing any new package, it's good practice to update Homebrew:\n\n```sh\nbrew update\n```\n\n- ✅ `2.2.b` **Install Astra CLI**: To install Terraform using Homebrew, run the following command:\n\n```sh\nbrew install datastax/astra-cli/astra-cli\n```\n\n- ✅ `2.2.c` Connect to [https://astra.datastax.com](https://astra.datastax.com)\n\n![imgs/01-login.png](imgs/01-login.png)\n\n- ✅ `2.2.d` Navigate to token and generate a token with `Organization Administrator` permissions and copy the token starting by `AstraCS:...`\n\n![imgs/02-token.png](imgs/02-token.png)\n\n\u003e Note:\n\u003e\n\u003e `osx` is based on a linux kernel and can run shell scripts. Files are\n\u003e installed in `/usr/local/Cellar/astra-cli/\u003cversion\u003e` and linked with a \n\u003e symbolic link to `/usr/local/bin/astra`. The configuration of the CLI is \n\u003e stored in `~/.astrarc` - **It is not lost on updates\n\n- ✅ `2.2.e` - Issue `setup` command and provide your token as an input. It must start by `AstraCS:...`. Make sure to have the `Organization Administrator` role to avoid any permission limitations later on.\n\n```sh\nastra setup --token AstraCS...\n```\n\n- ✅ `2.2.f` - Display your local configuration list, validating setup is complete. \n\n```bash\nastra config list\n```\n\n- ✅ `2.2.g` - Create a `vector database` with the CLI\n\n```bash\nastra db create terraform_demo --vector --async\n```\n\n- ✅ `2.2.h` - You can see it pending with \n\n```bash\nastra db list\n```\n\n```console\n+---------------------+--------------------------------------+-----------+-------+---+-----------+\n| Name                | id                                   | Regions   | Cloud | V | Status    |\n+---------------------+--------------------------------------+-----------+-------+---+-----------+\n| terraform_demo      | 2753308c-34bc-4bff-ab87-0ff3f2218fa3 | us-east1  | gcp   | ■ | PENDING   |\n+---------------------+--------------------------------------+-----------+-------+---+-----------+\n```\n\n### 2.d Get the sample project\n\n```\ngit clone git@github.com:datastax/terraform-datastax-ai-stack.git\n```\n\n## 3. AWS Deployment\n\n![imgs/aws-03.png](imgs/aws-03.png)\n\n### 3.1 AWS Credentials\n\n- ✅ `3.1.a` - Access the Idenity and Access Management console (IAM) in AWS\n\n- ✅ `3.1.b` - Create a an User with AWS and add the different permissions. \n\n- ✅ `3.1.c` - For this user create a pair of keys wih `access_key` and `secret_key` as follows:\n\n![imgs/aws-01.png](imgs/aws-01.png)\n\n- ✅ `3.1.d` - Setup the access for an application outside\n\n![imgs/aws-02.png](imgs/aws-02.png)\n\n### 3.2 AWS CLI\n\n- ✅ `3.2.a` - Installing AWS CLI\n\n```bash\ncurl \"https://awscli.amazonaws.com/AWSCLIV2.pkg\" -o \"AWSCLIV2.pkg\"\n$ sudo installer -pkg AWSCLIV2.pkg -target /\n```\n\n- ✅ `3.2.b` - Setup AWS CLI (short term)\n\n```bash\ntouch ~/.aws/credentials\nvi ~/.aws/credentials\n```\n- Populate the configuration file with your credentials\n\n```ini\n[default] \naws_access_key_id = replace \naws_secret_access_key = replace/K7MDENG/bPxRfiCYEXAMPLEKEY\naws_session_token = replace\n```\n\n- ✅ `3.2.c` -Verify the cli is install\n\n```bash\naws --version\n```\n\n- Configure your profile\n\n```\naws configure list-profiles\naws configure list --profile default\n```\n\n```\n      Name                    Value             Type    Location\n      ----                    -----             ----    --------\n   profile                  default                  manual    --profile\naccess_key     ****************JR3H shared-credentials-file    \nsecret_key     ****************c319 shared-credentials-file    \n```\n\n### 3.3 Init Terraform\n\n- ✅ `3.3.a` -Update `terraform.tf` as follows (filtering only AWS)\n\n```typesafe\nterraform {\n  required_providers {\n    astra = {\n      source  = \"datastax/astra\"\n      version = \"~\u003e 2.3.3\"\n    }\n    aws = {\n      source  = \"hashicorp/aws\"\n      version = \"~\u003e 5.47.0\"\n    }\n  }\n}\n```\n\n\n- ✅ `3.3.b` - Update `input.tf` as follows (selecting AWS)\n\n```console\nvariable \"astra_token\" {\n  type = string\n}\n\nvariable \"aws_profile\" {\n  type     = string\n  nullable = true\n  default  = null\n}\n```\n\n- ✅ `3.3.c` - Initialization\n\n```bash\ncd demo-aws\nterraform init\n```\n\nOutput\n```\nInitializing the backend...\nInitializing modules...\n- datastax-ai-stack-aws in aws\n- datastax-ai-stack-aws.assistants in aws/modules/assistants\n- datastax-ai-stack-aws.assistants.assistants_api_db in aws/modules/astra_db\n- datastax-ai-stack-aws.assistants.ecs_deployment in aws/modules/ecs_deployment\n- datastax-ai-stack-aws.aws_infra in aws/modules/aws_infra\nDownloading registry.terraform.io/terraform-aws-modules/alb/aws 9.9.0 for datastax-ai-stack-aws.aws_infra.alb...\n- datastax-ai-stack-aws.aws_infra.alb in .terraform/modules/datastax-ai-stack-aws.aws_infra.alb\nDownloading registry.terraform.io/terraform-aws-modules/ecs/aws 5.11.3 for datastax-ai-stack-aws.aws_infra.ecs...\n- datastax-ai-stack-aws.aws_infra.ecs in .terraform/modules/datastax-ai-stack-aws.aws_infra.ecs\n- datastax-ai-stack-aws.aws_infra.ecs.cluster in .terraform/modules/datastax-ai-stack-aws.aws_infra.ecs/modules/cluster\n- datastax-ai-stack-aws.aws_infra.ecs.service in .terraform/modules/datastax-ai-stack-aws.aws_infra.ecs/modules/service\n- datastax-ai-stack-aws.aws_infra.ecs.service.container_definition in .terraform/modules/datastax-ai-stack-aws.aws_infra.ecs/modules/container-definition\nDownloading registry.terraform.io/terraform-aws-modules/vpc/aws 5.8.1 for datastax-ai-stack-aws.aws_infra.vpc...\n- datastax-ai-stack-aws.aws_infra.vpc in .terraform/modules/datastax-ai-stack-aws.aws_infra.vpc\n- datastax-ai-stack-aws.langflow in aws/modules/langflow\n- datastax-ai-stack-aws.langflow.ecs_deployment in aws/modules/ecs_deployment\n- datastax-ai-stack-aws.vector_dbs in aws/modules/astra_db\nInitializing provider plugins...\n- Finding datastax/astra versions matching \"~\u003e 2.3.3\"...\n- Finding hashicorp/aws versions matching \"\u003e= 4.66.1, \u003e= 5.30.0, \u003e= 5.46.0, ~\u003e 5.47.0\"...\n- Installing datastax/astra v2.3.6...\n- Installed datastax/astra v2.3.6 (signed by a HashiCorp partner, key ID 0ABDBFC051FFB5D5)\n- Installing hashicorp/aws v5.47.0...\n- Installed hashicorp/aws v5.47.0 (signed by HashiCorp)\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\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```bash\nterraform plan\n```\n\n```\nvar.astra_token\n  Enter a value: AstraCS:XXXXXXXX\n\nvar.aws_profile\n  Enter a value: default\n```\n\n\n```bash\nterraform apply\n```\n\n## 4. GCP Deployment\n\n## 5. AZURE Deployment\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatastaxdevs%2Fterraform-tryout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatastaxdevs%2Fterraform-tryout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatastaxdevs%2Fterraform-tryout/lists"}