Skip to content

Commit 2686a7e

Browse files
committed
controller: add barbican module
Starts the barbican API and worker that are required for secret management. Signed-off-by: Stefan Kober <stefan.kober@cyberus-technology.de> On-behalf-of: SAP stefan.kober@sap.com
1 parent dadff60 commit 2686a7e

1 file changed

Lines changed: 129 additions & 0 deletions

File tree

modules/controller/barbican.nix

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
{ barbican }:
2+
{
3+
config,
4+
lib,
5+
pkgs,
6+
...
7+
}:
8+
9+
with lib;
10+
11+
let
12+
cfg = config.barbican;
13+
14+
barbicanConf = pkgs.writeText "barbican-api.conf" ''
15+
[DEFAULT]
16+
log_dir = /var/log/barbican
17+
transport_url = rabbit://openstack:openstack@controller
18+
my_ip = controller
19+
20+
[database]
21+
connection = mysql+pymysql://barbican:barbican@controller/barbican
22+
23+
[keystone_authtoken]
24+
www_authenticate_uri = http://controller:5000
25+
auth_url = http://controller:5000
26+
memcached_servers = controller:11211
27+
auth_type = password
28+
project_domain_name = Default
29+
user_domain_name = Default
30+
project_name = service
31+
username = barbican
32+
password = barbican
33+
service_token_roles_required = true
34+
service_token_roles = admin
35+
36+
region_name = RegionOne
37+
'';
38+
in
39+
{
40+
options.barbican = {
41+
enable = mkEnableOption "Enable OpenStack Barbican." // {
42+
default = true;
43+
};
44+
config = mkOption {
45+
default = barbicanConf;
46+
description = ''
47+
The Barbican config.
48+
'';
49+
};
50+
};
51+
config = mkIf cfg.enable {
52+
53+
users.extraUsers.barbican = {
54+
group = "barbican";
55+
isSystemUser = true;
56+
};
57+
users.groups.barbican = {
58+
name = "barbican";
59+
members = [ "barbican" ];
60+
};
61+
62+
systemd.tmpfiles.settings = {
63+
"10-barbican" = {
64+
"/var/lib/barbican/" = {
65+
D = {
66+
user = "barbican";
67+
group = "barbican";
68+
mode = "0755";
69+
};
70+
};
71+
"/var/log/barbican/" = {
72+
D = {
73+
user = "barbican";
74+
group = "barbican";
75+
mode = "0755";
76+
};
77+
};
78+
"/etc/barbican/barbican-api-paste.ini" = {
79+
L = {
80+
argument = "${barbican}/etc/barbican/barbican-api-paste.ini";
81+
};
82+
};
83+
"/etc/barbican/barbican.conf" = {
84+
L = {
85+
argument = "${cfg.config}";
86+
};
87+
};
88+
};
89+
};
90+
91+
systemd.services.barbican-worker = {
92+
description = "OpenStack Barbican Worker Daemon";
93+
after = [
94+
"barbican.service"
95+
"rabbitmq.service"
96+
"mysql.service"
97+
"network.target"
98+
];
99+
path = [ barbican ];
100+
wantedBy = [ "multi-user.target" ];
101+
serviceConfig = {
102+
User = "barbican";
103+
Group = "barbican";
104+
ExecStart = pkgs.writeShellScript "barbican-worker.sh" ''
105+
barbican-worker
106+
'';
107+
};
108+
};
109+
110+
systemd.services.barbican-api = {
111+
description = "OpenStack Barbican API Daemon";
112+
after = [
113+
"rabbitmq.service"
114+
"mysql.service"
115+
"network.target"
116+
];
117+
path = [ barbican ];
118+
wantedBy = [ "multi-user.target" ];
119+
serviceConfig = {
120+
User = "barbican";
121+
Group = "barbican";
122+
ExecStart = pkgs.writeShellScript "barbican-api.sh" ''
123+
.barbican-wsgi-api-wrapped --port 9311
124+
'';
125+
};
126+
};
127+
128+
};
129+
}

0 commit comments

Comments
 (0)