https://github.com/softwarefactory-project/sf-infra
https://github.com/softwarefactory-project/sf-infra
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/softwarefactory-project/sf-infra
- Owner: softwarefactory-project
- Created: 2021-03-16T14:49:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2026-05-25T16:00:39.000Z (about 2 months ago)
- Last Synced: 2026-05-25T18:04:59.555Z (about 2 months ago)
- Language: Dhall
- Size: 4.87 MB
- Stars: 6
- Watchers: 7
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Software-Factory and RDO infra management
## Why
The project is used to manage softwarefactory-project.io and
rdoproject.org infrastructures using CI/CD workflow.
Zuul is used to launch jobs to create, configure and update the
infrastructure on OpenStack public clouds.
External instances could also be managed by the project.
Monitoring is configured for all the hosts define on the project using
prometheus, the monitoring is located at
https://monitoring.softwarefactory-project.io
## How
The infrastucture deployment and configuration is done by running Zuul
jobs defined in ./zuul.d/jobs.yaml. The Zuul jobs create, configure and
update the infrastructure:
* Dhall is used to generate ansible inventory and variables files needed to
manage the infrastructure.
* OpenStack networks, subnets, routers, security groups and instances are
managed using ansible os_* modules. Roles in ./roles are used to configure
hosts and services.
#### The main directories are:
* ansible: contains ansible inventory and configuration files.
* Infra: Dhall types to manage the infrastructure.
* monitoring: prometheus configuration and rules.
* playbooks: main playbooks used to manage the infrastructure.
* roles: ansible roles.
* tests: playbooks used with molecule to validate roles.
* vars: configuration directory for the infrastructure.
* zuul.d: zuul jobs location.
#### Vars directory
From a user perspective, the most important files and directories in vars
directory are:
```
vars
├── common.dhall
├── files
├── infra-rdo
├── infra-sf
├── nodepool-rdo
├── nodepool-sf
├── nodepool-tripleo
```
This directory contains the configuration for OpenStack tenants, there is one
directory per project:
* infra-sf and infra-rdo contains configuration to manage network and servers
configuration for both projects.
* nodepool-* contains configuration to manage network configuration for nodepool
projects.
* common.dhall for data shared in tenants (images, flavors, ...).
* files directory contains static files like ssh pubkey.
#### Playbooks directory
These playbooks are executed if needed (configure-tenants.yaml is only
executed if networks or servers should be created or updated). Here a
description of the most importants:
##### create-bridge.yaml
This playbook is used to manage bridge deployment and configuration. The
bridge is the host where the ansible playbooks are run.
##### configure-tenants.yaml
Tenant management, to creates and configures networks, subnets, routers
and security groups.
##### create-hosts.yaml
Host management, to create and configure servers and volumes.
##### site.yaml
Host configuration, to define roles and playbooks per host or group.
##### rdo-registry.yaml
Specific configuration for rdo-registry deployment.
## Inventory
All the servers managed by the project could be found on doc/inventory.md