diff --git a/kubernetes/destroy.sh b/kubernetes/destroy.sh new file mode 100755 index 00000000..90b90a99 --- /dev/null +++ b/kubernetes/destroy.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# +# Assuming you have a kubernetes cluser and kubectl installed +# +for i in *.yml +do + kubectl delete -f $i +done diff --git a/kubernetes/gitlab-service.yml b/kubernetes/gitlab-service.yml index c8698c4d..5ac75717 100644 --- a/kubernetes/gitlab-service.yml +++ b/kubernetes/gitlab-service.yml @@ -5,7 +5,8 @@ metadata: labels: name: gitlab spec: - type: LoadBalancer + type: ClusterIP + externalIPs: [172.17.4.201] ports: - name: http port: 80 diff --git a/kubernetes/gitlab.yml b/kubernetes/gitlab.yml index b3d7c175..7f854ce1 100644 --- a/kubernetes/gitlab.yml +++ b/kubernetes/gitlab.yml @@ -1,111 +1,111 @@ apiVersion: v1 -kind: Pod +kind: ReplicationController metadata: name: gitlab - labels: - name: gitlab spec: - containers: - - name: gitlab - image: sameersbn/gitlab:8.6.4 - env: - - name: TZ - value: Asia/Kolkata - - name: GITLAB_TIMEZONE - value: Kolkata + replicas: 1 + selector: + name: gitlab + template: + metadata: + name: gitlab + labels: + name: gitlab + spec: + containers: + - name: gitlab + image: sameersbn/gitlab:8.6.4 + env: + - name: TZ + value: Asia/Kolkata + - name: GITLAB_TIMEZONE + value: Kolkata - - name: GITLAB_SECRETS_DB_KEY_BASE - value: long-and-random-alpha-numeric-string + - name: GITLAB_SECRETS_DB_KEY_BASE + value: long-and-random-alpha-numeric-string - - name: GITLAB_HOST - value: git.example.com - - name: GITLAB_PORT - value: "80" - - name: GITLAB_SSH_PORT - value: "22" + - name: GITLAB_HOST + value: git.default.cluster.local + - name: GITLAB_PORT + value: "80" + - name: GITLAB_SSH_PORT + value: "22" - - name: GITLAB_NOTIFY_ON_BROKEN_BUILDS - value: "true" - - name: GITLAB_NOTIFY_PUSHER - value: "false" + - name: GITLAB_NOTIFY_ON_BROKEN_BUILDS + value: "true" + - name: GITLAB_NOTIFY_PUSHER + value: "false" - - name: GITLAB_EMAIL - value: notifications@example.com - - name: GITLAB_EMAIL_REPLY_TO - value: noreply@example.com - - name: GITLAB_INCOMING_EMAIL_ADDRESS - value: reply@example.com + - name: GITLAB_BACKUP_SCHEDULE + value: daily + - name: GITLAB_BACKUP_TIME + value: 01:00 - - name: GITLAB_BACKUP_SCHEDULE - value: daily - - name: GITLAB_BACKUP_TIME - value: 01:00 + - name: DB_TYPE + value: postgres + - name: DB_HOST + value: postgresql + - name: DB_PORT + value: "5432" + - name: DB_USER + value: gitlab + - name: DB_PASS + value: passw0rd + - name: DB_NAME + value: gitlab_production - - name: DB_TYPE - value: postgres - - name: DB_HOST - value: postgresql - - name: DB_PORT - value: "5432" - - name: DB_USER - value: gitlab - - name: DB_PASS - value: passw0rd - - name: DB_NAME - value: gitlab_production + - name: REDIS_HOST + value: redis + - name: REDIS_PORT + value: "6379" - - name: REDIS_HOST - value: redis - - name: REDIS_PORT - value: "6379" + - name: SMTP_ENABLED + value: "false" + - name: SMTP_DOMAIN + value: www.example.com + - name: SMTP_HOST + value: smtp.gmail.com + - name: SMTP_PORT + value: "587" + - name: SMTP_USER + value: mailer@example.com + - name: SMTP_PASS + value: password + - name: SMTP_STARTTLS + value: "true" + - name: SMTP_AUTHENTICATION + value: login - - name: SMTP_ENABLED - value: "false" - - name: SMTP_DOMAIN - value: www.example.com - - name: SMTP_HOST - value: smtp.gmail.com - - name: SMTP_PORT - value: "587" - - name: SMTP_USER - value: mailer@example.com - - name: SMTP_PASS - value: password - - name: SMTP_STARTTLS - value: "true" - - name: SMTP_AUTHENTICATION - value: login - - - name: IMAP_ENABLED - value: "false" - - name: IMAP_HOST - value: imap.gmail.com - - name: IMAP_PORT - value: "993" - - name: IMAP_USER - value: mailer@example.com - - name: IMAP_PASS - value: password - - name: IMAP_SSL - value: "true" - - name: IMAP_STARTTLS - value: "false" - ports: - - name: http - containerPort: 80 - protocol: TCP - - name: ssh - containerPort: 22 - protocol: TCP - volumeMounts: - - mountPath: /home/git/data - name: data - livenessProbe: - httpGet: - path: / - port: 80 - initialDelaySeconds: 90 - timeoutSeconds: 5 - volumes: - - name: data - emptyDir: {} + - name: IMAP_ENABLED + value: "false" + - name: IMAP_HOST + value: imap.gmail.com + - name: IMAP_PORT + value: "993" + - name: IMAP_USER + value: mailer@example.com + - name: IMAP_PASS + value: password + - name: IMAP_SSL + value: "true" + - name: IMAP_STARTTLS + value: "false" + ports: + - name: http + containerPort: 80 + protocol: TCP + - name: ssh + containerPort: 22 + protocol: TCP + volumeMounts: + - mountPath: /home/git/data + name: data + livenessProbe: + httpGet: + path: / + port: 80 + initialDelaySeconds: 90 + timeoutSeconds: 5 + volumes: + - name: data + emptyDir: {} diff --git a/kubernetes/postgresql.yml b/kubernetes/postgresql.yml index 97f3a9f9..fd984684 100644 --- a/kubernetes/postgresql.yml +++ b/kubernetes/postgresql.yml @@ -1,33 +1,40 @@ apiVersion: v1 -kind: Pod +kind: ReplicationController metadata: name: postgresql - labels: - name: postgresql spec: - containers: - - name: postgresql - image: sameersbn/postgresql:9.4-18 - env: - - name: DB_USER - value: gitlab - - name: DB_PASS - value: passw0rd - - name: DB_NAME - value: gitlab_production - - name: DB_EXTENSION - value: pg_trgm - ports: - - containerPort: 5432 - protocol: TCP - volumeMounts: - - mountPath: /var/lib/postgresql - name: data - livenessProbe: - tcpSocket: - port: 5432 - initialDelaySeconds: 30 - timeoutSeconds: 5 - volumes: - - name: data - emptyDir: {} + replicas: 1 + selector: + name: postgresql + template: + metadata: + name: postgresql + labels: + name: postgresql + spec: + containers: + - name: postgresql + image: sameersbn/postgresql:9.4-18 + env: + - name: DB_USER + value: gitlab + - name: DB_PASS + value: passw0rd + - name: DB_NAME + value: gitlab_production + - name: DB_EXTENSION + value: pg_trgm + ports: + - containerPort: 5432 + protocol: TCP + volumeMounts: + - mountPath: /var/lib/postgresql + name: data + livenessProbe: + tcpSocket: + port: 5432 + initialDelaySeconds: 30 + timeoutSeconds: 5 + volumes: + - name: data + emptyDir: {} diff --git a/kubernetes/redis.yml b/kubernetes/redis.yml index 247c20f1..d4160064 100644 --- a/kubernetes/redis.yml +++ b/kubernetes/redis.yml @@ -1,24 +1,31 @@ apiVersion: v1 -kind: Pod +kind: ReplicationController metadata: name: redis - labels: - name: redis spec: - containers: - - name: redis - image: sameersbn/redis - ports: - - containerPort: 6379 - protocol: TCP - volumeMounts: - - mountPath: /var/lib/redis - name: data - livenessProbe: - tcpSocket: - port: 6379 - initialDelaySeconds: 30 - timeoutSeconds: 5 - volumes: - - name: data - emptyDir: {} + replicas: 1 + selector: + name: redis + template: + metadata: + name: redis + labels: + name: redis + spec: + containers: + - name: redis + image: sameersbn/redis + ports: + - containerPort: 6379 + protocol: TCP + volumeMounts: + - mountPath: /var/lib/redis + name: data + livenessProbe: + tcpSocket: + port: 6379 + initialDelaySeconds: 30 + timeoutSeconds: 5 + volumes: + - name: data + emptyDir: {} diff --git a/kubernetes/start.sh b/kubernetes/start.sh new file mode 100755 index 00000000..e8c9b8d0 --- /dev/null +++ b/kubernetes/start.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# +# Assuming you have a kubernetes cluser and kubectl installed +# +if kubectl get svc | grep gitlab > /dev/null 2>&1 ; +then + echo "gitlab service already exists." +else + for i in *.yml + do + kubectl create -f $i + done +fi + +kubectl get pods +kubectl get svc