Skip to content

Kubernetes

Kubernetes Cluster Documentation

This page provides an overview of the Kubernetes cluster setup and deployment process.

Directory Structure

The directory structure for the Kubernetes manifests and related files is as follows:

.
├── manifests
│   ├── 01-namespace.yaml
│   ├── 02-storage-class.yaml
│   ├── 03-pvcs.yaml
│   ├── 04-configmap.yaml
│   ├── 05-service-accounts.yaml
│   ├── 06-priority-classes.yaml
│   ├── 07-services.yaml
│   ├── 08-deployments.yaml
│   ├── 09-hpa.yaml
│   └── 10-ingress.yaml
├── pipeline.yaml
└── tests

Pipeline Configuration

The pipeline.yaml file defines the CI/CD pipeline for deploying the Kubernetes cluster. It includes the following stages:

  1. ValidateEnvironment: Validates the existence of required Azure resources.
  2. PrepareInfrastructure: Attaches the Azure Container Registry (ACR) to the Azure Kubernetes Service (AKS) cluster.
  3. Installations_Required: Installs necessary tools and drivers, including the CSI driver and NVIDIA GPU operator.
  4. SetupFederatedCredentials: Sets up federated credentials for various services.
  5. DeployKubernetes: Deploys the Kubernetes manifests to the cluster.

Parameters and Variables

The pipeline uses the following parameters and variables, then will replace all the necessary values in the manifests:

  • Parameters:
  • environment: Specifies the deployment environment (default: mjdev).

  • Variables:

  • resourceGroup: Resource group name.
  • acrName: Azure Container Registry name.
  • aksClusterName: AKS cluster name.
  • kvName: Key Vault name.
  • location: Azure region.
  • kubernetesNamespace: Kubernetes namespace.
  • KEYVAULT_NAME: Key Vault name.
  • TENANT_ID: Azure tenant ID.
  • azure_storage_account: Azure storage account name.