Add Cloud9 IDE and Git server

This commit is contained in:
Stefan Prodan
2018-04-06 20:53:54 +03:00
parent 41098cdc93
commit 554da045d7
9 changed files with 290 additions and 0 deletions

37
deploy/k9/git-dep.yaml Normal file
View File

@@ -0,0 +1,37 @@
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
labels:
name: gitsrv
name: gitsrv
namespace: ide
spec:
replicas: 1
selector:
matchLabels:
name: gitsrv
template:
metadata:
labels:
name: gitsrv
spec:
containers:
- image: jkarlos/git-server-docker
name: git
ports:
- containerPort: 22
name: ssh
protocol: TCP
volumeMounts:
- mountPath: /git-server/repos
name: git-server-data
- mountPath: /git-server/keys
name: ssh-git
volumes:
- name: ssh-git
secret:
secretName: ssh-git
- name: git-server-data
persistentVolumeClaim:
claimName: git-server-data

14
deploy/k9/git-pv.yaml Normal file
View File

@@ -0,0 +1,14 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
name: ide
name: git-server-data
namespace: ide
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

17
deploy/k9/git-svc.yaml Normal file
View File

@@ -0,0 +1,17 @@
---
apiVersion: v1
kind: Service
metadata:
labels:
name: gitsrv
name: gitsrv
namespace: ide
spec:
ports:
- name: ssh
port: 22
protocol: TCP
targetPort: ssh
selector:
name: gitsrv
type: ClusterIP

92
deploy/k9/k9-dep.yaml Normal file
View File

@@ -0,0 +1,92 @@
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
labels:
name: ide
name: ide
namespace: ide
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
name: ide
template:
metadata:
labels:
name: ide
spec:
serviceAccount: ide
serviceAccountName: ide
initContainers:
- command:
- /bin/sh
- -c
- test -d /workspace/k8s-podinfo || git clone https://github.com/stefanprodan/k8s-podinfo
k8s-podinfo
image: stefanprodan/k9c:0.1.0
imagePullPolicy: IfNotPresent
name: git-clone
volumeMounts:
- mountPath: /workspace
name: data
containers:
- name: ide
args:
- --auth
- username:password
image: stefanprodan/k9c:0.1.0
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: Authorization
value: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
path: /ide.html
port: http
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 1
ports:
- containerPort: 8080
name: http
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: Authorization
value: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
path: /ide.html
port: http
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 1
successThreshold: 1
timeoutSeconds: 1
volumeMounts:
- mountPath: /workspace
name: data
- mountPath: /var/run/docker.sock
name: dockersocket
- mountPath: /root/.ssh
name: ssh-git
volumes:
- name: ssh-git
secret:
defaultMode: 0600
secretName: ssh-git
- name: data
emptyDir: {}
# - name: ide-workspace-data
# persistentVolumeClaim:
# claimName: ide-workspace-data
- hostPath:
path: /var/run/docker.sock
type: ""
name: dockersocket

10
deploy/k9/k9-ns.yaml Normal file
View File

@@ -0,0 +1,10 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: ide
---
apiVersion: v1
kind: Namespace
metadata:
name: ide-workspace

14
deploy/k9/k9-pv.yaml Normal file
View File

@@ -0,0 +1,14 @@
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
name: ide
name: ide-workspace-data
namespace: ide
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

78
deploy/k9/k9-rbac.yaml Normal file
View File

@@ -0,0 +1,78 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
name: ide
name: ide
namespace: ide
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
name: ide
name: ide-cluster-view
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- get
- list
- watch
- nonResourceURLs:
- '*'
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
name: ide
name: ide-cluster-view
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: ide-cluster-view
subjects:
- kind: ServiceAccount
name: ide
namespace: ide
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
creationTimestamp: null
labels:
name: ide
name: ide-workspace-workspace-admin
namespace: ide-workspace
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
creationTimestamp: null
labels:
name: ide
name: ide-workspace-workspace-admin
namespace: ide-workspace
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ide-workspace-workspace-admin
subjects:
- kind: ServiceAccount
name: ide
namespace: ide

17
deploy/k9/k9-svc.yaml Normal file
View File

@@ -0,0 +1,17 @@
---
apiVersion: v1
kind: Service
metadata:
labels:
name: ide
name: ide
namespace: ide
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
selector:
name: ide
type: LoadBalancer

11
deploy/k9/ssh-key.yaml Normal file
View File

