We appreciate your interest in contributing to this F5 Professional Services repository. Thank you!
Read our Code of Conduct
Read our Community Code of Conduct to keep our community approachable and respectable.
Finding good first issues
You can find beginner-friendly issues in this repository here.
Reporting an issue
If you believe that you have found a new bug or wants to suggest an enhancement, you should report it by creating a new issue in the f5devcentral/f5-professional-services issue tracker.
When submitting your contribution, please, adhere to the following style guides, recommended practices and naming convention.
Security
Before submitting your contribution, please make sure:
- There are no credentials inside your code
- There are no API keys inside your code
- There are no license keys inside your code
- There are no references to any internal company document, IP addresses, or names/email addresses of individuals inside your code
README files
Lots of sections in this repository require a README file, particularly Ansible Playbooks, Terraform Plans, or other tools written in different languages.
Consider using this sample as a starting point for your README file.
Also, check awesome-readme for great examples.
Update your contribution in the top-level README (alpha-order) of your folder if there is one.
Ansible Playbooks
- Style Guides
When writing your playbook, consider the following Ansible Playbooks Best Practices and Tips and Tricks manual
https://docs.ansible.com/ansible/latest/tips_tricks/ansible_tips_tricks.html
https://docs.ansible.com/ansible/2.9/user_guide/playbooks_best_practices.html
Please do not upload a hosts file. Ensure any provider information is generalized or variablized. If supporting JSON is required, ensure the contents are generalized, and that the file path for the JSON is relative. Ideally reference json in the same directory as the yaml to make reading the example in github easier.
- Naming Convention
Consider naming your Ansible Playbook folder and files using the technology noun as the prefix and action as the suffix:
f5_big-ip_upgrade
f5_big-ip_generate_qkview
f5_big-ip_asm_update_signatures
f5_rseries_build_tenant
Python
- Style Guides
When writing any Python code, refer to the following Python code style:
https://peps.python.org/pep-0008/
When writing an one-off script, use the following application layout:
https://realpython.com/python-application-layouts/
│
├── .gitignore
├── helloworld.py
├── LICENSE
├── README.md
├── requirements.txt
├── setup.py
└── tests.py
- Naming Convention
If you are sending a Python code it's likely you are submitting a tool to our tools section. Consider naming it using the technology noun as the prefix and action as the suffix:
f5-ltm-report-vs-statistics
f5-ltm-rename-objects
f5-xc-export-csv
F5 iRules / iRulesLX
- Style Guides
When submitting iRules, consider the following as recommended practices:
https://community.f5.com/t5/technical-articles/irules-style-guide/ta-p/305921
https://community.f5.com/t5/technical-articles/avoiding-common-irules-security-pitfalls/ta-p/306623
https://community.f5.com/t5/technical-articles/irules-optimization-101-05-evaluating-irule-performance/ta-p/277028
- Naming Convention
Consider the following naming convention. If the iRule submitted also need data-groups, submit it using a folder with the same name of the iRule:
irule_ltm_http_rewrite.tcl
irule_dns_dynamic_response.tcl
irule_asm_custom_blocking-page.tcl
All code submissions require review. GitHub Pull Requests are used for this purpose. Please, consult GitHub Help for more information on it.
Please, submit one pull request per major item and name it properly.
As an example:
Title with a short informative summary of the pull request - (e.g. Adding f5-big-ip-tool-xyz)
Description: Add details explaining the PR for the reviewer