1.0.11 • Published 10 months ago

@medic/cht-deploy v1.0.11

Weekly downloads
-
License
AGPL-3.0-only
Repository
-
Last release
10 months ago

CHT Core Kubernetes Deployment

Introduction

This guide walks you through the process of deploying the Community Health Toolkit (CHT) Core application on a Kubernetes cluster. The deployment process utilizes a set of scripts and Helm charts for a simplified deployment experience.

The helm charts can be seen in the medic/helm-charts repository.

The primary script, cht-deploy, automatically installs the required Python packages and initiates the deployment of CHT Core on your Kubernetes cluster.

Prerequisites

This script is set to install all the necessary prerequisites.

Note: The first run of the script may take longer due to downloading and installing necessary packages.

Values Configuration

Before running the cht-deploy script, you need to provide values in the values.yaml file. Here is an explanation of the values you need to replace:

  • project_name: Replace <your-project-name> with your preferred project name.
  • namespace: Replace "cht-dev-namespace" with the desired namespace for the deployment.
  • chtversion: The version number of the CHT Core.
  • couchdb.password: Replace <password-value> with your preferred password for CouchDB.
  • couchdb.secret: Replace <secret-value> with your preferred secret for CouchDB.
  • couchdb.user: Replace <user-name> with your preferred user name for CouchDB.
  • couchdb.uuid: Replace <uuid-value> with the UUID of your CouchDB.
  • clusteredCouch.noOfCouchDBNodes: The number of CouchDB nodes in your cluster.
  • toleration: This is for the CouchDB pods. It's best not to change this unless you know what you're doing.
  • ingress: Configuration for ingress including annotations, group name, tags, certificate and host.
  • environment: Environment for the deployment. Can be "local" for local deployments using k3d/k3s or "remote" for remote deployments - remote kubernetes cluster (e.g. EKS)
  • local.diskPath: If the environment is set to "local", replace "/var/lib/couchdb" with your desired disk path for local storage.

Running the Script

To initiate the deployment process, you need to run the cht-deploy script with the -f flag followed by the path to your values.yaml file, like so:

./cht-deploy -f <path-to-your-values.yaml>

The script will then install the necessary Python packages, read your values.yaml file, and initiate the deployment process.

Troubleshooting

If the deployments are not created as expected, check the logs for any errors. If the issue is related to missing deployments, confirm that the correct number of CouchDB nodes is specified in the values.yaml file for example.

During the course of using or managing your CHT installation, you may encounter situations where things are not working as expected. These scripts provide a means to inspect the status of your installation and gather information about its configuration and behavior. Here's when to use which:

view-logs

Use this command when you want to check the logs of a specific deployment. This could be useful when you have identified a specific service or component that is not behaving correctly, and you want to inspect its runtime logs for error messages or other diagnostic information.

Example usage:

./view-logs cht-dev-namespace cht-couchdb-1

list-deployments

Use this command to list all the deployments in a specific namespace. This is useful when you want to see what deployments are running and check their status.

Example usage:

./list-deployments cht-dev-namespace

list-all-resources

This command provides a comprehensive view of all resources in a specific namespace, including services, pods, deployments etc. Use this when you want to get an overview of everything that's running in a particular namespace.

Example usage:

./list-all-resources cht-dev-namespace

describe-deployment

Use this command to get a detailed description of a specific deployment. This could be useful when you want to inspect the configuration, status and events related to a specific deployment.

Example usage:

./describe-deployment cht-dev-namespace cht-couchdb-1

Keep in mind that you will need to replace cht-dev-namespace and cht-couchdb-1 with your specific namespace and deployment names.

1.0.11

10 months ago

1.0.10

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago