Catégorie : Divers

AKS | Auto Upgrade

Hi!

In this article, I would to show you a new feature of AKS, the goal of this feature is to automate the upgrade of your AKS cluster.

4 channels are available:

ChannelActionExample
nonedisables auto-upgrades and keeps the cluster at its current version of KubernetesDefault setting if left unchanged
patchautomatically upgrade the cluster to the latest supported patch version when it becomes available while keeping the minor version the same.For example, if a cluster is running version 1.17.7 and versions 1.17.91.18.41.18.6, and 1.19.1 are available, your cluster is upgraded to 1.17.9
stableautomatically upgrade the cluster to the latest supported patch release on minor version N-1, where N is the latest supported minor version.For example, if a cluster is running version 1.17.7 and versions 1.17.91.18.41.18.6, and 1.19.1 are available, your cluster is upgraded to 1.18.6.
rapidautomatically upgrade the cluster to the latest supported patch release on the latest supported minor version.In cases where the cluster is at a version of Kubernetes that is at an N-2 minor version where N is the latest supported minor version, the cluster first upgrades to the latest supported patch version on N-1 minor version. For example, if a cluster is running version 1.17.7 and versions 1.17.91.18.41.18.6, and 1.19.1 are available, your cluster first is upgraded to 1.18.6, then is upgraded to 1.19.1.
# - Requirements
az feature register --namespace Microsoft.ContainerService -n AutoUpgradePreview

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AutoUpgradePreview')].{Name:name,State:properties.state}"

az provider register --namespace Microsoft.ContainerService
 
# - Create a new cluster with the auto-upgrade feature
az aks create --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable --generate-ssh-keys
 
# - Update an existing cluster with the auto-upgrade feature
az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable

Maxime.

Happy New Year 2021!

Bonjour!

Je tenais à prendre quelques minutes afin de vous remercier d’avoir été plus de 500 000 visiteurs à lire mon blog ces derniers mois. Nous avons vécu dans un contexte compliqué mais qui nous a permis également de nous ré-inventer technologiquement.

La ligne éditoriale de ce blog continuera d’évoluer sur les thématique liées à la sécurité Cloud (Azure Security Center, Azure Sentinel), la gouvernance (Azure Policy, OPA Gatekeeper, …) ainsi que sur les sujets liés à la sécurité des clusters Kubernetes.

Je vous souhaite à toutes et à tous mes meilleurs voeux pour cette année 2021!

Maxime.

Checkov avec Github Action

Salut!

J’utilise très souvent l’outil open source Checkov afin de réaliser des scans du code que je développe pour les infrastructures que je réalise.

Checkov vous permet de scanner du code dit d’infrastructure as code (Les plateformes Azure, AWS et Google Cloud sont supportés) avec les languages suivants:

  • ARM
  • Terraform
  • Cloud Formation
  • Kubernetes
  • Serverless framework

L’outil vous propose par défaut plus de 400 checks de sécurité – https://github.com/bridgecrewio/checkov/blob/master/docs/3.Scans/resource-scans.md

Mais il est tout à fait possible de réaliser ses propres checks – https://github.com/bridgecrewio/checkov/blob/master/docs/5.Contribution/New-Check.md

Je vous propose de regarder ensemble comment nous pouvons intégrer checkov dans un workflow Github Action. Dans cet exemple notre scan d’exécutera lors d’un merge dans la branche master.

Vous trouverez ci-dessous le code que j’utilise pour mon workflow, libre à vous de l’adapter à vos besoins.

---
name: Checkov
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  build:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [3.7]
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v1
        with:
          python-version: ${{ matrix.python-version }}
      - name: Test with Checkov
        run: |
          pip install checkov
          checkov -d .

Je vous donne rendez-vous dans votre repository github, puis je vous invite à cliquer sur l’onglet ‘Actions’ puis « set up a workflow yourself ».

Copier/Coller le code précédent et cliquer sur « Start commit »

Enfin cliquer sur « Commit new file »

Notre workflow est désormais en place, il s’exécutera lors du prochain merge de votre code dans la branche « master ».

Ci-dessous un exemple d’un scan:

Maxime.