--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+.qa/distros/supported/centos_latest.yaml
\ No newline at end of file
--- /dev/null
+overrides:
+ ceph:
+ conf:
+ global:
+ debug ms: 1
+ debug auth: 30
+ debug monc: 30
+ log to file: true
+ auth mon ticket ttl: 300
+ auth service ticket ttl: 120
+ mon:
+ debug mon: 30
+ debug ms: 5
--- /dev/null
+overrides:
+ ceph:
+ log-ignorelist:
+ - do not have an application enabled
+ - application not enabled
+ - or freeform for custom applications
+ - POOL_APP_NOT_ENABLED
+ - is down
+ - OSD_DOWN
+ - mons down
+ - mon down
+ - MON_DOWN
+ - out of quorum
+ - PG_AVAILABILITY
+ - PG_DEGRADED
+ - Reduced data availability
+ - Degraded data redundancy
+ - pg .* is stuck inactive
+ - pg .* is .*degraded
+ - FS_DEGRADED
+ - OSDMAP_FLAGS
+ - OSD_UPGRADE_FINISHED
+ - OSD_HOST_DOWN
+ - filesystem is degraded
+ - evicting unresponsive client
--- /dev/null
+overrides:
+ ceph:
+ conf:
+ global:
+ mon warn on msgr2 not enabled: false
+ osd:
+ ms bind msgr1: true
+ ms bind msgr2: false
+ mds:
+ ms bind msgr1: true
+ ms bind msgr2: false
+ mon:
+ ms bind msgr1: true
+ ms bind msgr2: false
+ mgr:
+ ms bind msgr1: true
+ ms bind msgr2: false
--- /dev/null
+overrides:
+ ceph:
+ conf:
+ global:
+ mon warn on msgr2 not enabled: false
+ osd:
+ ms bind msgr1: false
+ ms bind msgr2: true
+ mds:
+ ms bind msgr1: false
+ ms bind msgr2: true
+ mon:
+ ms bind msgr1: false
+ ms bind msgr2: true
+ mgr:
+ ms bind msgr1: false
+ ms bind msgr2: true
--- /dev/null
+roles:
+- [mon.a, mds.a, mgr.x, osd.0, osd.1]
+- [mon.b, mon.c, mds.b, mgr.y, osd.2, osd.3]
+- [client.0]
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+tasks:
+- install:
--- /dev/null
+tasks:
+- ceph:
+ cluster-conf:
+ global:
+ auth service cipher: aes
+ cephx preferred cipher: aes
+ mon:
+ mon auth allow insecure key: true
+ cephx:
+ key_type: aes
--- /dev/null
+tasks:
+- full_sequential_finally:
+ - exec:
+ mon.a:
+ - sleep 1m
+- exec:
+ mon.a:
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 tell mon.a config diff
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 tell mon.b config diff
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 tell mon.c config diff
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 config dump
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 auth ls
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 auth --format=json dump-keys
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+radosbench:
+ sequential_yield:
+ - radosbench:
+ extra_args: --log-to-stderr=false --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 --mon_client_target_rank=0
+ clients: [client.0]
+ time: 300
+ unique_pool: true
+
+tasks:
+ - sequential_yield:
+ - radosbench
--- /dev/null
+tasks:
+- ceph.key_rotate:
+ daemons: [mon.*]
+ key_type: aes256k
+- ceph.key_rotate:
+ daemons: [mgr.*, osd.*, mds.*]
+ key_type: aes256k
+- exec:
+ mon.a:
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 auth ls
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 auth --format=json-pretty dump-keys
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 auth --format=json dump-keys | jq 'any(.data.secrets[] | select(.key.type == 1 or .key.type == 2 or .key.type == 4 or .key.type == 16); .val.key.type != 2)'
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 auth --format=json dump-keys | jq '.data.rotating_secrets | all( .val.secrets | all(.val.key.type == 1) )'
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 config set global auth_service_cipher aes256k
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+teuthology:
+ variables:
+ wipe_service_keys: false
--- /dev/null
+tasks:
+- exec:
+ mon.a:
+ - ceph auth wipe-rotating-service-keys
+ - ceph auth --format=json-pretty dump-keys
+ - ceph auth --format=json dump-keys | jq '.data.rotating_secrets | all( if .key == 32 then (.val.secrets | all(.val.key.type == 1)) else (.val.secrets | all(.val.key.type == 2)) end )'
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+# Sleep for ticket refresh.
+tasks:
+- sleep:
+ duration: 500
--- /dev/null
+overrides:
+ ceph:
+ log-ignorelist:
+ - OSD_DOWN
+ - OSD_ROOT_DOWN
+tasks:
+- sleep:
+ duration: 10
+- ceph.restart:
+ daemons: [mon.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+- ceph.restart:
+ daemons: [mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+- ceph.restart:
+ daemons: [osd.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+ wait-for-osds-up: true
+- ceph.restart:
+ daemons: [mds.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+tasks:
+ - radosbench:
+ extra_args: --log-to-stderr=false --log-to-file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 --mon_client_target_rank=0
+ clients: [client.0]
+ time: 10
+ unique_pool: true
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+.qa/distros/supported/centos_latest.yaml
\ No newline at end of file
--- /dev/null
+overrides:
+ ceph:
+ conf:
+ global:
+ debug ms: 1
+ debug auth: 30
+ debug monc: 30
+ log to file: true
+ auth mon ticket ttl: 300
+ auth service ticket ttl: 120
+ mon:
+ debug mon: 30
+ debug ms: 5
--- /dev/null
+overrides:
+ ceph:
+ log-ignorelist:
+ - do not have an application enabled
+ - application not enabled
+ - or freeform for custom applications
+ - POOL_APP_NOT_ENABLED
+ - is down
+ - OSD_DOWN
+ - mons down
+ - mon down
+ - MON_DOWN
+ - out of quorum
+ - PG_AVAILABILITY
+ - PG_DEGRADED
+ - Reduced data availability
+ - Degraded data redundancy
+ - pg .* is stuck inactive
+ - pg .* is .*degraded
+ - FS_DEGRADED
+ - OSDMAP_FLAGS
+ - OSD_UPGRADE_FINISHED
+ - OSD_HOST_DOWN
+ - filesystem is degraded
+ - evicting unresponsive client
--- /dev/null
+overrides:
+ ceph:
+ conf:
+ global:
+ mon warn on msgr2 not enabled: false
+ osd:
+ ms bind msgr1: true
+ ms bind msgr2: false
+ mds:
+ ms bind msgr1: true
+ ms bind msgr2: false
+ mon:
+ ms bind msgr1: true
+ ms bind msgr2: false
+ mgr:
+ ms bind msgr1: true
+ ms bind msgr2: false
--- /dev/null
+overrides:
+ ceph:
+ conf:
+ global:
+ mon warn on msgr2 not enabled: false
+ osd:
+ ms bind msgr1: false
+ ms bind msgr2: true
+ mds:
+ ms bind msgr1: false
+ ms bind msgr2: true
+ mon:
+ ms bind msgr1: false
+ ms bind msgr2: true
+ mgr:
+ ms bind msgr1: false
+ ms bind msgr2: true
--- /dev/null
+roles:
+- [mon.a, mds.a, mgr.x, osd.0, osd.1]
+- [mon.b, mon.c, mds.b, mgr.y, osd.2, osd.3]
+- [client.0]
+- [client.1]
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+meta:
+- desc: |
+ install ceph/reef v18.2.7
+tasks:
+- install:
+ tag: v18.2.7
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-rook
+ - ceph-mgr-cephadm
+ - cephadm
+ - ceph-volume
+ extra_packages: ['librados2']
+- print: "**** done installing v18.2.7"
+- ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+- exec:
+ osd.0:
+ - ceph osd set-require-min-compat-client reef
+- print: "**** done ceph"
--- /dev/null
+meta:
+- desc: |
+ install ceph/squid v19.2.2
+tasks:
+- install:
+ tag: v19.2.2
+ exclude_packages:
+ - librados3
+ - ceph-mgr-dashboard
+ - ceph-mgr-diskprediction-local
+ - ceph-mgr-rook
+ - ceph-mgr-cephadm
+ - cephadm
+ - ceph-volume
+ extra_packages: ['librados2']
+- print: "**** done installing squid v19.2.2"
+- ceph:
+ log-ignorelist:
+ - overall HEALTH_
+ - \(FS_
+ - \(MDS_
+ - \(OSD_
+ - \(MON_DOWN\)
+ - \(CACHE_POOL_
+ - \(POOL_
+ - \(MGR_DOWN\)
+ - \(PG_
+ - \(SMALLER_PGP_NUM\)
+ - Monitor daemon marked osd
+ - Behind on trimming
+ - Manager daemon
+ conf:
+ global:
+ mon warn on pool no app: false
+- exec:
+ osd.0:
+ - ceph osd set-require-min-compat-client squid
+- print: "**** done ceph"
--- /dev/null
+tasks:
+- full_sequential_finally:
+ - exec:
+ mon.a:
+ - sleep 1m
+- exec:
+ mon.a:
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 tell mon.a config diff
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 tell mon.b config diff
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 tell mon.c config diff
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 config dump
+ - ceph --log-to-stderr=true --log_to_file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 auth ls
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+# We can't set auth_exit_on_failure here because squid/reef do not understand that switch.
+#teuthology:
+# postmerge:
+# - |
+# if false and yaml.teuthology.variables.wipe_service_keys then
+# yaml.radosbench.sequential_yield[0].radosbench.auth_exit_on_failure = 99
+# yaml.radosbench.sequential_yield[0].radosbench.expected_rc = 99
+# end
+
+# N.B. because `rados bench` has sessions open with the OSDs, we do not expect
+# it to fail any auth after upgrade / rotation / session key wipe. It will only
+# fail new connections with OSDs.
+radosbench:
+ sequential_yield:
+ - radosbench:
+ extra_args: --log-to-stderr=false --log-to-file=true --debug_ms=5 --debug_auth=30 --debug_monc=30 --mon_client_target_rank=0
+ clients: [client.0]
+ time: 300
+ unique_pool: true
+
+tasks:
+ - sequential_yield:
+ - radosbench
--- /dev/null
+tasks:
+- install.upgrade:
+ mon.a:
+ mon.b:
+ client.0:
+- ceph.restart:
+ daemons: [mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+- ceph.restart:
+ daemons: [mon.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+- ceph.restart:
+ daemons: [osd.*]
+ mon-health-to-clog: false
+ wait-for-osds-up: true
+ wait-for-healthy: false
+- exec:
+ mon.a:
+ - ceph versions
+ - ceph osd dump -f json-pretty
+ - ceph osd require-osd-release tentacle
+ - for f in `ceph osd pool ls` ; do ceph osd pool set $f pg_autoscale_mode off ; done
+- ceph.restart:
+ daemons: [mds.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+- exec:
+ mon.a:
+ - ceph versions
+ - ceph fs dump
--- /dev/null
+tasks:
+- ceph.key_rotate:
+ daemons: [mon.*]
+ key_type: aes256k
+- ceph.key_rotate:
+ daemons: [mgr.*, osd.*, mds.*]
+ key_type: aes256k
+- exec:
+ mon.a:
+ - ceph --debug_ms=5 --debug_auth=30 --debug_monc=30 auth ls
+ - ceph --debug_ms=5 --debug_auth=30 --debug_monc=30 auth --format=json-pretty dump-keys
+ - ceph --debug_ms=5 --debug_auth=30 --debug_monc=30 auth --format=json dump-keys | jq 'any(.data.secrets[] | select(.key.type == 1 or .key.type == 2 or .key.type == 4 or .key.type == 16); .val.key.type != 2)'
+ - ceph --debug_ms=5 --debug_auth=30 --debug_monc=30 auth --format=json dump-keys | jq '.data.rotating_secrets | all( .val.secrets | all(.val.key.type == 1) )'
+ - ceph --debug_ms=5 --debug_auth=30 --debug_monc=30 config set global auth_service_cipher aes256k
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+teuthology:
+ variables:
+ wipe_service_keys: false
--- /dev/null
+# N.B. in order to effect a service key wipe, the service daemons must be
+# restarted next. During this time, service daemons will be inaccessible to new
+# clients.
+teuthology:
+ variables:
+ wipe_service_keys: true
+tasks:
+- exec:
+ mon.a:
+ - ceph auth wipe-rotating-service-keys
+ - ceph auth --format=json-pretty dump-keys
+ - ceph auth --format=json dump-keys | jq '.data.rotating_secrets | all( if .key == 32 then (.val.secrets | all(.val.key.type == 1)) else (.val.secrets | all(.val.key.type == 2)) end )'
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+overrides:
+ ceph:
+ log-ignorelist:
+ - OSD_DOWN
+ - OSD_ROOT_DOWN
+tasks:
+- sleep:
+ duration: 10
+- ceph.restart:
+ daemons: [mon.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+- ceph.restart:
+ daemons: [mgr.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+- ceph.restart:
+ daemons: [osd.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
+ wait-for-osds-up: true
+- ceph.restart:
+ daemons: [mds.*]
+ mon-health-to-clog: false
+ wait-for-healthy: true
--- /dev/null
+../.qa/
\ No newline at end of file
--- /dev/null
+tasks:
+ - radosbench:
+ extra_args: --debug_ms=5 --debug_auth=30 --debug_monc=30 --mon_client_target_rank=0
+ clients: [client.0]
+ time: 10
+ unique_pool: true