update deploy yaml

This commit is contained in:
2025-07-07 09:25:55 +08:00
parent 4d1eb20080
commit 9ffc73ddc7
7 changed files with 58 additions and 147 deletions

View File

@@ -1,5 +1,5 @@
apiVersion: v2
name: fastapi-k8s-app
name: mark-word-fastapi
description: A Helm chart for deploying FastAPI application on Kubernetes
version: 0.1.0 # Chart 版本
appVersion: "1.0.0" # 应用版本,通常与镜像版本关联

View File

@@ -1,7 +1,7 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "fastapi-k8s-app.name" -}}
{{- define "mark-word-fastapi.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
@@ -10,7 +10,7 @@ Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "fastapi-k8s-app.fullname" -}}
{{- define "mark-word-fastapi.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
@@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
{{/*
Create chart name and version as part of the label.
*/}}
{{- define "fastapi-k8s-app.chart" -}}
{{- define "mark-word-fastapi.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "fastapi-k8s-app.labels" -}}
helm.sh/chart: {{ include "fastapi-k8s-app.chart" . }}
{{ include "fastapi-k8s-app.selectorLabels" . }}
{{- define "mark-word-fastapi.labels" -}}
helm.sh/chart: {{ include "mark-word-fastapi.chart" . }}
{{ include "mark-word-fastapi.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
@@ -45,7 +45,7 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/*
Selector labels
*/}}
{{- define "fastapi-k8s-app.selectorLabels" -}}
app.kubernetes.io/name: {{ include "fastapi-k8s-app.name" . }}
{{- define "mark-word-fastapi.selectorLabels" -}}
app.kubernetes.io/name: {{ include "mark-word-fastapi.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

View File

@@ -1,18 +1,18 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "fastapi-k8s-app.fullname" . }}
name: {{ include "mark-word-fastapi.fullname" . }}
labels:
{{- include "fastapi-k8s-app.labels" . | nindent 4 }}
{{- include "mark-word-fastapi.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "fastapi-k8s-app.selectorLabels" . | nindent 6 }}
{{- include "mark-word-fastapi.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "fastapi-k8s-app.selectorLabels" . | nindent 8 }}
{{- include "mark-word-fastapi.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: {{ .Chart.Name }}

View File

@@ -0,0 +1,31 @@
# kubernetes/fastapi-chart/templates/ingress.yaml
{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "mark-word-fastapi.fullname" . }}
labels:
{{- include "mark-word-fastapi.labels" . | nindent 4 }}
annotations:
# 可以添加 Traefik 特定的 annotation例如强制重定向到 HTTPS
# traefik.ingress.kubernetes.io/router.entrypoints: web, websecure
# traefik.ingress.kubernetes.io/router.tls: "true"
# traefik.ingress.kubernetes.io/router.middlewares: default-redirect-https@kubernetescrd
spec:
ingressClassName: {{ .Values.ingress.className }}
rules:
- host: {{ .Values.ingress.host | quote }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ include "mark-word-fastapi.fullname" . }}
port:
number: {{ .Values.service.port }}
{{- if .Values.ingress.tls }}
tls:
{{- toYaml .Values.ingress.tls | nindent 4 }}
{{- end }}
{{- end }}

View File

@@ -1,9 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "fastapi-k8s-app.fullname" . }}
name: {{ include "mark-word-fastapi.fullname" . }}
labels:
{{- include "fastapi-k8s-app.labels" . | nindent 4 }}
{{- include "mark-word-fastapi.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
@@ -12,4 +12,4 @@ spec:
protocol: TCP
name: http
selector:
{{- include "fastapi-k8s-app.selectorLabels" . | nindent 4 }}
{{- include "mark-word-fastapi.selectorLabels" . | nindent 4 }}

View File

@@ -7,3 +7,14 @@ service:
type: ClusterIP # 或 LoadBalancer根据你的需求
port: 8000
# 更多配置可以按需添加,例如 resources, probes 等
ingress:
enabled: true
className: traefik # K3s 默认使用 Traefik
host: markword.simpla.dev # <-- 替换为你希望访问的域名
# 或者使用 Node IP 直接访问
# path: /
# pathType: Prefix
# tls:
# - hosts:
# - markword.simpla.dev
# secretName: fastapi-tls-secret # 你的TLS Secret名称