Skip to content

Commit

Permalink
Merge commit 'cb1ea8c7defa886f085dd26204f02568ecf0aaa6' into sync_us-…
Browse files Browse the repository at this point in the history
…-master

Signed-off-by: Ceph Jenkins <ceph-jenkins@redhat.com>
  • Loading branch information
Ceph Jenkins committed Aug 11, 2024
2 parents 83b3fb3 + cb1ea8c commit ee7c6e5
Show file tree
Hide file tree
Showing 62 changed files with 20,210 additions and 155 deletions.
1 change: 1 addition & 0 deletions .github/workflows/.yamllint
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ ignore: |
deploy/examples/csi/template
deploy/examples/crds.yaml
deploy/examples/monitoring/
deploy/examples/csi-operator.yaml
rules:
line-length: disable
new-lines: disable
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codespell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
# in other places, so ignore the file itself assuming it is correct
# crds.yaml, resources.yaml: CRD files are fully generated from content we control (should
# be flagged elsewhere) and content we don't control (can't fix easily), so ignore
skip: .git,*.png,*.jpg,*.svg,*.sum,./LICENSE,./deploy/examples/crds.yaml,./deploy/charts/rook-ceph/templates/resources.yaml
skip: .git,*.png,*.jpg,*.svg,*.sum,./LICENSE,./deploy/examples/crds.yaml,./deploy/charts/rook-ceph/templates/resources.yaml,./deploy/examples/csi-operator.yaml
# aks: Amazon Kubernetes Service
# keyserver: flag to apt-key
# atleast: codespell wants to flag any 'AtLeast' method
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/commitlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: wagoid/commitlint-github-action@v6.0.1
- uses: wagoid/commitlint-github-action@v6.0.2
with:
configFile: "./.commitlintrc.json"
helpURL: https://rook.io/docs/rook/latest/Contributing/development-flow/#commit-structure
66 changes: 66 additions & 0 deletions .github/workflows/integration-test-keystone-auth-suite.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Integration test CephKeystoneAuthSuite
on:
pull_request:
branches:
- master
- release-*
paths-ignore:
- "Documentation/**"
- "design/**"

defaults:
run:
# reference: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell
shell: bash --noprofile --norc -eo pipefail -x {0}

# cancel the in-progress workflow when PR is refreshed.
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true

