{"id":20334196,"url":"https://github.com/dumpysquare/f5-drasi","last_synced_at":"2026-02-16T15:01:44.613Z","repository":{"id":124034225,"uuid":"372282854","full_name":"DumpySquare/f5-drasi","owner":"DumpySquare","description":"custom f5 github actions as a full CI/CD","archived":false,"fork":false,"pushed_at":"2021-05-30T18:23:26.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-04T23:34:26.661Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DumpySquare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-30T18:02:38.000Z","updated_at":"2021-05-30T18:23:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"0001aed1-1b2e-48c9-bd86-be902092968a","html_url":"https://github.com/DumpySquare/f5-drasi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DumpySquare/f5-drasi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DumpySquare%2Ff5-drasi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DumpySquare%2Ff5-drasi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DumpySquare%2Ff5-drasi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DumpySquare%2Ff5-drasi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DumpySquare","download_url":"https://codeload.github.com/DumpySquare/f5-drasi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DumpySquare%2Ff5-drasi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29510518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T20:36:18.960Z","updated_at":"2026-02-16T15:01:44.597Z","avatar_url":"https://github.com/DumpySquare.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# f5-drasi\n\nactions (english) =\u003e drasi (greek)\n\n## idea\n\nSince 2019 github actions have become super powerful with options like simple bash scripting, nodejs apps, and even full blown docker containers.\n\nSome of these docker containers can get pretty beefy some full CI/CD solutions include full application testing and deployment.\n\nInfrastucture as Code (IaC) is a very common goal for F5 customers as we continue to automate and accelerate deployments.\n\nSeveral have started some simple solutions to integrate SCM directly with managing f5 configurations.  Some of those solutions have worked very well for some.\n\nIt's time to create a solution to push the idea to the next level\n\n## architecture\n\nAt it's core, this will be a nodejs application that integrats with github actions.  The action can execute on push/pull-request/merge as needed;\n\n### phase 1 - applications\n\nPhase 1 will include the action to watch a \"tenants\" folder.  Each file in the folder will be a tenant.  When a tenant has been modified, the action will execute the appropriate AS3 call to the defined F5 device.\n\nThis can currently be achieved with f5-conx-core.\n\n### phase 2 - system settings\n\nPhase 2 will include managing system settings (vlans/ips/dns/ntp/snmp/...)\n\n- First thought is to use DO, but DO doesn't handle day 1+ operations, like at all...\n- the next thought was to use something like ansible so things can be managed imperatively\n- All this information could be based off a DO declaration;\n  -  Use DO for day 0 deployment\n  -  then use DO declaration, parsed for specific details to run an ansible playbook to update any changes\n\n### phase 3 - device deployment\n\nFor now, we will just be focused on F5 VE (cloud/gcp/azure/aws/vmware)\n\nThe idea is that new repo could be copied (or created from template) that would include all the necessary details to deploy an f5 ve (or pair), onboard device settins, and deploy applications\n\nAny future changes would be hanlded by previous phase funcationality\n\n## Installation\nOutline the requirements and steps to install this project. \n\n## Usage\n\nimport github action, setup actions files and secrets, deploy!\n\n## Development\n\nFiguring this out.  Seems the best way is to use a project called ACT to locally test github actions\n\n## Support\nFor 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](SUPPORT.md).\n\n## Community Code of Conduct\nPlease refer to the [F5 DevCentral Community Code of Conduct](code_of_conduct.md).\n\n\n## License\n[Apache License 2.0](LICENSE)\n\n## Copyright\nCopyright 2014-2020 F5 Networks Inc.\n\n\n### F5 Networks Contributor License Agreement\n\nBefore you start contributing to any project sponsored by F5 Networks, Inc. (F5) on GitHub, you will need to sign a Contributor License Agreement (CLA).\n\nIf 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.\nOtherwise by submitting a CLA you represent that you are legally entitled to grant the licenses recited therein.\n\nIf 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.\n\nIf you are signing on behalf of a company, you represent that you are legally entitled to grant the license recited therein.\nYou 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdumpysquare%2Ff5-drasi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdumpysquare%2Ff5-drasi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdumpysquare%2Ff5-drasi/lists"}