@@ -0,0 +1,11 @@
---
# ssh-keyscan gitsrv >> ~/.ssh/known_hosts
apiVersion: v1
kind: Secret
data:
id_rsa: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBczNuS2xrdkhLYlBEVlZCZTJLdGJSQ0dIcmphYU5MVkI3bVRHMjEwSjZpRXg4RnJYCldkR1YvZDJOUWJhYVFDQ1JDaHc3THdqSFFkeU5lVHJoam0xbGgzY0xzRk04RTJxRUEwZ0hMdVVyL2dlTkx6K0kKN2pzc0xTakJ0MTB6NWVYVzFjNUJaWWRBdElOK3dOTmpPTFptR21uV0NCQjBBUmx2M3d6RFNjOXE4NXZ2UXRjRwpxWjNnY0tReS9ZVDd3TXM0Y052ZW9CWDlBNVZOcnZrTjlrT3VBYmlCTFpUMWtCMWxxNVVsQ3FRVUpBNFQ4bVN5Clh5eXNsejhGcWxTb2xac1FKQmtSZmlDYlNQcENPcEVmc1h4L3ltTzlCaGVzMTVBOW42cDlVc253dDRjRzhwYjYKaEV6K0ZYQ0M5N3QrUXJ6L2dIV2w1bGI5SFViWFJPQ3FSaGxZWFFJREFRQUJBb0lCQURPNmNhcDU4dEJSTUlhQgpZS1RnVnJDL1hVVFlGZ0FGRWhpczBTZmVuQUh3U1YxMlFVVnhBK01rblJjSWsxTFNVQnR5NFpmLzFyWmo1QjdCCjJzcmJPdjBkVWJBamZWZzNSZzlRRGtuMDRZWVpGUmMrSDdCU083eFVWK2tLb3UrckhBMkpvZzJxT3ZzTVAxZEMKVmdHOWlKWXFWUGNFRHZ0V0lvbE9PMmNsc2pTK0REZEd4b0J2amFRbzhHVlZkaUZrekdOVmdTQkZnM1dPZnRsOApKMjZyNndzYVVXZDYrYyt1aTRFdUtJTjg2SEhNT0t0bDExbjd6QjNYVWllTEZVSW1GUjhHNHRHQlZwZXhzeVFpCmxjc2dUM1NnWEZDOUp6Q0VSUGRrTXVLSHVWMDBad01maU1ZK3N4Z3RsdXJRMnNhbVhXTmV4eGRlanpDR1RIcWcKV2xRWkJtRUNnWUVBNE5CN3VwMjZURFlUV0tyZ014aGJueHJaT0wxY3VhT1lWQUJnWWh5b2JnMWVabE10Mk1pVgpVaWxaamFkRnZ5emZjR1BTVEpjSjVmMmkvQ0dzS243RXFxUXdoZnd1S3ZRZTQyazgwbk5BcUczdTkvdkl4bklCCnFGZW5kTTE3SlN2WkU3NXFCVE9uTXVVZ1NuNFJoTXpzOEg3UTFmZFQ4UGMvTVRmRVVKcTQzcGtDZ1lFQXpGOUMKd1g0Z0UvUnZlbWZRc0ZVZ29TQ0lQdkR1bFhNNzNsK09XRnByOE00MWxpeGcvd0lvQ2NFZlpGcFdLUkpqSmwvUwpOVFh3YVhnOGg4RGl3a3d3dzJmcmNvWTl2TGNIcGxvWVRkN1ZjUVk4UGRKdjNJeGFReld6SHpMR3N0M29hZ08rCmJDbStsMEY5TnY0VUdWRHUrT0RSQjJyRWo2b1ZGRmh0SUQxbmRtVUNnWUJHS3V3alQrMkFzZlFSM2F1Q1p4eloKcVFDWmhBajM3QWEwV1RXOENhUE1UYUhrSUJ3VUtHN3FxUHRKaWlicngyNnAzbzRaMTU2QVNVemdrd1h3Y1lhaQptQUtKSHkrdHVtb1ZvcGdZTzE2Mzh5LzkrSGt1N3hCellZQmpwV3JGTEUxaHF6SGVFOFFnejREbm56ZUtrb2QxCmZLOWp5UUZMR1hDQXhSNGg1bGpES1FLQmdRQytqUjlmNjZvYkVQQ1Q3NUhicHpPS0tCd0FtNEhJWkszd2M2WHoKNlRMMVRqOFdhd0J4SStDUzM3YldTWWhHT1RlckF2S3EzRVR4QWNObVM4amhva3BoRjFhbTdGVkp6Rm5jbCtwTApTTFkzOExsZ1p3SVhYK0dWQXMrbENpSExpaTMyRXRHTVpndW5XYzlXNCtWM2lVZVhVMzV4N1BHaWhkR3JxNXJyCjBYVFRKUUtCZ0FReUF0RlloVHRONktCSER2NFdiTDQxcnBtcUlVcUlpV0R6a3FPT1ZXcHgzYkpTdWVNeDEyUjQKWHVVaGkwL2ZqbGFvMmYwWTBqbTBDUlQ5ZmlhQW56WHNMRXNzN2JYQ0ZZcGt3V3ZrNnNqV1BCWGdPUnBZbklHNQpRRWNFeklzRDFKQm1EY0RxdWxpZ0dnUzNIdGhiWTl5WW4vU3l4d0owcU5ob3BDS1d2OWNOCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
id_rsa.pub: c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDemVjcVdTOGNwczhOVlVGN1lxMXRFSVlldU5wbzB0VUh1Wk1iYlhRbnFJVEh3V3RkWjBaWDkzWTFCdHBwQUlKRUtIRHN2Q01kQjNJMTVPdUdPYldXSGR3dXdVendUYW9RRFNBY3U1U3YrQjQwdlA0anVPeXd0S01HM1hUUGw1ZGJWemtGbGgwQzBnMzdBMDJNNHRtWWFhZFlJRUhRQkdXL2ZETU5KejJyem0rOUMxd2FwbmVCd3BETDloUHZBeXpodzI5NmdGZjBEbFUydStRMzJRNjRCdUlFdGxQV1FIV1dybFNVS3BCUWtEaFB5WkxKZkxLeVhQd1dxVktpVm14QWtHUkYrSUp0SStrSTZrUit4ZkgvS1k3MEdGNnpYa0QyZnFuMVN5ZkMzaHdieWx2cUVUUDRWY0lMM3UzNUN2UCtBZGFYbVZ2MGRSdGRFNEtwR0dWaGQgdXNlckB3ZWF2ZWR4LmNvbQo=
metadata:
name: ssh-git
namespace: ide
type: Opaque