Commit Graph

43 Commits

Author SHA1 Message Date
Shunde Zhang 6f2a7540e8 Add a config option for virtual hosted bucket
func-test-pr: https://github.com/openstack-charmers/zaza-openstack-tests/pull/1187

Closes-Bug: #1871745
Change-Id: I295baab496d1eb95daaa8073d4119d01b90d0b38
2024-04-05 16:17:08 +11:00
peppepetra86 8a844bca97 Allow URLs which contain encoded path separators
This is to resolve the issue with objects containing slash in the name
not correctly synced in multisite environments.

Closes-Bug: #1974138
Change-Id: I71ac000bb4754c9cb987d703f145dc2a5ff032ad
2024-01-09 10:06:24 +01:00
Samuel Walladge 541ceec401 Enable rgw trust forwarded https when https proxy
This option is required for server-side encryption to be allowed
if radosgw is behind a reverse proxy,
such as here when certificates are configured and apache2 is running.

ref. https://docs.ceph.com/en/latest/radosgw/encryption/

It is safe to always enable when https is configured in the charm,
because it will be securely behind the reverse proxy in the unit.
This option must not be enabled when https is not configured in the charm,
because this would allow clients to spoof headers.

Closes-Bug: #2021560
Change-Id: I940f9b2f424a3d98936b5f185bf8f87b71091317
2023-05-31 14:16:47 +09:30
Luciano Lo Giudice 5c4cab3f82 Add the 'zonegroup' and 'realm' keys to ceph.conf file
This patchset adds these 2 additional keys to the ceph.conf file,
which are used in multisite configurations when present.

Change-Id: I51ca46bbb3479cb73ec4d9966208ed794f0ed774
Closes-Bug: #1975857
2022-05-31 18:08:13 -03:00
Ethan Myers 2bda1f68a6 Add a config option for relaxed s3 bucket names.
Closes-Bug: #1926498
Change-Id: I4b329f3327a0e91ccd9f65841cc5d62736918a85
2022-05-19 15:02:03 +00:00
James Page 7907fa96e9 Resolve issue with mod_proxy decoding
The Ceph RADOS Gateway uses some unusual URI's for multisite
replication; ensure that mod_proxy passes the 'raw' URI down
to the radosgw http endpoint so that client and server side
signatures continue to match.

This seems quite Ceph specific so the template is specialised
into the charm rather than updated in charm-helpers.

Change-Id: Iede49ba8904500076d53388345e154a3ed18e761
Closes-Bug: 1966669
2022-03-30 13:47:53 +01:00
James Page c634aba6fd Enable support for beast frontend
Introduce support for the beast web frontend for the Ceph
RADOS Gateway which brings improvements to speed and scalability.

Default behaviour is changed in that for Octopus and later
(aside from some unsupported architectures) beast is enabled by
default; for older releases civetweb is still used.

This may be overridden using the 'http-frontend' configuration
option which accepts either 'beast' or 'civetweb' as valid
values.  'beast' is only supported with Ceph Mimic or later.

Closes-Bug: 1865396
Change-Id: Ib73e58e21219eca611cd4293da69bf80040f5803
2021-07-07 12:44:53 +00:00
Zuul 0f1b77b7d5 Merge "set rgw keystone revocation interval to 0" 2021-06-15 03:21:15 +00:00
Hemanth Nakkina d9cc3f3bfb set rgw keystone revocation interval to 0
Ceph RGW checks revocation list for every 600 seconds. This is not
required for non PKI tokens and PKI tokens are removed in OpenStack
Pike release. This results in unnecessary logs in ceph and keystone.

Set the rgw keystone revocation interval to 0 in ceph conf. Also
this parameter is removed in upstream from Ceph Octopus. So ensure
not to add this parameter from ceph release Octopus.

Closes-Bug: #1758982
Change-Id: Iaeb10dc25bb52df9dd3746ecf4fe5859d4efd459
2021-05-21 12:35:18 +05:30
Jarred Wilson 72a7184dc5 Enable object versioning for a container
This patch adds the config option rgw-swift-versioning-enabled boolean that enables swift versioning for the ceph-backed storage solution.  This uses X-Versions-Location as it is the only header that radosgw interprets.

closes-bug: #1910679
Change-Id: I5b42c34882b46e96f4cc92d91ec441a4bdfd76f6
2021-01-14 19:36:20 -05:00
Frode Nordahl d53e445a92 Remove use of admin_token for Keystone V2.0 deployments
At present the charm configures the Ceph RADOS GW with the
admin_token as credentials when connecting to a deployment with
Keystone V2.0 API.

We want to move away from that and as such we need to update the
charm to configure username, password and project name instead.

