* Update charms.ceph from branch 'master'
to 5d62e13ae3741a373d4532b409470e5cb95236de
- Add support for bytes-like requests
Under some circumstances, some requests may be a bytes-like object.
This patchset adds support for them.
Change-Id: I274ddd586604f93c1335e8511f5dd1773736ed4d
* Update charms.ceph from branch 'master'
to 77f73ae97cc6d8366385c956d05321bed9c84f6f
- Add the mapping for Reef
Change-Id: Id29d9a5ebc55b7fef716406527648fbd98278ffd
* Update charms.ceph from branch 'master'
to 571659f4a39697d6ed00d1c559ccb33e574789bc
- Merge "Only upgrade keys for internal clients"
- Only upgrade keys for internal clients
When fetching ceph keys, they are upgraded if it's deemed necessary
to fix bug #1968369. This worked for internal ceph entities such
as RBD or MDS, but fails for external ceph clients. This is because
for those clients, key capabilities can be set via broker requests.
As such, when the ceph-mon charm is upgraded, the key capabilities
for those clients are reset, and since the broker request has been
processed already, no further changes are done, leaving those keys
with incorrect caps.
Change-Id: I878091f9387f22059d460d28c2d0072507e66c6f
Closes-Bug: #2028387
* Update charms.ceph from branch 'master'
to fb13f31d3e1e0644082e07a877d70598a1743fe0
- Merge "Key capabilities should be kept up to date"
- Key capabilities should be kept up to date
When capabilities are only ever set on key-creation,
they can get out of date with what the services need
or want over time as new Ceph versions are released,
or as clients update their requirements.
Closes-Bug: #1968369
Change-Id: I475bd55117e3dc630514c92f6a76260e4f37ae0e
* Update charms.ceph from branch 'master'
to 07671ae83de09ec67b2cad820ae719014099fd94
- Fix crash in extracting local osd ids
The function `get_local_osd_ids` crashes when the /var/lib/ceph/osd/
directory contains a file whose name doesn't contain a `-`.
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed Traceback (most recent call last):
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/mon-relation-changed", line 904, in <module>
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed hooks.execute(sys.argv)
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/charmhelpers/core/hookenv.py", line 963, in execute
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed self._hooks[hook_name]()
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed File "/var/lib/juju/agents/unit-ceph-osd-0/charm/hooks/mon-relation-changed", line 668, in mon_relation
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed ceph.apply_osd_settings(settings)
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed File "/var/lib/juju/agents/unit-ceph-osd-0/charm/lib/charms_ceph/utils.py", line 3420, in apply_osd_settings
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed for osd_id in get_local_osd_ids():
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed File "/var/lib/juju/agents/unit-ceph-osd-0/charm/lib/charms_ceph/utils.py", line 698, in get_local_osd_ids
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed osd_id = osd_dir.split('-')[1]
unit-ceph-osd-0: 03:34:14 WARNING unit.ceph-osd/0.mon-relation-changed IndexError: list index out of range
Fix the issue by setting a fallback in this case.
Change-Id: I0fec65c9b88e6484905a76140d0921cf3dd843c0
* Update charms.ceph from branch 'master'
to c2cf2fcf18f466de7dc25a4287adea0e3787b55f
- Merge "Consider crimson-osds as well"
- Consider crimson-osds as well
This patchset modifies the 'get_running_osds' function so that
it also considers crimson-osds as valid OSD's. In addition, it
also modifies the 'get_local_osd_ids' to _not_ include Crimson
OSDs so that unsupported functionality doesn't make some hooks
fail in the ceph-osd charm.
Change-Id: If58bde4d5445ed5de420abc007db6bf8b8e43269
* Update charms.ceph from branch 'master'
to a7f16a76f851064d80958295f7fe98d20bee6cf5
- bump CI jobs to Yoga
Change-Id: I350bd2ff0748279f4b46d83a37dd6caf145da725
* Update charms.ceph from branch 'master'
to 45fe9ad44e78d745a851fddb4c064d4b5d10240a
- Properly account for charms.ceph dependencies
The setup.py file needs to be specify the dependencies of this
library, to avoid depending on them being manually installed.
Change-Id: I3ff2338f967aff5613bde777b224cd96ea81c1fd
Closes-Bug: #1987547
* Update charms.ceph from branch 'master'
to 89f5ee0d0425649de8a7e981f6268e488b22c037
- Amend rbd-mirror capabilities
Update rbd-mirror key caps to use the rbd-mirror-peer mon profile.
This adds required config get/set permissions for the rbd-mirror
daemon.
Also add permission to use the service {dump,status} mon commands;
these are not required by the rbd-mirror daemon but are needed by
the charm to check pool mirror status.
Change-Id: Ia5efa090f5b7fa23d7261da53592d6a527dcbfe1
Closes-Bug: 1879749
* Update charms.ceph from branch 'master'
to 5745ed3ba856b34b0094cbc8e6aed312b142c019
- Add permission in mon key for newly named command
Starting with Pacific, the 'osd blacklist' command was renamed to
'osd blocklist'. This patchset changes the allowed commands to
reflect this change.
Change-Id: If2169734f67d21c1c7c1b75677f14ebd0ea054ae
Closes-Bug: #1968369
* Update charms.ceph from branch 'master'
to 476ae63f3b4e4f1b0943e1a742f2f4b68f373595
- Resolve type change in Quincy for enabled_manager_modules
Closes-Bug: #1968715
Change-Id: I193f787fe8c7d271028c0b404a6a745952308697
* Update charms.ceph from branch 'master'
to 18fc2c67483f6d277b26f9f1287451f4bebe058b
- Ensure we restart the correct systemd unit on upgrade.
Closes-Bug: #1962296
Change-Id: I7acabfcb28b5faee3d4a6018595d24914db552b2
* Update charms.ceph from branch 'master'
to 0d8bfe8e107b182ab3005876a3455c4c426e4f50
- Merge "Add argument 'osd_id' to 'osdize'"
- Add argument 'osd_id' to 'osdize'
In order to fully support OSD replacement, we need a way to recycle
previously used OSD ids. This is achieved by passing the parameter
'--osd-id' to 'ceph-volume lvm create'. As such, this patchset adds
the needed support to specify that parameter.
Change-Id: I43d0a0bc11664c37532c0117711affc93c9d1ad1
* Update charms.ceph from branch 'master'
to bfa36918227527a0e29087efff92a76eccf21c4b
- Merge "Explicitly enable msgr2 for Nautilus and later"
- Explicitly enable msgr2 for Nautilus and later
When updating to Ceph Nautilus (OpenStack Train) or later releases from
a pre-Nautilus release, msgr2 will not be enabled without manual
intervention (e.g. running `juju ssh ceph-mon/leader 'sudo ceph mon
enable-msgr2'`).
Leaving msgr2 disabled (i.e. using msgr1 only) isn't an issue for normal
operations; Ceph will simply show a warning in `sudo ceph status` that
this is the case. However, Ceph Nautilus and later releases default to
msgr2, meaning that new ceph-mon units will attempt to communicate with
the existing cluster using msgr2.
This commit enables msgr2 on package upgrades on all Ceph releases
including and after Nautilus.
Closes-Bug: #1840701
Change-Id: Ib90cd03b16f2062fa6c6a43d242d51306ae8ca95
* Update charms.ceph from branch 'master'
to 0dec5c0188f527e384c0cadf3e88cd03524074a2
- Spelling fixes from codespell with additional consistency cleanups.
Change-Id: I1d409043eec980982fc6fc472524c562f908d402
* Update charms.ceph from branch 'master'
to d364605a49b088d932178e23566aa405315ea9f3
- Stop setting default capabilities in get_named_key.
When get_named_key is called on a keyring that
has customised capabilities, it overwrites the
capabilities to the default capabilities.
Change-Id: I777650ae2194609a95e5cfb101e343824b3d0a34
* Update charms.ceph from branch 'master'
to 16bcf7571279c64da98fa9176ae030390ba78639
- Only consider mounted OSD directories
When gathering the list of local OSD ids, the charm would consider
the entries under '/var/lib/ceph/osd/ceph-XXX' where 'XXX" was the
OSD id. However, if an entry under that directory isn't mounted,
then the OSD that would represent that entry should be discarded,
as it's no longer active. This patchset thus filters those entries
by looking for them in the mount points.
Closes-Bug: #1934938
Change-Id: I7ca84ef0b73620fe69d309546c746933e95ceb03
* Update charms.ceph from branch 'master'
to 5a6fbb88fd7e5bc444957c48263a1ee92bf80d2d
- Fix parsing information from ceph tree output
Add helper functions to parse information from the ceph tree and
fix creating CrushLocation object in get_osd_tree function.
Closes-Bug: #1918721
Change-Id: I59c742e594042ad527e71c88404999459f0373c2
* Update charms.ceph from branch 'master'
to e8240a764e9e59e87dc1bed0bdef81b8c552f982
- Utils for managing modules and setting config
The methods for checking modules are taken from the ceph-mon
charm and charmhelpers.contrib.storage.linux.ceph module. When
this lands I'll update the ch methods to emit a deprecation warning
and update the ceph-mon charm to use these methods instead.
Change-Id: I1b7f08c3bd94828a5c6468df7aab6b38517cf3fa
* Update charms.ceph from branch 'master'
to fed8b290002cc005d03a4cc693b880348229ba27
- Merge "Fixed raise text value instead of Exception"
- Fixed raise text value instead of Exception
I used ValueError for both exception.
Also removed unnecessary flake8 ignore option.
Closes-Bug: #1917351
Change-Id: I5ee58aa0a34d7c266b3811f9c6b9b3076bfdc048
* Update charms.ceph from branch 'master'
to 626a5ce3ca868286d7341fd7e53e9e161f969ecc
- Fix "Remove chrony in a container" patch with test
Unfortunately, the original patch didn't work [1]. Then a fix was
applied also without a test [2]. Unfortunately, this wasn't correct
either.
This patch simplifies the function, which makes it a little easier to
reason about. Also a test is added to stop regressions in the future.
[1] Ie3c9c5899c1d46edd21c32868938d3290db321e7
[2] Ifef76eacd8bd837d2181ec75e406aa35f88b8b5b
Closes-Bug: #1929054
Change-Id: I93f53274bc8c7e62ebb8cb7bf81ff816f4bfd98b
* Update charms.ceph from branch 'master'
to 53a183ee5934740b3822a281e3bbbfd6f85ef063
- filter_missing_packages expects a list, not string
filter_missing_packages expects a list and not a single package name as
a string. Pass the chrony package as a single item list to avoid it
checking installation candiates for 'c', 'h', 'r', 'o', 'n' and 'y'
WARNING juju-log Package c has no installation candidate.
WARNING juju-log Package h has no installation candidate.
WARNING juju-log Package r has no installation candidate.
WARNING juju-log Package o has no installation candidate.
WARNING juju-log Package n has no installation candidate.
WARNING juju-log Package y has no installation candidate.
INFO juju-log Purging ['chrony']
Change-Id: Ifef76eacd8bd837d2181ec75e406aa35f88b8b5b
* Update charms.ceph from branch 'master'
to 9bfe43ee654d016d7f09ede406c45674821f2866
- Merge "modify get_version to use charmhelpers get_installed_version"
- modify get_version to use charmhelpers get_installed_version
get_version() uses charmhelpers apt_cache to retreive the
current version of ceph package which takes longer time to
execute. This has been improved in charm-helpers PR [1] by
introducing new function get_installed_version.
This patch updates get_version() to use new charm-helpers
get_installed_version function.
ceph_user() is updated to return always 'ceph' as ceph is
not supported for versions < 1.0
Note: This patch depends on PR [1] and so need to wait until
charm-helpers PR is merged and new version of charmhelpers
is released.
[1] https://github.com/juju/charm-helpers/pull/567
Partial-Bug: #1913992
Change-Id: Ibdb36cb08950344ee55fdb8b54b47b0381f72e2c
* Update charms.ceph from branch 'master'
to d0d002cacf89d12e687bdc7be602924ef1ffe57c
- Replace ostestr with stestr in comment in setup.py
charms.ceph actually uses stestr to perform unit testing.
Change-Id: I07c53fdea4e79ba92d0a3c2535020f9cf723d86d
* Update charms.ceph from branch 'master'
- Upgrade mon packages immediately
Instead of deferring the upgrading of packages
when doing a release upgrade, do them immediately
and only defer daemon restarts. This is to avoid
any api incompatibilities between newer mons and
older clients.
Change-Id: Idf77871561fa14ad61e0c7901eeb333254e37012
Closes-Bug: #1897594
* Update charms.ceph from branch 'master'
- Fix breaking in code if extra_pools is passed as None
The code currently assumes that a empty list will be passed rather than
None, so this change defensively codes against a None being passed
(deserialised from json) so that it is correctly parsed as "no extra
pools". Also modified the test to push None to the function to verify
that it handles the situation
Change-Id: I27220696f64b65280f24cab2328e1366fcbbdf4f
Closes-Bug: #1897574
* Update charms.ceph from branch 'master'
- Merge "Handle additional pools for CephFS"
- Handle additional pools for CephFS
If ceph-fs requests additional pools are added to the ceph fs
share to be created then add them once the share is created.
This allows ceph-fs to specify replicated pools for metadata and
default datapool but to then extend the fs with EC pools.
Change-Id: I80b7a5cc87d7d53bb55d4d65999a0f9b3cdcb77d
* Update charms.ceph from branch 'master'
- Merge "Remove chrony if inside a container"
- Remove chrony if inside a container
When running ceph-mon in containers, best practice is
to have chrony/ntp configured and installed on the bare
metal and then have the container trust the system
clock, as the container should not manage the system
clock.
The chrony package get installed automatically as
part of the dependencies of other packages, which
gets removed in this change.
ceph-mon charm will use this change here to remove
the chrony package.
Change-Id: Ie3c9c5899c1d46edd21c32868938d3290db321e7
Closes-Bug: #1852441
* Update charms.ceph from branch 'master'
- Merge "Fix a couple of typos"
- Fix a couple of typos
Fixes typos:
(1) in an error message and,
(2) in a comment
Change-Id: I9226f65355b5d95098efda105a9f64012148b1d5
* Update charms.ceph from branch 'master'
- Use common pool create/update handling code
Use the Pool classes ability to initialize themselves from op.
Some pool properties should be allowed adjusted after a pool is
created.
The Pool quota property is already handled ad-hoc in the
`charms.ceph` broker handling code, let's bring it over to the
pool objects along with the handling of the compression properties.
Move some missing unit tests here from ceph-mon charm.
Merge after https://github.com/juju/charm-helpers/pull/497
Change-Id: Ibec4e3221387199adbc1a920e130975d7b25343c
* Update charms.ceph from branch 'master'
- Update support for Erasure Coded pools
Add support to allow 'allow_ec_overwrites' to be set on a pool,
supporting RBD and CephFS uses cases for Erasure Coding.
Add support to allow the EC technique to be provided when
creating EC profiles.
Add support for extended configuration of EC plugins.
Depends-On: https://github.com/juju/charm-helpers/pull/498
Change-Id: I2547933964849f7af1c623b2fbc014fb332839ef
* Update charms.ceph from branch 'master'
- Add a progress watchdog for OSD upgrades
This patch add the concept of a watchdog to the upgrade_monitor so that
the charm can achieve two objectives of 1. Waiting for much longer, but
2. detecting whether the previous node has died / gone away. This is
needed for 'large' OSDs where the time to upgrade a node may exceed the
current limit of 10 minutes, but also not to wait for 30 minutes on a
dead previous node. The watchdog implements two timeouts and an
addition 'alive' key from the previous node to indicate that it is still
running. Otherwise, functionality is identical.
Change-Id: Ia450e936c2096f092af3be5a369b7abaf5023b16
Related-Bug: #1762852
* Update charms.ceph from branch 'master'
- Merge "Use unittest.mock instead of mock"
- Use unittest.mock instead of mock
The mock third party library was needed for mock support in py2
runtimes. Since we now only support py36 and later, we can use the
standard lib unittest.mock module instead.
Change-Id: Id257b597368aff252ce7120b9dbc02f21a41e629
* Update charms.ceph from branch 'master'
- Merge "Enable coercion of values (if requested) for validation"
- Enable coercion of values (if requested) for validation
handle_set_pool_value() gets a new param "coerce" which can be
used to (attempt to) coerce the passed parameter to the validation
type for that parameter. This is so that the action pool_set can pass
an Int. There is an issue with juju in passing a string that is a
number.
Change-Id: I6081c23af61fd5e872982ff477b0a5cb27141d11
Related-Bug: #1838650
* Update charms.ceph from branch 'master'
- Fix upgrade bug (luminous) where mgr is not restarted
From luminous to mimic, the ceph-mgr isn't restarted, leaving it at
luminous, rather than mimic. This change ensures that the ceph-mgr is
restarted when the version is luminous or later.
Change-Id: I2844736af2de27ce071db859311ac99b9b3057ad
Related-Bug: #1849874
* Update charms.ceph from branch 'master'
- An extra permission for rbd mirror on focal
Adding mon allow r for rbd mirror clients to fix failure to query
mirror pool status.
Change-Id: I63d9f137556b8aef379ee54ea977094722dbf032
Partial-Bug: #1879464
* Update charms.ceph from branch 'master'
- Allow rbd mirror client to query mgr
Querying mirror pool status now requires read perms on mgr. Without
this perm a warning is thrown which corrupts the json output.
Closes-Bug: #1851869
Change-Id: I59266da1bf393468f8e0c69dd7212e4cc6de96cf
* Update charms.ceph from branch 'master'
- Trigger udev rescan if pv_dev disappears
Workaround for kernel by in Ubuntu 20.04 LTS.
When using by-dname device paths with MAAS and bcache, the pvcreate
operation results in the by-dname entry for the block device being
deleted. The subsequent vgcreate then fails as the path cannot
be found.
Trigger a rescan of block devices if the pv_dev path does not
exists after the pvcreate operation.
Change-Id: Ifb16c47ae5ff316cbcfc3798de3446a3774fa012
Related-Bug: 1878752
* Update charms.ceph from branch 'master'
- Merge "Fix E741 errors in the library"
- Fix E741 errors in the library
Dependend charms (e.g. ceph-radosgw) are failing their lint's due to
E741 errors.
Change-Id: Id92956e52cefed6d3d792dd95fe7091788fb2d1b
* Update charms.ceph from branch 'master'
- upgrades: add upgrade paths for octopus
Detail octopus upgrade path and link with Ussuri UCA.
Change-Id: I7dbdc5c265641d4eb561b69f57b8bab41781b698
* Update charms.ceph from branch 'master'
- osd upgrade: sleep between status checks
Perform a sleep at the end of the status check loop to avoid
spamming the OSD admin socket continually.
Change-Id: I1d05d0da5010fa16fcdb794c3bcf9d3416aa046a
Related-Bug: 1821028
* Update charms.ceph from branch 'master'
- Merge "Ensure that the ceph admin keyring always has the mgr permissions"
- Ensure that the ceph admin keyring always has the mgr permissions
Closes-Bug: #1867795
Change-Id: I5412fa1cd40a27213296532fd160012ec5299b3e