Professional Documents
Culture Documents
Infrastructure Best Practices
Infrastructure Best Practices
This project is the home of all the tasks, issues, knowledge base
articles (wiki pages) and scripts that define, describe and manage
or help manage the IT infrastructure of Company Ltd.
## Getting started
You will need a VPN client and a certificate to get connected to the
main server that hosts the virtual machines, containers. Download
[https://openvpn.net/index.php/open-source/downloads.html](OpenVPN)
and request a certificate from the admin.
## Physical Servers
* [Bootstrap](./_docs/physical_server_bootstrap.md)
## Backup
[./_docs/backup.md](./_docs/backup.md)
## DNS
[./_docs/dns.md](./_docs/dns.md)
## GitLab
### Projects
The main 2 projects that are owned by the DevOps team are:
* [`infrastructure`](https://gitlab.com/Company/infrastructure) -
main DevOps repository
* [`jenkins-lib`](https://gitlab.com/Company/jenkins-lib) - Jenkins
librabries
Other teams/projects usually have their own project. The DevOps team
might own some parts of their repositories, for
example [packaging code](https://gitlab.com/Company/Company/-/tree/
master/packaging) in the [Company Agent repository](https://
gitlab.com/Company/Company)
### Labels
* The DevOps team doesn't care much about labels in the merge
requests. Unless they are required for triggering some
automation process.
* When creating an issue, set the following labels if you are aware
of their values:
* `prio:` - priority:
* `urgent` - other activity should be stopped and efforts should
be transferred to this issue
* `high`
* `medium`
* `low`
* `size:` - estimated amount of time needed for the task. Check
the description of the labels for more details.
* `state:`
* `planning` - the requirements for the task are not well
defined yet
* `ready2work` - the information in the issue is enough for
assigned person to start the work
* `doing` - there is active work on the issue
* `review` - the issue has been passed to review
* `blocked` - the issue requires that some another issue or
external process to be completed first
* `suspended` - the work was suspended for whatever reason, e.g.
due to switching to a higher priority tasks
* When starting, finishing or postponing the work on an issue, make
sure that the `state:` label is up-to-date. Also
add a comment that provides more details, for example in case
`state:blocked` the comment should contain the details
about the blocker.
When not sure, you may look for `Maintainer` or `Owner` roles in
the list of project members.
* In case of [the Company Agent project](https://gitlab.com/Company/
Company), which contains 2 main branches:
* [`master`](https://gitlab.com/Company/Company/-/tree/master) -
for v5
* [`Company-ee4`](https://gitlab.com/Company/Company/-/tree/
Company-ee4) - for v4
## Code Conventions
### Python
## Best Practices
* [File Recovery](./_docs/file_recovery.md)
## Useful pages
### Essentials
### Support
## FAQ
* Most of the services relies on Azure SSO. The users are currently
managed in Azure AD by Balazs Ruttkay.
* The users are represented in the infrastructure by [user configs]
(./configs/user) and can be managed by the
[user_manage.py](./scripts/user_manage.py) ([documentation](./
scripts/README.md#user-manage)). Check [examples](./scripts/
README.md#more-examples)
for common usage patterns.