{"id":50474905,"url":"https://github.com/softwarefactory-project/sf-infra","last_synced_at":"2026-06-01T12:31:30.716Z","repository":{"id":37780249,"uuid":"348385762","full_name":"softwarefactory-project/sf-infra","owner":"softwarefactory-project","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-25T16:00:39.000Z","size":5109,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-05-25T18:04:59.555Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dhall","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/softwarefactory-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-03-16T14:49:31.000Z","updated_at":"2026-05-25T16:00:43.000Z","dependencies_parsed_at":"2024-03-25T11:24:55.072Z","dependency_job_id":"b12ca328-7c1d-4f34-8df7-64b2a152b61e","html_url":"https://github.com/softwarefactory-project/sf-infra","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/softwarefactory-project/sf-infra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fsf-infra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fsf-infra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fsf-infra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fsf-infra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softwarefactory-project","download_url":"https://codeload.github.com/softwarefactory-project/sf-infra/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwarefactory-project%2Fsf-infra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33775857,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"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":"2026-06-01T12:31:29.826Z","updated_at":"2026-06-01T12:31:30.711Z","avatar_url":"https://github.com/softwarefactory-project.png","language":"Dhall","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Software-Factory and RDO infra management\n\n## Why\n\nThe project is used to manage softwarefactory-project.io and\nrdoproject.org infrastructures using CI/CD workflow.\n\nZuul is used to launch jobs to create, configure and update the\ninfrastructure on OpenStack public clouds.\n\nExternal instances could also be managed by the project.\n\nMonitoring is configured for all the hosts define on the project using\nprometheus, the monitoring is located at\nhttps://monitoring.softwarefactory-project.io\n\n## How\n\nThe infrastucture deployment and configuration is done by running Zuul\njobs defined in ./zuul.d/jobs.yaml. The Zuul jobs create, configure and\nupdate the infrastructure:\n\n* Dhall is used to generate ansible inventory and variables files needed to\n  manage the infrastructure.\n* OpenStack networks, subnets, routers, security groups and instances are\n  managed using ansible os_* modules. Roles in ./roles are used to configure\n  hosts and services.\n\n\n#### The main directories are:\n\n* ansible: contains ansible inventory and configuration files.\n* Infra: Dhall types to manage the infrastructure.\n* monitoring: prometheus configuration and rules.\n* playbooks: main playbooks used to manage the infrastructure.\n* roles: ansible roles.\n* tests: playbooks used with molecule to validate roles.\n* vars: configuration directory for the infrastructure.\n* zuul.d: zuul jobs location.\n\n\n#### Vars directory\n\nFrom a user perspective, the most important files and directories in vars\ndirectory are:\n\n```\nvars\n├── common.dhall\n├── files\n├── infra-rdo\n├── infra-sf\n├── nodepool-rdo\n├── nodepool-sf\n├── nodepool-tripleo\n```\n\nThis directory contains the configuration for OpenStack tenants, there is one\ndirectory per project:\n* infra-sf and infra-rdo contains configuration to manage network and servers\n  configuration for both projects.\n* nodepool-* contains configuration to manage network configuration for nodepool\n  projects.\n* common.dhall for data shared in tenants (images, flavors, ...).\n* files directory contains static files like ssh pubkey.\n\n\n#### Playbooks directory\n\nThese playbooks are executed if needed (configure-tenants.yaml is only\nexecuted if networks or servers should be created or updated). Here a\ndescription of the most importants:\n\n##### create-bridge.yaml\n\nThis playbook is used to manage bridge deployment and configuration. The\nbridge is the host where the ansible playbooks are run.\n\n##### configure-tenants.yaml\n\nTenant management, to creates and configures networks, subnets, routers\nand security groups.\n\n##### create-hosts.yaml\n\nHost management, to create and configure servers and volumes.\n\n##### site.yaml\n\nHost configuration, to define roles and playbooks per host or group.\n\n##### rdo-registry.yaml\n\nSpecific configuration for rdo-registry deployment.\n\n\n## Inventory\n\nAll the servers managed by the project could be found on doc/inventory.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwarefactory-project%2Fsf-infra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftwarefactory-project%2Fsf-infra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwarefactory-project%2Fsf-infra/lists"}