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