Adding Netbox
This commit is contained in:
91
roles/ansible-network.network-engine/CONTRIBUTING.md
Normal file
91
roles/ansible-network.network-engine/CONTRIBUTING.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# Developer Guide
|
||||
|
||||
This role is developed and maintained by the Ansible Network Working Group.
|
||||
Contributions to this role are welcomed. This document will provide individuals
|
||||
with information about how to contribute to the further development of this
|
||||
role.
|
||||
|
||||
## Contributing
|
||||
|
||||
There are many ways you can contribute to this role. Adding new artifacts such
|
||||
as modules and plugins, testing and/or reviewing and updating documentation.
|
||||
|
||||
### Adding support for a new platform
|
||||
|
||||
To add support for a new platform to this role, there are a couple of things
|
||||
that need to be done.
|
||||
|
||||
1) Create the module for the platform specific implementation in Ansible. The
|
||||
module can be contributed directly to Ansible core, distributed through Ansible
|
||||
Galaxy or added to this role.
|
||||
|
||||
2) (Optional) If adding the module code directly to this role, add the module
|
||||
to `library/`
|
||||
|
||||
3) (Optional) If the new platform module is distributed through another Galaxy
|
||||
role, please update [README](README.md) Dependencies section to include the
|
||||
name of the Galaxy role that includes the module.
|
||||
|
||||
4) Once the module has been created, the add a new task in `tasks/` for the
|
||||
specific platform to be supported. Use any of the existing platform
|
||||
implementations as a guide.
|
||||
|
||||
5) (Optional) If a configuration parameter is not supported, then the
|
||||
implementation in tasks should detect that and provide a warning message.
|
||||
|
||||
6) Update the `meta/main.yaml` file to add the newly provided platform to
|
||||
the `platforms` meta data.
|
||||
|
||||
### Adding platform specific arguments
|
||||
|
||||
Sometimes there is a need to add platform specific arguments to a role for use
|
||||
by a platform specific module. This can be accomplished by adding the adding
|
||||
the arguments under a platform specific key.
|
||||
|
||||
Note: It is the responsibility of the task writer to handle the implementation
|
||||
of the platform specific arguments.
|
||||
|
||||
Here is an example that implements a platform specific argument:
|
||||
|
||||
```yaml
|
||||
tasks:
|
||||
- name: configure network device resource
|
||||
include_role:
|
||||
name: net_system
|
||||
vars:
|
||||
resource:
|
||||
foo: bar
|
||||
ios:
|
||||
foo: baz
|
||||
```
|
||||
|
||||
### Adding documentation for a platform specific implementation
|
||||
|
||||
While not required, there are times when providing implementation nodes are
|
||||
advantageous to instructing the playbook writer how to implement platform
|
||||
specific arguments. In order to provide platform specific documentation,
|
||||
create a file in the docs directory using GitHub Markdown. The file name
|
||||
should be the platform name.
|
||||
|
||||
For instance, let's assume we want to create implementation nodes for a
|
||||
fictitious platform call `foo`. Create a new file `docs/foo.md` and
|
||||
then add a link to [README](README.md) pointing to `docs/foo.md` in the `PLATFORM
|
||||
NOTES` section.
|
||||
|
||||
# Note
|
||||
|
||||
The release cadence for the network-engine role is two weeks and it will be
|
||||
released on every second Tuesday at 12:00 PM (GMT) from the date of prior release.
|
||||
For the PR to be available in the upcoming release it should be in a mergeable state
|
||||
that is CI is passing and all review comments fixed at least two days prior to scheduled date
|
||||
of release.
|
||||
|
||||
## Bug Reporting
|
||||
|
||||
If you have found a bug in the with the current role please open a [GitHub
|
||||
issue](../../issues)
|
||||
|
||||
## Contact
|
||||
|
||||
* [#ansible-network IRC channel](https://webchat.freenode.net/?channels=ansible-network) on Freenode.net
|
||||
|
||||
Reference in New Issue
Block a user