tripleo-ansible/role-addition.yml
Kevin Carter e83c1490d5
Improve documentation readability
The role documentation titles were too long, and being truncated
in the site sidebar. This change shortens the title names so that
the its easier to navigate the documentation.

An update has been made to the role-addition playbook so that the
new role titles are generated with the shorter length.

Change-Id: Icee3c318ac0049eda586c2696d732415575eaa40
Signed-off-by: Kevin Carter <kecarter@redhat.com>
2019-06-20 12:08:25 -05:00

126 lines
4.3 KiB
YAML

---
# Copyright 2019 Red Hat, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
- name: Create a new role for TripleO-Ansible
hosts: localhost
connection: local
gather_facts: false
tasks:
- name: Check for role name
fail:
msg: >-
The required variable `role_name` is undefined. Check your settings.
when:
- role_name is undefined
- name: Create role
command: >-
ansible-galaxy init
--role-skeleton=_skeleton_role_
--init-path=tripleo_ansible/roles {{ role_name }}
args:
creates: "tripleo_ansible/roles/{{ role_name }}"
- name: Add tox config
ini_file:
path: tox.ini
section: "testenv:mol-{{ role_name }}"
option: "{{ item.key }}"
value: "{{ item.value }}"
with_items:
- key: "basepython"
value: "{[testenv:mol]basepython}"
- key: "deps"
value: "{[testenv:mol]deps}"
- key: "changedir"
value: "{toxinidir}/tripleo_ansible/roles/{{ role_name }}"
- key: "commands"
value: "python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py"
- name: Read zuul molecule file
slurp:
src: zuul.d/molecule.yaml
register: molecule_yaml
- name: Create molecule entry
copy:
content: |-
---
{% set items = molecule_yaml['content'] | b64decode | from_yaml %}
{% set job_index = [] %}
{% set new_job_name = "tripleo-ansible-centos-7-molecule-" ~ role_name %}
{% for item in items %}
{% if 'project-template' in item %}
{% if item['project-template']['name'] == "tripleo-ansible-molecule-jobs" %}
{% if not (new_job_name in item['project-template']['check']['jobs']) %}
{% set _ = item['project-template']['check']['jobs'].append(new_job_name) %}
{% endif %}
{% if not (new_job_name in item['project-template']['gate']['jobs']) %}
{% set _ = item['project-template']['gate']['jobs'].append(new_job_name) %}
{% endif %}
{% endif %}
{% else %}
{% if item['job']['name'] == new_job_name %}
{% set _ = job_index.append(new_job_name) %}
{% endif %}
{% endif %}
{% endfor %}
{% if (job_index | length) < 1 %}
{% set new_job = {
"name": new_job_name,
"parent": "tripleo-ansible-centos",
"files": [
"^tripleo_ansible/roles/" ~ role_name ~ "/.*"
],
"vars": {
"tox_envlist": "mol-" ~ role_name
}
}
%}
{% set _ = items.append({"job": new_job}) %}
{% endif %}
{{ items | to_nice_yaml(indent=2, width=1337) }}
dest: zuul.d/molecule.yaml
- name: Create role documentation
copy:
content: |
{% set opening = 'Role - ' ~ role_name %}
{{ '=' * (opening | length) }}
{{ opening }}
{{ '=' * (opening | length) }}
This role provides for the following services:
* {{ role_name }}
Default variables
~~~~~~~~~~~~~~~~~
.. literalinclude:: ../../../tripleo_ansible/roles/{{ role_name }}/defaults/main.yml
:language: yaml
:start-after: under the License.
Example playbook
~~~~~~~~~~~~~~~~
.. literalinclude:: ../../../tripleo_ansible/roles/{{ role_name }}/molecule/default/playbook.yml
:language: yaml
:start-after: under the License.
dest: "doc/source/roles/role-{{ role_name }}.rst"