Add Kubernetes Helm deployment pipeline
Some checks reported errors
continuous-integration/drone/push Build encountered an error

This commit is contained in:
2026-06-20 02:00:45 +08:00
parent 1405e7a989
commit 76539797a5
5 changed files with 79 additions and 7 deletions

View File

@@ -1,13 +1,13 @@
kind: pipeline kind: pipeline
type: docker type: docker
name: frontend-docker name: frontend-k8s
clone: clone:
depth: 50 depth: 50
trigger: trigger:
branch: branch:
- docker - k8s
event: event:
- push - push
@@ -15,10 +15,13 @@ steps:
- name: build-image - name: build-image
image: docker.m.daocloud.io/library/docker:27-cli image: docker.m.daocloud.io/library/docker:27-cli
commands: commands:
- docker build -t cdchen-frontend:docker . - docker build -t cdchen-frontend:k8s-${DRONE_COMMIT_SHA:0:8} .
- name: deploy - name: deploy-k8s
image: docker.m.daocloud.io/library/docker:27-cli image: cdchen-k8s-tools:latest
network_mode: teaching-k8s
environment:
HOME: /home/cdchen
commands: commands:
- docker rm -f cdchen-frontend || true - minikube image load cdchen-frontend:k8s-${DRONE_COMMIT_SHA:0:8} -p teaching-k8s
- docker run -d --name cdchen-frontend --restart unless-stopped --network gitea_default -p 8088:80 cdchen-frontend:docker - 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
View File

@@ -0,0 +1,6 @@
apiVersion: v2
name: frontend
description: Frontend teaching chart
type: application
version: 0.1.0
appVersion: "0.1.0"

View 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 }}

View 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
View 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