jobs:
TestCephKeystoneAuthSuite:
if: ${{ github.event_name == 'pull_request' && github.ref != 'refs/heads/master' && !contains(github.event.pull_request.labels.*.name, 'skip-ci') }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
kubernetes-versions: ["v1.25.16", "v1.28.4"]
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: consider debugging
uses: ./.github/workflows/tmate_debug
with:
use-tmate: ${{ secrets.USE_TMATE }}

- name: setup latest cluster resources
uses: ./.github/workflows/integration-test-config-latest-k8s
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
kubernetes-version: ${{ matrix.kubernetes-versions }}

- name: TestCephKeystoneAuthSuite
run: |
tests/scripts/github-action-helper.sh collect_udev_logs_in_background
tests/scripts/helm.sh up
export DEVICE_FILTER=$(lsblk|awk '/14G/ || /64G/ {print $1}'| head -1)
SKIP_CLEANUP_POLICY=false go test -v -timeout 3600s -failfast -run CephKeystoneAuthSuite github.com/rook/rook/tests/integration
- name: collect common logs
if: always()
run: |
export LOG_DIR="/home/runner/work/rook/rook/tests/integration/_output/tests/"
export CLUSTER_NAMESPACE="keystoneauth-ns"
export OPERATOR_NAMESPACE="keystoneauth-ns-system"
tests/scripts/collect-logs.sh
- name: Artifact
uses: actions/upload-artifact@v4
if: failure()
with:
name: ceph-keystone-auth-suite-artifact-${{ matrix.kubernetes-versions }}
path: /home/runner/work/rook/rook/tests/integration/_output/tests/
62 changes: 62 additions & 0 deletions Documentation/CRDs/Object-Storage/ceph-object-store-crd.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,68 @@ When the `zone` section is set pools with the object stores name will not be cre
This is useful for applications that need object store credentials to be created in their own namespace,
where neither OBCs nor COSI is being used to create buckets. The default is empty.

## Auth Settings

The `auth`-section allows the configuration of authentication providers in addition to the regular authentication mechanism.

Currently only OpenStack Keystone is supported.

### Keystone Settings

The keystone authentication can be configured in the `spec.auth.keystone` section of the CRD:

```yaml
spec:
[...]
auth:
keystone:
acceptedRoles:
- admin
- member
- service
implicitTenants: "swift"
revocationInterval: 1200
serviceUserSecretName: usersecret
tokenCacheSize: 1000
url: https://keystone.example-namespace.svc/
protocols:
swift:
accountInUrl: true
urlPrefix: /swift
[...]
```

Note: With this example configuration S3 is implicitly enabled even though it is not enabled in the `protocols` section.

The following options can be configured in the `keystone`-section:

* `acceptedRoles`: The OpenStack Keystone [roles](https://docs.openstack.org/keystone/latest/admin/cli-manage-projects-users-and-roles.html#roles-and-role-assignments) accepted by RGW when authenticating against Keystone.
* `implicitTenants`: Indicates whether to use implicit tenants. This can be `true`, `false`, `swift` and `s3`. For more details see the Ceph RadosGW documentation on [multitenancy](https://docs.ceph.com/en/latest/radosgw/multitenancy/).
* `revocationInterval`: The number of seconds between token revocation checks.
* `serviceUserSecretName`: the name of the user secret containing the credentials for the admin user to use by rgw when communicating with Keystone. See [Object Store with Keystone and Swift](../../Storage-Configuration/Object-Storage-RGW/ceph-object-swift.md) for more details on what the secret must contain.
* `tokenCacheSize`: specifies the maximum number of entries in each Keystone token cache.
* `url`: The url of the Keystone API endpoint to use.

The protocols section is divided into two parts:

- a section to configure S3
- a section to configure swift

#### protocols/S3 settings

In the `s3` section of the `protocols` section the following options can be configured:

* `authKeystone`: Whether S3 should also authenticated using Keystone (`true`) or not (`false`). If set to `false` the default S3 auth will be used.
* `enabled`: Whether to enable S3 (`true`) or not (`false`). The default is `true` even if the section is not listed at all! Please note that S3 should not be disabled in a [Ceph Multi Site configuration](https://docs.ceph.com/en/quincy/radosgw/multisite).

#### protocols/swift settings

In the `swift` section of the `protocols` section the following options can be configured:

* `accountInUrl`: Whether or not the Swift account name should be included in the Swift API URL. If set to `false` (the default), the Swift API will listen on a URL formed like `http://host:port/<rgw_swift_url_prefix>/v1`. If set to `true`, the Swift API URL will be `http://host:port/<rgw_swift_url_prefix>/v1/AUTH_<account_name>`. This option must be set to `true` if radosgw should support publicly-readable containers and temporary URLs.
* `urlPrefix`: The URL prefix for the Swift API, to distinguish it from the S3 API endpoint. The default is `swift`, which makes the Swift API available at the URL `http://host:port/swift/v1` (or `http://host:port/swift/v1/AUTH_%(tenant_id)s` if rgw swift account in url is enabled). "Warning: If you set this option to `/`, the S3 API is automatically disabled. It is not possible to operate radosgw with an urlPrefix of `/` and simultaneously support both the S3 and Swift APIs. [...]" [(see Ceph documentation on swift settings)](https://docs.ceph.com/en/octopus/radosgw/config-ref/#swift-settings).
* `versioningEnabled`: If set to `true`, enables the Object Versioning of OpenStack Object Storage API. This allows clients to put the X-Versions-Location attribute on containers that should be versioned.

## Gateway Settings

The gateway settings correspond to the RGW daemon settings.
Expand Down
Loading

0 comments on commit ee7c6e5

Please sign in to comment.