Skip to content

Commit 77aa5bf

Browse files
committed
README: add general information
1 parent e33e7a3 commit 77aa5bf

File tree

1 file changed

+59
-1
lines changed

1 file changed

+59
-1
lines changed

README.md

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,16 @@
22

33
# openstack-nix
44

5+
A set of Nix packages and NixOS modules allowing the usage of OpenStack in NixOS.
6+
57
## About this project
68

7-
A set of Nix packages and NixOS modules allowing the usage of OpenStack in NixOS.
9+
The repository contains the following things:
10+
11+
* Nix package descriptions for OpenStack libraries and executables
12+
* NixOS modules starting the basic OpenStack services (Keystone, Glance, Placement, Neutron, Nova, ...)
13+
* NixOS modules mimicking the configuration for a [minimal OpenStack setup](https://docs.openstack.org/install-guide/openstack-services.html#minimal-deployment-for-2024-2-dalmatian) (e.g. create users and databases)
14+
* NixOS tests checking basic OpenStack functions (e.g. server creation and live migration)
815

916
## Style Checks
1017

@@ -31,6 +38,57 @@ Single checks can be skipped using the
3138
environment variable, if they are problematic. As an escape hatch, use
3239
`git commit --no-verify` to avoid running _any_ checks.
3340

41+
## Usage
42+
43+
The `openstack-nix` repository exports everything via a nix flake. You can
44+
specify it as a flake input in your project or directly build certain
45+
attributes.
46+
47+
### OpenStack Nix packages
48+
49+
The OpenStack services require a number of dependencies that are exported via:
50+
51+
```nix
52+
openstack-nix.packages
53+
```
54+
55+
### NixOS modules
56+
57+
The NixOS modules are exported via
58+
59+
```nix
60+
openstack-nix.nixosModules
61+
```
62+
63+
There are modules to setup the OpenStack controller, an OpenStack compute node
64+
and modules simplifying the creation of new NixOS tests.
65+
66+
### NixOS tests
67+
68+
The NixOS tests are located under the `tests` attribute. To execute a NixOS test
69+
do the following:
70+
71+
```shell
72+
nix build .#tests.x86_64-linux.<test-name>
73+
```
74+
75+
If you want an interactive session:
76+
77+
```shell
78+
nix build .#tests.x86_64-linux.<test-name>.driverInteractive
79+
./result/bin/nixos-test-driver
80+
```
81+
82+
## Scope
83+
84+
OpenStack is a very large and super actively maintained project. We are aware that we cannot keep track of all its development or offer every single configuration option via NixOS modules.
85+
86+
Therefore, we restricted ourself to the following goals for this project:
87+
88+
* Make it easy to use OpenStack in a sane and useful default configuration.
89+
* Allow the user to customize packages and configurations, but there are no
90+
guarantees that things will work then.
91+
3492
## Support, Feedback, Contributing
3593

3694
This project is open to feature requests/suggestions, bug reports etc. via [GitHub issues](https://github.com/cobaltcore-dev/openstack-nix/issues). Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md).

0 commit comments

Comments
 (0)