Change-Id: Idab6a5740a541b922f9dbd65165d0328d747e78e
2020-03-16 17:29:56 +01:00
Chris MacNaughton e4d4d09b53 Enable Ceph Radosgw tenant namespacing
This change enabled automatic tenant namespacing,
which also allows enabling global read permissions
on buckets.

Change-Id: Ic37c7161b7dddad49e3c2ab075d7e8b72f436b35
Closes-Bug: #1833072
2019-10-09 15:55:17 +02:00
Rodrigo Barbieri fb2f757494 Add config option for keystone admin roles
RADOS Gateway supports setting keystone operator and admin
roles. RADOS Gateway requires admin roles for keystone users
to change their user quota. Regular operator/member roles
are not allowed to do so.

The lack of this config option prevents swift users with admin
roles from being able to set their quotas. Therefore, a config
option 'admin-roles' is now added to the charm to map to
'rgw keystone accepted admin roles' RADOS Gateway config.

Please note that this is only effective from Luminous
Ceph Release.

Change-Id: Ic0b9aa39eef9fbc6c43eb4e66ab72d90787c2017
Closes-Bug: #1831577
2019-07-01 17:37:19 -03:00
James Page 3e54b570b1 Switch auth order for s3 authentication
When deploying the RGW in multi-site configurations, communication
between sites is authenticated using S3 credentials managed within
RGW.  In the event that keystone authentication is in use this
generates a large number of s3 authentication attempts to keystone
which will always fail.

Switch the default order to check local auth first and then fallback
to external.

Change-Id: I7bfc016baf99188ba5a36f663145eeff465d25e8
2019-02-21 13:16:31 +00:00
James Page 7722f9d620 Add support for RADOS gateway multi-site replication
Add new radosgw-multisite typed master and slave relations to
support configuration of separate ceph-radosgw deployments as
a single realm and zonegroup to support replication of data
between distinct RADOS gateway deployments.

This mandates the use of the realm, zonegroup and zone
configuration options of which realm and zonegroup must match
between instances of the ceph-radosgw application participating
in the master/slave relation.

The radosgw-multisite relation may be deployed as a model local
relation or as a cross-model relation.

Change-Id: I094f89b0f668e012482ca8aace1756c911b79d17
Closes-Bug: 1666880
2019-02-14 09:40:20 +00:00
James Page 76cddc525e Drop keystone integration for PKI token format
The PKI token format is no longer supported by the keystone charm;
drop code, tests and associated template fragments which deal with
configuration of PKI revocation list processing.

Change-Id: Ie08779c2aef15589b621c324808bb13089fb4f72
Closes-Bug: 1586550
2019-02-13 11:52:20 +00:00
James Page 2858f1b02d Switch to using systemd units for radosgw
Switch to using systemd configurations to manage radosgw instances;
the radosgw init script is obsolete and will be removed at some
point in time, and the newer style of managing radosgw daemons is
inline with current best-practice.

This changeset also changes the way cephx keys are issues; before
all rgw instances shared a key, now a key is issued per host.

The key is named 'rgw.`hostname`' to identify the application
and host using the key.

Existing deployments using the radosgw init script will be switched
to use the new systemd named units; this occurs once the new key
for the unit has been presented by the ceph-mon cluster over the
mon relation. A small period of outage will occur as the radosgw
init based daemon is stopped and disabled prior to the start of
the new systemd based radosgw unit.

This commit also includes a resync for charmhelpers to pickup
support for '@' in NRPE service check names.

Change-Id: Ic0d634e619185931633712cb3e3685051a28749d
Depends-On: I289b75a2935184817b424c5eceead16235c3f53b
Closes-Bug: 1808140
2019-01-24 13:04:52 +00:00
Chris Glass f765f60e86 Allow the simple Swift auth to work
Incase we do *not* use keystone as an authentication mechanism, let the
built-in authentication work with this charm.

Without this change, the Swift authentication itself will work, but the
X-Storage-URL header will point to the port the storage daemon listens
on - which is not open in the firewall (70).

This change instead forces the URL to be "the unit's public IP" with the
default port (80), on which haproxy is listening, and will do the right
thing.

Change-Id: Ia2b12153eca3074392aad6dea6ee995990f15633
Signed-off-by: Christopher Glass <chris.glass@canonical.com>
2017-06-01 11:28:08 +02:00
Frode Nordahl 7fa6639ab3 Add Keystone v3 support
Change-Id: I5bb974064f0980a3f599eae3e2ba86b405f917ac
Closes-Bug: 1585708
2017-02-15 10:59:04 +01:00
James Page 5d2dfd94dd Drop apache+mod-fastcgi support
The ceph project has focussed on running the RADOS Gateway using
the embedded civetweb engine for many cycles now; mod-fastcgi is
buggy and no longer provided in Ubuntu as of 17.04, so switch to
always running in embedded mode.

