78 lines
2.6 KiB
YAML
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"
|