{"id":21721356,"url":"https://github.com/informaticsmatters/fragnet-ansible","last_synced_at":"2026-05-13T14:36:26.554Z","repository":{"id":46814822,"uuid":"223211459","full_name":"InformaticsMatters/fragnet-ansible","owner":"InformaticsMatters","description":"Ansible Playbooks (and Roles) to support fragnet","archived":false,"fork":false,"pushed_at":"2025-08-20T15:44:28.000Z","size":164,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-20T17:47:21.948Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jinja","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/InformaticsMatters.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-11-21T16:00:11.000Z","updated_at":"2025-08-20T15:41:43.000Z","dependencies_parsed_at":"2023-01-29T00:16:06.181Z","dependency_job_id":"472c7f07-6865-4fe6-8963-7c47f6473f69","html_url":"https://github.com/InformaticsMatters/fragnet-ansible","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/InformaticsMatters/fragnet-ansible","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet-ansible","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet-ansible/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet-ansible/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet-ansible/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InformaticsMatters","download_url":"https://codeload.github.com/InformaticsMatters/fragnet-ansible/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Ffragnet-ansible/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-25T02:00:05.816Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-26T02:16:00.328Z","updated_at":"2025-11-25T12:02:49.277Z","avatar_url":"https://github.com/InformaticsMatters.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fragnet (Ansible)\n\n![lint](https://github.com/InformaticsMatters/fragnet-ansible/workflows/lint/badge.svg)\n\n![GitHub tag (latest SemVer)](https://img.shields.io/github/v/tag/informaticsmatters/fragnet-ansible)\n\n[![CodeFactor](https://www.codefactor.io/repository/github/informaticsmatters/fragnet-ansible/badge)](https://www.codefactor.io/repository/github/informaticsmatters/fragnet-ansible)\n\nAnsible Roles (and playbooks) for the Kubernetes-based Fragnet Search/UI\nprojects, suitable for execution by [AWX].\n\nThis project contains two Ansible roles:-\n\n*   **fragnet** (which is used for Depict, Search or UI deployment)\n*   **fragnet-test**\n\n\u003e   Note: The Roles are designed to be executed from within our AWX server\n    where credentials for the cluster (Kubernetes), Keycloak and Graph reside.\n    If you're not running from AWX (discouraged) then you will need to provide\n    values for the variables that would be injected by AWX.\n \nAs with all of our playbooks you can find the common user-defined variables\nin each role's `defaults/main.yaml` and less common variables in\n`vars/main.yaml`.\n\n## Ansible Vault\nThe project uses files encrypted by Ansible Vault. AWX will inject\nthe vault secret but if you want to edit or inspect the secret file\n(`roles/fragnet/vars/pull-secrets.vault`) you will need\nthe vault key, which can be found in our **KeePass** application under\n`fragnet-search -\u003e Ansible Vault Password`: -\n\n    $ ansible-vault edit roles/fragnet/vars/pull-secrets.vault\n\n## fragnet role\nAs the search depends on a privately-hosted container image\n(`registry.gitlab.com/informaticsmatters/fragnet-ui`) the playbook\ncreates a **Secret** object, used by the UI **Deployment** in its\n**imagePullSecrets**. This secret allows Kubernetes to pull from the\nGitLab container registry.\n\nRefer to the [Fragnet UI] repository for details of how to pull\nthe image yourself and to our [documentation] on generating\nsecrets suitable for use as `imagePullSecrets`.\n\nThe Role has a number of playbooks: -\n\n1.  `site-fragnet.yaml` (The main application deployment)\n2.  `site-fragnet_add-route.yaml`\n    (legacy as main playbook deploys an Ingress but still of some use)\n3.  `site-fragnet_remove-route.yaml` \n    (legacy as main playbook deploys an Ingress but still of some use)\n\nThe main role deploys: -\n\n-   A namespace/project and ServiceAccount\n-   Various ConfigMaps\n-   Roles and RoleBindings\n-   Deployment, Service and Ingress\n\n...and depends on our [infrastructure] project's Kubernetes\n**Certificate Manager** to generate https certificates.\n\n## fragnet-test role\nThe test playbook uses the Fragnet UI's API to run a number of queries\nbased on the Graph combination that's been deployed. So, if your\nFragnet-UI is deployed against a graph that was built with our\n**combination 10** you'd run the tests with\n`fragnet_deployed_graph_id: combination_10`.\n\nThe Role has one playbook: -\n\n1.  `site-fragnet-test.yaml`\n\nThere are basic tests for the following fragment combinations: -\n\n-   `combination_5`\n-   `combination_6`\n-   `combination_10`\n\n### Creating new tests\nIf you deploy a new Graph combination you should prepare\na set of test results for the Availability Query the test runs.\nThis is simple and just requires you to create a file called\n`roles/fragnet-saerch-test/vars/test_combination_\u003cN\u003e.yaml`\nwhere `\u003cN\u003e` is the combination. The file should define two variables: -\n\n-   `fragnet_expected_suppliers` to list all the expected suppliers in the\n    database\n-   `availability_tests` which is a map of molecules and results.\n\nUse `test_combination_10.yaml` as the starting point of your new test.  \n\n---\n\n[awx]: https://github.com/ansible/awx\n[documentation]: https://informaticsmatters.gitlab.io/documentation/process/dev-image-pull-secrets.html\n[fragnet ui]: https://gitlab.com/informaticsmatters/fragnet-ui\n[infrastructure]: https://github.com/InformaticsMatters/ansible-infrastructure\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformaticsmatters%2Ffragnet-ansible","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finformaticsmatters%2Ffragnet-ansible","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformaticsmatters%2Ffragnet-ansible/lists"}