mirror of
https://github.com/openshift/community.okd.git
synced 2026-05-08 22:22:38 +00:00
Add openshift_process module (#44)
* Initial pass at openshift_process module. Render-only * fix sanity test * Add ability to create/delete resources rendered by template * fix sanity tests * add more tests and fix .env parser * Add more tests * Make multiline parsing work properly * Add test for creating templates * Template APIs require namespace to be provided whether or not the template exists * add docs * Update plugins/modules/openshift_process.py Co-authored-by: Timothy Appnel <tima@ansible.com> Co-authored-by: Timothy Appnel <tima@ansible.com>
This commit is contained in:
committed by
GitHub
parent
308235e032
commit
74ac82e76d
164
molecule/default/tasks/openshift_process.yml
Normal file
164
molecule/default/tasks/openshift_process.yml
Normal file
@@ -0,0 +1,164 @@
|
||||
---
|
||||
|
||||
- name: Process a template in the cluster
|
||||
community.okd.openshift_process:
|
||||
name: nginx-example
|
||||
namespace: openshift # only needed if using a template already on the server
|
||||
parameters:
|
||||
NAMESPACE: openshift
|
||||
NAME: test123
|
||||
register: result
|
||||
|
||||
- name: Create the rendered resources
|
||||
community.okd.k8s:
|
||||
namespace: process-test
|
||||
definition: '{{ item }}'
|
||||
wait: yes
|
||||
apply: yes
|
||||
loop: '{{ result.resources }}'
|
||||
|
||||
- name: Delete the rendered resources
|
||||
community.okd.k8s:
|
||||
namespace: process-test
|
||||
definition: '{{ item }}'
|
||||
wait: yes
|
||||
state: absent
|
||||
loop: '{{ result.resources }}'
|
||||
|
||||
- name: Process a template and create the resources in the cluster
|
||||
community.okd.openshift_process:
|
||||
name: nginx-example
|
||||
namespace: openshift # only needed if using a template already on the server
|
||||
parameters:
|
||||
NAMESPACE: openshift
|
||||
NAME: test123
|
||||
state: present
|
||||
namespace_target: process-test
|
||||
register: result
|
||||
|
||||
- name: Process a template and update the resources in the cluster
|
||||
community.okd.openshift_process:
|
||||
name: nginx-example
|
||||
namespace: openshift # only needed if using a template already on the server
|
||||
parameters:
|
||||
NAMESPACE: openshift
|
||||
NAME: test123
|
||||
MEMORY_LIMIT: 1Gi
|
||||
state: present
|
||||
namespace_target: process-test
|
||||
register: result
|
||||
|
||||
- name: Process a template and delete the resources in the cluster
|
||||
community.okd.openshift_process:
|
||||
name: nginx-example
|
||||
namespace: openshift # only needed if using a template already on the server
|
||||
parameters:
|
||||
NAMESPACE: openshift
|
||||
NAME: test123
|
||||
state: absent
|
||||
namespace_target: process-test
|
||||
register: result
|
||||
|
||||
- name: Process a template with parameters from an env file and create the resources
|
||||
community.okd.openshift_process:
|
||||
name: nginx-example
|
||||
namespace: openshift
|
||||
namespace_target: process-test
|
||||
parameter_file: '{{ files_dir }}/nginx.env'
|
||||
state: present
|
||||
wait: yes
|
||||
|
||||
- name: Process a template with parameters from an env file and delete the resources
|
||||
community.okd.openshift_process:
|
||||
name: nginx-example
|
||||
namespace: openshift
|
||||
namespace_target: process-test
|
||||
parameter_file: '{{ files_dir }}/nginx.env'
|
||||
state: absent
|
||||
wait: yes
|
||||
|
||||
|
||||
- name: Process a template with duplicate values
|
||||
community.okd.openshift_process:
|
||||
name: nginx-example
|
||||
namespace: openshift # only needed if using a template already on the server
|
||||
parameters:
|
||||
NAME: test123
|
||||
parameter_file: '{{ files_dir }}/nginx.env'
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- name: Assert the expected failure occurred
|
||||
assert:
|
||||
that:
|
||||
- result.msg is defined
|
||||
- result.msg == "Duplicate value for 'NAME' detected in parameter file"
|
||||
|
||||
- name: Process a local template
|
||||
community.okd.openshift_process:
|
||||
src: '{{ files_dir }}/simple-template.yaml'
|
||||
parameter_file: '{{ files_dir }}/example.env'
|
||||
register: rendered
|
||||
|
||||
- name: Process a local template and create the resources
|
||||
community.okd.openshift_process:
|
||||
src: '{{ files_dir }}/simple-template.yaml'
|
||||
parameter_file: '{{ files_dir }}/example.env'
|
||||
namespace_target: process-test
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that: result is changed
|
||||
|
||||
- name: Create the processed resources
|
||||
community.okd.k8s:
|
||||
namespace: process-test
|
||||
definition: '{{ item }}'
|
||||
loop: '{{ rendered.resources }}'
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that: result is not changed
|
||||
|
||||
- name: Process a local template and create the resources
|
||||
community.okd.openshift_process:
|
||||
definition: "{{ lookup('template', files_dir + '/simple-template.yaml') | from_yaml }}"
|
||||
parameter_file: '{{ files_dir }}/example.env'
|
||||
namespace_target: process-test
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that: result is not changed
|
||||
|
||||
- name: Get the created configmap
|
||||
community.kubernetes.k8s_info:
|
||||
api_version: v1
|
||||
kind: ConfigMap
|
||||
name: example
|
||||
namespace: process-test
|
||||
register: templated_cm
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- (templated_cm.resources | length) == 1
|
||||
- templated_cm.resources.0.data.content is defined
|
||||
- templated_cm.resources.0.data.content == "This is a long message that may take one or more lines to parse but should still work without issue"
|
||||
|
||||
- name: Create the Template resource
|
||||
community.okd.k8s:
|
||||
src: '{{ files_dir }}/simple-template.yaml'
|
||||
namespace: process-test
|
||||
|
||||
- name: Process the template and create the resources
|
||||
community.okd.openshift_process:
|
||||
name: simple-example
|
||||
namespace: process-test # only needed if using a template already on the server
|
||||
namespace_target: process-test
|
||||
parameter_file: '{{ files_dir }}/example.env'
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that: result is not changed
|
||||
Reference in New Issue
Block a user