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

Syncing latest changes from upstream master for rook #695

Merged
merged 22 commits into from
Aug 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
edcedd3
docs: pool placement design doc
arttor Jul 30, 2024
e16b683
docs: target placement storage class
arttor Aug 1, 2024
e410689
build(deps): bump wagoid/commitlint-github-action from 6.0.1 to 6.0.2
dependabot[bot] Aug 5, 2024
400f4ed
Merge pull request #14455 from cobaltcore-dev/target-placement
travisn Aug 6, 2024
d1030cf
build(deps): bump the github-dependencies group with 3 updates
dependabot[bot] Aug 5, 2024
53e2f8c
csi: add pvc & pod yamls for block volume mode
Rakshith-R Aug 7, 2024
074d2fb
Merge pull request #14542 from Rakshith-R/add-block-mode-ex
travisn Aug 7, 2024
ca50256
Merge pull request #14534 from rook/dependabot/github_actions/wagoid/…
travisn Aug 7, 2024
89f29a4
Merge pull request #14536 from rook/dependabot/go_modules/github-depe…
travisn Aug 7, 2024
4b0b3a5
csi: add code for new CSI operator CR cephcluster
subhamkrai Jul 24, 2024
667e044
csi: add new CSI-operator config CR
subhamkrai Jul 25, 2024
1ad20d0
csi: add csi-operator operator config cr
subhamkrai Jul 25, 2024
c30b8a5
csi: add csi-operator rbac, crds files
subhamkrai Aug 1, 2024
64cce51
csi: add annotation to existing CSI driver
subhamkrai Aug 5, 2024
f40cb39
csi: add unit test for csi-op resources
subhamkrai Aug 7, 2024
ee8bcad
rgw: add support for keystone auth + swift/s3
sebastianriese Feb 7, 2022
33680d5
Merge pull request #14489 from subhamkrai/add-csidriveroperator-config
subhamkrai Aug 8, 2024
5f98d2e
Merge pull request #13807 from jklippel/feature/swift-and-keystone
BlaineEXE Aug 8, 2024
c146b59
docs: fix affinity docs in operator chart
zalsader Aug 7, 2024
cb1ea8c
Merge pull request #14546 from zalsader/fix-affinity-docs
travisn Aug 9, 2024
ee7c6e5
Merge commit 'cb1ea8c7defa886f085dd26204f02568ecf0aaa6' into sync_us-…
Aug 11, 2024
18a9523
csv: add additional csv changes that other commits bring
Aug 11, 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
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/[email protected].1
- uses: wagoid/[email protected].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
Loading