What is the best practice to deploying yaml manifests to AKS?

Alex Ip 191 Reputation points

For context, our organization uses Azure Devops with a subscription in Azure, each micro-service has its own Git Repository.

What I am confused with is that if each repository has its own yaml manifest targeting its own existence in the cluster then it makes it difficult to deploy the entire cluster all at once because each repository CD would need to be deployed in order to do so.

Conversely, if the entire declaration of the cluster is stored in a single yaml file, how would we signal to AKS to update itself with the new application image without having developers to modify this yaml file every single time a commit is merged in order to force AKS to update itself.

What are the best practices for deploying to AKS?

Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS)
An Azure service that provides serverless Kubernetes, an integrated continuous integration and continuous delivery experience, and enterprise-grade security and governance.
1,783 questions
0 comments No comments
{count} votes

Accepted answer
  1. Roy Kim (Azure MVP) 181 Reputation points MVP

    The best practice for deploying to AKS is to use a combination of GitOps and Helm.

    GitOps is a methodology that uses Git as a single source of truth for declarative infrastructure and application deployments. In this approach, all of the Kubernetes manifests for a specific microservice or application would be stored in a single Git repository. This repository would be the source of truth for what should be deployed to the cluster.

    Helm is a package manager for Kubernetes that allows you to define, install, and upgrade complex Kubernetes applications. Helm uses a package format called charts, which are collections of Kubernetes manifests that can be versioned and managed as a single unit.

    Using GitOps and Helm together, you can deploy your entire cluster all at once by updating the chart in the Git repository, which will automatically trigger a deployment in AKS. Additionally, you can use Git webhooks to automatically trigger updates in AKS when a new commit is merged. This way you can signal AKS to update itself with the new application image without having developers to modify the yaml file every single time a commit is merged.

    You can also use Azure DevOps Pipelines with Kubernetes manifest task for your CI/CD pipeline.

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful