Commit b24294ba authored by khadythiara's avatar khadythiara

pull file

Merge branch 'khady' of https://gitlab.baamtu.com/diopbe/odoo-demo into khady
parents f396c221 887f9c36
pipeline { pipeline {
environment { environment {
imagename = "khadydiagne/k8s_app" imagename = 'khadydiagne/odoo-app' // Nom de l'image Docker
registryCredential = 'docker' registryCredential = 'dockerhub' // Identifiants Docker Hub stockés dans Jenkins
SONAR_PROJECT_KEY = 'test_java'
SONAR_HOST_URL = 'http://192.168.230.128:9000'
SONAR_TOKEN = credentials('sonarqube') // Jeton d'accès SonarQube stocké dans Jenkins
KUBECONFIG = '/var/lib/jenkins/.kube/config' // Chemin vers le fichier kubeconfig dans Jenkins
}
agent any
stages {
stage('Cloning Git') {
steps {
git([url: 'https://github.com/khadythiara/test_sonarqube.git', branch: 'main'])
sh 'chmod +x ./mvnw'
}
} }
stage('Building Image') { agent any
steps {
script {
dockerImage = docker.build(imagename, ".")
}
}
}
stage('Push Image') { stages {
steps { stage('Cloning Git') {
script { steps {
docker.withRegistry('', registryCredential) { // Cloner le dépôt Git contenant le Dockerfile et l'application Odoo
dockerImage.push("$BUILD_NUMBER") git([url: 'https://github.com/khadythiara/test_sonarqube.git', branch: 'main'])
dockerImage.push('latest') }
}
} }
}
}
stage('ArgoCD Deployment') { stage('Building Docker Image') {
steps { steps {
script { script {
sh 'kubectl apply -f argocd_deploy.yaml --validate=false ' // Construire l'image Docker pour l'application Odoo
dockerImage = docker.build(imagename, ".")
}
}
} }
}
}
stage('Scale Deployment') { stage('Push Docker Image') {
steps { steps {
script { script {
// Mise à l'échelle des réplicas à 5 // Pousser l'image Docker vers Docker Hub
sh 'kubectl scale deployment k8s-app-deployment --replicas=3' docker.withRegistry('', registryCredential) {
// Vérification de la mise à l'échelle dockerImage.push("$BUILD_NUMBER")
sh 'kubectl get pods -o wide' dockerImage.push('latest')
}
}
}
} }
}
}
stage('Monitor Scaling') { stage('ArgoCD Deployment') {
steps { steps {
script { script {
// Affichage des métriques de ressources // Appliquer le fichier YAML pour le déploiement avec ArgoCD
sh 'kubectl top pods' bat 'kubectl apply -f argocd_deploy.yaml --validate=false'
}
// Optionnel : vérifier l'état de la charge sur les nœuds }
sh 'kubectl top nodes'
} }
}
}
stage('Verify Deployment') {
steps {
script {
// Vérifier que les ressources Kubernetes sont correctement déployées
sh 'kubectl get all -n default'
sh 'kubectl get pv'
sh 'kubectl get pvc'
sh 'kubectl get hpa'
stage('Verify Deployment') {
steps {
script {
// Vérifier que les ressources Kubernetes sont correctement déployées
bat 'kubectl get all -n default'
bat 'kubectl get pv'
bat 'kubectl get pvc'
bat 'kubectl get hpa'
}
}
} }
}
} }
}
post { post {
always { success {
script { echo 'L\'image Docker a été poussée avec succès sur Docker Hub.'
sh 'kubectl delete pods --field-selector=status.phase=Succeeded' }
failure {
echo 'Le pipeline a échoué.'
}
} }
echo 'Pipeline terminé et nettoyage effectué'
}
}
} }
# Deployment configuration # Deployment configuration
appName: k8s-app appName: odoo-app
replicaCount: 2 replicaCount: 2
containerName: k8s-app containerName: odoo-app
image: image:
repository: khadydiagne/k8s_app repository: khadydiagne/odoo_app
tag: latest tag: latest
containerPort: 8086 containerPort: 8069
resources: resources:
requests: requests:
cpu: "50m" cpu: "50m"
...@@ -16,26 +16,26 @@ resources: ...@@ -16,26 +16,26 @@ resources:
volume: volume:
name: storage-volume name: storage-volume
mountPath: /data mountPath: /data
persistentVolumeClaim: k8s-app-pvc persistentVolumeClaim: odoo-app-pvc
# Service configuration # Service configuration
service: service:
name: k8s-app-service # Nom du service à exposer dans l'Ingress name: odoo-app-service # Nom du service à exposer dans l'Ingress
port: 80 port: 80
targetPort: 8086 targetPort: 8069
type: ClusterIP type: ClusterIP
# Ingress configuration # Ingress configuration
ingress: ingress:
class: "nginx" # Ajouter la classe ingress ici class: "nginx" # Ajouter la classe ingress ici
rewriteTarget: "/" rewriteTarget: "/"
host: k8s-app.local host: odoo-app.local
path: / path: /
pathType: Prefix pathType: Prefix
# Persistent Volume configuration # Persistent Volume configuration
pv: pv:
name: k8s-app-pv name: odoo-app-pv
capacity: 1Gi capacity: 1Gi
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
reclaimPolicy: Retain reclaimPolicy: Retain
...@@ -43,7 +43,7 @@ pv: ...@@ -43,7 +43,7 @@ pv:
# Persistent Volume Claim configuration # Persistent Volume Claim configuration
pvc: pvc:
name: k8s-app-pvc name: odoo-app-pvc
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
storage: 1Gi storage: 1Gi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment