70 lines
2.2 KiB
YAML
70 lines
2.2 KiB
YAML
---
|
|
- name: Apply nodejs-demo Kubernetes manifests
|
|
hosts: k3s_server
|
|
become: true
|
|
run_once: true
|
|
vars:
|
|
k3s_kubeconfig: /etc/rancher/k3s/k3s.yaml
|
|
nodejs_demo_manifest: "04-01-nodejs-demo.yaml"
|
|
manifests_dir: "{{ playbook_dir }}/../../files/04-01"
|
|
tasks:
|
|
- name: Ensure manifest file exists
|
|
ansible.builtin.stat:
|
|
path: "{{ manifests_dir }}/{{ nodejs_demo_manifest }}"
|
|
register: nodejs_manifest_stat
|
|
delegate_to: localhost
|
|
become: false
|
|
|
|
- name: Fail if manifest not found
|
|
ansible.builtin.fail:
|
|
msg: "未找到 {{ manifests_dir }}/{{ nodejs_demo_manifest }},请从仓库根检查文件名"
|
|
when: not nodejs_manifest_stat.stat.exists
|
|
delegate_to: localhost
|
|
become: false
|
|
|
|
- name: Copy manifest to control plane
|
|
ansible.builtin.copy:
|
|
src: "{{ manifests_dir }}/{{ nodejs_demo_manifest }}"
|
|
dest: "/tmp/{{ nodejs_demo_manifest }}"
|
|
mode: "0644"
|
|
|
|
- name: kubectl apply nodejs-demo manifest
|
|
ansible.builtin.shell: |
|
|
set -e
|
|
KUBECONFIG={{ k3s_kubeconfig }} kubectl apply -f /tmp/{{ nodejs_demo_manifest }}
|
|
register: nodejs_apply
|
|
changed_when: "'configured' in nodejs_apply.stdout or 'created' in nodejs_apply.stdout"
|
|
|
|
- name: Show kubectl apply output
|
|
ansible.builtin.debug:
|
|
var: nodejs_apply.stdout_lines
|
|
|
|
- name: Verify 04-01 nodejs base (HTTP 200)
|
|
hosts: k3s_server
|
|
become: true
|
|
run_once: true
|
|
vars:
|
|
k3s_kubeconfig: /etc/rancher/k3s/k3s.yaml
|
|
verify_entry_base: "{{ nodejs_entry_base | default('http://' ~ k3s_server_ip) }}"
|
|
tasks:
|
|
- name: Rollout status nodejs-demo
|
|
ansible.builtin.include_role:
|
|
name: verify_common
|
|
tasks_from: kubectl-rollout-status.yml
|
|
vars:
|
|
verify_rollout_ref: deployment/nodejs-demo
|
|
verify_rollout_timeout_s: 240
|
|
|
|
- name: HTTP check /node
|
|
ansible.builtin.include_role:
|
|
name: verify_common
|
|
tasks_from: http-curl-expect.yml
|
|
vars:
|
|
verify_http_entry_base: "{{ verify_entry_base }}"
|
|
verify_http_path: "/node"
|
|
verify_http_connect_timeout: 3
|
|
verify_http_max_time: 10
|
|
verify_http_assertion_label: nodejs_base_04_01_entry_http
|
|
|
|
|