Add kubernetes cluster support
[releng/global-jjb.git] / jjb / lf-openstack-kubernetes.yaml
diff --git a/jjb/lf-openstack-kubernetes.yaml b/jjb/lf-openstack-kubernetes.yaml
new file mode 100644 (file)
index 0000000..9196609
--- /dev/null
@@ -0,0 +1,100 @@
+---
+- parameter:
+    name: lf-kubernetes-create
+    parameters:
+      - string:
+          name: BASE_IMAGE
+          default: "{base-image}"
+      - string:
+          name: BOOT_VOLUME_SIZE
+          default: "{boot-volume-size}"
+      - string:
+          name: CLUSTER_SETTLE_TIME
+          default: "{cluster-settle-time}"
+      - string:
+          name: DOCKER_VOLUME_SIZE
+          default: "{docker-volume-size}"
+      - string:
+          name: FIXED_NETWORK
+          default: "{fixed-network}"
+      - string:
+          name: FIXED_SUBNET
+          default: "{fixed-subnet}"
+      - string:
+          name: KEYPAIR
+          default: "{keypair}"
+      - string:
+          name: KUBERNETES_VERSION
+          default: "{kubernetes-version}"
+      - string:
+          name: MASTER_COUNT
+          default: "{master-count}"
+      - string:
+          name: MASTER_FLAVOR
+          default: "{master-flavor}"
+      - string:
+          name: NODE_COUNT
+          default: "{node-count}"
+      - string:
+          name: NODE_FLAVOR
+          default: "{node-flavor}"
+      - string:
+          name: OS_CLOUD
+          default: "{openstack-cloud}"
+
+- builder:
+    name: lf-kubernetes-create
+    builders:
+      - inject:
+          properties-content: |
+            BASE_IMAGE={base-image}
+            BOOT_VOLUME_SIZE={boot-volume-size}
+            CLUSTER_NAME=$SILO-$JOB_NAME-$BUILD_NUMBER
+            CLUSTER_SETTLE_TIME={cluster-settle-time}
+            CLUSTER_TEMPLATE_NAME=$SILO-$JOB_NAME-$BUILD_NUMBER-template
+            DOCKER_VOLUME_SIZE={docker-volume-size}
+            FIXED_NETWORK={fixed-network}
+            FIXED_SUBNET={fixed-subnet}
+            KEYPAIR={keypair}
+            KUBERNETES_VERSION={kubernetes-version}
+            MASTER_COUNT={master-count}
+            MASTER_FLAVOR={master-flavor}
+            NODE_COUNT={node-count}
+            NODE_FLAVOR={node-flavor}
+            OS_CLOUD={openstack-cloud}
+      - config-file-provider:
+          files:
+            - file-id: clouds-yaml
+              target: "$HOME/.config/openstack/clouds.yaml"
+      - shell: !include-raw-escape: ../shell/openstack-kubernetes-create.sh
+
+- publisher:
+    name: lf-kubernetes-delete
+    publishers:
+      - postbuildscript:
+          builders:
+            - role: BOTH
+              build-on:
+                - ABORTED
+                - FAILURE
+                - SUCCESS
+                - UNSTABLE
+              build-steps:
+                - inject:
+                    properties-content: |
+                      CLUSTER_NAME=$SILO-$JOB_NAME-$BUILD_NUMBER
+                      CLUSTER_TEMPLATE_NAME=$SILO-$JOB_NAME-$BUILD_NUMBER-template
+                - config-file-provider:
+                    files:
+                      - file-id: clouds-yaml
+                        target: "$HOME/.config/openstack/clouds.yaml"
+                - shell: |
+                    #!/bin/bash -l
+                    echo "Deleting $CLUSTER_NAME"
+                    set -eux -o pipefail
+                    openstack --os-cloud "$OS_CLOUD" coe cluster delete "$CLUSTER_NAME"
+                    echo "Cluster $CLUSTER_NAME now deleting, sleeping 5 minutes"
+                    sleep 5m
+                    echo "Deleting cluster template $CLUSTER_TEMPLATE_NAME"
+                    openstack --os-cloud "$OS_CLOUD" coe cluster template delete "$CLUSTER_TEMPLATE_NAME"
+          mark-unstable-if-failed: false