{"id":18633692,"url":"https://github.com/scylladb/scylla-cluster-tests","last_synced_at":"2025-04-04T13:13:05.003Z","repository":{"id":37257795,"uuid":"48770856","full_name":"scylladb/scylla-cluster-tests","owner":"scylladb","description":"Tests for Scylla Clusters","archived":false,"fork":false,"pushed_at":"2024-10-29T11:54:10.000Z","size":41863,"stargazers_count":57,"open_issues_count":325,"forks_count":94,"subscribers_count":24,"default_branch":"master","last_synced_at":"2024-10-29T13:10:10.679Z","etag":null,"topics":["cassandra","cql","scylladb","test-automation","testing-framework"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scylladb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.AGPL","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-12-29T23:03:42.000Z","updated_at":"2024-10-28T21:02:20.000Z","dependencies_parsed_at":"2024-11-05T22:26:44.937Z","dependency_job_id":"ed12c582-d6b5-4e52-b6e6-3d67eb6b6ea6","html_url":"https://github.com/scylladb/scylla-cluster-tests","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fscylla-cluster-tests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fscylla-cluster-tests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fscylla-cluster-tests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2Fscylla-cluster-tests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scylladb","download_url":"https://codeload.github.com/scylladb/scylla-cluster-tests/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247182401,"owners_count":20897381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cassandra","cql","scylladb","test-automation","testing-framework"],"created_at":"2024-11-07T05:15:57.616Z","updated_at":"2025-04-04T13:13:04.980Z","avatar_url":"https://github.com/scylladb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SCT - Scylla Cluster Tests\n\nSCT tests are designed to test Scylla database on physical/virtual servers under high read/write load.\nCurrently, the tests are run using built in unittest\nThese tests automatically create:\n\n* Scylla clusters - Run Scylla database\n* Loader machines - used to run load generators like cassandra-stress\n* Monitoring server - uses official Scylla Monitoring [repo](https://github.com/scylladb/scylla-monitoring) to monitor Scylla clusters and Loaders\n\n## Quickstart\n\n#### Option 1 - Config AWS using OKTA (preferred option)\n\nhttps://www.notion.so/AWS-864b26157112426f8e74bab61001425d\n\n#### Option 2 - Config AWS using AWS credentials\n```bash\n# install aws cli\nsudo apt install awscli # Debian/Ubuntu\nsudo dnf install awscli # Redhat/Fedora\n# or follow amazon instructions to get it: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html\n\n# Ask your AWS account admin to create a user and access key for AWS) and then configure AWS\n\n\u003e aws configure\nAWS Access Key ID [****************7S5A]:\nAWS Secret Access Key [****************5NcH]:\nDefault region name [us-east-1]:\nDefault output format [None]:\n\n# if using OKTA, use any of the tools to create the AWS profile, and export it as such,\n# anywhere you are gonna use hydra command (replace DeveloperAccessRole with the name of your profile):\nexport AWS_PROFILE=DeveloperAccessRole\n\n# Install hydra (docker holding all requirements for running SCT)\nsudo ./install-hydra.sh\n\n# if using podman, we need to disable enforcing of short name usage, without it monitoring stack won't run from withing hydra\necho 'unqualified-search-registries = [\"registry.fedoraproject.org\", \"registry.access.redhat.com\", \"docker.io\", \"quay.io\"]\nshort-name-mode=\"permissive\"\n' \u003e ~/.config/containers/registries.conf\n```\n\n### Run a test\n\nExample running test using Hydra using `test-cases/PR-provision-test.yaml` configuration file\n\n#### Run test locally with AWS backend:\n```bash\nexport SCT_SCYLLA_VERSION=5.2.1\n# Test fails to report to Argus. So we need to disable it\nexport SCT_ENABLE_ARGUS=false\n# configuration is needed for running from a local development machine (default communication is via private addresses)\nhydra run-test longevity_test.LongevityTest.test_custom_time --backend aws --config test-cases/PR-provision-test.yaml --config configurations/network_config/test_communication_public.yaml\n\n# Run with IPv6 configuration\nhydra run-test longevity_test.LongevityTest.test_custom_time --backend aws --config test-cases/PR-provision-test.yaml --config configurations/network_config/all_addresses_ipv6_public.yaml\n\n```\n\n#### Run test using [SCT Runner](./docs/sct-runners.md) with AWS backend:\n```bash\nhydra create-runner-instance --cloud-provider \u003ccloud_name\u003e -r \u003cregion_name\u003e -z \u003caz\u003e -t \u003ctest-id\u003e -d \u003crun_duration\u003e\n\nexport SCT_SCYLLA_VERSION=5.2.1\n# For choose correct network configuration, check test jenkins pipeline.\n# All predefined configurations are located under `configurations/network_config`\nhydra --execute-on-runner \u003crunner-ip|`cat sct_runner_ip\u003e \"run-test longevity_test.LongevityTest.test_custom_time --backend aws --config test-cases/PR-provision-test.yaml\"\n```\n\n#### Run test locally with GCE backend:\n```bash\nexport SCT_SCYLLA_VERSION=5.2.1\nexport SCT_IP_SSH_CONNECTIONS=\"public\"\nhydra run-test longevity_test.LongevityTest.test_custom_time --backend gce --config test-cases/PR-provision-test.yaml\n```\n\n#### Run test locally with Azure backend:\n```bash\nexport SCT_SCYLLA_VERSION=5.2.1\nhydra run-test longevity_test.LongevityTest.test_custom_time --backend azure --config test-cases/PR-provision-test.yaml\n```\n\n#### Run test locally with docker backend:\n```bash\n# **NOTE:** user should be part of sudo group, and setup with passwordless access,\n# see https://unix.stackexchange.com/a/468417 for example on how to setup\n\n# example of running specific docker version\nexport SCT_SCYLLA_VERSION=5.2.1\nhydra run-test longevity_test.LongevityTest.test_custom_time --backend docker --config test-cases/PR-provision-test-docker.yaml\n```\n\n#### You can also enter the containerized SCT environment using:\n```bash\nhydra bash\n```\n\n#### List resources being used by user:\n```bash\n# NOTE: Only use `whoami` if your local use is the same as your okta/email username\nhydra list-resources --user `whoami`\n```\n\n#### Reuse already running cluster:\n```bash\nexport SCT_REUSE_CLUSTER=$(cat ~/sct-results/latest/test_id)\nhydra run-test longevity_test.LongevityTest.test_custom_time --backend aws --config test-cases/PR-provision-test.yaml --config configurations/network_config/test_communication_public.yaml\n```\nMore details on reusing a cluster can be found in [reuse_cluster](./docs/reuse_cluster.md)\n\n#### Clear resources:\n```bash\nhydra clean-resources --user `whoami`\n# by default, it only cleans aws resources\n# to clean other backends, specify manually\nhydra clean-resources --user `whoami` -b gce\n```\n\n#### Clear resources being used by the last test run:\n```bash\nSCT_CLUSTER_BACKEND= hydra clean-resources --test-id `cat ~/sct-results/latest/test_id`\n```\n\n## [Install local development environment](docs/install-local-env.md)\n## [Frequently Asked Questions (FAQ)](docs/faq.md)\n## [Contribution instructions](docs/contrib.md)\n\n## Supported backends\n\n* `aws` - the mostly used backed, most longevity run on top of this backend\n* `gce` - most of the artifacts and rolling upgrades run on top of this backend\n* `azure` -\n* `docker` - should be used for local development\n* `baremetal` - can be used to run with already setup cluster\n\n* `k8s-eks` -\n* `k8s-gke` -\n* `k8s-local-kind` - used for run k8s functional test locally\n* `k8s-local-kind-gce` - used for run k8s functional test locally on GCE\n* `k8s-local-kind-aws` - used for run k8s functional test locally on AWS\n\n## Configuring test run configuration YAML\n\nTake a look at the `test-cases/PR-provision-test.yaml` file. It contains a number of\nconfigurable test parameters, such as DB cluster instance types and AMI IDs.\nIn this example, we're assuming that you have copied `test-cases/PR-provision-test.yaml`\nto `test-cases/your_config.yaml`.\n\nAll the test run configurations are stored in `test-cases` directory.\n\nImportant: Some tests use custom hardcoded operations due to their nature,\nso those tests won't honor what is set in `test-cases/your_config.yaml`.\n\nthe available configuration options are listed in [configuration_options](./docs/configuration_options.md)\n\n\n## Types of Tests\n### [Artifact tests](./docs/artifacts_test.md)\n### [Longevity Tests](./docs/longevity.md) (TODO: write explanation for them)\n### Upgrade Tests (TODO: write explanation for them)\n### Performance Tests (TODO: write explanation for them)\n### Features Tests (TODO: write explanation for them)\n### Manager Tests (TODO: write explanation for them)\n### [K8S Functional Tests](./docs/k8s-functional-test.md)\n### [Microbenchmarking Tests](./docs/microbenchmarking.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscylladb%2Fscylla-cluster-tests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscylladb%2Fscylla-cluster-tests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscylladb%2Fscylla-cluster-tests/lists"}