456
July 21, 2024, 5:24 p.m.
HELM библиотеки
Задача: создать и использовать библиотеку HELM.
Для достижения поставленной задачи потребуется:
- создать библиотеку;
- сделать зависимость в основном чарте;
- собрать;
- подключить код.
Создание библиотеки
Создание файла Chart.yaml
apiVersion: v2
name: common-library
description: A library chart for common Kubernetes templates
type: library
version: 0.1.0
Создание файла шаблона ~/templates/_somename.tpl
важно указаывать _
и .tpl
{{- define "common.annotations" -}}
annotations:
created-by: "helm"
managed-by: "Helm"
app.kubernetes.io/name: {{ .Chart.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.Version }}
app.kubernetes.io/part-of: {{ .Chart.Name }}
app.kubernetes.io/managed-by: "Helm"
{{- end -}}
Подключение зависимости
apiVersion: v2
name: my-app
description: A Helm chart for my application
version: 1.0.0
appVersion: "1.0.0"
dependencies:
- name: common-library
version: 0.1.0
repository: "file://<path/to>/common-library"
Сборка
После настройки библиотеки, нужно собрать к HELM чарту ранее написанную зависимость.
helm dep update my-app
Интеграция в код
nindent 2
- количество пробелов.
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
{{ include "common.annotations" . | nindent 2 }}
spec:
replicas: 1
selector:
matchLabels:
app: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ .Release.Name }}
{{ include "common.annotations" . | nindent 6 }}
spec:
containers:
- name: my-app-container
image: my-app:latest