Skip to content

Resource Health Deployment Guide⚓︎

The Resource Health Building Block (BB) offers a generalized capability that allows users to specify and schedule health checks relating to their resources of interest, visualize the outcomes, and receive notifications according to the outcomes. This guide provides step-by-step instructions to deploy the Resource Health BB in your Kubernetes cluster using the simplified Helm approach.


Table of Contents⚓︎

  1. Introduction
  2. Components Overview
  3. Prerequisites
  4. Deployment Steps
  5. Validation
  6. Uninstallation
  7. Further Reading
  8. Scripts and Manifests

Introduction⚓︎

The Resource Health Building Block allows users to:

  • Specify and schedule health checks for resources.
  • Observe check outcomes and receive notifications.
  • Use a REST API, dashboard, or Git repository to specify checks.
  • Visualise status and performance statistics through a dashboard.
  • Access health check status via API for integration into portals.

This deployment guide provides instructions to deploy the Resource Health BB using a simplified Helm chart approach, consolidating previous complexities into a single Helm deployment.


Components Overview⚓︎

The Resource Health BB comprises the following key components:

  1. Resource Health Core: The main component responsible for orchestrating health checks and collecting results.

  2. OpenSearch and OpenSearch Dashboards: Used for storing and visualizing health check results.

  3. OpenTelemetry Collector: Collects telemetry data from health checks and forwards it to OpenSearch.

  4. Health Check Runner: Executes the specified health checks according to the defined schedule.


Prerequisites⚓︎

Before deploying the Resource Health Building Block, ensure you have the following:

Component Requirement Documentation Link
Kubernetes Cluster (tested on v1.23 or newer) Installation Guide
Helm Version 3.5 or newer Installation Guide
kubectl Configured for cluster access Installation Guide
Ingress Controller Properly installed (e.g., NGINX) Installation Guide
TLS Certificates (Internal) ClusterIssuer for internal certificates Internal TLS Setup

Clone the Deployment Guide Repository:

git clone -b 2.0-alpha https://github.com/EOEPCA/deployment-guide
cd deployment-guide/scripts/resource-health

Validate your environment:

Run the validation script to ensure all prerequisites are met:

bash check-prerequisites.sh

Deployment Steps⚓︎

  1. Run the Configuration Script:
bash configure-resource-health.sh

Important Note: - Ensure that you have internal TLS setup. Please refer to the Internal TLS Deployment Guide

  1. Deploy the Resource Health BB Using Helm:
git clone https://github.com/EOEPCA/resource-health reference-repo

helm dependency build reference-repo/resource-health-reference-deployment

helm install resource-health reference-repo/resource-health-reference-deployment \
  --namespace resource-health \
  --create-namespace \
  --values generated-values.yaml
  1. Monitor the Deployment:
kubectl get all -n resource-health
  1. Access the Resource Health Services:

Since we haven’t defined any Ingress resources in the values.yaml, you might need to set up Ingress separately if required. However, if the Helm chart includes default Ingress configurations, you can access the services as per those configurations.


Validation⚓︎

Automated Validation:

bash validation.sh

Further Validation:

  1. Check Kubernetes Resources:
kubectl get all -n resource-health
  1. Access Resource Health API:

Open a web browser and navigate to: https://resource-health.${INGRESS_HOST}/

  1. Access OpenSearch Dashboards:

Open a web browser and navigate to: https://resource-health-opensearch-dashboards.${INGRESS_HOST}/

  1. Test Resource Health Functionality:
  • Create sample health checks using the provided examples or your own scripts.
  • Verify that health checks are executed according to the schedule.
  • View health check results in OpenSearch Dashboards.

Uninstallation⚓︎

To uninstall the Resource Health Building Block and clean up associated resources:

helm uninstall resource-health -n resource-health

kubectl delete namespace resource-health

Further Reading⚓︎