Existing installs will be upgraded to run in this mode, purging
apache related packaging and configuration.

Change-Id: I90e6c047d78de2b0ebf8c24bd2f2d6d1bfbd5c5d
Closes-Bug: 1657370
2017-01-18 17:30:33 +00:00
Chris Holcombe 3bacc91230 Increase rgw init timeout to 1200 seconds
This changeset increases the initialization timeout
for rgw instances from 300 -> 1200 seconds.

This change decreases the chance that the rgw instance
will timeout prior to OSD's actually joing the Ceph storage
cluster as usable storage is required for this operation.

Change-Id: I6c5442edc2fb25ff37d7a4bd0bc49aabd6f2d24c
Closes-Bug: 1577519
2016-06-17 12:52:25 +01:00
Edward Hope-Morley 485868fa54 Add support for user-provided ceph config
Adds a new config-flags option to the charm that
supports setting a dictionary of ceph configuration
settings that will be applied to ceph.conf.

This implementation supports config sections so that
settings can be applied to any section supported by
the ceph.conf template in the charm.

Change-Id: I8a447209b9040890e7c10585321b71da08a26b11
Closes-Bug: 1522375
2016-06-01 11:34:59 +01:00
Edward Hope-Morley 379f5d78a5 Add Ipv6 support
Adds support for configuring the Rados Gateway to use IPv6
addresses and networks. This can be enabled by setting
prefer-ipv6=True.

Change-Id: I801fab14accd8c3498ea5468d135f34f159717cb
Closes-Bug: 1513524
2016-03-04 12:10:01 +00:00
Edward Hope-Morley 4ebf5f7314 sync /next 2016-01-11 14:21:07 +02:00
Liam Young 793f755ef7 [hopem, r=gnuoy] Don't disable HTTP 100-Continue if using ceph
optimised packages with Apache.
Closes-Bug: 1515387
2016-01-11 11:21:53 +00:00
Liam Young 48eca657cc [hopem, r=gnuoy] Configure rados gateway nss with CA and signing certs
from keystone so that it can decrypt revoked token
list from keystone.

Partially-Closes-Bug: 1520339
2016-01-11 09:59:18 +00:00
Edward Hope-Morley 29d22731f9 [hopem,r=]
Configure rados gateway nss with CA and signing certs
from keystone so that it can decrypt revoked token
list from keystone.

Partially-Closes-Bug: 1520339
2015-12-26 19:21:00 -05:00
Edward Hope-Morley a16760cf73 synced /next 2015-12-21 13:48:13 -05:00
Edward Hope-Morley 0f76809c4a [hopem,r=]
Don't disable HTTP 100-Continue if using ceph
optimised packages with Apache.
Closes-Bug: 1515387
2015-12-02 11:09:50 +00:00
Edward Hope-Morley ff999102f2 [hopem,r=]
Add debug and verbose config options.
Closes-Bug: 1520236
2015-11-26 16:20:26 +00:00
Edward Hope-Morley 9194bbc2f6 [hopem,r=]
Make RGW port configurable.
Closes-Bug: 1517551
2015-11-25 11:09:14 +00:00
Edward Hope-Morley 4995d09ae3 [hopem,r=]
Enable s3 keystone when using keystone for auth.
Closes-Bug: 1515688
2015-11-12 16:31:42 +00:00
Liam Young 8c07557998 Enable haproxy 2015-01-14 16:48:07 +00:00
James Page cf43b6bb23 Add support of use of embedded webserver 2015-01-14 09:10:04 +00:00
Corey Bryant 9504dd6c08 Remove leading whitespace from templates/ceph.conf
(ConfigParser can't parse)
2014-09-27 19:16:33 +00:00
Seyeong Kim 3a40a981ec s3gw.fcgi should have same configuration name in ceph.conf 2014-08-07 19:09:14 +09:00
Seyeong Kim cf16312a09 change template ceph.conf
configuration name from client.radosgw.gateway to client.rados.gateway
2014-08-06 14:02:36 +09:00
James Page 05b462f3de Fixup template 2014-07-24 10:48:17 +01:00
Edward Hope-Morley 39bb4dc453 [hopem] Added use-syslog cfg option to allow logging to syslog 2014-03-25 18:44:22 +00:00
James Page fbec620db2 Resync utils, ceph, add support for keystone auth 2013-01-11 09:15:51 +00:00
James Page ff6efc7f21 Added support for auth configuration from mons 2012-10-19 16:51:24 +01:00
James Page 632bb6015c Added cephx support 2012-10-09 13:35:06 +01:00
James Page b183a9d41f Minor tweak to copyright 2012-10-08 16:58:16 +01:00