Files
K3S/addons/longhorn/role/tasks/main.yml
2026-04-24 21:01:26 +03:00

78 lines
2.6 KiB
YAML

---
- name: Check open-iscsi
ansible.builtin.command: systemctl is-active iscsid
register: iscsi_status
changed_when: false
failed_when: false
become: true
- name: Warn if iscsid is not running
ansible.builtin.debug:
msg: >
ВНИМАНИЕ: iscsid не запущен — Longhorn может работать некорректно.
Убедись, что open-iscsi установлен и запущен:
apt install open-iscsi && systemctl enable --now iscsid
open-iscsi должен быть в k3s_common_packages (он там есть по умолчанию).
when: iscsi_status.rc != 0
- name: Add Longhorn Helm repo
kubernetes.core.helm_repository:
name: longhorn
repo_url: "{{ longhorn_chart_repo }}"
environment:
KUBECONFIG: "{{ k3s_kubeconfig_path }}"
- name: Install Longhorn via Helm
kubernetes.core.helm:
name: longhorn
chart_ref: longhorn/longhorn
chart_version: "{{ longhorn_version }}"
release_namespace: "{{ longhorn_namespace }}"
create_namespace: true
wait: true
timeout: "10m0s"
values:
defaultSettings:
defaultReplicaCount: "{{ longhorn_default_replica_count }}"
defaultDataPath: "{{ longhorn_data_path }}"
persistence:
defaultClassReplicaCount: "{{ longhorn_default_replica_count }}"
defaultClass: "{{ longhorn_storage_class_default | bool }}"
longhornManager:
resources: "{{ longhorn_resources }}"
longhornDriver:
resources: "{{ longhorn_resources }}"
environment:
KUBECONFIG: "{{ k3s_kubeconfig_path }}"
- name: Create Longhorn Ingress
ansible.builtin.template:
src: ingress.yaml.j2
dest: /tmp/longhorn-ingress.yaml
mode: '0644'
when: longhorn_ingress_enabled | bool
- name: Apply Longhorn Ingress
ansible.builtin.command: k3s kubectl apply -f /tmp/longhorn-ingress.yaml
changed_when: true
when: longhorn_ingress_enabled | bool
- name: Show Longhorn access info
ansible.builtin.debug:
msg: >
Longhorn установлен.
StorageClass: longhorn (default: {{ longhorn_storage_class_default }})
Replicas: {{ longhorn_default_replica_count }}
Data path: {{ longhorn_data_path }}
{% if longhorn_ingress_enabled | bool %}
UI: http{{ 's' if longhorn_ingress_tls | bool else '' }}://{{ longhorn_ingress_host }}
{% else %}
Port-forward: kubectl port-forward svc/longhorn-frontend -n {{ longhorn_namespace }} 8080:80
Открой: http://localhost:8080
{% endif %}
Для single-node кластера задай replicas=1:
make addon-longhorn ARGS="-e longhorn_default_replica_count=1"