F5 Digital Engagement Center Code Repository
Project Documentation in ReadTheDocs
This project will be utilized to demo and provide reusable configurations for F5 Digital Engagement Center labs and roadshows
This repository and its examples are meant to support a bring your own credentials approach. the credentials can be obtained through an F5 UDF course deployment, or your own cloud credentials.
This project can be run with or without the provided container for development or devcontainer.
- Requirements:
- vscode
- ms-vscode-remote.vscode-remote-extensionpack
- docker
- wsl2 on windows workstations
- Running:
- open vscode command pallet
-
Remote-Containers: Rebuild and Reopen in Container
-
- open vscode command pallet
The project is meant to deliver a framework for creation solutions using common or customized modules.
Each solution will:
- Explain which infrastructure it requires
- readme.md
- Provide step by step instructions to deploy the required infrastructure and configure it mirroring the scripts
- formatting for readthedocs
- Contain scripts to:
- Deploy the required infrastructure
- setup.sh
- Create the required configuration
- demo.sh
- demo script is meant to be a wrapper for the scripts you want to use to configure your deployed solution infrastructure. the most common scenario of using ansible through a docker container, is permitted by the privileged devcontainer.
- demo.sh
- Destroy the required infrastructure
- cleanup.sh
- Deploy the required infrastructure
- Accept variables
- auto.tfvars.example an example of available variables for the infrastructure
- Export variables
- Solutions should be addressable as terraform modules, this requires they output relevant connection information in a standardized way.
- Be responsible for any IAM objects needed
- Create and manage any security groups/firewall rules needed by the solution.
- Include defaults not present in the auto.tvfars when using terraform
- Provide an auto.tfvars example when using terraform
a sample solution template is available in ~/solutions/solution_template
Each module will:
- Attempt to use community or vendor supported modules first
- Export consistent outputs following project naming standards
- Include standalone examples
- Work with existing networks
The container will:
- provide current releases of:
- Terraform
- Ansible
- pre-commit
- aws-cli
- azure-cli
- gcloud-cli
checking for secrets as well as linting is performed by git pre-commit with the module requirements handled in the devcontainer.
testing pre-commit hooks:
# test pre commit manually
pre-commit run -a -v
building documentation:
mkdir -p docs_local
#local
sphinx-build -b html $PWD docs_local/
#preview local
# non wsl normal file path volume
docker run -it --rm -d -p 80:80 --name docs -v $PWD/docs_local:/usr/share/nginx/html nginx
# wsl requires volume path to original dockerhost filesystem
docker run -it --rm -d -p 80:80 --name docs -v /c/github/f5-digital-customer-engagement-center/docs_local:/usr/share/nginx/html nginx
module not pulling in changes:
- force module update
terraform get -update
For support, please open a GitHub issue. Note, the code in this repository is community supported and is not supported by F5 Networks. For a complete list of supported projects please reference SUPPORT.md.
Please refer to the F5 DevCentral Community Code of Conduct.
Copyright 2014-2020 F5 Networks Inc.
Before you start contributing to any project sponsored by F5 Networks, Inc. (F5) on GitHub, you will need to sign a Contributor License Agreement (CLA).
If you are signing as an individual, we recommend that you talk to your employer (if applicable) before signing the CLA since some employment agreements may have restrictions on your contributions to other projects. Otherwise by submitting a CLA you represent that you are legally entitled to grant the licenses recited therein.
If your employer has rights to intellectual property that you create, such as your contributions, you represent that you have received permission to make contributions on behalf of that employer, that your employer has waived such rights for your contributions, or that your employer has executed a separate CLA with F5.
If you are signing on behalf of a company, you represent that you are legally entitled to grant the license recited therein. You represent further that each employee of the entity that submits contributions is authorized to submit such contributions on behalf of the entity pursuant to the CLA.