Add GitLab and GitLab Runner.
Change-Id: Iaf9bbf4567db2ee7c5b36c6be767825093a2881d
diff --git a/gitlab-system/gitlab-runner/gitlab-runner.yaml b/gitlab-system/gitlab-runner/gitlab-runner.yaml
new file mode 100644
index 0000000..c562d69
--- /dev/null
+++ b/gitlab-system/gitlab-runner/gitlab-runner.yaml
@@ -0,0 +1,88 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: gitlab-runner
+ namespace: mulk
+ labels:
+ name: gitlab-runner
+ k8s-app: gitlab-runner
+
+spec:
+ replicas: 1
+
+ strategy:
+ rollingUpdate:
+ maxSurge: 1
+ maxUnavailable: 1
+
+ selector:
+ matchLabels:
+ k8s-app: gitlab-runner
+ name: gitlab-runner
+
+ template:
+ metadata:
+ labels:
+ name: gitlab-runner
+ k8s-app: gitlab-runner
+
+ spec:
+ imagePullSecrets:
+ - name: portus-token
+
+ runtimeClassName: kata
+
+ containers:
+ - name: master
+ image: docker.benkard.de/mulk/gitlab-runner:miyj7qdmgdbbqk7zkj3wdq0ld9zxdk2z
+
+ securityContext:
+ # In a Kata container, this only gives the container full
+ # access to the guest VM rather than the host. (To ensure
+ # this, it is important to set privileged_without_host_devices
+ # = true in the [plugins.cri.containerd.runtimes.kata] section
+ # of containerd's config.toml.)
+ privileged: true
+
+ volumeMounts:
+ # Configuration data.
+ - name: config
+ mountPath: /etc/gitlab-runner
+
+ # State.
+ - name: docker-data
+ mountPath: /vol/docker-data
+ - name: tmp
+ mountPath: /tmp
+
+ resources:
+ limits:
+ memory: 4G
+
+ volumes:
+ - name: config
+ secret:
+ secretName: gitlab-runner-config
+ - name: docker-data
+ persistentVolumeClaim:
+ claimName: gitlab-runner-docker
+ - name: tmp
+ emptyDir: {}
+
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: gitlab-runner-docker
+ namespace: mulk
+ annotations:
+ volume.beta.kubernetes.io/storage-provisioner: rancher.io/local-path
+ volume.kubernetes.io/selected-node: ifirn
+spec:
+ storageClassName: local-path
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 1Gi