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 {
environment {
imagename = "khadydiagne/k8s_app"
registryCredential = 'docker'
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'
}
environment {
imagename = 'khadydiagne/odoo-app' // Nom de l'image Docker
registryCredential = 'dockerhub' // Identifiants Docker Hub stockés dans Jenkins
}
stage('Building Image') {
steps {
script {
dockerImage = docker.build(imagename, ".")
}
}
}
agent any
stage('Push Image') {
steps {
script {
docker.withRegistry('', registryCredential) {
dockerImage.push("$BUILD_NUMBER")
dockerImage.push('latest')
}
stages {
stage('Cloning Git') {
steps {
// Cloner le dépôt Git contenant le Dockerfile et l'application Odoo
git([url: 'https://github.com/khadythiara/test_sonarqube.git', branch: 'main'])
}
}
}
}
stage('ArgoCD Deployment') {
steps {
script {
sh 'kubectl apply -f argocd_deploy.yaml --validate=false '
stage('Building Docker Image') {
steps {
script {
// Construire l'image Docker pour l'application Odoo
dockerImage = docker.build(imagename, ".")
}
}
}
}
}
stage('Scale Deployment') {
steps {
script {
// Mise à l'échelle des réplicas à 5
sh 'kubectl scale deployment k8s-app-deployment --replicas=3'
// Vérification de la mise à l'échelle
sh 'kubectl get pods -o wide'
stage('Push Docker Image') {
steps {
script {
// Pousser l'image Docker vers Docker Hub
docker.withRegistry('', registryCredential) {
dockerImage.push("$BUILD_NUMBER")
dockerImage.push('latest')
}
}
}
}
}
}
stage('Monitor Scaling') {
steps {
script {
// Affichage des métriques de ressources
sh 'kubectl top pods'
// Optionnel : vérifier l'état de la charge sur les nœuds
sh 'kubectl top nodes'
stage('ArgoCD Deployment') {
steps {
script {
// Appliquer le fichier YAML pour le déploiement avec ArgoCD
bat 'kubectl apply -f argocd_deploy.yaml --validate=false'
}
}
}
}
}
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 {
always {
script {
sh 'kubectl delete pods --field-selector=status.phase=Succeeded'
post {
success {
echo 'L\'image Docker a été poussée avec succès sur Docker Hub.'
}
failure {
echo 'Le pipeline a échoué.'
}
}
echo 'Pipeline terminé et nettoyage effectué'
}
}
}
# Deployment configuration
appName: k8s-app
appName: odoo-app
replicaCount: 2
containerName: k8s-app
containerName: odoo-app
image:
repository: khadydiagne/k8s_app
repository: khadydiagne/odoo_app
tag: latest
containerPort: 8086
containerPort: 8069
resources:
requests:
cpu: "50m"
......@@ -16,26 +16,26 @@ resources:
volume:
name: storage-volume
mountPath: /data
persistentVolumeClaim: k8s-app-pvc
persistentVolumeClaim: odoo-app-pvc
# Service configuration
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
targetPort: 8086
targetPort: 8069
type: ClusterIP
# Ingress configuration
ingress:
class: "nginx" # Ajouter la classe ingress ici
rewriteTarget: "/"
host: k8s-app.local
host: odoo-app.local
path: /
pathType: Prefix
# Persistent Volume configuration
pv:
name: k8s-app-pv
name: odoo-app-pv
capacity: 1Gi
accessMode: ReadWriteOnce
reclaimPolicy: Retain
......@@ -43,7 +43,7 @@ pv:
# Persistent Volume Claim configuration
pvc:
name: k8s-app-pvc
name: odoo-app-pvc
accessMode: ReadWriteOnce
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