Add Kubernetes Helm deployment pipeline
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
This commit is contained in:
17
.drone.yml
17
.drone.yml
@@ -1,13 +1,13 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: frontend-docker
|
||||
name: frontend-k8s
|
||||
|
||||
clone:
|
||||
depth: 50
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- docker
|
||||
- k8s
|
||||
event:
|
||||
- push
|
||||
|
||||
@@ -15,10 +15,13 @@ steps:
|
||||
- name: build-image
|
||||
image: docker.m.daocloud.io/library/docker:27-cli
|
||||
commands:
|
||||
- docker build -t cdchen-frontend:docker .
|
||||
- docker build -t cdchen-frontend:k8s-${DRONE_COMMIT_SHA:0:8} .
|
||||
|
||||
- name: deploy
|
||||
image: docker.m.daocloud.io/library/docker:27-cli
|
||||
- name: deploy-k8s
|
||||
image: cdchen-k8s-tools:latest
|
||||
network_mode: teaching-k8s
|
||||
environment:
|
||||
HOME: /home/cdchen
|
||||
commands:
|
||||
- docker rm -f cdchen-frontend || true
|
||||
- docker run -d --name cdchen-frontend --restart unless-stopped --network gitea_default -p 8088:80 cdchen-frontend:docker
|
||||
- minikube image load cdchen-frontend:k8s-${DRONE_COMMIT_SHA:0:8} -p teaching-k8s
|
||||
- helm upgrade --install frontend ./chart --namespace demo --create-namespace --set image.repository=cdchen-frontend --set image.tag=k8s-${DRONE_COMMIT_SHA:0:8}
|
||||
|
||||
6
chart/Chart.yaml
Normal file
6
chart/Chart.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: frontend
|
||||
description: Frontend teaching chart
|
||||
type: application
|
||||
version: 0.1.0
|
||||
appVersion: "0.1.0"
|
||||
27
chart/templates/deployment.yaml
Normal file
27
chart/templates/deployment.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ .Release.Name }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ .Chart.Name }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ .Chart.Name }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ .Chart.Name }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
spec:
|
||||
containers:
|
||||
- name: frontend
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- containerPort: 80
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
17
chart/templates/service.yaml
Normal file
17
chart/templates/service.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ .Release.Name }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ .Chart.Name }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ .Chart.Name }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
ports:
|
||||
- name: http
|
||||
port: {{ .Values.service.port }}
|
||||
targetPort: 80
|
||||
nodePort: {{ .Values.service.nodePort }}
|
||||
19
chart/values.yaml
Normal file
19
chart/values.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: cdchen-frontend
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
service:
|
||||
type: NodePort
|
||||
port: 80
|
||||
nodePort: 30088
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 64Mi
|
||||
limits:
|
||||
cpu: 300m
|
||||
memory: 128Mi
|
||||
Reference in New Issue
Block a user