Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rgw https support adjustments #2

Merged
merged 89 commits into from
Aug 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
7f1b8be
Refactored service recording process
UtkarshBhatthere May 24, 2024
0b4cfdb
Merge pull request #352 from UtkarshBhatthere/fix/4Mon
sabaini May 27, 2024
5cf61af
Fix: wait until config has settled before starting services
sabaini Jun 5, 2024
cba31e8
Merge pull request #357 from sabaini/bug/2067247
sabaini Jun 5, 2024
9480050
Fix: doc buglet
sabaini Jun 5, 2024
0f07fdf
Add wait_for_rgw in test scripts
hemanthnakkina Jun 7, 2024
38155f2
Merge pull request #361 from hemanthnakkina/wait-for-rgw
sabaini Jun 7, 2024
faa2370
Test
marceloneppel Jun 7, 2024
108fe62
Test
marceloneppel Jun 7, 2024
4c2490c
Test
marceloneppel Jun 7, 2024
1e1448a
Test
marceloneppel Jun 7, 2024
618a1da
Test
marceloneppel Jun 7, 2024
093b53c
Fix monitor addresses in rgw.conf
UtkarshBhatthere Jun 10, 2024
bc3fe1e
Merge pull request #362 from UtkarshBhatthere/fix/rgwMonitors
sabaini Jun 10, 2024
e65ab40
microceph: Update microcluster dependency
masnax Jun 12, 2024
bc700ca
microceph/client: Update state.Cluster argument
masnax Jun 12, 2024
1e8d511
microceph/cmd/microceph: Update microcluster context usage
masnax Jun 12, 2024
97c5cae
microceph/database: Convert SchemaExtensions to a slice
masnax Jun 12, 2024
20eca32
microceph/cmd/microceph: Fix import separation
masnax Jun 12, 2024
9784bbf
microceph/cmd/microceph: Misc formatting
masnax Jun 12, 2024
556b907
Merge pull request #365 from masnax/update-microcluster
sabaini Jun 12, 2024
4d4295a
Added RGW keystone integration configurations
UtkarshBhatthere Jun 10, 2024
9924981
Added rgw_s3 config
UtkarshBhatthere Jun 12, 2024
dfddfab
Adds `rgw_swift_account_in_url`
UtkarshBhatthere Jun 12, 2024
199502b
Adds restart skip for unplaced services
UtkarshBhatthere Jun 13, 2024
8bcdfa5
Added service restart threshold for 2 sec.
UtkarshBhatthere Jun 14, 2024
d86218e
Remove duplicate service record for rgw
UtkarshBhatthere Jun 14, 2024
2d11d18
Resolved PR comments.
UtkarshBhatthere Jun 18, 2024
8dcf73f
Merge remote-tracking branch 'upstream/main' into rgw-https-support-t…
marceloneppel Jun 18, 2024
c5ac16f
Merge remote-tracking branch 'upstream/main' into rgw-https-support-t…
marceloneppel Jun 18, 2024
00e60af
Upgrade microceph dependencies
gboutry Jun 20, 2024
891b397
Merge pull request #371 from gboutry/chore/upgrade-dependencies
sabaini Jun 20, 2024
f263b74
Added a How-To for configuring Keystone in MC
UtkarshBhatthere Jun 21, 2024
602556a
Added HowTo for mounting an RBD image.
UtkarshBhatthere Jun 25, 2024
fa0c794
Added HowTo for mounting a CephFS share.
UtkarshBhatthere Jun 25, 2024
6d79454
Fixed typo
UtkarshBhatthere Jun 25, 2024
424c643
Improve
marceloneppel Jul 1, 2024
543e569
Improve
marceloneppel Jul 1, 2024
437efdb
Improve
marceloneppel Jul 1, 2024
f6f52dd
Improve
marceloneppel Jul 1, 2024
b9de35c
Improve
marceloneppel Jul 1, 2024
f7ef8de
Improve
marceloneppel Jul 1, 2024
ee794c1
Improve
marceloneppel Jul 1, 2024
13b80c0
Improve
marceloneppel Jul 1, 2024
7c0841f
Improve
marceloneppel Jul 1, 2024
d4cce8d
Improve
marceloneppel Jul 1, 2024
9bbf550
Improve
marceloneppel Jul 1, 2024
6e02986
Improve
marceloneppel Jul 1, 2024
d73b2bf
Fix library
marceloneppel Jul 1, 2024
83cb844
Fix library
marceloneppel Jul 1, 2024
d46ba7b
Improve
marceloneppel Jul 1, 2024
cd161dd
Improve
marceloneppel Jul 1, 2024
11546b6
microceph: Update microcluster dependency
masnax Jul 4, 2024
077035d
microceph/api: Update Server definition
masnax Jul 4, 2024
d003878
microceph/cmd/microceph: Update database open checks
masnax Jul 4, 2024
5a944d5
Added a flag to query host OSDs only
UtkarshBhatthere Jul 2, 2024
104d41f
microceph/api: Remove duplicate resource
masnax Jul 4, 2024
2cbe158
Merge pull request #378 from masnax/update-microcluster
sabaini Jul 5, 2024
8232e07
microceph/cmd/microceph: Use microcluster API to remove cluster members
masnax Apr 16, 2024
aadcf52
microceph/ceph: Move ceph cleanup into ceph package
masnax Apr 16, 2024
25fefb0
microceph/cmd/microcephd: Add PreRemove hook to the microcluster daemon
masnax Apr 16, 2024
9266ea6
microceph/ceph: Update cluster remove test
masnax Apr 16, 2024
b17a96f
Merge pull request #340 from masnax/api-remove
sabaini Jul 8, 2024
a273fdf
bump MicroCluster dependency
gabrielmougard Jul 10, 2024
f8f9ae3
doc: fix link to "Edit this page on GitHub" in the footer
ru-fu Jul 10, 2024
e0650d9
doc: remove broken link to forum from the header
ru-fu Jul 10, 2024
9958c29
doc: fix internal link
ru-fu Jul 10, 2024
ce68235
Merge pull request #383 from gabrielmougard/feat/bump-microcluster-dep
sabaini Jul 11, 2024
7b711de
Merge pull request #384 from ru-fu/doc-fixes
lmlg Jul 11, 2024
c79b31d
Add RGW Swift config options
hemanthnakkina Jul 9, 2024
63baa3f
Fix run dir issues
sabaini Jul 12, 2024
1b2784c
snap/snapcraft: replace deprecated CRAFT_ARCH_TRIPLET with CRAFT_ARCH…
medvied Jul 18, 2024
7c8219a
Allow skipping daemon restart post config op
UtkarshBhatthere Jul 5, 2024
5b1075c
Updated Reference documentation for CLI
UtkarshBhatthere Jul 5, 2024
28bde9b
Added tests for RGW cluster configs
UtkarshBhatthere Jul 18, 2024
69853e8
Test: exercise microcephd in multinode tests
sabaini Jul 23, 2024
157ab9a
Don't set debug log by default
sabaini Jul 26, 2024
14efe72
Merge pull request #394 from sabaini/no-default-debug
sabaini Jul 26, 2024
0863c8b
Added snapshot docs
UtkarshBhatthere Jul 23, 2024
d098cc8
Test
marceloneppel Aug 16, 2024
926f18d
Test
marceloneppel Aug 16, 2024
f8ea05c
Test
marceloneppel Aug 16, 2024
d3d2434
Test
marceloneppel Aug 16, 2024
97327b5
Merge remote-tracking branch 'upstream/main' into rgw-https-support-t…
marceloneppel Aug 16, 2024
760acfc
Fix docs
marceloneppel Aug 16, 2024
bcd0777
Remove install hook code
marceloneppel Aug 16, 2024
6cd45ee
Fix docs
marceloneppel Aug 16, 2024
6fc6055
Fix CLI
marceloneppel Aug 16, 2024
97a4f4f
Fix unit tests
marceloneppel Aug 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 59 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,11 @@ jobs:
done
lxc exec node-wrk0 -- sh -c "microceph.ceph -s"

