aboutsummaryrefslogtreecommitdiffstats
path: root/tools/yaml-validate.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/yaml-validate.py')
-rwxr-xr-xtools/yaml-validate.py31
1 files changed, 25 insertions, 6 deletions
diff --git a/tools/yaml-validate.py b/tools/yaml-validate.py
index f7a45d7b..c3229621 100755
--- a/tools/yaml-validate.py
+++ b/tools/yaml-validate.py
@@ -35,9 +35,10 @@ OPTIONAL_SECTIONS = ['workflow_tasks']
REQUIRED_DOCKER_SECTIONS = ['service_name', 'docker_config', 'puppet_config',
'config_settings', 'step_config']
OPTIONAL_DOCKER_SECTIONS = ['docker_puppet_tasks', 'upgrade_tasks',
- 'post_upgrade_tasks', 'service_config_settings',
+ 'post_upgrade_tasks', 'update_tasks',
+ 'service_config_settings',
'host_prep_tasks', 'metadata_settings',
- 'kolla_config']
+ 'kolla_config', 'logging_source', 'logging_groups']
REQUIRED_DOCKER_PUPPET_CONFIG_SECTIONS = ['config_volume', 'step_config',
'config_image']
OPTIONAL_DOCKER_PUPPET_CONFIG_SECTIONS = [ 'puppet_tags', 'volumes' ]
@@ -116,6 +117,22 @@ PREFERRED_CAMEL_CASE = {
'haproxy': 'HAProxy',
}
+# Overrides for docker/puppet validation
+# <filename>: True explicitly enables validation
+# <filename>: False explicitly disables validation
+#
+# If a filename is not found in the overrides then the top level directory is
+# used to determine which validation method to use.
+VALIDATE_PUPPET_OVERRIDE = {
+ # docker/service/sshd.yaml is a variation of the puppet sshd service
+ './docker/services/sshd.yaml': True,
+ # qdr aliases rabbitmq service to provide alternative messaging backend
+ './puppet/services/qdr.yaml': False,
+}
+VALIDATE_DOCKER_OVERRIDE = {
+ # docker/service/sshd.yaml is a variation of the puppet sshd service
+ './docker/services/sshd.yaml': False,
+}
def exit_usage():
print('Usage %s <yaml file or directory>' % sys.argv[0])
@@ -436,12 +453,14 @@ def validate(filename, param_map):
% filename)
return 1
- # qdr aliases rabbitmq service to provide alternative messaging backend
- if (filename.startswith('./puppet/services/') and
- filename not in ['./puppet/services/qdr.yaml']):
+ if VALIDATE_PUPPET_OVERRIDE.get(filename, False) or (
+ filename.startswith('./puppet/services/') and
+ VALIDATE_PUPPET_OVERRIDE.get(filename, True)):
retval = validate_service(filename, tpl)
- if filename.startswith('./docker/services/'):
+ if VALIDATE_DOCKER_OVERRIDE.get(filename, False) or (
+ filename.startswith('./docker/services/') and
+ VALIDATE_DOCKER_OVERRIDE.get(filename, True)):
retval = validate_docker_service(filename, tpl)
if filename.endswith('hyperconverged-ceph.yaml'):