summaryrefslogtreecommitdiffstats
path: root/qa/suites/rgw
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /qa/suites/rgw
parentInitial commit. (diff)
downloadceph-upstream.tar.xz
ceph-upstream.zip
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
l---------qa/suites/rgw/.qa1
-rw-r--r--qa/suites/rgw/crypt/%0
l---------qa/suites/rgw/crypt/.qa1
l---------qa/suites/rgw/crypt/0-cluster/.qa1
l---------qa/suites/rgw/crypt/0-cluster/fixed-1.yaml1
l---------qa/suites/rgw/crypt/1-ceph-install/.qa1
-rw-r--r--qa/suites/rgw/crypt/1-ceph-install/install.yaml7
l---------qa/suites/rgw/crypt/2-kms/.qa1
-rw-r--r--qa/suites/rgw/crypt/2-kms/barbican.yaml94
-rw-r--r--qa/suites/rgw/crypt/2-kms/kmip.yaml37
-rw-r--r--qa/suites/rgw/crypt/2-kms/testing.yaml6
-rw-r--r--qa/suites/rgw/crypt/2-kms/vault_kv.yaml25
-rw-r--r--qa/suites/rgw/crypt/2-kms/vault_old.yaml24
-rw-r--r--qa/suites/rgw/crypt/2-kms/vault_transit.yaml23
l---------qa/suites/rgw/crypt/3-rgw/.qa1
-rw-r--r--qa/suites/rgw/crypt/3-rgw/rgw.yaml12
-rw-r--r--qa/suites/rgw/crypt/4-tests/+0
l---------qa/suites/rgw/crypt/4-tests/.qa1
-rw-r--r--qa/suites/rgw/crypt/4-tests/s3tests.yaml16
l---------qa/suites/rgw/crypt/ignore-pg-availability.yaml1
-rw-r--r--qa/suites/rgw/hadoop-s3a/%0
l---------qa/suites/rgw/hadoop-s3a/.qa1
l---------qa/suites/rgw/hadoop-s3a/clusters/.qa1
l---------qa/suites/rgw/hadoop-s3a/clusters/fixed-2.yaml1
l---------qa/suites/rgw/hadoop-s3a/hadoop/.qa1
-rw-r--r--qa/suites/rgw/hadoop-s3a/hadoop/default.yaml1
-rw-r--r--qa/suites/rgw/hadoop-s3a/hadoop/v32.yaml3
-rw-r--r--qa/suites/rgw/hadoop-s3a/overrides.yaml6
-rw-r--r--qa/suites/rgw/hadoop-s3a/s3a-hadoop.yaml11
-rw-r--r--qa/suites/rgw/multifs/%0
l---------qa/suites/rgw/multifs/.qa1
l---------qa/suites/rgw/multifs/clusters/.qa1
l---------qa/suites/rgw/multifs/clusters/fixed-2.yaml1
l---------qa/suites/rgw/multifs/frontend/.qa1
l---------qa/suites/rgw/multifs/frontend/civetweb.yaml1
l---------qa/suites/rgw/multifs/ignore-pg-availability.yaml1
l---------qa/suites/rgw/multifs/objectstore1
-rw-r--r--qa/suites/rgw/multifs/overrides.yaml13
l---------qa/suites/rgw/multifs/rgw_pool_type1
l---------qa/suites/rgw/multifs/tasks/.qa1
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_bucket_quota.yaml15
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_multipart_upload.yaml15
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml19
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml13
-rw-r--r--qa/suites/rgw/multifs/tasks/rgw_user_quota.yaml15
-rw-r--r--qa/suites/rgw/multisite/%0
l---------qa/suites/rgw/multisite/.qa1
-rw-r--r--qa/suites/rgw/multisite/clusters.yaml3
l---------qa/suites/rgw/multisite/frontend1
l---------qa/suites/rgw/multisite/ignore-pg-availability.yaml1
-rw-r--r--qa/suites/rgw/multisite/omap_limits.yaml13
-rw-r--r--qa/suites/rgw/multisite/overrides.yaml19
l---------qa/suites/rgw/multisite/realms/.qa1
-rw-r--r--qa/suites/rgw/multisite/realms/three-zone-plus-pubsub.yaml23
-rw-r--r--qa/suites/rgw/multisite/realms/two-zonegroup.yaml27
l---------qa/suites/rgw/multisite/tasks/.qa1
-rw-r--r--qa/suites/rgw/multisite/tasks/test_multi.yaml26
-rw-r--r--qa/suites/rgw/multisite/valgrind.yaml20
-rw-r--r--qa/suites/rgw/singleton/%0
l---------qa/suites/rgw/singleton/.qa1
l---------qa/suites/rgw/singleton/all/.qa1
-rw-r--r--qa/suites/rgw/singleton/all/radosgw-admin.yaml21
l---------qa/suites/rgw/singleton/frontend/.qa1
l---------qa/suites/rgw/singleton/frontend/civetweb.yaml1
l---------qa/suites/rgw/singleton/objectstore1
-rw-r--r--qa/suites/rgw/singleton/overrides.yaml8
l---------qa/suites/rgw/singleton/rgw_pool_type1
l---------qa/suites/rgw/singleton/supported-random-distro$1
-rw-r--r--qa/suites/rgw/sts/%0
l---------qa/suites/rgw/sts/.qa1
l---------qa/suites/rgw/sts/cluster.yaml1
l---------qa/suites/rgw/sts/ignore-pg-availability.yaml1
l---------qa/suites/rgw/sts/objectstore.yaml1
-rw-r--r--qa/suites/rgw/sts/overrides.yaml13
l---------qa/suites/rgw/sts/pool-type.yaml1
l---------qa/suites/rgw/sts/rgw_frontend1
l---------qa/suites/rgw/sts/supported-random-distro$1
-rw-r--r--qa/suites/rgw/sts/tasks/+0
-rw-r--r--qa/suites/rgw/sts/tasks/0-install.yaml15
-rw-r--r--qa/suites/rgw/sts/tasks/first.yaml17
-rw-r--r--qa/suites/rgw/sts/tasks/ststests.yaml13
-rw-r--r--qa/suites/rgw/tempest/%0
l---------qa/suites/rgw/tempest/.qa1
l---------qa/suites/rgw/tempest/clusters/.qa1
l---------qa/suites/rgw/tempest/clusters/fixed-1.yaml1
l---------qa/suites/rgw/tempest/frontend1
-rw-r--r--qa/suites/rgw/tempest/overrides.yaml7
l---------qa/suites/rgw/tempest/tasks/.qa1
-rw-r--r--qa/suites/rgw/tempest/tasks/rgw_tempest.yaml70
l---------qa/suites/rgw/tempest/ubuntu_latest.yaml1
-rw-r--r--qa/suites/rgw/thrash/%0
l---------qa/suites/rgw/thrash/.qa1
-rw-r--r--qa/suites/rgw/thrash/civetweb.yaml8
l---------qa/suites/rgw/thrash/clusters/.qa1
l---------qa/suites/rgw/thrash/clusters/fixed-2.yaml1
-rw-r--r--qa/suites/rgw/thrash/install.yaml5
l---------qa/suites/rgw/thrash/objectstore1
l---------qa/suites/rgw/thrash/thrasher/.qa1
-rw-r--r--qa/suites/rgw/thrash/thrasher/default.yaml9
l---------qa/suites/rgw/thrash/thrashosds-health.yaml1
l---------qa/suites/rgw/thrash/workload/.qa1
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_bucket_quota.yaml12
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_multipart_upload.yaml12
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_s3tests.yaml13
-rw-r--r--qa/suites/rgw/thrash/workload/rgw_user_quota.yaml12
-rw-r--r--qa/suites/rgw/tools/+0
l---------qa/suites/rgw/tools/.qa1
l---------qa/suites/rgw/tools/centos_latest.yaml1
-rw-r--r--qa/suites/rgw/tools/cluster.yaml9
-rw-r--r--qa/suites/rgw/tools/tasks.yaml19
-rw-r--r--qa/suites/rgw/verify/%0
l---------qa/suites/rgw/verify/.qa1
l---------qa/suites/rgw/verify/centos_latest.yaml1
l---------qa/suites/rgw/verify/clusters/.qa1
l---------qa/suites/rgw/verify/clusters/fixed-2.yaml1
l---------qa/suites/rgw/verify/frontend1
l---------qa/suites/rgw/verify/ignore-pg-availability.yaml1
l---------qa/suites/rgw/verify/msgr-failures/.qa1
-rw-r--r--qa/suites/rgw/verify/msgr-failures/few.yaml8
l---------qa/suites/rgw/verify/objectstore1
-rw-r--r--qa/suites/rgw/verify/overrides.yaml13
l---------qa/suites/rgw/verify/proto/.qa1
-rw-r--r--qa/suites/rgw/verify/proto/http.yaml0
-rw-r--r--qa/suites/rgw/verify/proto/https.yaml20
l---------qa/suites/rgw/verify/rgw_pool_type1
l---------qa/suites/rgw/verify/sharding$1
-rw-r--r--qa/suites/rgw/verify/striping$/stripe-equals-chunk.yaml7
-rw-r--r--qa/suites/rgw/verify/striping$/stripe-greater-than-chunk.yaml7
-rw-r--r--qa/suites/rgw/verify/tasks/+0
l---------qa/suites/rgw/verify/tasks/.qa1
-rw-r--r--qa/suites/rgw/verify/tasks/0-install.yaml20
-rw-r--r--qa/suites/rgw/verify/tasks/cls.yaml14
-rw-r--r--qa/suites/rgw/verify/tasks/ragweed.yaml6
-rw-r--r--qa/suites/rgw/verify/tasks/reshard.yaml5
-rw-r--r--qa/suites/rgw/verify/tasks/s3tests-java.yaml6
-rw-r--r--qa/suites/rgw/verify/tasks/s3tests.yaml5
l---------qa/suites/rgw/verify/validater/.qa1
-rw-r--r--qa/suites/rgw/verify/validater/lockdep.yaml7
-rw-r--r--qa/suites/rgw/verify/validater/valgrind.yaml18
-rw-r--r--qa/suites/rgw/website/%0
l---------qa/suites/rgw/website/.qa1
l---------qa/suites/rgw/website/clusters/.qa1
l---------qa/suites/rgw/website/clusters/fixed-2.yaml1
l---------qa/suites/rgw/website/frontend1
-rw-r--r--qa/suites/rgw/website/http.yaml1
-rw-r--r--qa/suites/rgw/website/overrides.yaml30
l---------qa/suites/rgw/website/tasks/.qa1
-rw-r--r--qa/suites/rgw/website/tasks/s3tests-website.yaml17
l---------qa/suites/rgw/website/ubuntu_latest.yaml1
149 files changed, 1008 insertions, 0 deletions
diff --git a/qa/suites/rgw/.qa b/qa/suites/rgw/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/crypt/% b/qa/suites/rgw/crypt/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/crypt/%
diff --git a/qa/suites/rgw/crypt/.qa b/qa/suites/rgw/crypt/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/crypt/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/crypt/0-cluster/.qa b/qa/suites/rgw/crypt/0-cluster/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/crypt/0-cluster/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/crypt/0-cluster/fixed-1.yaml b/qa/suites/rgw/crypt/0-cluster/fixed-1.yaml
new file mode 120000
index 000000000..435ea3c75
--- /dev/null
+++ b/qa/suites/rgw/crypt/0-cluster/fixed-1.yaml
@@ -0,0 +1 @@
+../../../../clusters/fixed-1.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/crypt/1-ceph-install/.qa b/qa/suites/rgw/crypt/1-ceph-install/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/crypt/1-ceph-install/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/crypt/1-ceph-install/install.yaml b/qa/suites/rgw/crypt/1-ceph-install/install.yaml
new file mode 100644
index 000000000..07a08b9a6
--- /dev/null
+++ b/qa/suites/rgw/crypt/1-ceph-install/install.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+
+tasks:
+- install:
+- ceph:
diff --git a/qa/suites/rgw/crypt/2-kms/.qa b/qa/suites/rgw/crypt/2-kms/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/crypt/2-kms/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/crypt/2-kms/barbican.yaml b/qa/suites/rgw/crypt/2-kms/barbican.yaml
new file mode 100644
index 000000000..94c43895f
--- /dev/null
+++ b/qa/suites/rgw/crypt/2-kms/barbican.yaml
@@ -0,0 +1,94 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw crypt s3 kms backend: barbican
+ rgw keystone barbican project: rgwcrypt
+ rgw keystone barbican user: rgwcrypt-user
+ rgw keystone barbican password: rgwcrypt-pass
+ rgw keystone barbican domain: Default
+ rgw keystone api version: 3
+ rgw keystone accepted roles: admin,Member,creator
+ rgw keystone implicit tenants: true
+ rgw keystone accepted admin roles: admin
+ rgw swift enforce content length: true
+ rgw swift account in url: true
+ rgw swift versioning enabled: true
+ rgw keystone admin project: admin
+ rgw keystone admin user: admin
+ rgw keystone admin password: ADMIN
+ rgw keystone admin domain: Default
+ rgw:
+ client.0:
+ use-keystone-role: client.0
+ use-barbican-role: client.0
+
+tasks:
+- tox: [ client.0 ]
+- keystone:
+ client.0:
+ sha1: 17.0.0.0rc2
+ force-branch: master
+ projects:
+ - name: rgwcrypt
+ description: Encryption Tenant
+ domain: default
+ - name: barbican
+ description: Barbican
+ domain: default
+ - name: s3
+ description: S3 project
+ domain: default
+ users:
+ - name: rgwcrypt-user
+ password: rgwcrypt-pass
+ project: rgwcrypt
+ domain: default
+ - name: barbican-user
+ password: barbican-pass
+ project: barbican
+ domain: default
+ - name: s3-user
+ password: s3-pass
+ project: s3
+ domain: default
+ roles: [ name: Member, name: creator ]
+ role-mappings:
+ - name: Member
+ user: rgwcrypt-user
+ project: rgwcrypt
+ - name: admin
+ user: barbican-user
+ project: barbican
+ - name: creator
+ user: s3-user
+ project: s3
+ services:
+ - name: swift
+ type: object-store
+ description: Swift Service
+- barbican:
+ client.0:
+ sha1: 5.0.1
+ force-branch: master
+ use-keystone-role: client.0
+ keystone_authtoken:
+ auth_plugin: password
+ username: barbican-user
+ password: barbican-pass
+ user_domain_name: Default
+ rgw_user:
+ tenantName: rgwcrypt
+ username: rgwcrypt-user
+ password: rgwcrypt-pass
+ secrets:
+ - name: my-key-1
+ base64: a2V5MS5GcWVxKzhzTGNLaGtzQkg5NGVpb1FKcFpGb2c=
+ tenantName: s3
+ username: s3-user
+ password: s3-pass
+ - name: my-key-2
+ base64: a2V5Mi5yNUNNMGFzMVdIUVZxcCt5NGVmVGlQQ1k4YWg=
+ tenantName: s3
+ username: s3-user
+ password: s3-pass
diff --git a/qa/suites/rgw/crypt/2-kms/kmip.yaml b/qa/suites/rgw/crypt/2-kms/kmip.yaml
new file mode 100644
index 000000000..0057d954e
--- /dev/null
+++ b/qa/suites/rgw/crypt/2-kms/kmip.yaml
@@ -0,0 +1,37 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw crypt s3 kms backend: kmip
+ rgw crypt kmip ca path: /etc/ceph/kmiproot.crt
+ rgw crypt kmip client cert: /etc/ceph/kmip-client.crt
+ rgw crypt kmip client key: /etc/ceph/kmip-client.key
+ rgw crypt kmip kms key template: pykmip-$keyid
+ rgw:
+ client.0:
+ use-pykmip-role: client.0
+
+tasks:
+- openssl_keys:
+ kmiproot:
+ client: client.0
+ cn: kmiproot
+ key-type: rsa:4096
+ kmip-server:
+ client: client.0
+ ca: kmiproot
+ kmip-client:
+ client: client.0
+ ca: kmiproot
+ cn: rgw-client
+- exec:
+ client.0:
+ - chmod 644 /home/ubuntu/cephtest/ca/kmip-client.key
+- pykmip:
+ client.0:
+ clientca: kmiproot
+ servercert: kmip-server
+ clientcert: kmip-client
+ secrets:
+ - name: pykmip-my-key-1
+ - name: pykmip-my-key-2
diff --git a/qa/suites/rgw/crypt/2-kms/testing.yaml b/qa/suites/rgw/crypt/2-kms/testing.yaml
new file mode 100644
index 000000000..e02f9caad
--- /dev/null
+++ b/qa/suites/rgw/crypt/2-kms/testing.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw crypt s3 kms backend: testing
+ rgw crypt s3 kms encryption_keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
diff --git a/qa/suites/rgw/crypt/2-kms/vault_kv.yaml b/qa/suites/rgw/crypt/2-kms/vault_kv.yaml
new file mode 100644
index 000000000..9ee9366d0
--- /dev/null
+++ b/qa/suites/rgw/crypt/2-kms/vault_kv.yaml
@@ -0,0 +1,25 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw crypt s3 kms backend: vault
+ rgw crypt vault auth: token
+ rgw crypt vault secret engine: kv
+ rgw crypt vault prefix: /v1/kv/data
+ rgw:
+ client.0:
+ use-vault-role: client.0
+
+tasks:
+- vault:
+ client.0:
+ install_url: https://releases.hashicorp.com/vault/1.2.2/vault_1.2.2_linux_amd64.zip
+ install_sha256: 7725b35d9ca8be3668abe63481f0731ca4730509419b4eb29fa0b0baa4798458
+ root_token: test_root_token
+ engine: kv
+ prefix: /v1/kv/data/
+ secrets:
+ - path: my-key-1
+ secret: a2V5MS5GcWVxKzhzTGNLaGtzQkg5NGVpb1FKcFpGb2c=
+ - path: my-key-2
+ secret: a2V5Mi5yNUNNMGFzMVdIUVZxcCt5NGVmVGlQQ1k4YWg=
diff --git a/qa/suites/rgw/crypt/2-kms/vault_old.yaml b/qa/suites/rgw/crypt/2-kms/vault_old.yaml
new file mode 100644
index 000000000..4befc1ecf
--- /dev/null
+++ b/qa/suites/rgw/crypt/2-kms/vault_old.yaml
@@ -0,0 +1,24 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw crypt s3 kms backend: vault
+ rgw crypt vault auth: token
+ rgw crypt vault secret engine: transit
+ rgw crypt vault prefix: /v1/transit/export/encryption-key/
+ rgw:
+ client.0:
+ use-vault-role: client.0
+
+tasks:
+- vault:
+ client.0:
+ install_url: https://releases.hashicorp.com/vault/1.2.2/vault_1.2.2_linux_amd64.zip
+ install_sha256: 7725b35d9ca8be3668abe63481f0731ca4730509419b4eb29fa0b0baa4798458
+ root_token: test_root_token
+ engine: transit
+ flavor: old
+ prefix: /v1/transit/keys/
+ secrets:
+ - path: my-key-1
+ - path: my-key-2
diff --git a/qa/suites/rgw/crypt/2-kms/vault_transit.yaml b/qa/suites/rgw/crypt/2-kms/vault_transit.yaml
new file mode 100644
index 000000000..fe8c8409d
--- /dev/null
+++ b/qa/suites/rgw/crypt/2-kms/vault_transit.yaml
@@ -0,0 +1,23 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw crypt s3 kms backend: vault
+ rgw crypt vault auth: token
+ rgw crypt vault secret engine: transit
+ rgw crypt vault prefix: /v1/transit/
+ rgw:
+ client.0:
+ use-vault-role: client.0
+
+tasks:
+- vault:
+ client.0:
+ install_url: https://releases.hashicorp.com/vault/1.2.2/vault_1.2.2_linux_amd64.zip
+ install_sha256: 7725b35d9ca8be3668abe63481f0731ca4730509419b4eb29fa0b0baa4798458
+ root_token: test_root_token
+ engine: transit
+ prefix: /v1/transit/keys/
+ secrets:
+ - path: my-key-1
+ - path: my-key-2
diff --git a/qa/suites/rgw/crypt/3-rgw/.qa b/qa/suites/rgw/crypt/3-rgw/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/crypt/3-rgw/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/crypt/3-rgw/rgw.yaml b/qa/suites/rgw/crypt/3-rgw/rgw.yaml
new file mode 100644
index 000000000..ee8d62af0
--- /dev/null
+++ b/qa/suites/rgw/crypt/3-rgw/rgw.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
+ rgw crypt require ssl: false
+ debug rgw: 20
+
+tasks:
+- rgw:
+ client.0:
diff --git a/qa/suites/rgw/crypt/4-tests/+ b/qa/suites/rgw/crypt/4-tests/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/crypt/4-tests/+
diff --git a/qa/suites/rgw/crypt/4-tests/.qa b/qa/suites/rgw/crypt/4-tests/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/crypt/4-tests/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/crypt/4-tests/s3tests.yaml b/qa/suites/rgw/crypt/4-tests/s3tests.yaml
new file mode 100644
index 000000000..c92bf3edd
--- /dev/null
+++ b/qa/suites/rgw/crypt/4-tests/s3tests.yaml
@@ -0,0 +1,16 @@
+tasks:
+- s3tests:
+ client.0:
+ force-branch: ceph-pacific
+ barbican:
+ kms_key: my-key-1
+ kms_key2: my-key-2
+ vault_kv:
+ key_path: my-key-1
+ key_path2: my-key-2
+ vault_old:
+ key_path: my-key-1/1
+ key_path2: my-key-2/1
+ vault_transit:
+ key_path: my-key-1
+ key_path2: my-key-2
diff --git a/qa/suites/rgw/crypt/ignore-pg-availability.yaml b/qa/suites/rgw/crypt/ignore-pg-availability.yaml
new file mode 120000
index 000000000..32340b1fa
--- /dev/null
+++ b/qa/suites/rgw/crypt/ignore-pg-availability.yaml
@@ -0,0 +1 @@
+.qa/rgw/ignore-pg-availability.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/% b/qa/suites/rgw/hadoop-s3a/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/%
diff --git a/qa/suites/rgw/hadoop-s3a/.qa b/qa/suites/rgw/hadoop-s3a/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/clusters/.qa b/qa/suites/rgw/hadoop-s3a/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/clusters/fixed-2.yaml b/qa/suites/rgw/hadoop-s3a/clusters/fixed-2.yaml
new file mode 120000
index 000000000..230ff0fda
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/hadoop/.qa b/qa/suites/rgw/hadoop-s3a/hadoop/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/hadoop/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/hadoop-s3a/hadoop/default.yaml b/qa/suites/rgw/hadoop-s3a/hadoop/default.yaml
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/hadoop/default.yaml
@@ -0,0 +1 @@
+
diff --git a/qa/suites/rgw/hadoop-s3a/hadoop/v32.yaml b/qa/suites/rgw/hadoop-s3a/hadoop/v32.yaml
new file mode 100644
index 000000000..d017b756b
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/hadoop/v32.yaml
@@ -0,0 +1,3 @@
+overrides:
+ s3a-hadoop:
+ hadoop-version: '3.2.0'
diff --git a/qa/suites/rgw/hadoop-s3a/overrides.yaml b/qa/suites/rgw/hadoop-s3a/overrides.yaml
new file mode 100644
index 000000000..d52080bb5
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/overrides.yaml
@@ -0,0 +1,6 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
diff --git a/qa/suites/rgw/hadoop-s3a/s3a-hadoop.yaml b/qa/suites/rgw/hadoop-s3a/s3a-hadoop.yaml
new file mode 100644
index 000000000..ed077a89f
--- /dev/null
+++ b/qa/suites/rgw/hadoop-s3a/s3a-hadoop.yaml
@@ -0,0 +1,11 @@
+tasks:
+- install:
+- ceph:
+- ssh-keys:
+- dnsmasq:
+ client.0: [s3.]
+- rgw:
+ client.0:
+ dns-name: s3.
+- s3a-hadoop:
+ role: client.0
diff --git a/qa/suites/rgw/multifs/% b/qa/suites/rgw/multifs/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/multifs/%
diff --git a/qa/suites/rgw/multifs/.qa b/qa/suites/rgw/multifs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/multifs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/clusters/.qa b/qa/suites/rgw/multifs/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/multifs/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/clusters/fixed-2.yaml b/qa/suites/rgw/multifs/clusters/fixed-2.yaml
new file mode 120000
index 000000000..230ff0fda
--- /dev/null
+++ b/qa/suites/rgw/multifs/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/frontend/.qa b/qa/suites/rgw/multifs/frontend/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/multifs/frontend/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/frontend/civetweb.yaml b/qa/suites/rgw/multifs/frontend/civetweb.yaml
new file mode 120000
index 000000000..f9115ff4a
--- /dev/null
+++ b/qa/suites/rgw/multifs/frontend/civetweb.yaml
@@ -0,0 +1 @@
+.qa/rgw_frontend/civetweb.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/ignore-pg-availability.yaml b/qa/suites/rgw/multifs/ignore-pg-availability.yaml
new file mode 120000
index 000000000..32340b1fa
--- /dev/null
+++ b/qa/suites/rgw/multifs/ignore-pg-availability.yaml
@@ -0,0 +1 @@
+.qa/rgw/ignore-pg-availability.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/objectstore b/qa/suites/rgw/multifs/objectstore
new file mode 120000
index 000000000..f81d17413
--- /dev/null
+++ b/qa/suites/rgw/multifs/objectstore
@@ -0,0 +1 @@
+.qa/objectstore_cephfs \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/overrides.yaml b/qa/suites/rgw/multifs/overrides.yaml
new file mode 100644
index 000000000..1cb489072
--- /dev/null
+++ b/qa/suites/rgw/multifs/overrides.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
+ debug rgw: 20
+ rgw crypt s3 kms backend: testing
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
+ rgw:
+ storage classes: LUKEWARM, FROZEN
diff --git a/qa/suites/rgw/multifs/rgw_pool_type b/qa/suites/rgw/multifs/rgw_pool_type
new file mode 120000
index 000000000..3bbd28e96
--- /dev/null
+++ b/qa/suites/rgw/multifs/rgw_pool_type
@@ -0,0 +1 @@
+.qa/rgw_pool_type \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/tasks/.qa b/qa/suites/rgw/multifs/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multifs/tasks/rgw_bucket_quota.yaml b/qa/suites/rgw/multifs/tasks/rgw_bucket_quota.yaml
new file mode 100644
index 000000000..eb4a67ea0
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_bucket_quota.yaml
@@ -0,0 +1,15 @@
+# Amazon/S3.pm (cpan) not available as an rpm
+os_type: ubuntu
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_bucket_quota.pl
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw relaxed s3 bucket names: true
diff --git a/qa/suites/rgw/multifs/tasks/rgw_multipart_upload.yaml b/qa/suites/rgw/multifs/tasks/rgw_multipart_upload.yaml
new file mode 100644
index 000000000..f7e561f07
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_multipart_upload.yaml
@@ -0,0 +1,15 @@
+# Amazon::S3 is not available on el7
+os_type: ubuntu
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_multipart_upload.pl
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw relaxed s3 bucket names: true
diff --git a/qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml b/qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml
new file mode 100644
index 000000000..d6d11b792
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml
@@ -0,0 +1,19 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- ragweed:
+ client.0:
+ default-branch: ceph-pacific
+ rgw_server: client.0
+ stages: prepare
+- ragweed:
+ client.0:
+ default-branch: ceph-pacific
+ rgw_server: client.0
+ stages: check
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw lc debug interval: 10
diff --git a/qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml b/qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml
new file mode 100644
index 000000000..4153c70dd
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml
@@ -0,0 +1,13 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- s3tests:
+ client.0:
+ force-branch: ceph-pacific
+ rgw_server: client.0
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw lc debug interval: 10
diff --git a/qa/suites/rgw/multifs/tasks/rgw_user_quota.yaml b/qa/suites/rgw/multifs/tasks/rgw_user_quota.yaml
new file mode 100644
index 000000000..e661ff33d
--- /dev/null
+++ b/qa/suites/rgw/multifs/tasks/rgw_user_quota.yaml
@@ -0,0 +1,15 @@
+# Amazon/S3.pm (cpan) not available as an rpm
+os_type: ubuntu
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_user_quota.pl
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw relaxed s3 bucket names: true
diff --git a/qa/suites/rgw/multisite/% b/qa/suites/rgw/multisite/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/multisite/%
diff --git a/qa/suites/rgw/multisite/.qa b/qa/suites/rgw/multisite/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/multisite/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/clusters.yaml b/qa/suites/rgw/multisite/clusters.yaml
new file mode 100644
index 000000000..536ef7ca4
--- /dev/null
+++ b/qa/suites/rgw/multisite/clusters.yaml
@@ -0,0 +1,3 @@
+roles:
+- [c1.mon.a, c1.mgr.x, c1.osd.0, c1.osd.1, c1.osd.2, c1.client.0, c1.client.1]
+- [c2.mon.a, c2.mgr.x, c2.osd.0, c2.osd.1, c2.osd.2, c2.client.0, c2.client.1]
diff --git a/qa/suites/rgw/multisite/frontend b/qa/suites/rgw/multisite/frontend
new file mode 120000
index 000000000..926a53e83
--- /dev/null
+++ b/qa/suites/rgw/multisite/frontend
@@ -0,0 +1 @@
+.qa/rgw_frontend \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/ignore-pg-availability.yaml b/qa/suites/rgw/multisite/ignore-pg-availability.yaml
new file mode 120000
index 000000000..32340b1fa
--- /dev/null
+++ b/qa/suites/rgw/multisite/ignore-pg-availability.yaml
@@ -0,0 +1 @@
+.qa/rgw/ignore-pg-availability.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/omap_limits.yaml b/qa/suites/rgw/multisite/omap_limits.yaml
new file mode 100644
index 000000000..9ad1ec9ee
--- /dev/null
+++ b/qa/suites/rgw/multisite/omap_limits.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ # remove the threshold so that test_bucket_index_log_trim() will test DeleteRange
+ rocksdb delete range threshold: 0
+ # instead of expanding the matrix, run each osd with a different omap limit
+ osd.0:
+ osd_max_omap_entries_per_request: 10
+ osd.1:
+ osd_max_omap_entries_per_request: 1000
+ osd.2:
+ osd_max_omap_entries_per_request: 10000
diff --git a/qa/suites/rgw/multisite/overrides.yaml b/qa/suites/rgw/multisite/overrides.yaml
new file mode 100644
index 000000000..7fff1f49e
--- /dev/null
+++ b/qa/suites/rgw/multisite/overrides.yaml
@@ -0,0 +1,19 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
+ debug rgw: 20
+ rgw crypt s3 kms backend: testing
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo=
+ rgw crypt require ssl: false
+ rgw sync log trim interval: 0
+ rgw curl low speed time: 300
+ rgw md log max shards: 4
+ rgw data log num shards: 4
+ rgw sync obj etag verify: true
+ rgw sync meta inject err probability: 0.1
+ rgw:
+ compression type: random
diff --git a/qa/suites/rgw/multisite/realms/.qa b/qa/suites/rgw/multisite/realms/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/multisite/realms/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/realms/three-zone-plus-pubsub.yaml b/qa/suites/rgw/multisite/realms/three-zone-plus-pubsub.yaml
new file mode 100644
index 000000000..e77e5ade4
--- /dev/null
+++ b/qa/suites/rgw/multisite/realms/three-zone-plus-pubsub.yaml
@@ -0,0 +1,23 @@
+overrides:
+ rgw-multisite:
+ realm:
+ name: test-realm
+ is default: true
+ zonegroups:
+ - name: test-zonegroup
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ zones:
+ - name: test-zone1
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ - name: test-zone2
+ is_default: true
+ endpoints: [c2.client.0]
+ - name: test-zone3
+ endpoints: [c1.client.1]
+ - name: test-zone4
+ endpoints: [c2.client.1]
+ is_pubsub: true
diff --git a/qa/suites/rgw/multisite/realms/two-zonegroup.yaml b/qa/suites/rgw/multisite/realms/two-zonegroup.yaml
new file mode 100644
index 000000000..dc5a786ce
--- /dev/null
+++ b/qa/suites/rgw/multisite/realms/two-zonegroup.yaml
@@ -0,0 +1,27 @@
+overrides:
+ rgw-multisite:
+ realm:
+ name: test-realm
+ is default: true
+ zonegroups:
+ - name: a
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ zones:
+ - name: a1
+ is_master: true
+ is_default: true
+ endpoints: [c1.client.0]
+ - name: a2
+ endpoints: [c1.client.1]
+ - name: b
+ is_default: true
+ endpoints: [c2.client.0]
+ zones:
+ - name: b1
+ is_master: true
+ is_default: true
+ endpoints: [c2.client.0]
+ - name: b2
+ endpoints: [c2.client.1]
diff --git a/qa/suites/rgw/multisite/tasks/.qa b/qa/suites/rgw/multisite/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/multisite/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/multisite/tasks/test_multi.yaml b/qa/suites/rgw/multisite/tasks/test_multi.yaml
new file mode 100644
index 000000000..3247f2416
--- /dev/null
+++ b/qa/suites/rgw/multisite/tasks/test_multi.yaml
@@ -0,0 +1,26 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+#os_type: centos
+# ubuntu and no valgrind until we migrate test to py3
+os_type: ubuntu
+
+tasks:
+- install:
+- ceph: {cluster: c1}
+- ceph: {cluster: c2}
+- rgw:
+ c1.client.0:
+ port: 8000
+# valgrind: [--tool=memcheck, --max-threads=1024] # http://tracker.ceph.com/issues/25214
+ c1.client.1:
+ port: 8001
+# valgrind: [--tool=memcheck, --max-threads=1024]
+ c2.client.0:
+ port: 8000
+# valgrind: [--tool=memcheck, --max-threads=1024]
+ c2.client.1:
+ port: 8001
+# valgrind: [--tool=memcheck, --max-threads=1024]
+- rgw-multisite:
+- rgw-multisite-tests:
+ config:
+ reconfigure_delay: 60
diff --git a/qa/suites/rgw/multisite/valgrind.yaml b/qa/suites/rgw/multisite/valgrind.yaml
new file mode 100644
index 000000000..71c56fae4
--- /dev/null
+++ b/qa/suites/rgw/multisite/valgrind.yaml
@@ -0,0 +1,20 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+#os_type: centos
+# ubuntu and no valgrind until we migrate test to py3
+os_type: ubuntu
+
+overrides:
+ install:
+ ceph:
+ ceph:
+ conf:
+ global:
+ osd heartbeat grace: 40
+ mon:
+ mon osd crush smoke test: false
+ osd:
+ osd fast shutdown: false
+# valgrind:
+# mon: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
+# osd: [--tool=memcheck]
+# mds: [--tool=memcheck]
diff --git a/qa/suites/rgw/singleton/% b/qa/suites/rgw/singleton/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/singleton/%
diff --git a/qa/suites/rgw/singleton/.qa b/qa/suites/rgw/singleton/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/singleton/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/all/.qa b/qa/suites/rgw/singleton/all/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/singleton/all/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/all/radosgw-admin.yaml b/qa/suites/rgw/singleton/all/radosgw-admin.yaml
new file mode 100644
index 000000000..010a0647c
--- /dev/null
+++ b/qa/suites/rgw/singleton/all/radosgw-admin.yaml
@@ -0,0 +1,21 @@
+roles:
+- [mon.a, osd.0]
+- [mgr.x, client.0, osd.1, osd.2, osd.3]
+openstack:
+- volumes: # attached to each instance
+ count: 3
+ size: 10 # GB
+tasks:
+- install:
+- ceph:
+ conf:
+ client:
+ debug ms: 1
+ rgw gc obj min wait: 15
+ osd:
+ debug ms: 1
+ debug objclass : 20
+- rgw:
+ client.0:
+- radosgw-admin:
+- radosgw-admin-rest:
diff --git a/qa/suites/rgw/singleton/frontend/.qa b/qa/suites/rgw/singleton/frontend/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/singleton/frontend/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/frontend/civetweb.yaml b/qa/suites/rgw/singleton/frontend/civetweb.yaml
new file mode 120000
index 000000000..f9115ff4a
--- /dev/null
+++ b/qa/suites/rgw/singleton/frontend/civetweb.yaml
@@ -0,0 +1 @@
+.qa/rgw_frontend/civetweb.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/objectstore b/qa/suites/rgw/singleton/objectstore
new file mode 120000
index 000000000..f81d17413
--- /dev/null
+++ b/qa/suites/rgw/singleton/objectstore
@@ -0,0 +1 @@
+.qa/objectstore_cephfs \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/overrides.yaml b/qa/suites/rgw/singleton/overrides.yaml
new file mode 100644
index 000000000..d2aea790a
--- /dev/null
+++ b/qa/suites/rgw/singleton/overrides.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
+ debug rgw: 20
diff --git a/qa/suites/rgw/singleton/rgw_pool_type b/qa/suites/rgw/singleton/rgw_pool_type
new file mode 120000
index 000000000..3bbd28e96
--- /dev/null
+++ b/qa/suites/rgw/singleton/rgw_pool_type
@@ -0,0 +1 @@
+.qa/rgw_pool_type \ No newline at end of file
diff --git a/qa/suites/rgw/singleton/supported-random-distro$ b/qa/suites/rgw/singleton/supported-random-distro$
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/rgw/singleton/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rgw/sts/% b/qa/suites/rgw/sts/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/sts/%
diff --git a/qa/suites/rgw/sts/.qa b/qa/suites/rgw/sts/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/rgw/sts/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/rgw/sts/cluster.yaml b/qa/suites/rgw/sts/cluster.yaml
new file mode 120000
index 000000000..230ff0fda
--- /dev/null
+++ b/qa/suites/rgw/sts/cluster.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/sts/ignore-pg-availability.yaml b/qa/suites/rgw/sts/ignore-pg-availability.yaml
new file mode 120000
index 000000000..32340b1fa
--- /dev/null
+++ b/qa/suites/rgw/sts/ignore-pg-availability.yaml
@@ -0,0 +1 @@
+.qa/rgw/ignore-pg-availability.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/sts/objectstore.yaml b/qa/suites/rgw/sts/objectstore.yaml
new file mode 120000
index 000000000..a59cf5175
--- /dev/null
+++ b/qa/suites/rgw/sts/objectstore.yaml
@@ -0,0 +1 @@
+.qa/objectstore/bluestore-bitmap.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/sts/overrides.yaml b/qa/suites/rgw/sts/overrides.yaml
new file mode 100644
index 000000000..1cb489072
--- /dev/null
+++ b/qa/suites/rgw/sts/overrides.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ wait-for-scrub: false
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
+ debug rgw: 20
+ rgw crypt s3 kms backend: testing
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
+ rgw:
+ storage classes: LUKEWARM, FROZEN
diff --git a/qa/suites/rgw/sts/pool-type.yaml b/qa/suites/rgw/sts/pool-type.yaml
new file mode 120000
index 000000000..697b33b20
--- /dev/null
+++ b/qa/suites/rgw/sts/pool-type.yaml
@@ -0,0 +1 @@
+.qa/rgw_pool_type/replicated.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/sts/rgw_frontend b/qa/suites/rgw/sts/rgw_frontend
new file mode 120000
index 000000000..926a53e83
--- /dev/null
+++ b/qa/suites/rgw/sts/rgw_frontend
@@ -0,0 +1 @@
+.qa/rgw_frontend \ No newline at end of file
diff --git a/qa/suites/rgw/sts/supported-random-distro$ b/qa/suites/rgw/sts/supported-random-distro$
new file mode 120000
index 000000000..0862b4457
--- /dev/null
+++ b/qa/suites/rgw/sts/supported-random-distro$
@@ -0,0 +1 @@
+.qa/distros/supported-random-distro$ \ No newline at end of file
diff --git a/qa/suites/rgw/sts/tasks/+ b/qa/suites/rgw/sts/tasks/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/sts/tasks/+
diff --git a/qa/suites/rgw/sts/tasks/0-install.yaml b/qa/suites/rgw/sts/tasks/0-install.yaml
new file mode 100644
index 000000000..013ccbd26
--- /dev/null
+++ b/qa/suites/rgw/sts/tasks/0-install.yaml
@@ -0,0 +1,15 @@
+tasks:
+- install:
+- ceph:
+- openssl_keys:
+- rgw:
+ client.0:
+
+overrides:
+ ceph:
+ conf:
+ global:
+ osd_min_pg_log_entries: 10
+ osd_max_pg_log_entries: 10
+ client:
+ rgw lc debug interval: 10
diff --git a/qa/suites/rgw/sts/tasks/first.yaml b/qa/suites/rgw/sts/tasks/first.yaml
new file mode 100644
index 000000000..8892f7082
--- /dev/null
+++ b/qa/suites/rgw/sts/tasks/first.yaml
@@ -0,0 +1,17 @@
+tasks:
+- tox: [ client.0 ]
+- keycloak:
+ client.0:
+ keycloak_version: 11.0.0
+- s3tests:
+ client.0:
+ sts_tests: True
+ force-branch: ceph-pacific
+ rgw_server: client.0
+ extra_attrs: ['webidentity_test']
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw sts key: abcdefghijklmnop
+ rgw s3 auth use sts: true
diff --git a/qa/suites/rgw/sts/tasks/ststests.yaml b/qa/suites/rgw/sts/tasks/ststests.yaml
new file mode 100644
index 000000000..a154e5dd0
--- /dev/null
+++ b/qa/suites/rgw/sts/tasks/ststests.yaml
@@ -0,0 +1,13 @@
+tasks:
+- s3tests:
+ client.0:
+ sts_tests: True
+ extra_attrs: ["test_of_sts"]
+ force-branch: ceph-pacific
+ rgw_server: client.0
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw sts key: abcdefghijklmnop
+ rgw s3 auth use sts: true
diff --git a/qa/suites/rgw/tempest/% b/qa/suites/rgw/tempest/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/tempest/%
diff --git a/qa/suites/rgw/tempest/.qa b/qa/suites/rgw/tempest/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/tempest/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/clusters/.qa b/qa/suites/rgw/tempest/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/tempest/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/clusters/fixed-1.yaml b/qa/suites/rgw/tempest/clusters/fixed-1.yaml
new file mode 120000
index 000000000..02df5dd0c
--- /dev/null
+++ b/qa/suites/rgw/tempest/clusters/fixed-1.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-1.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/frontend b/qa/suites/rgw/tempest/frontend
new file mode 120000
index 000000000..926a53e83
--- /dev/null
+++ b/qa/suites/rgw/tempest/frontend
@@ -0,0 +1 @@
+.qa/rgw_frontend \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/overrides.yaml b/qa/suites/rgw/tempest/overrides.yaml
new file mode 100644
index 000000000..e7a292ffd
--- /dev/null
+++ b/qa/suites/rgw/tempest/overrides.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
+ debug rgw: 20
diff --git a/qa/suites/rgw/tempest/tasks/.qa b/qa/suites/rgw/tempest/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/tempest/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/tempest/tasks/rgw_tempest.yaml b/qa/suites/rgw/tempest/tasks/rgw_tempest.yaml
new file mode 100644
index 000000000..72559c64c
--- /dev/null
+++ b/qa/suites/rgw/tempest/tasks/rgw_tempest.yaml
@@ -0,0 +1,70 @@
+# ubuntu for py2 until we move to py3
+os_type: ubuntu
+
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+tasks:
+- install:
+- ceph:
+- tox: [ client.0 ]
+- keystone:
+ client.0:
+ sha1: 17.0.0.0rc2
+ force-branch: master
+ services:
+ - name: swift
+ type: object-store
+ description: Swift Service
+- rgw:
+ client.0:
+ frontend_prefix: /swift
+ use-keystone-role: client.0
+- tempest:
+ client.0:
+ sha1: train-last
+ force-branch: master
+ use-keystone-role: client.0
+ auth:
+ admin_username: admin
+ admin_project_name: admin
+ admin_password: ADMIN
+ admin_domain_name: Default
+ tempest_roles: admin
+ identity:
+ uri: http://{keystone_public_host}:{keystone_public_port}/v2.0/
+ uri_v3: http://{keystone_public_host}:{keystone_public_port}/v3/
+ auth_version: v3
+ admin_role: admin
+ default_domain_name: Default
+ object-storage:
+ reseller_admin_role: admin
+ object-storage-feature-enabled:
+ container_sync: false
+ discoverability: true
+ blocklist:
+ - .*test_account_quotas_negative.AccountQuotasNegativeTest.test_user_modify_quota
+ - .*test_container_acl_negative.ObjectACLsNegativeTest.*
+ - .*test_container_services_negative.ContainerNegativeTest.test_create_container_metadata_.*
+ - .*test_container_staticweb.StaticWebTest.test_web_index
+ - .*test_container_staticweb.StaticWebTest.test_web_listing_css
+ - .*test_container_synchronization.*
+ - .*test_object_services.PublicObjectTest.test_access_public_container_object_without_using_creds
+ - .*test_object_services.ObjectTest.test_create_object_with_transfer_encoding
+
+overrides:
+ ceph:
+ conf:
+ global:
+ osd_min_pg_log_entries: 10
+ osd_max_pg_log_entries: 10
+ client:
+ rgw keystone api version: 3
+ rgw keystone accepted roles: admin,Member
+ rgw keystone implicit tenants: true
+ rgw keystone accepted admin roles: admin
+ rgw swift enforce content length: true
+ rgw swift account in url: true
+ rgw swift versioning enabled: true
+ rgw keystone admin domain: Default
+ rgw keystone admin user: admin
+ rgw keystone admin password: ADMIN
+ rgw keystone admin project: admin
diff --git a/qa/suites/rgw/tempest/ubuntu_latest.yaml b/qa/suites/rgw/tempest/ubuntu_latest.yaml
new file mode 120000
index 000000000..3a09f9abb
--- /dev/null
+++ b/qa/suites/rgw/tempest/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/% b/qa/suites/rgw/thrash/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/thrash/%
diff --git a/qa/suites/rgw/thrash/.qa b/qa/suites/rgw/thrash/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/thrash/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/civetweb.yaml b/qa/suites/rgw/thrash/civetweb.yaml
new file mode 100644
index 000000000..db4b04339
--- /dev/null
+++ b/qa/suites/rgw/thrash/civetweb.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
+ rgw:
+ frontend: civetweb
diff --git a/qa/suites/rgw/thrash/clusters/.qa b/qa/suites/rgw/thrash/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/thrash/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/clusters/fixed-2.yaml b/qa/suites/rgw/thrash/clusters/fixed-2.yaml
new file mode 120000
index 000000000..230ff0fda
--- /dev/null
+++ b/qa/suites/rgw/thrash/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/install.yaml b/qa/suites/rgw/thrash/install.yaml
new file mode 100644
index 000000000..84a1d70cf
--- /dev/null
+++ b/qa/suites/rgw/thrash/install.yaml
@@ -0,0 +1,5 @@
+tasks:
+- install:
+- ceph:
+- rgw: [client.0]
+
diff --git a/qa/suites/rgw/thrash/objectstore b/qa/suites/rgw/thrash/objectstore
new file mode 120000
index 000000000..f81d17413
--- /dev/null
+++ b/qa/suites/rgw/thrash/objectstore
@@ -0,0 +1 @@
+.qa/objectstore_cephfs \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/thrasher/.qa b/qa/suites/rgw/thrash/thrasher/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/thrash/thrasher/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/thrasher/default.yaml b/qa/suites/rgw/thrash/thrasher/default.yaml
new file mode 100644
index 000000000..1f35f1bc9
--- /dev/null
+++ b/qa/suites/rgw/thrash/thrasher/default.yaml
@@ -0,0 +1,9 @@
+tasks:
+- thrashosds:
+ timeout: 1200
+ chance_pgnum_grow: 1
+ chance_pgnum_shrink: 1
+ chance_pgpnum_fix: 1
+ op_delay: 30
+ chance_test_min_size: 0
+ ceph_objectstore_tool: false
diff --git a/qa/suites/rgw/thrash/thrashosds-health.yaml b/qa/suites/rgw/thrash/thrashosds-health.yaml
new file mode 120000
index 000000000..9124eb1aa
--- /dev/null
+++ b/qa/suites/rgw/thrash/thrashosds-health.yaml
@@ -0,0 +1 @@
+.qa/tasks/thrashosds-health.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/workload/.qa b/qa/suites/rgw/thrash/workload/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/thrash/workload/rgw_bucket_quota.yaml b/qa/suites/rgw/thrash/workload/rgw_bucket_quota.yaml
new file mode 100644
index 000000000..eef9ca3ec
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_bucket_quota.yaml
@@ -0,0 +1,12 @@
+# Amazon/S3.pm (cpan) not available as an rpm
+os_type: ubuntu
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_bucket_quota.pl
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw relaxed s3 bucket names: true
diff --git a/qa/suites/rgw/thrash/workload/rgw_multipart_upload.yaml b/qa/suites/rgw/thrash/workload/rgw_multipart_upload.yaml
new file mode 100644
index 000000000..f364f2d23
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_multipart_upload.yaml
@@ -0,0 +1,12 @@
+# Amazon::S3 is not available on el7
+os_type: ubuntu
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_multipart_upload.pl
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw relaxed s3 bucket names: true
diff --git a/qa/suites/rgw/thrash/workload/rgw_s3tests.yaml b/qa/suites/rgw/thrash/workload/rgw_s3tests.yaml
new file mode 100644
index 000000000..814098654
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_s3tests.yaml
@@ -0,0 +1,13 @@
+tasks:
+- s3tests:
+ client.0:
+ force-branch: ceph-pacific
+ rgw_server: client.0
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw lc debug interval: 10
+ rgw crypt s3 kms backend: testing
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
diff --git a/qa/suites/rgw/thrash/workload/rgw_user_quota.yaml b/qa/suites/rgw/thrash/workload/rgw_user_quota.yaml
new file mode 100644
index 000000000..670ac0c17
--- /dev/null
+++ b/qa/suites/rgw/thrash/workload/rgw_user_quota.yaml
@@ -0,0 +1,12 @@
+# Amazon/S3.pm (cpan) not available as an rpm
+os_type: ubuntu
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rgw/s3_user_quota.pl
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw relaxed s3 bucket names: true
diff --git a/qa/suites/rgw/tools/+ b/qa/suites/rgw/tools/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/tools/+
diff --git a/qa/suites/rgw/tools/.qa b/qa/suites/rgw/tools/.qa
new file mode 120000
index 000000000..fea2489fd
--- /dev/null
+++ b/qa/suites/rgw/tools/.qa
@@ -0,0 +1 @@
+../.qa \ No newline at end of file
diff --git a/qa/suites/rgw/tools/centos_latest.yaml b/qa/suites/rgw/tools/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/rgw/tools/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/tools/cluster.yaml b/qa/suites/rgw/tools/cluster.yaml
new file mode 100644
index 000000000..0eab7ebad
--- /dev/null
+++ b/qa/suites/rgw/tools/cluster.yaml
@@ -0,0 +1,9 @@
+roles:
+- [mon.a, osd.0, osd.1, osd.2, mgr.0, client.0]
+openstack:
+- volumes: # attached to each instance
+ count: 1
+ size: 10 # GB
+overrides:
+ rgw:
+ frontend: beast \ No newline at end of file
diff --git a/qa/suites/rgw/tools/tasks.yaml b/qa/suites/rgw/tools/tasks.yaml
new file mode 100644
index 000000000..acceb21c8
--- /dev/null
+++ b/qa/suites/rgw/tools/tasks.yaml
@@ -0,0 +1,19 @@
+tasks:
+- install:
+- ceph:
+- rgw:
+ client.0:
+ # force rgw_dns_name to be set with the fully qualified host name;
+ # it will be appended to the empty string
+ dns-name: ''
+- workunit:
+ clients:
+ client.0:
+ - rgw/test_rgw_orphan_list.sh
+overrides:
+ ceph:
+ conf:
+ client:
+ debug rgw: 20
+ debug ms: 1
+ rgw enable static website: false
diff --git a/qa/suites/rgw/verify/% b/qa/suites/rgw/verify/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/verify/%
diff --git a/qa/suites/rgw/verify/.qa b/qa/suites/rgw/verify/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/verify/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/centos_latest.yaml b/qa/suites/rgw/verify/centos_latest.yaml
new file mode 120000
index 000000000..bd9854e70
--- /dev/null
+++ b/qa/suites/rgw/verify/centos_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/verify/clusters/.qa b/qa/suites/rgw/verify/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/verify/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/clusters/fixed-2.yaml b/qa/suites/rgw/verify/clusters/fixed-2.yaml
new file mode 120000
index 000000000..230ff0fda
--- /dev/null
+++ b/qa/suites/rgw/verify/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/verify/frontend b/qa/suites/rgw/verify/frontend
new file mode 120000
index 000000000..926a53e83
--- /dev/null
+++ b/qa/suites/rgw/verify/frontend
@@ -0,0 +1 @@
+.qa/rgw_frontend \ No newline at end of file
diff --git a/qa/suites/rgw/verify/ignore-pg-availability.yaml b/qa/suites/rgw/verify/ignore-pg-availability.yaml
new file mode 120000
index 000000000..32340b1fa
--- /dev/null
+++ b/qa/suites/rgw/verify/ignore-pg-availability.yaml
@@ -0,0 +1 @@
+.qa/rgw/ignore-pg-availability.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/verify/msgr-failures/.qa b/qa/suites/rgw/verify/msgr-failures/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/verify/msgr-failures/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/msgr-failures/few.yaml b/qa/suites/rgw/verify/msgr-failures/few.yaml
new file mode 100644
index 000000000..519288992
--- /dev/null
+++ b/qa/suites/rgw/verify/msgr-failures/few.yaml
@@ -0,0 +1,8 @@
+overrides:
+ ceph:
+ conf:
+ global:
+ ms inject socket failures: 5000
+ mon client directed command retry: 5
+ log-ignorelist:
+ - \(OSD_SLOW_PING_TIME
diff --git a/qa/suites/rgw/verify/objectstore b/qa/suites/rgw/verify/objectstore
new file mode 120000
index 000000000..f81d17413
--- /dev/null
+++ b/qa/suites/rgw/verify/objectstore
@@ -0,0 +1 @@
+.qa/objectstore_cephfs \ No newline at end of file
diff --git a/qa/suites/rgw/verify/overrides.yaml b/qa/suites/rgw/verify/overrides.yaml
new file mode 100644
index 000000000..aefee7b70
--- /dev/null
+++ b/qa/suites/rgw/verify/overrides.yaml
@@ -0,0 +1,13 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ setuser: ceph
+ setgroup: ceph
+ debug rgw: 20
+ rgw crypt s3 kms backend: testing
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
+ rgw:
+ compression type: random
+ storage classes: LUKEWARM, FROZEN
diff --git a/qa/suites/rgw/verify/proto/.qa b/qa/suites/rgw/verify/proto/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/verify/proto/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/proto/http.yaml b/qa/suites/rgw/verify/proto/http.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/verify/proto/http.yaml
diff --git a/qa/suites/rgw/verify/proto/https.yaml b/qa/suites/rgw/verify/proto/https.yaml
new file mode 100644
index 000000000..fb6b65206
--- /dev/null
+++ b/qa/suites/rgw/verify/proto/https.yaml
@@ -0,0 +1,20 @@
+overrides:
+ openssl_keys:
+ root:
+ client: client.0
+ key-type: rsa:4096
+ cn: teuthology
+ install: [client.0, client.1]
+ rgw.client.0:
+ client: client.0
+ ca: root
+ embed-key: true
+ rgw.client.1:
+ client: client.1
+ ca: root
+ embed-key: true
+ rgw:
+ client.0:
+ ssl certificate: rgw.client.0
+ client.1:
+ ssl certificate: rgw.client.1
diff --git a/qa/suites/rgw/verify/rgw_pool_type b/qa/suites/rgw/verify/rgw_pool_type
new file mode 120000
index 000000000..3bbd28e96
--- /dev/null
+++ b/qa/suites/rgw/verify/rgw_pool_type
@@ -0,0 +1 @@
+.qa/rgw_pool_type \ No newline at end of file
diff --git a/qa/suites/rgw/verify/sharding$ b/qa/suites/rgw/verify/sharding$
new file mode 120000
index 000000000..148393cbf
--- /dev/null
+++ b/qa/suites/rgw/verify/sharding$
@@ -0,0 +1 @@
+.qa/rgw_bucket_sharding \ No newline at end of file
diff --git a/qa/suites/rgw/verify/striping$/stripe-equals-chunk.yaml b/qa/suites/rgw/verify/striping$/stripe-equals-chunk.yaml
new file mode 100644
index 000000000..9b3e20a81
--- /dev/null
+++ b/qa/suites/rgw/verify/striping$/stripe-equals-chunk.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ # use default values where chunk-size=stripe-size
+ #rgw max chunk size: 4194304
+ #rgw obj stripe size: 4194304
diff --git a/qa/suites/rgw/verify/striping$/stripe-greater-than-chunk.yaml b/qa/suites/rgw/verify/striping$/stripe-greater-than-chunk.yaml
new file mode 100644
index 000000000..3bf40d6da
--- /dev/null
+++ b/qa/suites/rgw/verify/striping$/stripe-greater-than-chunk.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ rgw max chunk size: 4194304
+ # stripe size greater than (and not a multiple of) chunk size
+ rgw obj stripe size: 6291456
diff --git a/qa/suites/rgw/verify/tasks/+ b/qa/suites/rgw/verify/tasks/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/+
diff --git a/qa/suites/rgw/verify/tasks/.qa b/qa/suites/rgw/verify/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/tasks/0-install.yaml b/qa/suites/rgw/verify/tasks/0-install.yaml
new file mode 100644
index 000000000..5ebe67269
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/0-install.yaml
@@ -0,0 +1,20 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+os_type: centos
+
+tasks:
+- install:
+# flavor: notcmalloc
+- ceph:
+- openssl_keys:
+- rgw:
+ client.0:
+# valgrind: [--tool=memcheck, --max-threads=1024] # http://tracker.ceph.com/issues/25214
+
+overrides:
+ ceph:
+ conf:
+ global:
+ osd_min_pg_log_entries: 10
+ osd_max_pg_log_entries: 10
+ client:
+ rgw lc debug interval: 10
diff --git a/qa/suites/rgw/verify/tasks/cls.yaml b/qa/suites/rgw/verify/tasks/cls.yaml
new file mode 100644
index 000000000..beabc3213
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/cls.yaml
@@ -0,0 +1,14 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - cls/test_cls_lock.sh
+ - cls/test_cls_log.sh
+ - cls/test_cls_refcount.sh
+ - cls/test_cls_rgw.sh
+ - cls/test_cls_cmpomap.sh
+ - cls/test_cls_2pc_queue.sh
+ - rgw/test_rgw_gc_log.sh
+ - rgw/test_rgw_obj.sh
+ - rgw/test_rgw_throttle.sh
+ - rgw/test_librgw_file.sh
diff --git a/qa/suites/rgw/verify/tasks/ragweed.yaml b/qa/suites/rgw/verify/tasks/ragweed.yaml
new file mode 100644
index 000000000..a84f4f14d
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/ragweed.yaml
@@ -0,0 +1,6 @@
+tasks:
+- ragweed:
+ client.0:
+ default-branch: ceph-pacific
+ rgw_server: client.0
+ stages: prepare,check
diff --git a/qa/suites/rgw/verify/tasks/reshard.yaml b/qa/suites/rgw/verify/tasks/reshard.yaml
new file mode 100644
index 000000000..db65af36a
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/reshard.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ client.0:
+ - rgw/run-reshard.sh
diff --git a/qa/suites/rgw/verify/tasks/s3tests-java.yaml b/qa/suites/rgw/verify/tasks/s3tests-java.yaml
new file mode 100644
index 000000000..455f86485
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/s3tests-java.yaml
@@ -0,0 +1,6 @@
+tasks:
+- s3tests-java:
+ client.0:
+ force-branch: ceph-pacific
+ force-repo: https://github.com/ceph/java_s3tests.git
+
diff --git a/qa/suites/rgw/verify/tasks/s3tests.yaml b/qa/suites/rgw/verify/tasks/s3tests.yaml
new file mode 100644
index 000000000..4cb6b6236
--- /dev/null
+++ b/qa/suites/rgw/verify/tasks/s3tests.yaml
@@ -0,0 +1,5 @@
+tasks:
+- s3tests:
+ client.0:
+ force-branch: ceph-pacific
+ rgw_server: client.0
diff --git a/qa/suites/rgw/verify/validater/.qa b/qa/suites/rgw/verify/validater/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/verify/validater/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/verify/validater/lockdep.yaml b/qa/suites/rgw/verify/validater/lockdep.yaml
new file mode 100644
index 000000000..941fe12b1
--- /dev/null
+++ b/qa/suites/rgw/verify/validater/lockdep.yaml
@@ -0,0 +1,7 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ lockdep: true
+ mon:
+ lockdep: true
diff --git a/qa/suites/rgw/verify/validater/valgrind.yaml b/qa/suites/rgw/verify/validater/valgrind.yaml
new file mode 100644
index 000000000..7b7e4d45e
--- /dev/null
+++ b/qa/suites/rgw/verify/validater/valgrind.yaml
@@ -0,0 +1,18 @@
+overrides:
+ install:
+ ceph:
+ #debuginfo: true
+ ceph:
+ conf:
+ global:
+ osd heartbeat grace: 40
+ mon:
+ mon osd crush smoke test: false
+ osd:
+ osd fast shutdown: false
+# valgrind:
+# mon: [--tool=memcheck, --leak-check=full, --show-reachable=yes]
+# osd: [--tool=memcheck]
+# mds: [--tool=memcheck]
+## https://tracker.ceph.com/issues/38621
+## mgr: [--tool=memcheck]
diff --git a/qa/suites/rgw/website/% b/qa/suites/rgw/website/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/rgw/website/%
diff --git a/qa/suites/rgw/website/.qa b/qa/suites/rgw/website/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/website/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/website/clusters/.qa b/qa/suites/rgw/website/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/website/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/website/clusters/fixed-2.yaml b/qa/suites/rgw/website/clusters/fixed-2.yaml
new file mode 120000
index 000000000..230ff0fda
--- /dev/null
+++ b/qa/suites/rgw/website/clusters/fixed-2.yaml
@@ -0,0 +1 @@
+.qa/clusters/fixed-2.yaml \ No newline at end of file
diff --git a/qa/suites/rgw/website/frontend b/qa/suites/rgw/website/frontend
new file mode 120000
index 000000000..926a53e83
--- /dev/null
+++ b/qa/suites/rgw/website/frontend
@@ -0,0 +1 @@
+.qa/rgw_frontend \ No newline at end of file
diff --git a/qa/suites/rgw/website/http.yaml b/qa/suites/rgw/website/http.yaml
new file mode 100644
index 000000000..24cb6fc5d
--- /dev/null
+++ b/qa/suites/rgw/website/http.yaml
@@ -0,0 +1 @@
+# https tests would need to generate wildcard certificates; only test http for now
diff --git a/qa/suites/rgw/website/overrides.yaml b/qa/suites/rgw/website/overrides.yaml
new file mode 100644
index 000000000..e1ac1a983
--- /dev/null
+++ b/qa/suites/rgw/website/overrides.yaml
@@ -0,0 +1,30 @@
+# see http://tracker.ceph.com/issues/20360 and http://tracker.ceph.com/issues/18126
+# letting this run on ubuntu for now, though -sage
+#os_type: centos
+
+overrides:
+ install:
+ ceph:
+ conf:
+ global:
+ osd_min_pg_log_entries: 10
+ osd_max_pg_log_entries: 10
+ client:
+ setuser: ceph
+ setgroup: ceph
+ debug rgw: 20
+ rgw crypt s3 kms backend: testing
+ rgw crypt s3 kms encryption keys: testkey-1=YmluCmJvb3N0CmJvb3N0LWJ1aWxkCmNlcGguY29uZgo= testkey-2=aWIKTWFrZWZpbGUKbWFuCm91dApzcmMKVGVzdGluZwo=
+ rgw crypt require ssl: false
+ rgw enable static website: True
+ client.0:
+ rgw lc debug interval: 10
+ client.1:
+ rgw enable apis: s3website
+ rgw:
+ client.0:
+# valgrind: [--tool=memcheck, --max-threads=1024] # http://tracker.ceph.com/issues/25214
+ client.1:
+# valgrind: [--tool=memcheck, --max-threads=1024] # http://tracker.ceph.com/issues/25214
+ s3tests:
+ calling-format: subdomain
diff --git a/qa/suites/rgw/website/tasks/.qa b/qa/suites/rgw/website/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/rgw/website/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/rgw/website/tasks/s3tests-website.yaml b/qa/suites/rgw/website/tasks/s3tests-website.yaml
new file mode 100644
index 000000000..02128433e
--- /dev/null
+++ b/qa/suites/rgw/website/tasks/s3tests-website.yaml
@@ -0,0 +1,17 @@
+tasks:
+- install:
+- ceph:
+- dnsmasq:
+ client.0:
+ s3.: client.0
+ s3-website.: client.1
+- rgw:
+ client.0:
+ dns-name: s3.
+ client.1:
+ dns-s3website-name: s3-website.
+- s3tests:
+ client.0:
+ force-branch: ceph-pacific
+ rgw_server: client.0
+ rgw_website_server: client.1
diff --git a/qa/suites/rgw/website/ubuntu_latest.yaml b/qa/suites/rgw/website/ubuntu_latest.yaml
new file mode 120000
index 000000000..3a09f9abb
--- /dev/null
+++ b/qa/suites/rgw/website/ubuntu_latest.yaml
@@ -0,0 +1 @@
+.qa/distros/supported/ubuntu_latest.yaml \ No newline at end of file