├── gitlab-ns.yml ├── ingress ├── configmap.yml ├── default-backend-svc.yml ├── nginx-settings-configmap.yml ├── gitlab-ingress.yml ├── default-backend-deployment.yml └── nginx-ingress-lb.yml ├── gitlab ├── storage.yml ├── redis-svc.yml ├── postgresql-svc.yml ├── gitlab-storage.yml ├── redis-storage.yml ├── gitlab-config-storage.yml ├── postgresql-storage.yml ├── gitlab-svc.yml ├── gitlab-svc-nodeport.yml ├── redis-deployment.yml ├── postgresql-deployment.yml └── gitlab-deployment.yml ├── minio ├── minio-svc.yml └── minio-deployment.yml ├── gitlab-runner ├── gitlab-runner-docker-configmap.yml └── gitlab-runner-docker-deployment.yml ├── LICENSE └── README.md /gitlab-ns.yml: -------------------------------------------------------------------------------- 1 | kind: Namespace 2 | apiVersion: v1 3 | metadata: 4 | name: gitlab 5 | -------------------------------------------------------------------------------- /ingress/configmap.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: tcp-gitlab-configmap 5 | namespace: gitlab 6 | data: 7 | 1022: "gitlab/gitlab:1022" 8 | -------------------------------------------------------------------------------- /gitlab/storage.yml: -------------------------------------------------------------------------------- 1 | apiVersion: storage.k8s.io/v1beta1 2 | kind: StorageClass 3 | metadata: 4 | name: fast 5 | namespace: gitlab 6 | provisioner: kubernetes.io/gce-pd 7 | parameters: 8 | type: pd-ssd 9 | -------------------------------------------------------------------------------- /ingress/default-backend-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: default-http-backend 5 | namespace: gitlab 6 | spec: 7 | ports: 8 | - port: 80 9 | targetPort: 8080 10 | protocol: TCP 11 | selector: 12 | app: default-http-backend 13 | -------------------------------------------------------------------------------- /ingress/nginx-settings-configmap.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: nginx-load-balancer-conf 5 | namespace: gitlab 6 | data: 7 | body-size: "0" 8 | proxy-connect-timeout: "10" 9 | proxy-read-timeout: "360" 10 | proxy-send-imeout: "360" 11 | -------------------------------------------------------------------------------- /minio/minio-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: minio 5 | namespace: gitlab 6 | labels: 7 | name: minio 8 | app: minio 9 | spec: 10 | selector: 11 | name: minio 12 | ports: 13 | - name: http 14 | port: 9000 15 | protocol: TCP 16 | -------------------------------------------------------------------------------- /gitlab/redis-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: gitlab-redis 5 | namespace: gitlab 6 | labels: 7 | name: gitlab-redis 8 | spec: 9 | selector: 10 | name: gitlab-redis 11 | ports: 12 | - name: redis 13 | port: 6379 14 | targetPort: redis 15 | -------------------------------------------------------------------------------- /gitlab/postgresql-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: gitlab-postgresql 5 | namespace: gitlab 6 | labels: 7 | name: gitlab-postgresql 8 | spec: 9 | ports: 10 | - name: postgres 11 | port: 5432 12 | targetPort: postgres 13 | selector: 14 | name: gitlab-postgresql 15 | -------------------------------------------------------------------------------- /gitlab/gitlab-storage.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: gitlab-rails-storage 5 | namespace: gitlab 6 | annotations: 7 | volume.beta.kubernetes.io/storage-class: fast 8 | spec: 9 | accessModes: 10 | - ReadWriteMany 11 | resources: 12 | requests: 13 | storage: 30Gi 14 | -------------------------------------------------------------------------------- /gitlab/redis-storage.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: gitlab-redis-storage 5 | namespace: gitlab 6 | annotations: 7 | volume.beta.kubernetes.io/storage-class: fast 8 | spec: 9 | accessModes: 10 | - ReadWriteOnce 11 | resources: 12 | requests: 13 | storage: 5Gi 14 | -------------------------------------------------------------------------------- /gitlab/gitlab-config-storage.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: gitlab-config-storage 5 | namespace: gitlab 6 | annotations: 7 | volume.beta.kubernetes.io/storage-class: fast 8 | spec: 9 | accessModes: 10 | - ReadWriteMany 11 | resources: 12 | requests: 13 | storage: 1Gi 14 | -------------------------------------------------------------------------------- /gitlab/postgresql-storage.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: gitlab-postgresql-storage 5 | namespace: gitlab 6 | annotations: 7 | volume.beta.kubernetes.io/storage-class: fast 8 | spec: 9 | accessModes: 10 | - ReadWriteOnce 11 | resources: 12 | requests: 13 | storage: 30Gi 14 | -------------------------------------------------------------------------------- /gitlab/gitlab-svc.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: gitlab 5 | namespace: gitlab 6 | labels: 7 | name: gitlab 8 | spec: 9 | type: LoadBalancer 10 | selector: 11 | name: gitlab 12 | ports: 13 | - name: http 14 | port: 80 15 | targetPort: http 16 | - name: ssh 17 | port: 1022 18 | targetPort: ssh 19 | -------------------------------------------------------------------------------- /gitlab/gitlab-svc-nodeport.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: gitlab-nodeport 5 | namespace: gitlab 6 | labels: 7 | name: gitlab 8 | spec: 9 | type: NodePort 10 | selector: 11 | name: gitlab 12 | ports: 13 | - name: ssh 14 | port: 22 15 | targetPort: ssh 16 | - name: http 17 | port: 80 18 | targetPort: http 19 | -------------------------------------------------------------------------------- /ingress/gitlab-ingress.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Ingress 3 | metadata: 4 | name: gitlab 5 | namespace: gitlab 6 | labels: 7 | name: gitlab 8 | spec: 9 | rules: 10 | - host: git.example.com 11 | http: 12 | paths: 13 | - path: / 14 | backend: 15 | serviceName: gitlab 16 | servicePort: 80 17 | - host: git-ssh.example.com 18 | http: 19 | paths: 20 | - path: / 21 | backend: 22 | serviceName: gitlab 23 | servicePort: 1022 24 | -------------------------------------------------------------------------------- /gitlab-runner/gitlab-runner-docker-configmap.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: gitlab-runner-docker 5 | namespace: gitlab 6 | data: 7 | config.toml: | 8 | concurrent = 4 9 | check_interval = 1 10 | 11 | [[runners]] 12 | name = "gitlab-docker-runner" 13 | url = "http://gitlab.gitlab/ci" 14 | token = "" 15 | executor = "docker" 16 | [runners.docker] 17 | tls_verify = false 18 | image = "python:3.5" 19 | privileged = true 20 | disable_cache = false 21 | volumes = ["/cache"] 22 | [runners.cache] 23 | Type = "s3" 24 | ServerAddress = "http://minio.gitlab/" 25 | AccessKey = "" 26 | SecretKey = "" 27 | BucketName = "runner" 28 | -------------------------------------------------------------------------------- /minio/minio-deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: minio 5 | namespace: gitlab 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | name: minio 12 | app: minio 13 | spec: 14 | containers: 15 | - name: minio 16 | image: minio/minio:RELEASE.2016-08-21T02-44-47Z 17 | resources: 18 | limits: 19 | cpu: 100m 20 | memory: 100Mi 21 | requests: 22 | cpu: 100m 23 | memory: 100Mi 24 | volumeMounts: 25 | - name: data-store 26 | mountPath: /export 27 | ports: 28 | - containerPort: 9000 29 | name: http 30 | protocol: TCP 31 | volumes: 32 | - name: data-store 33 | emptyDir: {} 34 | -------------------------------------------------------------------------------- /gitlab/redis-deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: gitlab-redis 5 | namespace: gitlab 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | name: gitlab-redis 12 | spec: 13 | containers: 14 | - name: redis 15 | image: redis:3.2.4 16 | ports: 17 | - name: redis 18 | containerPort: 6379 19 | volumeMounts: 20 | - mountPath: /var/lib/redis 21 | name: data 22 | livenessProbe: 23 | exec: 24 | command: 25 | - redis-cli 26 | - ping 27 | initialDelaySeconds: 30 28 | timeoutSeconds: 5 29 | readinessProbe: 30 | exec: 31 | command: 32 | - redis-cli 33 | - ping 34 | initialDelaySeconds: 5 35 | timeoutSeconds: 1 36 | volumes: 37 | - name: data 38 | persistentVolumeClaim: 39 | claimName: gitlab-redis-storage 40 | -------------------------------------------------------------------------------- /gitlab-runner/gitlab-runner-docker-deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: gitlab-runner-docker 5 | namespace: gitlab 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | name: docker-runner 12 | app: gitlab-runner 13 | spec: 14 | containers: 15 | - name: gitlab-runner-docker 16 | image: gitlab/gitlab-runner:v1.8.0 17 | imagePullPolicy: Always 18 | resources: 19 | limits: 20 | memory: 500Mi 21 | cpu: 600m 22 | requests: 23 | memory: 500Mi 24 | cpu: 600m 25 | volumeMounts: 26 | - name: config 27 | mountPath: /etc/gitlab-runner 28 | - name: var-run-docker-sock 29 | mountPath: /var/run/docker.sock 30 | volumes: 31 | - name: var-run-docker-sock 32 | hostPath: 33 | path: /var/run/docker.sock 34 | - name: config 35 | configMap: 36 | name: gitlab-runner-docker 37 | 38 | -------------------------------------------------------------------------------- /ingress/default-backend-deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: default-http-backend 5 | namespace: gitlab 6 | spec: 7 | replicas: 1 8 | selector: 9 | app: default-http-backend 10 | template: 11 | metadata: 12 | labels: 13 | app: default-http-backend 14 | spec: 15 | terminationGracePeriodSeconds: 60 16 | containers: 17 | - name: default-http-backend 18 | # Any image is permissable as long as: 19 | # 1. It serves a 404 page at / 20 | # 2. It serves 200 on a /healthz endpoint 21 | image: gcr.io/google_containers/defaultbackend:1.0 22 | livenessProbe: 23 | httpGet: 24 | path: /healthz 25 | port: 8080 26 | scheme: HTTP 27 | initialDelaySeconds: 30 28 | timeoutSeconds: 5 29 | ports: 30 | - containerPort: 8080 31 | resources: 32 | limits: 33 | cpu: 10m 34 | memory: 20Mi 35 | requests: 36 | cpu: 10m 37 | memory: 20Mi 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Sergey Nuzhdin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ingress/nginx-ingress-lb.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: DaemonSet 3 | metadata: 4 | name: nginx-ingress-lb 5 | spec: 6 | template: 7 | metadata: 8 | labels: 9 | name: nginx-ingress-lb 10 | spec: 11 | terminationGracePeriodSeconds: 60 12 | containers: 13 | - image: gcr.io/google_containers/nginx-ingress-controller:0.8.3 14 | name: nginx-ingress-lb 15 | imagePullPolicy: Always 16 | livenessProbe: 17 | httpGet: 18 | path: /healthz 19 | port: 10254 20 | scheme: HTTP 21 | initialDelaySeconds: 30 22 | timeoutSeconds: 5 23 | env: 24 | - name: POD_NAME 25 | valueFrom: 26 | fieldRef: 27 | fieldPath: metadata.name 28 | - name: POD_NAMESPACE 29 | valueFrom: 30 | fieldRef: 31 | fieldPath: metadata.namespace 32 | ports: 33 | - containerPort: 80 34 | hostPort: 80 35 | - containerPort: 443 36 | hostPort: 4443 37 | - containerPort: 1022 38 | hostPort: 1022 39 | args: 40 | - /nginx-ingress-controller 41 | - --default-backend-service=$(POD_NAMESPACE)/default-http-backend 42 | - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-ingress-configmap 43 | - --nginx-configmap=$(POD_NAMESPACE)/nginx-load-balancer-conf 44 | -------------------------------------------------------------------------------- /gitlab/postgresql-deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: gitlab-postgresql 5 | namespace: gitlab 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | name: gitlab-postgresql 12 | spec: 13 | containers: 14 | - name: postgresql 15 | image: postgres:9.5.3 16 | imagePullPolicy: Always 17 | env: 18 | - name: POSTGRES_USER 19 | value: gitlab 20 | - name: POSTGRES_PASSWORD 21 | value: +BP52QIxpT/flVCMpL3KXA== 22 | - name: POSTGRES_DB 23 | value: gitlab_production 24 | - name: DB_EXTENSION 25 | value: pg_trgm 26 | ports: 27 | - name: postgres 28 | containerPort: 5432 29 | volumeMounts: 30 | - mountPath: /var/lib/postgresql 31 | name: data 32 | livenessProbe: 33 | exec: 34 | command: 35 | - pg_isready 36 | - -h 37 | - localhost 38 | - -U 39 | - postgres 40 | initialDelaySeconds: 30 41 | timeoutSeconds: 5 42 | readinessProbe: 43 | exec: 44 | command: 45 | - pg_isready 46 | - -h 47 | - localhost 48 | - -U 49 | - postgres 50 | initialDelaySeconds: 5 51 | timeoutSeconds: 1 52 | volumes: 53 | - name: data 54 | persistentVolumeClaim: 55 | claimName: gitlab-postgresql-storage 56 | -------------------------------------------------------------------------------- /gitlab/gitlab-deployment.yml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Deployment 3 | metadata: 4 | name: gitlab 5 | namespace: gitlab 6 | spec: 7 | replicas: 1 8 | template: 9 | metadata: 10 | labels: 11 | name: gitlab 12 | app: gitlab 13 | spec: 14 | containers: 15 | - name: gitlab 16 | image: gitlab/gitlab-ce:8.15.4-ce.1 17 | imagePullPolicy: Always 18 | env: 19 | - name: GITLAB_OMNIBUS_CONFIG 20 | value: | 21 | external_url "http://gitlab.example.com" 22 | postgresql['enable']=false 23 | gitlab_rails['db_host'] = 'gitlab-postgresql' 24 | gitlab_rails['db_password']='+BP52QIxpT/flVCMpL3KXA==' 25 | gitlab_rails['db_username']='gitlab' 26 | gitlab_rails['db_database']='gitlab_production' 27 | redis['enable'] = false 28 | gitlab_rails['redis_host']='gitlab-redis' 29 | manage_accounts['enable'] = true 30 | manage_storage_directories['manage_etc'] = false 31 | gitlab_shell['auth_file'] = '/gitlab-data/ssh/authorized_keys' 32 | git_data_dir '/gitlab-data/git-data' 33 | gitlab_rails['shared_path'] = '/gitlab-data/shared' 34 | gitlab_rails['uploads_directory'] = '/gitlab-data/uploads' 35 | gitlab_ci['builds_directory'] = '/gitlab-data/builds' 36 | ports: 37 | - name: http 38 | containerPort: 80 39 | - name: ssh 40 | containerPort: 22 41 | volumeMounts: 42 | - name: config 43 | mountPath: /etc/gitlab 44 | - name: data 45 | mountPath: /gitlab-data 46 | livenessProbe: 47 | httpGet: 48 | path: /help 49 | port: 80 50 | initialDelaySeconds: 180 51 | timeoutSeconds: 15 52 | readinessProbe: 53 | httpGet: 54 | path: /help 55 | port: 80 56 | initialDelaySeconds: 15 57 | timeoutSeconds: 1 58 | volumes: 59 | - name: data 60 | persistentVolumeClaim: 61 | claimName: gitlab-rails-storage 62 | - name: config 63 | persistentVolumeClaim: 64 | claimName: gitlab-config-storage 65 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # kubernetes-gitlab 2 | Manifests to deploy GitLab on Kubernetes 3 | 4 | Installation process described in [blog](http://blog.lwolf.org/post/how-to-easily-deploy-gitlab-on-kubernetes/) 5 | 6 | ## 2016-11-24 Update #1 after post was published 7 | 8 | ### Bump versions 9 | 10 | * gitlab-runner:v1.8.0 11 | * gitlab:8.12.7 12 | * postgresql:9.5-3 13 | * redis:3.2.4 (official redis container) 14 | 15 | ### Change in ingress 16 | 17 | * SSH is now available through 1022 service post. 18 | * NGINX settings is now configurable with configmap nginx-settings-configmap.yml. 19 | Which currently sets body-size to 0 and increases timeouts to avoid timeouts. 20 | 21 | 22 | # TL;DR 23 | 24 | ## Deploying GitLab itself 25 | ``` 26 | # create gitlab namespace 27 | > $ kubectl create -f gitlab-ns.yml 28 | 29 | # create storage 30 | > $ kubectl create -f gitlab/storage.yml 31 | 32 | # deploy redis 33 | > $ kubectl create -f gitlab/redis-svc.yml 34 | > $ kubectl create -f gitlab/redis-storage.yml 35 | > $ kubectl create -f gitlab/redis-deployment.yml 36 | 37 | # deploy postgres 38 | > $ kubectl create -f gitlab/postgresql-svc.yml 39 | > $ kubectl create -f gitlab/postgresql-storage.yml 40 | > $ kubectl create -f gitlab/postgresql-deployment.yml 41 | 42 | # deploy gitlab itself 43 | > $ kubectl create -f gitlab/gitlab-svc.yml 44 | > $ kubectl create -f gitlab/gitlab-svc-nodeport.yml 45 | > $ kubectl create -f gitlab/gitlab-storage.yml 46 | > $ kubectl create -f gitlab/gitlab-config-storage.yml 47 | > $ kubectl create -f gitlab/gitlab-deployment.yml 48 | 49 | # deploy ingress controller 50 | > $ kubectl create -f ingress/default-backend-svc.yml 51 | > $ kubectl create -f ingress/default-backend-deployment.yml 52 | > $ kubectl create -f ingress/nginx-settings-configmap.yml 53 | > $ kubectl create -f ingress/configmap.yml 54 | > $ kubectl create -f ingress/nginx-ingress-lb.yml 55 | > $ kubectl create -f ingress/gitlab-ingress.yml 56 | 57 | ``` 58 | 59 | ## Deploying GitLab Runner 60 | 61 | ``` 62 | # deploy Minio 63 | kubectl create -f minio/minio-svc.yml 64 | kubectl create -f minio/minio-deployment.yml 65 | 66 | # check that it's running 67 | kubectl get pods --namespace=gitlab 68 | 69 | gitlab minio-2719559383-y9hl2 1/1 Running 0 1m 70 | 71 | # check logs for AccessKey and SecretKey 72 | > $ kubectl logs -f minio-2719559383-y9hl2 --namespace=gitlab 73 | + exec app server /export 74 | 75 | Endpoint: http://10.2.23.7:9000 http://127.0.0.1:9000 76 | AccessKey: 9HRGG3EK2DD0GP2HBB53 77 | SecretKey: zr+tKa6fS4/3PhYKWekJs65tRh8pbVl07cQlJfkW 78 | Region: us-east-1 79 | 80 | Browser Access: 81 | http://10.2.23.7:9000 http://127.0.0.1:9000 82 | 83 | Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide 84 | $ mc config host add myminio http://10.2.23.7:9000 9HRGG3EK2DD0GP2HBB53 zr+tKa6fS4/3PhYKWekJs65tRh8pbVl07cQlJfkW 85 | 86 | Object API (Amazon S3 compatible): 87 | Go: https://docs.minio.io/docs/golang-client-quickstart-guide 88 | Java: https://docs.minio.io/docs/java-client-quickstart-guide 89 | Python: https://docs.minio.io/docs/python-client-quickstart-guide 90 | JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide 91 | 92 | 93 | # create bucket named `runner` 94 | > $ kubectl exec -it minio-2719559383-y9hl2 --namespace=gitlab -- bash -c 'mkdir /export/runner' 95 | 96 | # register runner with token found on http://yourrunning-gitlab/admin/runners 97 | > $ kubectl run -it runner-registrator --image=gitlab/gitlab-runner:v1.5.2 --restart=Never -- register 98 | Waiting for pod default/runner-registrator-1573168835-tmlom to be running, status is Pending, pod ready: false 99 | 100 | Hit enter for command prompt 101 | 102 | Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci): 103 | http://gitlab.gitlab/ci 104 | Please enter the gitlab-ci token for this runner: 105 | _TBBy-zRLk7ac1jZfnPu 106 | Please enter the gitlab-ci description for this runner: 107 | 108 | Please enter the gitlab-ci tags for this runner (comma separated): 109 | shared,specific 110 | Registering runner... succeeded runner=_TBBy-zR 111 | Please enter the executor: virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh: 112 | docker 113 | Please enter the default Docker image (eg. ruby:2.1): 114 | python:3.5.1 115 | Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 116 | Session ended, resume using 'kubectl attach runner-registrator-1573168835-tmlom -c runner-registrator -i -t' command when the pod is running 117 | 118 | # delete temporary registrator 119 | > $ kubectl delete deployment/runner-registrator 120 | 121 | 122 | ``` 123 | 124 | Edit `gitlab-runner/gitlab-runner-docker-configmap.yml` and fill in your runner token and minio credentials. 125 | 126 | ``` 127 | # deploy configmap and runnner itself 128 | > $ kubectl create -f gitlab-runner/gitlab-runner-docker-configmap.yml 129 | > $ kubectl create -f gitlab-runner/gitlab-runner-docker-deployment.yml 130 | ``` 131 | --------------------------------------------------------------------------------