- name: Exercise microceph status
run: |
set -uex
lxc exec node-wrk0 -- sh -c "sudo microceph status"

- name: Test failure domain scale up
run: |
set -uex
Expand Down Expand Up @@ -549,10 +554,63 @@ jobs:
run: ~/actionutils.sh headexec testrgw

- name: Install local build
run: ~/actionutils.sh install_multinode
run: ~/actionutils.sh upgrade_multinode

- name: Wait until 3 OSDs are up
run: ~/actionutils.sh headexec wait_for_osds 3

- name: Exercise RGW again
run: ~/actionutils.sh headexec testrgw

- name: Exercise microceph status
run: |
set -uex
lxc exec node-wrk0 -- sh -c "sudo microceph status"


cluster-tests:
name: Test MicroCeph Cluster features.
runs-on: ubuntu-22.04
needs: build-microceph
steps:
- name: Download snap
uses: actions/download-artifact@v3
with:
name: snaps
path: /home/runner

- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Copy utils
run: cp tests/scripts/actionutils.sh $HOME

- name: Clear FORWARD firewall rules
run: ~/actionutils.sh cleaript

- name: Free disk
run: ~/actionutils.sh free_runner_disk

- name: Install and setup
run: ~/actionutils.sh install_microceph

- name: Add loopback file OSDs
run: |
set -uex
sudo microceph disk add loop,1G,3
~/actionutils.sh wait_for_osds 3
sudo microceph.ceph -s

