Spin up a GoodData.CN deployment in the cloud in just a few minutes.
This deployment is for evaluation only – not production. It can be used as a source of inspiration for a production-level setup, but this project is not versioned and is not officially supported by GoodData in production.
Terraform provisions:
- Cloud network with public & private subnets across multiple zones
- Managed PostgreSQL for GoodData metadata
- Object storage for cache, data sources, and exports
- Managed Kubernetes cluster
- GoodData.CN
- Apache Pulsar (for messaging)
- Ingress controller
- Other cloud-specific prerequisites
- Install the following CLI utilities:
- Have your GoodData.CN license key handy (your GoodData contact can help you with this)
Note: If you want to skip the installation of all of the CLI utilities, a VS Code Dev Containers configuration is provided in this repo. Just install the extension into any compatible IDE and the repo will reopen with all utilities installed.
-
Clone the repo:
git clone https://github.com/gooddata/gooddata-cn-terraform.git -
Copy the sample variables file for your provider and customize it:
cp aws/settings.tfvars.example aws/settings.tfvars # or cp azure/settings.tfvars.example azure/settings.tfvarsThe example file has good defaults but you may want to modify it based on your needs.
-
Choose your provider and
cdinto its directory:cd awsorcd azure -
Authenticate to your cloud provider's CLI:
- For AWS:
aws login/aws sso login(or otherwise configure your AWS credentials) - For Azure:
az login
- For AWS:
-
Initialize Terraform:
terraform init -
Review what Terraform will deploy:
terraform plan -var-file=settings.tfvars -
Run Terraform:
terraform apply -var-file=settings.tfvars -
Once everything has been deployed, configure kubectl:
../scripts/configure-kubectl.sh -
If you set
gdcn_orgs, Terraform already created the organizations. Otherwise, you can create those manually now. -
Configure authentication according to your needs:
- To use an external OIDC provider (recommended for anything beyond local testing), follow the Set Up Authentication guide.
- For quick testing with the default IdP (Dex), create one or more users by staying in the
awsorazuredirectory and running../scripts/create-user.sh. If Terraform created the organization, the script will automatically read the admin credentials from the Secretgooddata-cn/gdcn-org-admin-<org_id>.
-
Finally, open
https://<gdcn_org_hostname>(exact address in Terraform output) and log in.
To upgrade GoodData.CN to the latest version, follow these steps:
-
Check for any updates to this repo and pull them.
-
Open
settings.tfvarsand change thehelm_gdcn_versionvariable to the latest value. -
Run Terraform:
terraform apply -var-file=settings.tfvars
To delete all resources associated with the GoodData POC, follow these steps:
- Run Terraform:
terraform destroy -var-file=settings.tfvars
Reach out to your GoodData contact and they'll point you in the right direction!