From 18a8e9b39f84bb27a37b2e03f46233ff140eb810 Mon Sep 17 00:00:00 2001 From: ogrechko Date: Mon, 29 Dec 2025 05:32:33 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20ansible/deploy=5Fawx=5Fk8s.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ansible/deploy_awx_k8s.yml | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/ansible/deploy_awx_k8s.yml b/ansible/deploy_awx_k8s.yml index bcc667c..8e52f98 100644 --- a/ansible/deploy_awx_k8s.yml +++ b/ansible/deploy_awx_k8s.yml @@ -6,12 +6,15 @@ gather_facts: false vars: - # Простые fallback-значения (переопределяются Semaphore Variable Group) + # Основные параметры — переопределяй в Semaphore Variable Group awx_namespace: awx awx_instance_name: awx - awx_service_type: NodePort # NodePort / ClusterIP / LoadBalancer - awx_operator_version: 2.19.1 # Последняя стабильная на конец 2025 + awx_service_type: NodePort # NodePort / ClusterIP / LoadBalancer + awx_operator_version: 2.19.1 # Последняя стабильная на декабрь 2025 kubeconfig_path: "/home/semaphore/.kube/config" + awx_storage_class: local-path # Предполагаем k3s или аналогичный кластер с local-path provisioner. Изменить на свой SC + awx_projects_persistence: false # Отключаем persistence для projects для теста (чтобы избежать PVC проблем) + awx_projects_storage_size: 8Gi # Если persistence: true tasks: - name: Fail if kubeconfig not found inside container @@ -56,6 +59,21 @@ retries: 40 delay: 15 + - name: Ensure default StorageClass for persistence (assume local-path for k3s-like clusters) + kubernetes.core.k8s: + state: present + kubeconfig: "{{ kubeconfig_path }}" + definition: + apiVersion: storage.k8s.io/v1 + kind: StorageClass + metadata: + name: "{{ awx_storage_class }}" + annotations: + storageclass.kubernetes.io/is-default-class: "true" + provisioner: rancher.io/local-path # Для k3s; изменить на свой provisioner (e.g., kubernetes.io/no-provisioner) + reclaimPolicy: Delete + volumeBindingMode: WaitForFirstConsumer # Избежать immediate bind ошибок на multi-node + - name: Deploy AWX instance kubernetes.core.k8s: state: present @@ -68,8 +86,12 @@ namespace: "{{ awx_namespace }}" spec: service_type: "{{ awx_service_type }}" + postgres_storage_class: "{{ awx_storage_class }}" # Указываем SC для postgres PVC + projects_persistence: "{{ awx_projects_persistence }}" # false для теста, чтобы избежать дополнительного PVC + projects_storage_class: "{{ awx_storage_class }}" # Если persistence: true + projects_storage_size: "{{ awx_projects_storage_size }}" - - name: Wait for AWX pods to be running + - name: Wait for AWX pods to be running (increased retries for slow storage provisioning) kubernetes.core.k8s_info: kubeconfig: "{{ kubeconfig_path }}" kind: Pod @@ -79,7 +101,7 @@ register: awx_pods until: >- awx_pods.resources | selectattr('status.phase', 'equalto', 'Running') | list | length >= 2 - retries: 60 + retries: 90 # Увеличено для ожидания provisioning PVC/PV delay: 20 - name: Retrieve AWX admin password @@ -98,4 +120,5 @@ Access URL: http://: (get port: kubectl get svc {{ awx_instance_name }}-service -n {{ awx_namespace }}) Username: admin - Password: {{ awx_secret.resources[0].data.password | b64decode }} \ No newline at end of file + Password: {{ awx_secret.resources[0].data.password | b64decode }} + Note: If persistence issues persist, ensure your cluster has a working provisioner (e.g., local-path in k3s) and default StorageClass set. \ No newline at end of file