Переглянути джерело

support multiple volume for runner

root 5 роки тому
батько
коміт
48e22451ad

+ 0 - 0
gitrunner/git-runner-cm.yaml → gitrunner/deploy.bak/git-runner-cm.yaml


+ 0 - 0
gitrunner/git-runner-secret.yaml → gitrunner/deploy.bak/git-runner-secret.yaml


+ 0 - 0
gitrunner/git-runner.yaml → gitrunner/deploy.bak/git-runner.yaml


+ 0 - 68
gitrunner/deploy.bak/runner-cm.yaml

@@ -1,68 +0,0 @@
-apiVersion: v1
-data:
-  check-live: |
-    #!/bin/bash
-    if /usr/bin/pgrep -f .*register-the-runner; then
-      exit 0
-    elif /usr/bin/pgrep gitlab.*runner; then
-      exit 0
-    else
-      exit 1
-    fi
-  config.toml: |
-    concurrent = 10
-    check_interval = 30
-    log_level = "info"
-    listen_address = '[::]:9252'
-  configure: |
-    set -e
-    cp /init-secrets/* /secrets
-  entrypoint: |
-    #!/bin/bash
-    set -e
-    mkdir -p /home/gitlab-runner/.gitlab-runner/
-    cp /scripts/config.toml /home/gitlab-runner/.gitlab-runner/
-
-    # Register the runner
-    if [[ -f /secrets/accesskey && -f /secrets/secretkey ]]; then
-      export CACHE_S3_ACCESS_KEY=$(cat /secrets/accesskey)
-      export CACHE_S3_SECRET_KEY=$(cat /secrets/secretkey)
-    fi
-
-    if [[ -f /secrets/gcs-applicaton-credentials-file ]]; then
-      export GOOGLE_APPLICATION_CREDENTIALS="/secrets/gcs-applicaton-credentials-file"
-    else
-      if [[ -f /secrets/gcs-access-id && -f /secrets/gcs-private-key ]]; then
-        export CACHE_GCS_ACCESS_ID=$(cat /secrets/gcs-access-id)
-        # echo -e used to make private key multiline (in google json auth key private key is oneline with \n)
-        export CACHE_GCS_PRIVATE_KEY=$(echo -e $(cat /secrets/gcs-private-key))
-      fi
-    fi
-
-    if [[ -f /secrets/runner-registration-token ]]; then
-      export REGISTRATION_TOKEN=$(cat /secrets/runner-registration-token)
-    fi
-
-    if [[ -f /secrets/runner-token ]]; then
-      export CI_SERVER_TOKEN=$(cat /secrets/runner-token)
-    fi
-
-    if ! sh /scripts/register-the-runner; then
-      exit 1
-    fi
-
-    # Start the runner
-    /entrypoint run --user=gitlab-runner \
-      --working-directory=/home/gitlab-runner
-  register-the-runner: "#!/bin/bash\nMAX_REGISTER_ATTEMPTS=30\n\nfor i in $(seq
-    1 \"${MAX_REGISTER_ATTEMPTS}\"); do\n  echo \"Registration attempt ${i} of ${MAX_REGISTER_ATTEMPTS}\"\n
-    \ /entrypoint register \\\n    --non-interactive\n\n  retval=$?\n\n  if [ ${retval}
-    = 0 ]; then\n    break\n  elif [ ${i} = ${MAX_REGISTER_ATTEMPTS} ]; then\n    exit
-    1\n  fi\n\n  sleep 5 \ndone\n\nexit 0\n"
-kind: ConfigMap
-metadata:
-  labels:
-    app: gitlab-runner-gitlab-runner
-    chart: gitlab-runner-0.7.0
-    release: gitlab-runner
-  name: gitlab-runner-gitlab-runner

+ 0 - 13
gitrunner/deploy.bak/runner-regis-token-secret.yaml

@@ -1,13 +0,0 @@
-apiVersion: v1
-data:
-  # change the token value from gitlab-ci token
-  runner-registration-token: amRDemFmcEpMZ0hNeExuekh0WEo=
-  runner-token: ""
-kind: Secret
-metadata:
-  labels:
-    app: gitlab-runner-gitlab-runner
-    chart: gitlab-runner-0.7.0
-    release: gitlab-runner
-  name: gitlab-runner-gitlab-runner
-type: Opaque

+ 91 - 0
gitrunner/gitrunner-cm.yaml

@@ -0,0 +1,91 @@
+apiVersion: v1
+items:
+- apiVersion: v1
+  data:
+    check-live: |
+      #!/bin/bash
+      if /usr/bin/pgrep -f .*register-the-runner; then
+        exit 0
+      elif /usr/bin/pgrep gitlab.*runner; then
+        exit 0
+      else
+        exit 1
+      fi
+    config.toml: |
+      concurrent = 10
+      check_interval = 0
+      log_level = "info"
+      listen_address = '[::]:9252'
+    configure: |
+      set -e
+      cp /init-secrets/* /secrets
+    entrypoint: |
+      #!/bin/bash
+      set -e
+      mkdir -p /home/gitlab-runner/.gitlab-runner/
+      cp /scripts/config.toml /home/gitlab-runner/.gitlab-runner/
+
+      # Register the runner
+      if [[ -f /secrets/accesskey && -f /secrets/secretkey ]]; then
+        export CACHE_S3_ACCESS_KEY=$(cat /secrets/accesskey)
+        export CACHE_S3_SECRET_KEY=$(cat /secrets/secretkey)
+      fi
+
+      if [[ -f /secrets/gcs-applicaton-credentials-file ]]; then
+        export GOOGLE_APPLICATION_CREDENTIALS="/secrets/gcs-applicaton-credentials-file"
+      else
+        if [[ -f /secrets/gcs-access-id && -f /secrets/gcs-private-key ]]; then
+          export CACHE_GCS_ACCESS_ID=$(cat /secrets/gcs-access-id)
+          # echo -e used to make private key multiline (in google json auth key private key is oneline with \n)
+          export CACHE_GCS_PRIVATE_KEY=$(echo -e $(cat /secrets/gcs-private-key))
+        fi
+      fi
+
+      if [[ -f /secrets/runner-registration-token ]]; then
+        export REGISTRATION_TOKEN=$(cat /secrets/runner-registration-token)
+      fi
+
+      if [[ -f /secrets/runner-token ]]; then
+        export CI_SERVER_TOKEN=$(cat /secrets/runner-token)
+      fi
+
+      if ! sh /scripts/register-the-runner; then
+        exit 1
+      fi
+
+      # Temporary workaround until https://gitlab.com/gitlab-org/gitlab-runner/issues/4228
+      # is merged
+      sed -n '30,$p' /home/gitlab-runner/.gitlab-runner/config.toml >> /home/gitlab-runner/custom_commands
+      sed -e '30,$d' -i /home/gitlab-runner/.gitlab-runner/config.toml
+      cat /scripts/kubernetes.volumes | sed -e '1d' | sed '1,$s/^/      /' >> /home/gitlab-runner/.gitlab-runner/config.toml
+      cat /home/gitlab-runner/custom_commands >> /home/gitlab-runner/.gitlab-runner/config.toml
+
+      # Start the runner
+      /entrypoint run --user=gitlab-runner \
+        --working-directory=/home/gitlab-runner
+    kubernetes.volumes: "\n[[runners.kubernetes.volumes.pvc]]\n  mount_path = \"/cache/\"\n
+      \ name = \"gitrunner-workspace\"\n  read_only = false\n  \n[[runners.kubernetes.volumes.secret]]\n
+      \ mount_path = \"/mnt\"\n  name = \"limit-ns-kubeconfig\"\n  read_only = true\n
+      \ \n"
+    register-the-runner: "#!/bin/bash\nMAX_REGISTER_ATTEMPTS=30\n\nfor i in $(seq
+      1 \"${MAX_REGISTER_ATTEMPTS}\"); do\n  echo \"Registration attempt ${i} of ${MAX_REGISTER_ATTEMPTS}\"\n
+      \ /entrypoint register \\\n    --non-interactive\n\n  retval=$?\n\n  if [ ${retval}
+      = 0 ]; then\n    break\n  elif [ ${i} = ${MAX_REGISTER_ATTEMPTS} ]; then\n    exit
+      1\n  fi\n\n  sleep 5 \ndone\n\nexit 0\n"
+  kind: ConfigMap
+  metadata:
+    creationTimestamp: "2019-08-14T05:40:29Z"
+    labels:
+      app: gitrunner-gitlab-runner
+      chart: gitlab-runner-0.8.0-beta
+      heritage: Tiller
+      release: gitrunner
+    name: gitrunner-gitlab-runner
+    namespace: default
+    resourceVersion: "19191198"
+    selfLink: /api/v1/namespaces/default/configmaps/gitrunner-gitlab-runner
+    uid: 06a04ee7-be56-11e9-bf75-f80f41f27da1
+kind: List
+metadata:
+  resourceVersion: ""
+  selfLink: ""

+ 38 - 28
gitrunner/deploy.bak/gitlab-runner.yaml → gitrunner/gitrunner-deploy.yaml

@@ -1,16 +1,19 @@
 apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
+  annotations:
+    deployment.kubernetes.io/revision: "1"
+  generation: 1
   labels:
-    app: gitlab-runner-gitlab-runner
-    chart: gitlab-runner-0.7.0
-    release: gitlab-runner
-  name: gitlab-runner-gitlab-runner
+    app: gitrunner-gitlab-runner
+    chart: gitlab-runner-0.8.0-beta
+    release: gitrunner
+  name: gitrunner-gitlab-runner
 spec:
   replicas: 1
   selector:
     matchLabels:
-      app: gitlab-runner-gitlab-runner
+      app: gitrunner-gitlab-runner
   strategy:
     rollingUpdate:
       maxSurge: 1
@@ -22,7 +25,7 @@ spec:
         prometheus.io/port: "9252"
         prometheus.io/scrape: "true"
       labels:
-        app: gitlab-runner-gitlab-runner
+        app: gitrunner-gitlab-runner
     spec:
       containers:
       - command:
@@ -30,7 +33,7 @@ spec:
         - /scripts/entrypoint
         env:
         - name: CI_SERVER_URL
-          value: http://g.xxx.com.cn/ci/
+          value: http://g.com.cn/ci/
         - name: CLONE_URL
         - name: RUNNER_REQUEST_CONCURRENCY
           value: "1"
@@ -47,25 +50,25 @@ spec:
         - name: KUBERNETES_NAMESPACE
           value: default
         - name: KUBERNETES_CPU_LIMIT
+          value: 3000m
         - name: KUBERNETES_MEMORY_LIMIT
+          value: 2048Mi
         - name: KUBERNETES_CPU_REQUEST
+          value: 100m
         - name: KUBERNETES_MEMORY_REQUEST
+          value: 256Mi
         - name: KUBERNETES_SERVICE_ACCOUNT
         - name: KUBERNETES_SERVICE_CPU_LIMIT
-          value: 200m
         - name: KUBERNETES_SERVICE_MEMORY_LIMIT
-          value: 256Mi
         - name: KUBERNETES_SERVICE_CPU_REQUEST
-          value: 100m
         - name: KUBERNETES_SERVICE_MEMORY_REQUEST
-          value: 128Mi
         - name: KUBERNETES_HELPER_CPU_LIMIT
         - name: KUBERNETES_HELPER_MEMORY_LIMIT
         - name: KUBERNETES_HELPER_CPU_REQUEST
         - name: KUBERNETES_HELPER_MEMORY_REQUEST
         - name: KUBERNETES_HELPER_IMAGE
         - name: KUBERNETES_PULL_POLICY
-        image: 10.120.116.178/package-images/gitlab-runner:alpine-v12.1.0 
+        image: gitlab/gitlab-runner:alpine-v11.6.0
         imagePullPolicy: IfNotPresent
         lifecycle:
           preStop:
@@ -84,7 +87,7 @@ spec:
           periodSeconds: 10
           successThreshold: 1
           timeoutSeconds: 1
-        name: gitlab-runner-gitlab-runner
+        name: gitrunner-gitlab-runner
         ports:
         - containerPort: 9252
           name: metrics
@@ -99,7 +102,13 @@ spec:
           periodSeconds: 10
           successThreshold: 1
           timeoutSeconds: 1
-        resources: {}
+        resources:
+          limits:
+            cpu: 200m
+            memory: 256Mi
+          requests:
+            cpu: 10m
+            memory: 128Mi
         terminationMessagePath: /dev/termination-log
         terminationMessagePolicy: File
         volumeMounts:
@@ -109,8 +118,6 @@ spec:
           name: etc-gitlab-runner
         - mountPath: /scripts
           name: scripts
-        - mountPath: /builds
-          name: builds
       dnsPolicy: ClusterFirst
       initContainers:
       - command:
@@ -118,7 +125,7 @@ spec:
         - /config/configure
         env:
         - name: CI_SERVER_URL
-          value: http://g.xxx.com.cn/ci/
+          value: http://g.com.cn/ci/
         - name: CLONE_URL
         - name: RUNNER_REQUEST_CONCURRENCY
           value: "1"
@@ -135,28 +142,34 @@ spec:
         - name: KUBERNETES_NAMESPACE
           value: default
         - name: KUBERNETES_CPU_LIMIT
+          value: 3000m
         - name: KUBERNETES_MEMORY_LIMIT
+          value: 2048Mi
         - name: KUBERNETES_CPU_REQUEST
+          value: 100m
         - name: KUBERNETES_MEMORY_REQUEST
+          value: 256Mi
         - name: KUBERNETES_SERVICE_ACCOUNT
         - name: KUBERNETES_SERVICE_CPU_LIMIT
-          value: 200m
         - name: KUBERNETES_SERVICE_MEMORY_LIMIT
-          value: 256Mi
         - name: KUBERNETES_SERVICE_CPU_REQUEST
-          value: 100m
         - name: KUBERNETES_SERVICE_MEMORY_REQUEST
-          value: 128Mi
         - name: KUBERNETES_HELPER_CPU_LIMIT
         - name: KUBERNETES_HELPER_MEMORY_LIMIT
         - name: KUBERNETES_HELPER_CPU_REQUEST
         - name: KUBERNETES_HELPER_MEMORY_REQUEST
         - name: KUBERNETES_HELPER_IMAGE
         - name: KUBERNETES_PULL_POLICY
-        image: 10.120.116.178/package-images/gitlab-runner:alpine-v12.1.0
+        image: gitlab/gitlab-runner:alpine-v11.6.0
         imagePullPolicy: IfNotPresent
         name: configure
-        resources: {}
+        resources:
+          limits:
+            cpu: 200m
+            memory: 256Mi
+          requests:
+            cpu: 10m
+            memory: 128Mi
         terminationMessagePath: /dev/termination-log
         terminationMessagePolicy: File
         volumeMounts:
@@ -177,9 +190,6 @@ spec:
       serviceAccountName: gitlab
       terminationGracePeriodSeconds: 30
       volumes:
-      - name: builds
-        persistentVolumeClaim:
-          claimName: gitrunner-workspace
       - emptyDir:
           medium: Memory
         name: runner-secrets
@@ -196,8 +206,8 @@ spec:
                 path: runner-registration-token
               - key: runner-token
                 path: runner-token
-              name: gitlab-runner-gitlab-runner
+              name: gitrunner-gitlab-runner
       - configMap:
           defaultMode: 420
-          name: gitlab-runner-gitlab-runner
+          name: gitrunner-gitlab-runner
         name: scripts

+ 18 - 0
gitrunner/gitrunner-secret.yaml

@@ -0,0 +1,18 @@
+apiVersion: v1
+data:
+  runner-registration-token: amRDemFmcEpMZ0hNeExuekh0WEo=
+  runner-token: ""
+kind: Secret
+metadata:
+  creationTimestamp: "2019-08-14T05:40:29Z"
+  labels:
+    app: gitrunner-gitlab-runner
+    chart: gitlab-runner-0.8.0-beta
+    heritage: Tiller
+    release: gitrunner
+  name: gitrunner-gitlab-runner
+  namespace: default
+  resourceVersion: "19191197"
+  selfLink: /api/v1/namespaces/default/secrets/gitrunner-gitlab-runner
+  uid: 069ebdd2-be56-11e9-bf75-f80f41f27da1
+type: Opaque