mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-07-29 10:54:41 +00:00
k8s - fix issue with server side apply (#549)
k8s - fix issue with server side apply SUMMARY Fix #548 and #547 ISSUE TYPE Bugfix Pull Request Reviewed-by: Mike Graves <mgraves@redhat.com> Reviewed-by: Bikouo Aubin <None>
This commit is contained in:
@@ -717,9 +717,67 @@
|
||||
- result.result.metadata.managedFields[0].manager == 'manager-02'
|
||||
- result.result.data.key == 'value-1'
|
||||
|
||||
# check_mode with server side apply
|
||||
- name: Ensure namespace does not exist
|
||||
k8s:
|
||||
state: absent
|
||||
kind: Namespace
|
||||
name: testing
|
||||
wait: true
|
||||
|
||||
- name: Create namespace using server_side_apply=true and check_mode=true
|
||||
k8s:
|
||||
apply: true
|
||||
server_side_apply:
|
||||
field_manager: ansible
|
||||
definition:
|
||||
kind: Namespace
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: testing
|
||||
check_mode: true
|
||||
register: _create
|
||||
|
||||
- name: Ensure namespace was not created
|
||||
k8s_info:
|
||||
kind: Namespace
|
||||
name: testing
|
||||
register: _info
|
||||
|
||||
- name: Validate that check_mode reported change even if namespace was not created
|
||||
assert:
|
||||
that:
|
||||
- _create is changed
|
||||
- not _info.resources
|
||||
|
||||
# server side apply over kubernetes client releases
|
||||
- name: Create temporary directory
|
||||
tempfile:
|
||||
state: directory
|
||||
suffix: .server
|
||||
register: path
|
||||
|
||||
- set_fact:
|
||||
virtualenv_src: "{{ path.path }}"
|
||||
|
||||
- include_tasks: tasks/server_side_apply.yml
|
||||
with_items:
|
||||
- '24.2.0'
|
||||
- '25.2.0a1'
|
||||
- '25.3.0b1'
|
||||
- '25.3.0'
|
||||
- '23.6.0'
|
||||
|
||||
always:
|
||||
- name: Remove namespace
|
||||
k8s:
|
||||
kind: Namespace
|
||||
name: "{{ test_namespace }}"
|
||||
state: absent
|
||||
|
||||
- name: Delete temporary directory
|
||||
file:
|
||||
path: "{{ virtualenv_src }}"
|
||||
state: absent
|
||||
ignore_errors: true
|
||||
when: virtualenv_src is defined
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
- set_fact:
|
||||
kubernetes_version: "kubernetes=={{ item }}"
|
||||
virtualenv_path: "{{ virtualenv_src }}/venv{{ item | replace('.', '') }}"
|
||||
|
||||
- name: Install kubernetes version
|
||||
pip:
|
||||
name:
|
||||
- '{{ kubernetes_version }}'
|
||||
virtualenv_command: "virtualenv --python {{ ansible_python_interpreter }}"
|
||||
virtualenv: "{{ virtualenv_path }}"
|
||||
|
||||
- name: Update namespace using server side apply
|
||||
k8s:
|
||||
apply: true
|
||||
server_side_apply:
|
||||
field_manager: "ansible{{ item | replace('.', '') }}"
|
||||
force_conflicts: true
|
||||
definition:
|
||||
kind: Namespace
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: testing
|
||||
vars:
|
||||
ansible_python_interpreter: "{{ virtualenv_path }}/bin/python"
|
||||
Reference in New Issue
Block a user