- name: Enable RGW
run: ~/actionutils.sh enable_rgw

- name: Exercise RGW
run: ~/actionutils.sh testrgw

- name: Bombard MicroCeph with cluster configs
run: ~/actionutils.sh bombard_rgw_configs

- name: Exercise RGW again
run: ~/actionutils.sh testrgw "newFile"
8 changes: 8 additions & 0 deletions docs/.custom_wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ microceph
OSDs
MSD
Ceph
CephFs
CephX
Alertmanager
MDS
hostname
Expand All @@ -22,6 +24,7 @@ loopback
lsblk
hostnames
OSD
keyring
keyrings
FDE
snapd
Expand All @@ -31,6 +34,7 @@ LUKS
cryptsetup
dm
modinfo
newFs
subcommands
backend
backfilling
Expand Down Expand Up @@ -63,7 +67,11 @@ noout
Noout
Unsetting
cephfs
fs
filesystem
filesystems
sda
ESM
Livepatch

MiB
4 changes: 2 additions & 2 deletions docs/.sphinx/_templates/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
<li>
<a href="#" class="p-navigation__link nav-more-links">More resources</a>
<ul class="more-links-dropdown">

<!--
<li>
<a href="{{ discourse }}" class="p-navigation__sub-link p-dropdown__link">Forum</a>
</li>

-->
<li>
<a href="{{ github_url }}" class="p-navigation__sub-link p-dropdown__link">GitHub</a>
</li>
Expand Down
6 changes: 6 additions & 0 deletions docs/.wordlist.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
addons
api
API
APIs
Auth
auth
balancer
Charmhub
CLI
Expand Down Expand Up @@ -38,10 +41,13 @@ reST
reStructuredText
RTD
sdb
ssl
SSL
subdirectories
subfolders
subtree
UI
url
VM
WAL
YAML
2 changes: 1 addition & 1 deletion docs/custom_conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@

# Change to the folder that contains the documentation
# (usually "/" or "/docs/")
'github_folder': '/docs',
'github_folder': '/docs/',

# Change to an empty value if your GitHub repo doesn't have issues enabled.
# This will disable the feedback button and the issue link in the footer.
Expand Down
45 changes: 45 additions & 0 deletions docs/explanation/taking-snapshots.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
================================
Taking Backups for your Workload
================================

The MicroCeph deployed Ceph cluster supports snapshot based backups
for Block and File based workloads.

This document is an index of upstream documentation available for snapshots
along with some bridging commentary to help understand it better.

RBD Snapshots:
--------------

Ceph supports creating point in time read-only logical copies. This allows
an operator to create a checkpoint for their workload backup. The snapshots
can be exported for external backup or kept in Ceph for rollback to older version.

Pre-requisites
++++++++++++++

Refer to :doc:`How to mount MicroCeph Block Devices <../tutorial/mount-block-device>`
for getting started with RBD.

Once you have a the block device mounted and in use, you can jump to
`Ceph RBD Snapshots`_

CephFs Snapshots:
-----------------

Similar to RBD snapshots, CephFs snapshots are read-only logical copies of **any chosen sub-directory**
of the corresponding filesystem.

Pre-requisites
++++++++++++++

Refer to :doc:`How to mount MicroCeph CephFs shares <../tutorial/mount-cephfs-share>`
for getting started with CephFs.

Once you have a the filesystem mounted and in use, you can jump to
`CephFs Snapshots`_

.. LINKS

.. _Ceph RBD Snapshots: https://docs.ceph.com/en/latest/rbd/rbd-snapshot/
.. _CephFs Snapshots: https://docs.ceph.com/en/latest/dev/cephfs-snapshots/
108 changes: 108 additions & 0 deletions docs/how-to/integrate-keystone.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
==================================================
Configure Openstack Keystone Auth in MicroCeph RGW
==================================================

Ceph Object Gateway (RGW) can be configured to use `Openstack Keystone`_ for
providing user authentication service. A Keystone authorised user to the
gateway will also be automatically created on the Ceph Object Gateway. A
token that Keystone validates will be considered as valid by the gateway.

MicroCeph supports setting the following Keystone config keys:

.. list-table:: Supported Config Keys
:widths: 30 70
:header-rows: 1

