diff options
author | Luke Meyer <lmeyer@redhat.com> | 2017-03-22 15:23:29 -0400 |
---|---|---|
committer | Luke Meyer <lmeyer@redhat.com> | 2017-03-29 11:59:47 -0400 |
commit | f5827111a7609b3c6f7f72a03c8bc13fee2bbb60 (patch) | |
tree | 8b1cacfc6290c3a9d33c5a23c56e2715a4d2c399 /roles/openshift_sanitize_inventory | |
parent | d77a9a685c3add9ef9c4d659ee47ebf35e145fe4 (diff) | |
download | openshift-f5827111a7609b3c6f7f72a03c8bc13fee2bbb60.tar.gz openshift-f5827111a7609b3c6f7f72a03c8bc13fee2bbb60.tar.bz2 openshift-f5827111a7609b3c6f7f72a03c8bc13fee2bbb60.tar.xz openshift-f5827111a7609b3c6f7f72a03c8bc13fee2bbb60.zip |
validate and normalize inventory variables
In openshift_repos and everywhere, ensure deployment_type and
openshift_deployment_type are defined and the same.
We really want to set openshift_deployment_type, but users will likely
still have just deployment_type, so accept both. And don't make every
playbook default openshift_deployment_type to deployment_type.
This introduces the openshift_sanitize_inventory role to run before anything else.
Diffstat (limited to 'roles/openshift_sanitize_inventory')
-rw-r--r-- | roles/openshift_sanitize_inventory/README.md | 37 | ||||
-rw-r--r-- | roles/openshift_sanitize_inventory/meta/main.yml | 15 | ||||
-rw-r--r-- | roles/openshift_sanitize_inventory/tasks/main.yml | 28 | ||||
-rw-r--r-- | roles/openshift_sanitize_inventory/vars/main.yml | 7 |
4 files changed, 87 insertions, 0 deletions
diff --git a/roles/openshift_sanitize_inventory/README.md b/roles/openshift_sanitize_inventory/README.md new file mode 100644 index 000000000..23f6b84fc --- /dev/null +++ b/roles/openshift_sanitize_inventory/README.md @@ -0,0 +1,37 @@ +OpenShift Inventory +=================== + +Provides a role to validate and normalize the variables the user has +provided. This role should run before pretty much everything else so that +this kind of logic only has to be in one place. However, complicated +business logic should usually be left to other roles. + +Requirements +------------ + +None + +Role Variables +-------------- + +None + +Dependencies +------------ + +None + +Example Playbook +---------------- + +TODO + +License +------- + +Apache License, Version 2.0 + +Author Information +------------------ + +OpenShift dev (dev@lists.openshift.redhat.com) diff --git a/roles/openshift_sanitize_inventory/meta/main.yml b/roles/openshift_sanitize_inventory/meta/main.yml new file mode 100644 index 000000000..f5b37186e --- /dev/null +++ b/roles/openshift_sanitize_inventory/meta/main.yml @@ -0,0 +1,15 @@ +--- +galaxy_info: + author: OpenShift dev + description: + company: Red Hat, Inc. + license: Apache License, Version 2.0 + min_ansible_version: 1.8 + platforms: + - name: EL + versions: + - 7 + categories: + - cloud + - system +dependencies: [] diff --git a/roles/openshift_sanitize_inventory/tasks/main.yml b/roles/openshift_sanitize_inventory/tasks/main.yml new file mode 100644 index 000000000..fc562c42c --- /dev/null +++ b/roles/openshift_sanitize_inventory/tasks/main.yml @@ -0,0 +1,28 @@ +--- +- name: Standardize on latest variable names + no_log: True # keep task description legible + set_fact: + # goal is to deprecate deployment_type in favor of openshift_deployment_type. + # both will be accepted for now, but code should refer to the new name. + # TODO: once this is well-documented, add deprecation notice if using old name. + deployment_type: "{{ openshift_deployment_type | default(deployment_type) | default | string }}" + openshift_deployment_type: "{{ openshift_deployment_type | default(deployment_type) | default | string }}" + +- name: Normalize openshift_release + no_log: True # keep task description legible + set_fact: + # Normalize release if provided, e.g. "v3.5" => "3.5" + # Currently this is not required to be defined for all installs, and the + # `openshift_version` role can generally figure out the specific version + # that gets installed (e.g. 3.5.0.1). So consider this the user's expressed + # intent (if any), not the authoritative version that will be installed. + openshift_release: "{{ openshift_release | string | regex_replace('^v', '') }}" + when: openshift_release is defined + +- name: Ensure a valid deployment type has been given. + # this variable is required; complain early and clearly if it is invalid. + when: openshift_deployment_type not in known_openshift_deployment_types + fail: + msg: |- + Please set openshift_deployment_type to one of: + {{ known_openshift_deployment_types | join(', ') }} diff --git a/roles/openshift_sanitize_inventory/vars/main.yml b/roles/openshift_sanitize_inventory/vars/main.yml new file mode 100644 index 000000000..da48e42c1 --- /dev/null +++ b/roles/openshift_sanitize_inventory/vars/main.yml @@ -0,0 +1,7 @@ +--- +# origin uses community packages named 'origin' +# online currently uses 'openshift' packages +# enterprise is used for OSE 3.0 < 3.1 which uses packages named 'openshift' +# atomic-enterprise uses Red Hat packages named 'atomic-openshift' +# openshift-enterprise uses Red Hat packages named 'atomic-openshift' starting with OSE 3.1 +known_openshift_deployment_types: ['origin', 'online', 'enterprise', 'atomic-enterprise', 'openshift-enterprise'] |