* Update pre-commit actions This was done by running "pre-commit autoupdate --freeze". * Remove pre-commit only dependencies from requirements.in Including them in the file would create the illusion that those were the versions actually used in CI, but they are not. The exact versions are determined by the pre-commit hooks which are pinned in .pre-commit-config.yaml. * Ansible Lint: Fix role-name[path] * Ansible Lint: Fix name[play] * Ansible Lint: Fix key-order[task] * Ansible Lint: Fix jinja[spacing] * Ansible Lint: Fix no-free-form * Ansible Lint: Fix var-naming[no-reserved] * Ansible Lint: Fix yaml[comments] * Ansible Lint: Fix yaml[line-length] * Ansible Lint: Fix name[casing] * Ansible Lint: Fix no-changed-when * Ansible Lint: Fix fqcn[action] * Ansible Lint: Fix args[module] * Improve task naming
59 lines
1.9 KiB
YAML
59 lines
1.9 KiB
YAML
---
|
|
- name: Deploy example
|
|
block:
|
|
- name: "Create namespace: {{ testing_namespace }}"
|
|
kubernetes.core.k8s:
|
|
api_version: v1
|
|
kind: Namespace
|
|
name: "{{ testing_namespace }}"
|
|
state: present
|
|
wait: true
|
|
kubeconfig: "{{ kubecfg_path }}"
|
|
|
|
- name: Apply example manifests
|
|
kubernetes.core.k8s:
|
|
src: "{{ example_manifests_path }}/{{ item }}"
|
|
namespace: "{{ testing_namespace }}"
|
|
state: present
|
|
wait: true
|
|
kubeconfig: "{{ kubecfg_path }}"
|
|
with_items:
|
|
- deployment.yml
|
|
- service.yml
|
|
|
|
- name: Get info about nginx service
|
|
kubernetes.core.k8s_info:
|
|
kind: service
|
|
name: nginx
|
|
namespace: "{{ testing_namespace }}"
|
|
kubeconfig: "{{ kubecfg_path }}"
|
|
vars: &load_balancer_metadata
|
|
metallb_ip: status.loadBalancer.ingress[0].ip
|
|
metallb_port: spec.ports[0].port
|
|
register: nginx_services
|
|
|
|
- name: Assert that the nginx welcome page is available
|
|
ansible.builtin.uri:
|
|
url: http://{{ ip | ansible.utils.ipwrap }}:{{ port_ }}/
|
|
return_content: yes
|
|
register: result
|
|
failed_when: "'Welcome to nginx!' not in result.content"
|
|
vars:
|
|
ip: >-
|
|
{{ nginx_services.resources[0].status.loadBalancer.ingress[0].ip }}
|
|
port_: >-
|
|
{{ nginx_services.resources[0].spec.ports[0].port }}
|
|
# Deactivated linter rules:
|
|
# - jinja[invalid]: As of version 6.6.0, ansible-lint complains that the input to ipwrap
|
|
# would be undefined. This will not be the case during playbook execution.
|
|
# noqa jinja[invalid]
|
|
|
|
always:
|
|
- name: "Remove namespace: {{ testing_namespace }}"
|
|
kubernetes.core.k8s:
|
|
api_version: v1
|
|
kind: Namespace
|
|
name: "{{ testing_namespace }}"
|
|
state: absent
|
|
kubeconfig: "{{ kubecfg_path }}"
|