Aller au contenu

DevOps & Outils

Services DevOps et outils d'Infrastructure as Code pour OVHcloud.


Managed Private Registry

Registre de conteneurs prive manage, base sur Harbor. Managed Private Registry permet de stocker et distribuer des images Docker et des charts Helm de manière sécurisée.

Cas d'usage : stockage d'images Docker, charts Helm, artefacts OCI, intégration CI/CD.

Caractéristiques :

  • Base sur Harbor (open source CNCF)
  • Scan de vulnérabilités intégré (Trivy)
  • Réplication entre registres
  • Gestion des accès par projet et par robot account
  • Compatible avec Docker CLI, Helm, et tout client OCI

Se connecter au registre

docker login <votre-registry>.c1.gra9.container-registry.ovh.net

Pousser une image

docker tag mon-app:latest \
    <votre-registry>.c1.gra9.container-registry.ovh.net/mon-projet/mon-app:latest

docker push \
    <votre-registry>.c1.gra9.container-registry.ovh.net/mon-projet/mon-app:latest

Intégration avec MKS

Configurez un imagePullSecret dans votre cluster Managed Kubernetes pour tirer les images depuis le Managed Private Registry via le vRack (réseau prive).

Workflow Management

OVHcloud ne propose pas de service CI/CD manage natif. L'approche recommandee est d'utiliser des outils externes intégrés avec les services OVHcloud :

  • GitLab CI/CD ou GitHub Actions pour les pipelines
  • Managed Private Registry comme cible de build
  • Managed Kubernetes comme cible de déploiement

Exemple de pipeline GitHub Actions

# .github/workflows/deploy.yml
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Login to OVH Registry
        run: echo "${{ secrets.REGISTRY_PASSWORD }}" |
             docker login ${{ secrets.REGISTRY_URL }} -u ${{ secrets.REGISTRY_USER }} --password-stdin

      - name: Build and push
        run: |
          docker build -t ${{ secrets.REGISTRY_URL }}/mon-projet/mon-app:${{ github.sha }} .
          docker push ${{ secrets.REGISTRY_URL }}/mon-projet/mon-app:${{ github.sha }}

      - name: Deploy to MKS
        run: |
          kubectl set image deployment/mon-app \
              mon-app=${{ secrets.REGISTRY_URL }}/mon-projet/mon-app:${{ github.sha }}

Outils d'Infrastructure as Code

OVHcloud s'intégré avec les principaux outils IaC grâce à son API OpenStack et a son provider OVH :

Tutoriels outils IaC

Pour apprendre a utiliser ces outils, consultez les tutoriels dédiés :

  • Packer — Création d'images machine reproductibles pour Public Cloud
  • Ansible — Provisioning et configuration automatisee des instances
  • OpenTofu — Infrastructure as Code declarative (providers openstack et ovh)
Outil Usage OVHcloud Provider/Plugin
Packer Créer des images Public Cloud Builder openstack
Ansible Configurer des instances, déployer des applications Collection openstack.cloud
OpenTofu Provisionner toute l'infrastructure OVHcloud Providers openstack + ovh

Exemple Packer (builder OpenStack)

source "openstack" "debian" {
  image_name   = "mon-image-custom"
  source_image = "Debian 12"
  flavor       = "b3-8"
  ssh_username = "debian"
  networks     = ["Ext-Net"]
}

Exemple OpenTofu (provider OVH)

terraform {
  required_providers {
    ovh = {
      source = "ovh/ovh"
    }
    openstack = {
      source = "terraform-provider-openstack/openstack"
    }
  }
}

resource "openstack_compute_instance_v2" "serveur" {
  name        = "mon-serveur"
  image_name  = "Debian 12"
  flavor_name = "b3-8"

  network {
    name = "Ext-Net"
  }
}