Template
feat: initial template structure
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [v0.1.0]
|
||||||
|
- Initial manifest snapshot (as-is)
|
||||||
@@ -1,3 +1,46 @@
|
|||||||
# template
|
# template
|
||||||
|
|
||||||
k3sマニフェスト管理テンプレートリポジトリ
|
k3s-manifests 組織のリポジトリテンプレートです。
|
||||||
|
|
||||||
|
## ファイル構成
|
||||||
|
|
||||||
|
charts/SERVICE/
|
||||||
|
├── Chart.yaml
|
||||||
|
├── values.yaml
|
||||||
|
└── templates/
|
||||||
|
├── 00-namespace.yaml # Namespace
|
||||||
|
├── 10-pv.yaml # PersistentVolume
|
||||||
|
├── 20-pvc.yaml # PersistentVolumeClaim
|
||||||
|
├── 30-secret.yaml # Secret
|
||||||
|
├── 40-configmap.yaml # ConfigMap
|
||||||
|
├── 50-deployment.yaml # Deployment / StatefulSet
|
||||||
|
├── 60-service.yaml # Service
|
||||||
|
├── 70-ingress.yaml # Ingress
|
||||||
|
└── 80-hpa.yaml # HorizontalPodAutoscaler
|
||||||
|
|
||||||
|
## 番号規約
|
||||||
|
|
||||||
|
- 10区切りで読み込み順を管理
|
||||||
|
- 並列インスタンスは1区切り(例: 50-deployment-admin.yaml, 51-deployment-usera.yaml)
|
||||||
|
- 不要なファイルは作らない(欠番OK、番号は詰めない)
|
||||||
|
- ファイル名固定(中身がStatefulSetでも50-deployment.yaml)
|
||||||
|
|
||||||
|
## バージョニング
|
||||||
|
|
||||||
|
- semver(MAJOR.MINOR.PATCH)
|
||||||
|
- v0.x.x: ペライチマニフェスト管理
|
||||||
|
- v1.0.0: Helm化完了
|
||||||
|
|
||||||
|
## ラベル規約
|
||||||
|
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {service}
|
||||||
|
app.kubernetes.io/version: {version}
|
||||||
|
app.kubernetes.io/managed-by: gitea-actions
|
||||||
|
|
||||||
|
## 使い方
|
||||||
|
|
||||||
|
1. このリポジトリをテンプレートとして新規リポジトリを作成
|
||||||
|
2. SERVICE を実際のサービス名に置き換え
|
||||||
|
3. 不要なtemplateファイルは削除
|
||||||
|
4. values.yaml を環境に合わせて編集
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: SERVICE
|
||||||
|
description: SERVICE on mitaconserver
|
||||||
|
type: application
|
||||||
|
version: 0.1.0
|
||||||
|
appVersion: "latest"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# 使用する場合のみ残す
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: Namespace
|
||||||
|
# metadata:
|
||||||
|
# name: core
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# 使用する場合のみ残す
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: PersistentVolume
|
||||||
|
# metadata:
|
||||||
|
# name: {{ .Release.Name }}-pv
|
||||||
|
# spec:
|
||||||
|
# capacity:
|
||||||
|
# storage: {{ .Values.persistence.size }}
|
||||||
|
# accessModes:
|
||||||
|
# - ReadWriteOnce
|
||||||
|
# persistentVolumeReclaimPolicy: Retain
|
||||||
|
# storageClassName: local-storage-ssd
|
||||||
|
# hostPath:
|
||||||
|
# path: {{ .Values.persistence.hostPath }}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# 使用する場合のみ残す
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: PersistentVolumeClaim
|
||||||
|
# metadata:
|
||||||
|
# name: {{ .Release.Name }}-pvc
|
||||||
|
# namespace: core
|
||||||
|
# spec:
|
||||||
|
# accessModes:
|
||||||
|
# - ReadWriteOnce
|
||||||
|
# storageClassName: local-storage-ssd
|
||||||
|
# resources:
|
||||||
|
# requests:
|
||||||
|
# storage: {{ .Values.persistence.size }}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# 使用する場合のみ残す
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: Secret
|
||||||
|
# metadata:
|
||||||
|
# name: {{ .Release.Name }}-secret
|
||||||
|
# namespace: core
|
||||||
|
# type: Opaque
|
||||||
|
# stringData:
|
||||||
|
# password: ""
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
# 使用する場合のみ残す
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: ConfigMap
|
||||||
|
# metadata:
|
||||||
|
# name: {{ .Release.Name }}-config
|
||||||
|
# namespace: core
|
||||||
|
# data:
|
||||||
|
# key: value
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}
|
||||||
|
namespace: core
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/version: {{ .Values.image.tag }}
|
||||||
|
app.kubernetes.io/managed-by: gitea-actions
|
||||||
|
spec:
|
||||||
|
replicas: {{ .Values.replicaCount }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: {{ .Release.Name }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/name: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: {{ .Release.Name }}
|
||||||
|
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||||
|
ports:
|
||||||
|
- containerPort: {{ .Values.service.port }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.resources | nindent 10 }}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}
|
||||||
|
namespace: core
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/managed-by: gitea-actions
|
||||||
|
spec:
|
||||||
|
type: {{ .Values.service.type }}
|
||||||
|
selector:
|
||||||
|
app: {{ .Release.Name }}
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: {{ .Values.service.port }}
|
||||||
|
targetPort: {{ .Values.service.port }}
|
||||||
|
protocol: TCP
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# 使用する場合のみ残す
|
||||||
|
# {{- if .Values.ingress.enabled }}
|
||||||
|
# apiVersion: networking.k8s.io/v1
|
||||||
|
# kind: Ingress
|
||||||
|
# metadata:
|
||||||
|
# name: {{ .Release.Name }}-ingress
|
||||||
|
# namespace: core
|
||||||
|
# spec:
|
||||||
|
# ingressClassName: {{ .Values.ingress.className }}
|
||||||
|
# rules:
|
||||||
|
# - host: {{ .Values.ingress.host }}
|
||||||
|
# http:
|
||||||
|
# paths:
|
||||||
|
# - path: /
|
||||||
|
# pathType: Prefix
|
||||||
|
# backend:
|
||||||
|
# service:
|
||||||
|
# name: {{ .Release.Name }}
|
||||||
|
# port:
|
||||||
|
# number: {{ .Values.service.port }}
|
||||||
|
# {{- end }}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# 使用する場合のみ残す
|
||||||
|
# apiVersion: autoscaling/v2
|
||||||
|
# kind: HorizontalPodAutoscaler
|
||||||
|
# metadata:
|
||||||
|
# name: {{ .Release.Name }}-hpa
|
||||||
|
# namespace: core
|
||||||
|
# spec:
|
||||||
|
# scaleTargetRef:
|
||||||
|
# apiVersion: apps/v1
|
||||||
|
# kind: Deployment
|
||||||
|
# name: {{ .Release.Name }}
|
||||||
|
# minReplicas: 1
|
||||||
|
# maxReplicas: 3
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
# イメージ設定
|
||||||
|
image:
|
||||||
|
repository: ""
|
||||||
|
tag: "latest"
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
# レプリカ数
|
||||||
|
replicaCount: 1
|
||||||
|
|
||||||
|
# リソース制限
|
||||||
|
resources: {}
|
||||||
|
# limits:
|
||||||
|
# cpu: 500m
|
||||||
|
# memory: 512Mi
|
||||||
|
# requests:
|
||||||
|
# cpu: 100m
|
||||||
|
# memory: 128Mi
|
||||||
|
|
||||||
|
# ストレージ設定
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
storageClass: ""
|
||||||
|
size: 1Gi
|
||||||
|
hostPath: ""
|
||||||
|
|
||||||
|
# サービス設定
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
port: 80
|
||||||
|
|
||||||
|
# Ingress設定
|
||||||
|
ingress:
|
||||||
|
enabled: false
|
||||||
|
className: ""
|
||||||
|
host: ""
|
||||||
|
tls: false
|
||||||
Reference in New Issue
Block a user