User Tools

Site Tools


универсальный_helm-чарт

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
универсальный_helm-чарт [2026/01/27 08:35]
val [Шаг 3. Последовательно изучаем синтаксис Helm, решая возникающие задачи]
универсальный_helm-чарт [2026/03/16 11:38] (current)
val
Line 23: Line 23:
 ===== Запись вебинара ===== ===== Запись вебинара =====
  
 +  * Ютуб: [[https://​youtu.be/​8BbRGP2t7_Q]]
 +  * Рутуб: [[https://​rutube.ru/​video/​private/​963e0e91656ec459a4377456b350bd8c/​]]
 +  * Вк: [[https://​vkvideo.ru/​video-2190892_456239497]]
   * Тэги: Kubernetes, Helm, ArgoCD   * Тэги: Kubernetes, Helm, ArgoCD
  
Line 72: Line 75:
 <​code>​ <​code>​
 ... ...
-kube1:​~/​webd-k8s# curl http://​pywebd.corpX.un+server# curl http://​pywebd.corpX.un
 </​code>​ </​code>​
   * Добавляем tls, общий env.yaml, комментарии,​ tpl, [], quote   * Добавляем tls, общий env.yaml, комментарии,​ tpl, [], quote
Line 89: Line 92:
   * Меняем запись А на свободный IP [[Система Kubernetes#​MetalLB]] в DNS для приложения pywebd, используем ver1.1, функции eq, and ([[Система Kubernetes#​Service]] loadBalancerIP) тестируем без Ingress и Сertificate   * Меняем запись А на свободный IP [[Система Kubernetes#​MetalLB]] в DNS для приложения pywebd, используем ver1.1, функции eq, and ([[Система Kubernetes#​Service]] loadBalancerIP) тестируем без Ingress и Сertificate
 <​code>​ <​code>​
-kube1:​~/​webd-k8s#​ curl http://​pywebd.corp15.un+... 
 +kube1:​~/​webd-k8s#​ curl http://​pywebd.corpX.un
 </​code>​ </​code>​
   * Функции toYaml, nindent, оператор with (env, volumes, volumeMounts в [[Система Kubernetes#​Deployment]] и [[Система Kubernetes#​ConfigMap,​ Secret]] для pywebd:​ver1.2)   * Функции toYaml, nindent, оператор with (env, volumes, volumeMounts в [[Система Kubernetes#​Deployment]] и [[Система Kubernetes#​ConfigMap,​ Secret]] для pywebd:​ver1.2)
 +<​code>​ 
 +... 
 +kube1:​~/​webd-k8s#​ curl https://​pywebd.corpX.un 
 +</​code>​
 ==== Итоговый чарт ==== ==== Итоговый чарт ====
  
Line 114: Line 121:
 #  PYWEBD_DOC_ROOT:​ /var/www/ #  PYWEBD_DOC_ROOT:​ /var/www/
 #  PYWEBD_PORT:​ 4443 #  PYWEBD_PORT:​ 4443
-#  APWEBD_HOSTNAME:​ "​apwebd.corpX.un"​ 
-#  KEYCLOAK_HOSTNAME:​ "​keycloak.corpX.un"​ 
-#  REALM_NAME: "​corpX"​ 
  
 service: service:
Line 282: Line 286:
  
 <​code>​ <​code>​
-kube1:​~/​webd-k8s#​ cp uni-webd-chart/​values.yaml apps/​gowebd/​values.yaml+kube1:​~/​webd-k8s# ###cp uni-webd-chart/​values.yaml apps/​gowebd/​values.yaml
  
-kube1:​~/​webd-k8s#​ cp uni-webd-chart/​values.yaml apps/​pywebd/​values.yaml+kube1:​~/​webd-k8s# ###cp uni-webd-chart/​values.yaml apps/​pywebd/​values.yaml
  
 kube1:​~/​webd-k8s#​ vim uni-webd-chart/​values.yaml kube1:​~/​webd-k8s#​ vim uni-webd-chart/​values.yaml
Line 325: Line 329:
  
 env: env:
-  PYWEBD_DOC_ROOT:​ /var/www2/+  PYWEBD_DOC_ROOT:​ /var/www/
   PYWEBD_PORT:​ 4443   PYWEBD_PORT:​ 4443
  
Line 352: Line 356:
   mountPath: /​etc/​pywebd/​pywebd.key   mountPath: /​etc/​pywebd/​pywebd.key
 </​code><​code>​ </​code><​code>​
 +kube1:​~/​webd-k8s#​ helm template my-pywebd uni-webd-chart/​ -f apps/​pywebd/​values.yaml -f env.yaml
 +
 +kube1:​~/​webd-k8s#​ helm upgrade -i my-pywebd uni-webd-chart/​ -f env.yaml -f apps/​pywebd/​values.yaml -n my-ns --create-namespace
 +</​code>​
 +
 +Развернем через ArgoCD
 +
 +<​code>​
 kube1:​~/​webd-k8s#​ cat apps/​apwebd/​values.yaml kube1:​~/​webd-k8s#​ cat apps/​apwebd/​values.yaml
 </​code><​code>​ </​code><​code>​
Line 387: Line 399:
  
   * [[Контроллер ArgoCD#​Управление приложениями через kubectl]]   * [[Контроллер ArgoCD#​Управление приложениями через kubectl]]
 +  * Увеличиваем версию gowebd
  
 ==== Множество приложений ==== ==== Множество приложений ====
  
   * [[Контроллер ArgoCD#​Развертывание множества приложений через ApplicationSet]]   * [[Контроллер ArgoCD#​Развертывание множества приложений через ApplicationSet]]
-  * Увеличиваем версию gowebd 
   * Добавляем apwebd   * Добавляем apwebd
 +
 +===== Добавляем lifecycle.postStart и Gateway API =====
 +
 +<​code>​
 +kube1:​~/​webd-k8s#​ cat apps/​htwebd/​values.yaml
 +</​code><​code>​
 +hostname: htwebd
 +
 +replicaCount:​ 2
 +image:
 +  repository: httpd
 +
 +lifecycle:
 +  postStart:
 +    - /bin/sh
 +    - -c
 +    - cd /​usr/​local/​apache2/​htdocs/​ && echo \"<​h1>​Hello from htwebd on $(hostname) ver1.1</​h1>​\"​ > index.html
 +</​code><​code>​
 +kube1:​~/​webd-k8s#​ cat uni-webd-chart/​templates/​my-webd-deployment.yaml
 +</​code><​code>​
 +...
 +        image: ...
 +        {{- with .Values.lifecycle.postStart }}
 +        lifecycle:
 +          postStart:
 +            exec:
 +              command:
 +                {{- range . }}
 +                - "{{ . }}"
 +                {{- end }}
 +        {{- end }}
 +...
 +</​code><​code>​
 +kube1:​~/​webd-k8s#​ cp -v my-httproute.yaml uni-webd-chart/​templates/​
 +kube1:​~/​webd-k8s#​ cp -v my-gateway.yaml uni-webd-chart/​templates/​
 +
 +kube1:​~/​webd-k8s#​ cat uni-webd-chart/​values.yaml
 +</​code><​code>​
 +...
 +gateway:
 +  enabled: false
 +  className: traefik
 +  httpPort: 8000
 +  httpsPort: 8443
 +  hostTemplate:​ "{{ .Values.hostname }}.{{ .Values.domain }}"
 +#  secretName: webd-tls
 +...
 +</​code><​code>​
 +kube1:​~/​webd-k8s#​ cat apps/​htwebd/​values.yaml
 +</​code><​code>​
 +...
 +gateway:
 +  enabled: true
 +  secretName: htwebd-tls
 +
 +certificate:​
 +  enabled: true
 +  secretName: htwebd-tls
 +</​code><​code>​
 +kube1:​~/​webd-k8s#​ cat uni-webd-chart/​templates/​my-gateway.yaml
 +</​code><​code>​
 +{{- if .Values.gateway.enabled -}}
 +apiVersion: gateway.networking.k8s.io/​v1
 +kind: Gateway
 +metadata:
 +  name: {{ .Release.Name }}-gateway
 +spec:
 +  gatewayClassName:​ {{ .Values.gateway.className }}
 +  listeners:
 +  - name: http
 +    port: {{ .Values.gateway.httpPort }}
 +    protocol: HTTP
 +  - name: https
 +    hostname: {{ tpl .Values.gateway.hostTemplate $ }}
 +    protocol: HTTPS
 +    port: {{ .Values.gateway.httpsPort }}
 +    tls:
 +      mode: Terminate
 +      certificateRefs:​
 +        - kind: Secret
 +          name: {{ .Values.gateway.secretName }}
 +{{- end }}
 +</​code><​code>​
 +kube1:​~/​webd-k8s#​ cat uni-webd-chart/​templates/​my-httproute.yaml
 +</​code><​code>​
 +{{- if .Values.gateway.enabled -}}
 +apiVersion: gateway.networking.k8s.io/​v1
 +kind: HTTPRoute
 +metadata:
 +  name: {{ .Release.Name }}-httproute
 +spec:
 +  hostnames:
 +  - {{ tpl .Values.gateway.hostTemplate $ }}
 +  parentRefs:
 +  - name: {{ .Release.Name }}-gateway
 +  rules:
 +  - matches:
 +    - path:
 +        type: Exact
 +        value: /
 +    backendRefs:​
 +    - name: {{ .Release.Name }}-svc
 +      port: {{ .Values.service.port }}
 +{{- end }}
 +</​code><​code>​
 +kube1:​~/​webd-k8s#​ helm upgrade -i my-htwebd uni-webd-chart/​ -f env.yaml -f apps/​htwebd/​values.yaml -n my-ns --create-namespace
 +</​code>​
  
 ===== Подготовка к вебинару ===== ===== Подготовка к вебинару =====
универсальный_helm-чарт.1769492105.txt.gz · Last modified: 2026/01/27 08:35 by val