Skip to content

Commit

Permalink
ci: add kubernetes review environment
Browse files Browse the repository at this point in the history
  • Loading branch information
fsrv-xyz committed Jun 17, 2023
2 parents 27e83e4 + 8c67acc commit 6b4d866
Show file tree
Hide file tree
Showing 5 changed files with 159 additions and 4 deletions.
21 changes: 17 additions & 4 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
---
stages:
- test
- release
- build
- review
- release

.go_template_defaults:
stage: test
Expand All @@ -11,14 +12,18 @@ stages:
include:
- remote: https://gitlab.com/bonsai-oss/organization/ci-templates/-/raw/main/templates/language/go.yml
- remote: https://gitlab.com/bonsai-oss/organization/ci-templates/-/raw/main/templates/release/semver.yml
- project: fsrvcorp/ci-templates
file:
- kubernetes-review.yaml

variables:
KUBE_BASE_DIR: "${CI_PROJECT_DIR}/example/kubernetes"

build:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [ "" ]
rules:
- if: $CI_COMMIT_TAG || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"${CI_REGISTRY}\":{\"auth\":\"$(printf "%s:%s" "${CI_REGISTRY_USER}" "${CI_REGISTRY_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
Expand All @@ -30,4 +35,12 @@ build:
--destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}"
--destination "${CI_REGISTRY_IMAGE}:latest"
--build-arg "CI_JOB_ID=${CI_JOB_ID}"
--build-arg "CI_COMMIT_SHORT_SHA=${CI_COMMIT_SHORT_SHA}"
--build-arg "CI_COMMIT_SHORT_SHA=${CI_COMMIT_SHORT_SHA}"
review::start:
stage: review
needs:
- job: build
artifacts: false
review::stop:
stage: review
41 changes: 41 additions & 0 deletions example/kubernetes/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ${CI_PROJECT_NAME}
labels:
app: ${CI_PROJECT_NAME}
spec:
replicas: 1
selector:
matchLabels:
app: ${CI_PROJECT_NAME}
template:
metadata:
labels:
app: ${CI_PROJECT_NAME}
spec:
imagePullSecrets:
- name: gitlab-registry
containers:
- name: transfer
image: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}
command:
- /app/transfer
args:
- -link.prefix
- https
ports:
- containerPort: 8080
name: api
env:
- name: S3_ENDPOINT
value: "minio:9000"
- name: AWS_ACCESS_KEY_ID
value: "minio"
- name: AWS_SECRET_ACCESS_KEY
value: "minio123"
- name: S3_BUCKET
value: "transfer"
- name: S3_SECURE
value: "false"
18 changes: 18 additions & 0 deletions example/kubernetes/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: review-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
spec:
rules:
- host: ${DEFAULT_INGRESS_URL}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: review-svc
port:
name: api
71 changes: 71 additions & 0 deletions example/kubernetes/minio.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: minio
labels:
app: minio
spec:
replicas: 1
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
spec:
volumes:
- name: data
emptyDir: {}
initContainers:
- name: create-bucket
volumeMounts:
- mountPath: /data
name: data
image: alpine:latest
command:
- mkdir
args:
- -p
- /data/transfer
containers:
- name: minio
image: quay.io/minio/minio:latest
command:
- minio
args:
- server
- --console-address
- 0.0.0.0:9001
- /data
env:
- name: MINIO_ROOT_USER
value: "minio"
- name: MINIO_ROOT_PASSWORD
value: "minio123"
ports:
- containerPort: 9000
name: api
- containerPort: 9001
name: console
volumeMounts:
- mountPath: /data
name: data

---
apiVersion: v1
kind: Service
metadata:
name: minio
spec:
clusterIP: None
selector:
app: minio
ports:
- name: api
port: 9000
targetPort: api
- name: console
port: 9001
targetPort: console
12 changes: 12 additions & 0 deletions example/kubernetes/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: review-svc
spec:
selector:
app: $CI_PROJECT_NAME
clusterIP: None
ports:
- name: api
port: 8080
targetPort: api

0 comments on commit 6b4d866

Please sign in to comment.