Skip to main content

Deploy Care

Overview πŸ—ΊοΈβ€‹

Terraform provides a declarative approach to deploying Care on Google Cloud Platform (GCP) using various providers. This guide outlines the steps to initiate and manage the deployment process. πŸ“‹

Source: CodeCommit πŸ”—

The repository contains Terraform scripts that utilize a GCS cloud storage bucket as a backend to deploy Care on GCP. πŸ’»

Deployment Process πŸš§β€‹

1. Planning πŸ€”β€‹

To plan the deployment, run the following command:

ENV=egov-devops make plan

2. Execution πŸš€β€‹

To deploy, execute the following command:

ENV=egov-devops make deploy

Deployment Steps πŸ“β€‹

  1. Enable Cloud Resource Manager API πŸ”‘:

    • Enable the Cloud Resource Manager API from the Google Cloud Console.
    • Create a service account key and store it in the project root directory.
  2. Setup State Bucket 🧱:

  3. Enable Required APIs πŸ”“:

    • Run gcp-apis script to enable the necessary APIs for deploying Care.
  4. Network Infrastructure Setup 🌐:

    • Use VPC scripts to set up the network infrastructure.
  5. Configure KMS Keys πŸ”:

  6. Allocate Storage Buckets πŸ—„οΈ:

  7. Initiate Postgres Database 🐘:

    • Use database script to initiate the Postgres database.
  8. Create and Configure GKE Clusters βš“:

    • Use K8s script to create and configure GKE clusters.
  9. Deploy Workloads and Services 🚒:

    • Utilize gke-workload script to deploy workloads, services, and other necessary components.
  10. DNS Configuration 🌐:

    • Add the IP address obtained from the VPC script to the DNS configuration.

Provider Documentation πŸ“šβ€‹

  1. hashicorp/google: Manages lifecycle of GCP resources including Compute Engine, Cloud Storage, Cloud SQL, GKE, BigQuery, and more. 🌐
  2. hashicorp/helm: Manages installed Charts in Kubernetes cluster similar to Helm. βš“
  3. hashicorp/kubernetes: Manages Kubernetes resources such as Deployments, Services, Custom Resources (CRs and CRDs), Policies, and Quotas. 🐳

This Terraform deployment guide facilitates the deployment of Care on GCP, providing a structured and automated approach to managing cloud resources.