ai-cfia / howard

The Howard project, named after "The Godfather of Clouds" Luke Howard, orchestrates the Kubernetes-based cloud infrastructure for the Canadian Food Inspection Agency's AI lab, managing applications like Nachet, Finesse, and Louis. It prioritizes robustness, security and efficiency
https://ai-cfia.github.io/howard/
MIT License
3 stars 0 forks source link

Howard: Cloud infrastructure of the Canadian Food Inspection Agency (CFIA) ACIA-CFIA ai-Lab

About the project

The Howard project is named after Luke Howard, FRS, a notable British manufacturing chemist and amateur meteorologist known as "The Godfather of Clouds". His work laid foundational concepts in meteorology, including a nomenclature system for clouds introduced in 1802. Inspired by his innovation and legacy in categorizing the elements, our project aims to effectively manage and orchestrate the cloud-based infrastructure for the Canadian Food Inspection Agency (CFIA) ai-lab.

Howard is essentially the backbone that supports CFIA's ai-lab Kubernetes environment, where key applications such as Nachet, Finesse, and Louis are deployed and managed dynamically. This infrastructure emphasizes robustness, security, and efficiency to handle the critical workload involved in food inspection and safety.

Technology stack and tools

The Howard infrastructure leverages a comprehensive suite of tools designed to provide a resilient, secure, and scalable environment:

Cloud providers

Container orchestration

GitOps

Monitoring and security

Networking

Secrets management

Cloud infrastructure management

Installation

Terraform deployment

Current configuration is hosting a kubernetes cluster on Azure (AKS). We have an Azure Devops pipeline apply-terraform.yml that applies terraform's resources that are created on our Azure's subscription. The state is then saved to a blob storage in Azure.

Kubectl configuration

Assuming you have Azure's CLI and kubelogin plugin installed, here is how you can locally fetch the kube config :

az login
az account set --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
az aks get-credentials --resource-group resource-group-name --name aks-name --overwrite-existing
kubelogin convert-kubeconfig -l azurecli

Documentation

https://ai-cfia.github.io/howard/en/