This document aims to outline the requirements for the various forms of contribution for this project.
ALL contributions are subject to review via pull request
- Ensure the "base repository" is set to "ansible/product-demos".
- PRs should include the playbook/demo and required entry in corresponding
<demo>/setup.yml
. - PRs should include documentation in corresponding
<demo>/README.md
. - PRs should be rebased against the
main
branch to avoid conflicts. - PRs should not impact more than a single directory/demo section.
- PRs should not rely on external infrastructure or configuration unless the dependency is automated or specified in the
user_message
ofsetup.yml
. - PR titles should describe the work done in the PR. Titles should not be generic ("Added new demo") and should not refer to an issue number ("Fix for issue #123").
- Create a new branch based on main. (eg.
git checkout -b <branch name>
) - Add your playbook to the appropriate demo/section subdirectory.
- Make any changes needed to match the existing standards in the directory.
- Ex: Parameterized hosts
hosts: "{{ _hosts | default('windows') }}"
- Create an entry for your playbook in your subdirectories
setup.yml
- You can copy paste an existing one and edit it.
- Ensure you edit the name, playbook path, survey etc.
- Add any needed roles/collections to the requirements.yml
- Test via demo.redhat.com, specifying your branch name within the project configuration.
NOTE: demo.redhat.com is available to Red Hat Associates and Partners with a valid account.
- Create a new subdirectory with no spaces
- Create a new setup.yml copying appropriate elements from another
- Below is a sample skeleton for a new setup.yml
--- user_message: '' controller_templates: ...
- Configuration variables can be from any of the roles defined in the infra.controller_configuration collection
- Add variables for each component listed
- Include a README.md in the subdirectory
We utilize pre-commit to handle Git hooks, initiating a pre-commit check with each commit, both locally and on CI.
To install pre-commit, use the following commands:
pip install pre-commit
pre-commit install
For further details, refer to the pre-commit installation documentation.
To execute ansible-lint (whether within pre-commit or independently), you must configure an environment variable for the token required to connect to Automation Hub. Obtain the token here.
Copy the token value and execute the following command:
export ANSIBLE_GALAXY_SERVER_AH_TOKEN=<token>