Skip to content

Commit bc96847

Browse files
Merge pull request marcel-dempers#9 from marcel-dempers/drone-ci
drone-ci-video
2 parents f0c8be9 + 4a71879 commit bc96847

9 files changed

+310
-31
lines changed

Diff for: .github/workflows/docker.yml

+32-31
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,34 @@
1-
name: Docker Series Builds
1+
# name: Docker Series Builds
22

3-
on: [push]
3+
# #uncomment to enable push trigger
4+
# #on: [push]
45

5-
jobs:
6-
build:
7-
runs-on: ubuntu-latest
8-
steps:
9-
- uses: actions/checkout@v2
10-
- name: docker login
11-
env:
12-
DOCKER_USER: ${{ secrets.DOCKER_USER }}
13-
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
14-
run: |
15-
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
16-
- name: docker build csharp
17-
run: |
18-
docker build ./c# -t aimvector/csharp:1.0.0
19-
- name: docker build nodejs
20-
run: |
21-
docker build ./nodejs -t aimvector/nodejs:1.0.0
22-
- name: docker build python
23-
run: |
24-
docker build ./python -t aimvector/python:1.0.0
25-
- name: docker build golang
26-
run: |
27-
docker build ./golang -t aimvector/golang:1.0.0
28-
- name: docker push
29-
run: |
30-
docker push aimvector/csharp:1.0.0
31-
docker push aimvector/nodejs:1.0.0
32-
docker push aimvector/golang:1.0.0
33-
docker push aimvector/python:1.0.0
6+
# jobs:
7+
# build:
8+
# runs-on: ubuntu-latest
9+
# steps:
10+
# - uses: actions/checkout@v2
11+
# - name: docker login
12+
# env:
13+
# DOCKER_USER: ${{ secrets.DOCKER_USER }}
14+
# DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
15+
# run: |
16+
# docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
17+
# - name: docker build csharp
18+
# run: |
19+
# docker build ./c# -t aimvector/csharp:1.0.0
20+
# - name: docker build nodejs
21+
# run: |
22+
# docker build ./nodejs -t aimvector/nodejs:1.0.0
23+
# - name: docker build python
24+
# run: |
25+
# docker build ./python -t aimvector/python:1.0.0
26+
# - name: docker build golang
27+
# run: |
28+
# docker build ./golang -t aimvector/golang:1.0.0
29+
# - name: docker push
30+
# run: |
31+
# docker push aimvector/csharp:1.0.0
32+
# docker push aimvector/nodejs:1.0.0
33+
# docker push aimvector/golang:1.0.0
34+
# docker push aimvector/python:1.0.0

Diff for: drone-ci/drone.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
kind: pipeline
3+
type: kubernetes
4+
name: default
5+
6+
steps:
7+
- name: build-push
8+
image: docker:dind
9+
volumes:
10+
- name: dockersock
11+
path: /var/run
12+
environment:
13+
DOCKER_USER:
14+
from_secret: DOCKER_USER
15+
DOCKER_PASSWORD:
16+
from_secret: DOCKER_PASSWORD
17+
commands:
18+
- sleep 5 ## give docker enough time to start
19+
- docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
20+
- docker build ./golang -t aimvector/golang:1.0.0
21+
- docker push aimvector/golang:1.0.0
22+
23+
services:
24+
- name: docker
25+
image: docker:dind
26+
privileged: true
27+
volumes:
28+
- name: dockersock
29+
path: /var/run
30+
volumes:
31+
- name: dockersock
32+
temp: {}

Diff for: drone-ci/postgres/postgres.yaml

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: postgres-config
5+
labels:
6+
app: postgres
7+
data:
8+
POSTGRES_DB: postgresdb
9+
POSTGRES_USER: postgresadmin
10+
POSTGRES_PASSWORD: admin123
11+
---
12+
apiVersion: apps/v1
13+
kind: StatefulSet
14+
metadata:
15+
name: postgres
16+
spec:
17+
serviceName: "postgres"
18+
selector:
19+
matchLabels:
20+
app: postgres
21+
replicas: 1
22+
template:
23+
metadata:
24+
labels:
25+
app: postgres
26+
spec:
27+
containers:
28+
- name: postgres
29+
image: postgres:10.4
30+
imagePullPolicy: "IfNotPresent"
31+
ports:
32+
- containerPort: 5432
33+
envFrom:
34+
- configMapRef:
35+
name: postgres-config
36+
---
37+
apiVersion: v1
38+
kind: Service
39+
metadata:
40+
name: postgres
41+
labels:
42+
app: postgres
43+
spec:
44+
selector:
45+
app: postgres
46+
ports:
47+
- protocol: TCP
48+
name: http
49+
port: 5432
50+
targetPort: 5432

Diff for: drone-ci/runner/dronerunner-rbac.yaml

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
kind: Role
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
metadata:
4+
namespace: drone
5+
name: drone-runner
6+
rules:
7+
- apiGroups:
8+
- ""
9+
resources:
10+
- secrets
11+
verbs:
12+
- create
13+
- delete
14+
- apiGroups:
15+
- ""
16+
resources:
17+
- pods
18+
- pods/log
19+
verbs:
20+
- get
21+
- create
22+
- delete
23+
- list
24+
- watch
25+
- update
26+
27+
---
28+
kind: RoleBinding
29+
apiVersion: rbac.authorization.k8s.io/v1
30+
metadata:
31+
name: drone-runner
32+
namespace: drone
33+
subjects:
34+
- kind: ServiceAccount
35+
name: drone-runner
36+
namespace: drone
37+
roleRef:
38+
kind: Role
39+
name: drone-runner
40+
apiGroup: rbac.authorization.k8s.io