* - Key
- Description
* - rgw_s3_auth_use_keystone
- Whether to use keystone auth for the S3 endpoints.
* - rgw_keystone_url
- Keystone server address in {url:port} format
* - rgw_keystone_admin_token
- Keystone admin token (not recommended in production)
* - rgw_keystone_admin_token_path
- Path to Keystone admin token (recommended for production)
* - rgw_keystone_admin_user
- Keystone service tenant user name
* - rgw_keystone_admin_password
- Keystone service tenant user password
* - rgw_keystone_admin_password_path
- Path to Keystone service tenant user password file
* - rgw_keystone_admin_project
- Keystone admin project name
* - rgw_keystone_admin_domain
- Keystone admin domain name
* - rgw_keystone_service_token_enabled
- Whether to allow expired tokens with service token in requests
* - rgw_keystone_service_token_accepted_roles
- Specify user roles accepted as service roles
* - rgw_keystone_expired_token_cache_expiration
- Cache expiration period for an expired token allowed with a service token
* - rgw_keystone_api_version
- Keystone API version
* - rgw_keystone_accepted_roles
- Accepted user roles for Keystone users
* - rgw_keystone_accepted_admin_roles
- List of roles allowing user to gain admin privileges
* - rgw_keystone_token_cache_size
- The maximum number of entries in each Keystone token cache
* - rgw_keystone_verify_ssl
- Whether to verify SSL certificates while making token requests to Keystone
* - rgw_keystone_implicit_tenants
- Whether to create new users in their own tenants of the same name
* - rgw_swift_account_in_url
- Whether the Swift account is encoded in the URL path
* - rgw_swift_versioning_enabled
- Enables object versioning
* - rgw_swift_enforce_content_length
- Whether content length header is needed when listing containers
* - rgw_swift_custom_header
- Enable swift custom header

A user can set/get/list/reset the above mentioned config keys as follows:

1. Supported config keys can be configured using the 'set' command:

.. code-block:: shell

$ sudo microceph cluster config set rgw_swift_account_in_url true

2. Config value for a particular key could be queried using the 'get' command:

.. code-block:: shell

$ sudo microceph cluster config get rgw_swift_account_in_url
+---+--------------------------+-------+
| # | KEY | VALUE |
+---+--------------------------+-------+
| 0 | rgw_swift_account_in_url | true |
+---+--------------------------+-------+

3. A list of all the configured keys can be fetched using the 'list' command:

.. code-block:: shell

$ sudo microceph cluster config list
+---+--------------------------+-------+
| # | KEY | VALUE |
+---+--------------------------+-------+
| 0 | rgw_swift_account_in_url | true |
+---+--------------------------+-------+

4. Resetting a config key (i.e. setting the key to its default value) can performed using the 'reset' command:

.. code-block:: shell

$ sudo microceph cluster config reset rgw_swift_account_in_url
$ sudo microceph cluster config list
+---+-----+-------+
| # | KEY | VALUE |
+---+-----+-------+

For detailed documentation of what keys should be configured, visit `Ceph Docs`_

.. LINKS

.. _Openstack Keystone: https://docs.openstack.org/keystone/latest/getting-started/architecture.html#identity
.. _Ceph Docs: https://docs.ceph.com/en/latest/radosgw/keystone/
2 changes: 1 addition & 1 deletion docs/how-to/remove-disk.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ the removal of a cluster node (machine).

The following resources provide extra context to the disk removal operation:

* the :doc:`../../explanation/cluster-scaling` page
* the :doc:`../explanation/cluster-scaling` page
* the :doc:`disk <../reference/commands/disk>` command reference

.. note::
Expand Down
6 changes: 4 additions & 2 deletions docs/reference/commands/cluster.rst
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@ Flags:

.. code-block:: none

--wait Wait for required ceph services to restart post config reset.
--wait Wait for required ceph services to restart post config reset.
--skip-restart Don't perform the daemon restart for current config.


``config set``
Expand All @@ -147,7 +148,8 @@ Flags:

.. code-block:: none

--wait Wait for required ceph services to restart post config set.
--wait Wait for required ceph services to restart post config set.
--skip-restart Don't perform the daemon restart for current config.


``join``
Expand Down
6 changes: 3 additions & 3 deletions docs/reference/commands/enable.rst
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Usage:

.. code-block:: none

microceph enable rgw [--port <port>] [--ssl-port <port>] [--ssl-certificate <certificate path>] [--ssl-private-key <private key path>] [--target <server>] [--wait <bool>] [flags]
microceph enable rgw [--port <port>] [--ssl-port <port>] [--ssl-certificate <certificate material>] [--ssl-private-key <private key material>] [--target <server>] [--wait <bool>] [flags]


Flags:
Expand All @@ -108,7 +108,7 @@ Flags:

--port int Service non-SSL port (default: 80) (default 80)
--ssl-port int Service SSL port (default: 443) (default 443)
--ssl-certificate string Path to SSL certificate
--ssl-private-key string Path to SSL private key
--ssl-certificate string base64 encoded SSL certificate
--ssl-private-key string base64 encoded SSL private key
--target string Server hostname (default: this server)
--wait Wait for rgw service to be up. (default true)
4 changes: 2 additions & 2 deletions docs/tutorial/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ require any deep understanding of Ceph.

.. toctree::
:maxdepth: 1
:glob:

single-node
multi-node
*
Loading
Loading