Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[FranceDevOps] - Votre CI/CD aux petits oignons...

[FranceDevOps] - Votre CI/CD aux petits oignons avec Gitlab CI !

Vous vous prenez la tête pour faire de l'intégration continue ? En plus ça tombe mal vos OPS ne sont pas dispos ? Gitlab met en place depuis quelques années des fonctionnalités permettant de gérer des pipelines de déploiement dans le même outil de gestion de sources.

Nous ne travaillons pas pour Gitlab (nous n’avons aucune action promis ^^), et nous ne voulons pas remplacer les OPS mais nous allons vous montrer comment Gitlab Ci peut vous permettre de gérer vos pipelines directement dans votre gestionnaire de conf préféré sans rien installer et en quelques minutes. Nous vous montrerons aussi comment pousser un peu plus Gitlab Ci dans ses retranchements et en tirer le meilleur.

Jean-Phi Baconnais

June 16, 2020
Tweet

More Decks by Jean-Phi Baconnais

Other Decks in Programming

Transcript

  1. 📦 Back go : stage: build image: name: gcr.io/kaniko-project/executor:debug entrypoint:

    [""] script: - echo "Packaging de la partie Go" - [...] only: - master https://unsplash.com/photos/Hcfwew744z4
  2. 📦 Back go : stage: build image: name: gcr.io/kaniko-project/executor:debug entrypoint:

    [""] script: - echo "Packaging de la partie Go" - [...] only: - master https://unsplash.com/photos/Hcfwew744z4 gitlab-runner exec docker '📦 Back go'
  3. analyse qualimetrique: stage : sonar dependencies: - test de validation

    script: - ./mvnw $MAVEN_CLI_OPTS sonar:sonar -Dsonar.host.url=' http://[...]/sonar006/ ' -Dsonar.projectKey=$CI_PROJECT_NAME-features -Dsonar.sources=src/main/java -Dsonar.exclusions=**/resources/**,**/bean/** -Dsonar.java.binaries=target/classes only: - develop
  4. deploy: only: refs: - master stage: deploy image: docker:stable services:

    - docker:dind script: - docker login -u gitlabci -p "$CI_SECRET" registry.gitlab.com - docker build -t registry.gitlab.com/jeanphi.baconnais/jdk8_gitlabci . - docker push registry.gitlab.com/jeanphi.baconnais/jdk8_gitlabci:latest
  5. deploy: only: refs: - master stage: deploy image: docker:stable services:

    - docker:dind script: - docker login -u gitlabci -p "$CI_SECRET" registry.gitlab.com - docker build -t registry.gitlab.com/jeanphi.baconnais/jdk8_gitlabci . - docker push registry.gitlab.com/jeanphi.baconnais/jdk8_gitlabci:latest
  6. 🐳 build_push_image_docker: stage: build image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script:

    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REG ISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - echo $CI_COMMIT_REF_NAME"_"$CI_PIPELINE_ID > /kaniko/version.txt - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$(cat /kaniko/version.txt)
  7. 🐋 deploy_gcp : stage: deploy image: google/cloud-sdk script: - kubectl

    create deployment hello-web --image=hello-world - kubectl expose deployment hello-web --type=LoadBalancer --port 80 --target-port 8080 environment: name: gke
  8. 🐋 deploy_gcp : stage: deploy image: google/cloud-sdk script: - kubectl

    apply -f k8s/hello-world.yaml environment: name: gke
  9. Build : Ok Tester une application et générer un rapport

    Jacocco : Ok Construire une image Docker et la publier dans le registry Gitlab : Ok En résumé
  10. Build : Ok Tester une application et générer un rapport

    Jacocco : Ok Construire une image Docker et la publier dans le registry Gitlab : Ok Brancher un jenkins à Gitlab : Ok En résumé
  11. Build : Ok Tester une application et générer un rapport

    Jacocco : Ok Construire une image Docker et la publier dans le registry Gitlab : Ok Brancher un jenkins à Gitlab : Ok Se connecter sur un serveur distant : Ok En résumé
  12. Build : Ok Tester une application et générer un rapport

    Jacocco : Ok Construire une image Docker et la publier dans le registry Gitlab : Ok Brancher un jenkins à Gitlab : Ok Se connecter sur un serveur distant : Ok Déployer une application sur le serveur distant: Ok En résumé
  13. Build : Ok Tester une application et générer un rapport

    Jacocco : Ok Construire une image Docker et la publier dans le registry Gitlab : Ok Brancher un jenkins à Gitlab : Ok Se connecter sur un serveur distant : Ok Déployer une application sur le serveur distant: Ok Déployer une application sur kubernetes dans un cloud : Ok En résumé
  14. Build : Ok Tester une application et générer un rapport

    Jacocco : Ok Construire une image Docker et la publier dans le registry Gitlab : Ok Brancher un jenkins à Gitlab : Ok Se connecter sur un serveur distant : Ok Déployer une application sur le serveur distant: Ok Déployer une application sur kubernetes dans un cloud : Ok Déployer en production après une action manuelle : Ok En résumé
  15. Continuer à travailler avec Gitlab : 1 seul outil Dev

    + OPS Intégration d’outils facile La suite ?
  16. Continuer à travailler avec Gitlab : 1 seul outil Dev

    + OPS Intégration d’outils facile Prise en main “assez” simple La suite ?
  17. La suite ? Continuer à travailler avec Gitlab : 1

    seul outil Dev + OPS Intégration d’outils facile Prise en main “assez” simple Travaux en cours pour déployer en auto la production
  18. La suite ? Continuer à travailler avec Gitlab : 1

    seul outil Dev + OPS Intégration d’outils facile Prise en main “assez” simple Travaux en cours pour déployer en auto la production Pas de migration jenkins vers Gitlab prévue
  19. La suite ? Continuer à travailler avec Gitlab : 1

    seul outil Dev + OPS Intégration d’outils facile Prise en main “assez” simple Travaux en cours pour déployer en auto la production Pas de migration jenkins vers Gitlab prévue Mais utilisation sur de nouveaux projets
  20. La suite ? Continuer à travailler avec Gitlab : 1

    seul outil Dev + OPS Intégration d’outils facile Prise en main “assez” simple Travaux en cours pour déployer en auto la production Pas de migration jenkins vers Gitlab Mais utilisation sur de nouveaux projets On conseille fortement !