Ver código fonte

Añado lb service

Celestino Rey 5 meses atrás
pai
commit
f04852946a
4 arquivos alterados com 69 adições e 15 exclusões
  1. 40 0
      Jenkinsfile
  2. 0 15
      K8S/reymota-deployment.yaml
  3. 15 0
      K8S/reymota-service-lb.yaml
  4. 14 0
      K8S/reymota-service-np.yaml

+ 40 - 0
Jenkinsfile

@@ -26,6 +26,8 @@ pipeline {
     booleanParam(name: 'borranamespace', description: 'Borra namespace', defaultValue: false)
     booleanParam(name: 'borranamespace', description: 'Borra namespace', defaultValue: false)
     booleanParam(name: 'creadb', description: 'Crea el objeto para crear la DB en el cúster', defaultValue: false)
     booleanParam(name: 'creadb', description: 'Crea el objeto para crear la DB en el cúster', defaultValue: false)
     booleanParam(name: 'borradb', description: 'Borra el objeto que creó la DB, no la DB', defaultValue: false)
     booleanParam(name: 'borradb', description: 'Borra el objeto que creó la DB, no la DB', defaultValue: false)
+    booleanParam(name: 'servicelb', description: 'Crea el servicio LoadBalancer', defaultValue: false)
+    booleanParam(name: 'servicenp', description: 'Crea el servicio NodePort', defaultValue: false)
   }
   }
   
   
   stages {
   stages {
@@ -95,6 +97,40 @@ pipeline {
       }      
       }      
     }
     }
 
 
+    stage('Crea el servicio NodePort') {
+      when {
+        expression { params.servicenp}
+      }
+      steps {
+        echo "Creando el servicio NodePort..." 
+        container('kubectl') {
+          withCredentials([file(credentialsId: env.Destino, variable: 'KUBECONFIG')]) {
+	  sh """#!/bin/bash
+	    cat K8S/${NOMBRE_APP}-service-lb.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f - || true
+	    cat K8S/${NOMBRE_APP}-service.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f - 
+            """
+          }
+        }
+      }      
+    }
+
+    stage('Crea el servicio LoadBalancer') {
+      when {
+        expression { params.servicelb}
+      }
+      steps {
+        echo "Creando el servicio LoadBalancer..." 
+        container('kubectl') {
+          withCredentials([file(credentialsId: env.Destino, variable: 'KUBECONFIG')]) {
+	  sh """#!/bin/bash
+	    cat K8S/${NOMBRE_APP}-service.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl delete -f - || true
+	    cat K8S/${NOMBRE_APP}-service-lb.yaml | sed -e "s/<NS>/${NAMESPACE}/" | kubectl create -f - 
+            """
+          }
+        }
+      }      
+    }      
+
     stage('Borra todo') {
     stage('Borra todo') {
       when {
       when {
         expression { params.clean }
         expression { params.clean }
@@ -165,6 +201,8 @@ pipeline {
           expression { !params.borraclaims }
           expression { !params.borraclaims }
           expression { !params.creadb }
           expression { !params.creadb }
           expression { !params.borradb }
           expression { !params.borradb }
+          expression { !params.servicelb }
+          expression { !params.servicenp }
         }
         }
       }
       }
       steps {
       steps {
@@ -219,6 +257,8 @@ pipeline {
           expression { !params.borraclaims }
           expression { !params.borraclaims }
           expression { !params.creadb }
           expression { !params.creadb }
           expression { !params.borradb }
           expression { !params.borradb }
+          expression { !params.servicelb }
+          expression { !params.servicenp }
         }
         }
       }
       }
       steps {
       steps {

+ 0 - 15
K8S/reymota-deployment.yaml

@@ -1,18 +1,3 @@
-apiVersion: v1
-kind: Service
-metadata:
-  name: reymota
-  namespace: <NS>
-spec:
-  type: NodePort
-  ports:
-    - name: "8080"
-      port: 8080
-      nodePort: 30347
-      targetPort: 8080
-  selector:
-    app: reymota
----
 apiVersion: apps/v1
 apiVersion: apps/v1
 kind: Deployment
 kind: Deployment
 metadata:
 metadata:

+ 15 - 0
K8S/reymota-service-lb.yaml

@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: reymota-lb
+  namespace: <NS>
+  annotations:
+    metallb.io/loadBalancerIPs: 192.168.1.157
+spec:
+  type: LoadBalancer
+  ports:
+    - name: "80"
+      port: 80
+      targetPort: 8080
+  selector:
+    app: reymota

+ 14 - 0
K8S/reymota-service-np.yaml

@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: reymota
+  namespace: <NS>
+spec:
+  type: NodePort
+  ports:
+    - name: "8080"
+      port: 8080
+      nodePort: 30347
+      targetPort: 8080
+  selector:
+    app: reymota