feat: initial template structure

This commit is contained in:
admin
2026-05-26 15:12:54 +09:00
parent b4adfd5641
commit b1689faab7
13 changed files with 220 additions and 1 deletions
+6
View File
@@ -0,0 +1,6 @@
# Changelog
## [Unreleased]
## [v0.1.0]
- Initial manifest snapshot (as-is)
+44 -1
View File
@@ -1,3 +1,46 @@
# 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
## バージョニング
- semverMAJOR.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 を環境に合わせて編集
+6
View File
@@ -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
+14
View File
@@ -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 }}
+13
View File
@@ -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 }}
+9
View File
@@ -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 }}
+17
View File
@@ -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
+21
View File
@@ -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 }}
+13
View File
@@ -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
+36
View File
@@ -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