Diff for: drone-ci/runner/dronerunner.yaml

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: drone-runner
5+
labels:
6+
app.kubernetes.io/name: drone-runner
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app.kubernetes.io/name: drone
12+
template:
13+
metadata:
14+
labels:
15+
app.kubernetes.io/name: drone
16+
spec:
17+
serviceAccountName: drone-runner
18+
containers:
19+
- name: runner
20+
image: drone/drone-runner-kube:latest
21+
ports:
22+
- containerPort: 3000
23+
env:
24+
- name: DRONE_NAMESPACE_DEFAULT
25+
value: drone
26+
- name: DRONE_SERVICE_ACCOUNT_DEFAULT
27+
value: drone-runner
28+
- name: DRONE_RPC_HOST
29+
value: droneserver.drone
30+
- name: DRONE_RPC_PROTO
31+
value: http
32+
- name: DRONE_RPC_SECRET
33+
valueFrom:
34+
secretKeyRef:
35+
name: drone-server-secret
36+
key: DRONE_RPC_SECRET
37+
---
38+
apiVersion: v1
39+
kind: ServiceAccount
40+
metadata:
41+
name: drone-runner
42+
labels:
43+
app.kubernetes.io/name: drone-runner

Diff for: drone-ci/server/droneserver-deployment.yaml

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: drone-server
5+
labels:
6+
app: drone-server
7+
annotations:
8+
spec:
9+
selector:
10+
matchLabels:
11+
app: drone-server
12+
replicas: 1
13+
strategy:
14+
type: RollingUpdate
15+
rollingUpdate:
16+
maxSurge: 1
17+
maxUnavailable: 0
18+
template:
19+
metadata:
20+
labels:
21+
app: drone-server
22+
spec:
23+
containers:
24+
- name: drone-server
25+
image: drone/drone:1.6.5
26+
imagePullPolicy: IfNotPresent
27+
ports:
28+
- containerPort: 80
29+
- containerPort: 443
30+
env:
31+
- name: DRONE_USER_CREATE
32+
valueFrom:
33+
secretKeyRef:
34+
name: drone-server-secret
35+
key: DRONE_USER_CREATE
36+
- name: DRONE_DATABASE_DRIVER
37+
value: postgres
38+
- name: DRONE_DATABASE_DATASOURCE
39+
valueFrom:
40+
secretKeyRef:
41+
name: drone-server-secret
42+
key: DRONE_DATABASE_DATASOURCE
43+
- name: DRONE_SERVER_PROTO
44+
value: https
45+
- name: DRONE_SERVER_HOST
46+
valueFrom:
47+
secretKeyRef:
48+
name: drone-server-secret
49+
key: DRONE_SERVER_HOST
50+
- name: DRONE_GITHUB_CLIENT_ID
51+
valueFrom:
52+
secretKeyRef:
53+
name: drone-server-secret
54+
key: DRONE_GITHUB_CLIENT_ID
55+
- name: DRONE_GITHUB_CLIENT_SECRET
56+
valueFrom:
57+
secretKeyRef:
58+
name: drone-server-secret
59+
key: DRONE_GITHUB_CLIENT_SECRET
60+
- name: DRONE_RPC_SECRET
61+
valueFrom:
62+
secretKeyRef:
63+
name: drone-server-secret
64+
key: DRONE_RPC_SECRET

Diff for: drone-ci/server/droneserver-ingress.yaml

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
apiVersion: extensions/v1beta1
2+
kind: Ingress
3+
metadata:
4+
name: drone-server
5+
annotations:
6+
kubernetes.io/ingress.class: "traefik"
7+
traefik.ingress.kubernetes.io/frontend-entry-points: http,https
8+
traefik.ingress.kubernetes.io/redirect-entry-point: https
9+
traefik.ingress.kubernetes.io/redirect-permanent: "true"
10+
spec:
11+
rules:
12+
- host: drone.marceldempers.dev
13+
http:
14+
paths:
15+
- backend:
16+
serviceName: droneserver
17+
servicePort: 80
18+
path: /

Diff for: drone-ci/server/droneserver-secret.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: drone-server-secret
5+
type: Opaque
6+
data:
7+
DRONE_GITHUB_CLIENT_ID: xxxxxxx #Get this from GitHub OAUTH
8+
DRONE_GITHUB_CLIENT_SECRET: xxxxxxx #Get this from GitHub OAUTH
9+
DRONE_RPC_SECRET: xxxxxxx #openssl rand -hex 16
10+
DRONE_DATABASE_DATASOURCE: xxxxxxx #postgres://postgresadmin:admin123@postgres:5432/postgresdb?sslmode=disable
11+
DRONE_USER_CREATE: xxxxxxx #username:marcel-dempers,admin:true
12+
DRONE_SERVER_HOST: xxxxxxx #drone.marceldempers.dev

Diff for: drone-ci/server/droneserver-service.yaml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: droneserver
5+
labels:
6+
app: drone-server
7+
spec:
8+
type: ClusterIP
9+
selector:
10+
app: drone-server
11+
ports:
12+
- protocol: TCP
13+
name: http
14+
port: 80
15+
targetPort: 80
16+
- protocol: TCP
17+
name: https
18+
port: 443
19+
targetPort: 443

0 commit comments

Comments
 (0)