diff --git a/.drone.yml b/.drone.yml index cdf61ea..096c825 100644 --- a/.drone.yml +++ b/.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} diff --git a/chart/Chart.yaml b/chart/Chart.yaml new file mode 100644 index 0000000..42a6859 --- /dev/null +++ b/chart/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: frontend +description: Frontend teaching chart +type: application +version: 0.1.0 +appVersion: "0.1.0" diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml new file mode 100644 index 0000000..5a8da04 --- /dev/null +++ b/chart/templates/deployment.yaml @@ -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 }} diff --git a/chart/templates/service.yaml b/chart/templates/service.yaml new file mode 100644 index 0000000..5c9e4cf --- /dev/null +++ b/chart/templates/service.yaml @@ -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 }} diff --git a/chart/values.yaml b/chart/values.yaml new file mode 100644 index 0000000..cb47e77 --- /dev/null +++ b/chart/values.yaml @@ -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