forked from ceph/ceph-iscsi
-
Notifications
You must be signed in to change notification settings - Fork 2
/
ceph-iscsi.spec
207 lines (187 loc) · 5.69 KB
/
ceph-iscsi.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#
# spec file for package ceph-iscsi
#
# Copyright (C) 2017-2018 The Ceph iSCSI Project Developers. See
# COPYING file at the top-level directory of this distribution and at
# https://github.com/ceph/ceph-iscsi/blob/master/COPYING
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon.
#
# This file is under the GNU General Public License, version 3 or any
# later version.
#
# Please submit bugfixes or comments via http://tracker.ceph.com/
#
%if 0%{?rhel} == 7
%global with_python2 1
%endif
Name: ceph-iscsi
Version: 3.5
Release: 1%{?dist}
Group: System/Filesystems
Summary: Python modules for Ceph iSCSI gateway configuration management
%if 0%{?suse_version}
License: GPL-3.0-or-later
%else
License: GPLv3+
%endif
URL: https://github.com/ceph/ceph-iscsi
Source0: https://github.com/ceph/ceph-iscsi/archive/%{version}/%{name}-%{version}.tar.gz
BuildArch: noarch
Obsoletes: ceph-iscsi-config
Obsoletes: ceph-iscsi-cli
Requires: tcmu-runner >= 1.4.0
Requires: ceph-common >= 10.2.2
%if 0%{?with_python2}
BuildRequires: python2-devel
BuildRequires: python2-setuptools
Requires: python-rados >= 10.2.2
Requires: python-rbd >= 10.2.2
Requires: python-netifaces >= 0.10.4
Requires: python-rtslib >= 2.1.fb68
Requires: python-cryptography
Requires: python-flask >= 0.10.1
Requires: python-configshell >= 1.1.fb25
%if 0%{?rhel} == 7
Requires: pyOpenSSL
Requires: python-requests
%else
Requires: python-pyOpenSSL
Requires: python2-requests
%endif
%else
BuildRequires: python3-devel
BuildRequires: python3-setuptools
Requires: python3-rados >= 10.2.2
Requires: python3-rbd >= 10.2.2
Requires: python3-netifaces >= 0.10.4
Requires: python3-rtslib >= 2.1.fb68
Requires: python3-cryptography
Requires: python3-pyOpenSSL
Requires: python3-requests
%if 0%{?suse_version}
BuildRequires: python-rpm-macros
BuildRequires: fdupes
Requires: python3-Flask >= 0.10.1
Requires: python3-configshell-fb >= 1.1.25
%else
Requires: python3-flask >= 0.10.1
Requires: python3-configshell >= 1.1.fb25
%endif
%endif
%if 0%{?rhel}
BuildRequires: systemd
%else
BuildRequires: systemd-rpm-macros
%{?systemd_requires}
%endif
%description
Python package providing the modules used to handle the configuration of an
iSCSI gateway, backed by Ceph RBD. The RPM installs configuration management
logic (ceph_iscsi_config modules), an rbd-target-gw systemd service, and
a CLI-based management tool 'gwcli', replacing the 'targetcli' tool.
The configuration management modules may be are consumed by custom Ansible
playbooks and the rbd-target-gw daemon.
The rbd-target-gw service is responsible for startup and shutdown actions,
replacing the 'target' service used in standalone LIO implementations.
In addition, rbd-target-gw also provides a REST API utilized by the Ceph
dashboard and gwcli tool, and a prometheus exporter for gateway LIO
performance statistics, supporting monitoring and visualisation tools like
Grafana.
%prep
%autosetup -p1
%build
%if 0%{?with_python2}
%{__python2} setup.py build
%else
%if 0%{?suse_version}
%python3_build
%else
%{py3_build}
%endif
%endif
%install
%if 0%{?with_python2}
%{__python2} setup.py install -O1 --skip-build --root %{buildroot} --install-scripts %{_bindir}
%else
%if 0%{?suse_version}
%python3_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%else
%{py3_install}
%endif
%endif
mkdir -p %{buildroot}%{_unitdir}
install -m 0644 .%{_unitdir}/rbd-target-gw.service %{buildroot}%{_unitdir}
install -m 0644 .%{_unitdir}/rbd-target-api.service %{buildroot}%{_unitdir}
mkdir -p %{buildroot}%{_mandir}/man8
install -m 0644 gwcli.8 %{buildroot}%{_mandir}/man8/
gzip %{buildroot}%{_mandir}/man8/gwcli.8
mkdir -p %{buildroot}%{_unitdir}/rbd-target-gw.service.d
%if 0%{?suse_version}
mkdir -p %{buildroot}%{_sbindir}
ln -s service %{buildroot}%{_sbindir}/rcrbd-target-gw
ln -s service %{buildroot}%{_sbindir}/rcrbd-target-api
%endif
%pre
%if 0%{?suse_version}
%service_add_pre rbd-target-gw.service rbd-target-api.service
%endif
%post
%if 0%{?rhel} == 7
/bin/systemctl --system daemon-reload &> /dev/null || :
/bin/systemctl --system enable rbd-target-gw &> /dev/null || :
/bin/systemctl --system enable rbd-target-api &> /dev/null || :
%endif
%if 0%{?fedora} || 0%{?rhel} >= 8
%systemd_post rbd-target-gw.service
%systemd_post rbd-target-api.service
%endif
%if 0%{?suse_version}
%service_add_post rbd-target-gw.service rbd-target-api.service
%endif
%preun
%if 0%{?fedora} || 0%{?rhel} >= 8
%systemd_preun rbd-target-gw.service
%systemd_preun rbd-target-api.service
%endif
%if 0%{?suse_version}
%service_del_preun rbd-target-gw.service rbd-target-api.service
%endif
%postun
%if 0%{?rhel} == 7
/bin/systemctl --system daemon-reload &> /dev/null || :
%endif
%if 0%{?fedora} || 0%{?rhel} >= 8
%systemd_postun rbd-target-gw.service
%systemd_postun rbd-target-api.service
%endif
%if 0%{?suse_version}
%service_del_postun rbd-target-gw.service rbd-target-api.service
%endif
%files
%license LICENSE
%license COPYING
%doc README
%doc iscsi-gateway.cfg_sample
%if 0%{?with_python2}
%{python2_sitelib}/*
%else
%{python3_sitelib}/*
%endif
%{_bindir}/gwcli
%{_bindir}/rbd-target-gw
%{_bindir}/rbd-target-api
%{_unitdir}/rbd-target-gw.service
%{_unitdir}/rbd-target-api.service
%{_mandir}/man8/gwcli.8.gz
%attr(0770,root,root) %dir %{_localstatedir}/log/rbd-target-gw
%attr(0770,root,root) %dir %{_localstatedir}/log/rbd-target-api
%dir %{_unitdir}/rbd-target-gw.service.d
%if 0%{?suse_version}
%{_sbindir}/rcrbd-target-gw
%{_sbindir}/rcrbd-target-api
%endif
%changelog