feat(gitlab): Add basic Gitlab configuration
Contains basic deployment and networking requirement, awaiting custom configuration and proper volume management.
This commit is contained in:
parent
a96b9b14ab
commit
5f870e9ca0
12
gitlab/backup-pvc.yaml
Normal file
12
gitlab/backup-pvc.yaml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: gitlab-backup-pvc
|
||||||
|
namespace: gitlab
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: flat-storage-class
|
38
gitlab/configmap.yaml
Normal file
38
gitlab/configmap.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: gitlab-config
|
||||||
|
namespace: gitlab
|
||||||
|
data:
|
||||||
|
gitlab.rb: |
|
||||||
|
external_url 'https://git.beta.halia.dev'
|
||||||
|
gitlab_rails['gitlab_default_theme'] = 2
|
||||||
|
registry_external_url 'https://git.beta.halia.dev'
|
||||||
|
puma['worker_processes'] = 0
|
||||||
|
sidekiq['max_concurrency'] = 5
|
||||||
|
nginx['listen_port'] = 80
|
||||||
|
nginx['listen_https'] = false
|
||||||
|
gitlab_kas['enable'] = true
|
||||||
|
registry_nginx['enable'] = true
|
||||||
|
registry_nginx['proxy_set_headers'] = {
|
||||||
|
"X-Forwarded-Proto" => "https",
|
||||||
|
"X-Forwarded-Ssl" => "on"
|
||||||
|
}
|
||||||
|
registry_nginx['listen_port'] = 5050
|
||||||
|
registry_nginx['listen_https'] = false
|
||||||
|
prometheus_monitoring['enable'] = false
|
||||||
|
gitaly['env'] = {
|
||||||
|
'GITALY_COMMAND_SPAWN_MAX_PARALLEL' => '2'
|
||||||
|
}
|
||||||
|
gitaly['ruby_max_rss'] = 200_000_000
|
||||||
|
gitaly['concurrency'] = [
|
||||||
|
{
|
||||||
|
'rpc' => "/gitaly.SmartHTTPService/PostReceivePack",
|
||||||
|
'max_per_repo' => 3
|
||||||
|
}, {
|
||||||
|
'rpc' => "/gitaly.SSHService/SSHUploadPack",
|
||||||
|
'max_per_repo' => 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
25
gitlab/cronjob.yaml
Normal file
25
gitlab/cronjob.yaml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
name: backup-job
|
||||||
|
namespace: gitlab
|
||||||
|
spec:
|
||||||
|
schedule: "0 4 * * *" # Every day at 4AM
|
||||||
|
concurrencyPolicy: Forbid
|
||||||
|
jobTemplate:
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: maria-backup
|
||||||
|
image: mariadb
|
||||||
|
command: ["sh", "-c", "echo hi"]
|
||||||
|
volumeMounts:
|
||||||
|
- name: gitlab-backup
|
||||||
|
mountPath: /backup/gitlab
|
||||||
|
subPath: gitlab
|
||||||
|
volumes:
|
||||||
|
- name: gitlab-backup
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: gitlab-backup-pvc
|
||||||
|
restartPolicy: OnFailure
|
33
gitlab/deployment.yaml
Normal file
33
gitlab/deployment.yaml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: gitlab
|
||||||
|
namespace: gitlab
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: gitlab
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: gitlab
|
||||||
|
spec:
|
||||||
|
hostname: gitlab
|
||||||
|
subdomain: gitlab
|
||||||
|
containers:
|
||||||
|
- name: gitlab
|
||||||
|
image: gitlab/gitlab-ce:15.4.2-ce.0
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: "/etc/gitlab/gitlab.rb"
|
||||||
|
name: gitlab-config-volume
|
||||||
|
subPath: gitlab.rb
|
||||||
|
volumes:
|
||||||
|
- name: gitlab-pv
|
||||||
|
hostPath:
|
||||||
|
path: "/mnt/gitlab"
|
||||||
|
- name: gitlab-config-volume
|
||||||
|
configMap:
|
||||||
|
name: gitlab-config
|
23
gitlab/ingress.yaml
Normal file
23
gitlab/ingress.yaml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: gitlab-ingress
|
||||||
|
namespace: gitlab
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/ingress.class: "traefik"
|
||||||
|
spec:
|
||||||
|
tls:
|
||||||
|
- secretName: git-beta-tls
|
||||||
|
hosts:
|
||||||
|
- git.beta.halia.dev
|
||||||
|
rules:
|
||||||
|
- host: git.beta.halia.dev
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: gitlab-svc
|
||||||
|
port:
|
||||||
|
number: 80
|
4
gitlab/namespace.yaml
Normal file
4
gitlab/namespace.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: gitlab
|
13
gitlab/service.yaml
Normal file
13
gitlab/service.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: gitlab-svc
|
||||||
|
namespace: gitlab
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: gitlab
|
Loading…
Reference in New Issue
Block a user