Руководство. Автоматическое тестирование проверки
В рамках каждой фиксации, которая создает службы данных с поддержкой Arc, корпорация Майкрософт запускает автоматизированные конвейеры CI/CD, выполняющие комплексные тесты. Эти тесты управляются двумя контейнерами, которые поддерживаются вместе с основным продуктом (контроллер данных, Управляемый экземпляр SQL включен сервером Azure Arc и PostgreSQL). Эти контейнеры:
arc-ci-launcher
: содержит зависимости развертывания (например, расширения CLI), а также код развертывания продукта (с помощью Azure CLI) для режимов прямого и косвенного подключения. После подключения Kubernetes к контроллеру данных контейнер использует Sonobuoy для запуска параллельных тестов интеграции.arc-sb-plugin
: подключаемый модуль Sonobuoy, содержащий сквозные тесты интеграции Pytest, начиная от простых тестов дыма (развертывания, удаления), до сложных сценариев высокой доступности, хаос-тестов (удаление ресурсов) и т. д.
Эти контейнеры тестирования становятся общедоступными для клиентов и партнеров для тестирования служб данных с поддержкой Arc в собственных кластерах Kubernetes, работающих в любом месте, для проверки:
- Дистрибутивы и версии Kubernetes
- Disto/versions узла
- Хранилище (/CSI), сеть (
StorageClass
напримерLoadBalancer
, DNS) - Другие настройки Kubernetes или инфраструктуры
Для клиентов, намеревающихся запускать службы данных с поддержкой Arc в незадокументированных дистрибутивах, они должны успешно выполнять эти тесты проверки, чтобы считаться поддерживаемыми. Кроме того, партнеры могут использовать этот подход для сертификации своего решения, совместимого с службами данных с поддержкой Arc. См . проверку Kubernetes с поддержкой Azure Arc.
На следующей схеме описывается этот высокоуровневый процесс:
В этом руководстве описано следующее:
- Развертывание
arc-ci-launcher
с помощьюkubectl
- Проверка результатов проверки в учетной записи Хранилище BLOB-объектов Azure
Необходимые компоненты
Учетные данные:
- Файл
test.env.tmpl
содержит необходимые учетные данные и представляет собой сочетание существующих предварительных требований, необходимых для подключения подключенного кластера Azure Arc и контроллера данных непосредственного подключения. Настройка этого файла описана ниже с примерами. - Файл kubeconfig для протестированного кластера Kubernetes с
cluster-admin
доступом (требуется для подключения подключенного кластера в настоящее время)
- Файл
Клиентские инструменты:
kubectl
установленный — минимальная версия (основной:"1", дополнительный:"21")git
интерфейс командной строки (или альтернативные варианты на основе пользовательского интерфейса)
Подготовка манифеста Kubernetes
Средство запуска становится доступным как часть microsoft/azure_arc
репозитория, так как манифест Kustomize — Kustomize встроен kubectl
в - поэтому дополнительные средства не требуются.
- Клонируйте репозиторий локально:
git clone https://github.com/microsoft/azure_arc.git
- Перейдите к разделу
azure_arc/arc_data_services/test/launcher
, чтобы просмотреть следующую структуру папок:
├── base <- Comon base for all Kubernetes Clusters
│ ├── configs
│ │ └── .test.env.tmpl <- To be converted into .test.env with credentials for a Kubernetes Secret
│ ├── kustomization.yaml <- Defines the generated resources as part of the launcher
│ └── launcher.yaml <- Defines the Kubernetes resources that make up the launcher
└── overlays <- Overlays for specific Kubernetes Clusters
├── aks
│ ├── configs
│ │ └── patch.json.tmpl <- To be converted into patch.json, patch for Data Controller control.json
│ └── kustomization.yaml
├── kubeadm
│ ├── configs
│ │ └── patch.json.tmpl
│ └── kustomization.yaml
└── openshift
├── configs
│ └── patch.json.tmpl
├── kustomization.yaml
└── scc.yaml
В этом руководстве мы сосредоточимся на шагах для AKS, но приведенная выше структура наложения может быть расширена, чтобы включить дополнительные дистрибутивы Kubernetes.
Готовый к развертыванию манифест будет представлять следующее:
├── base
│ ├── configs
│ │ ├── .test.env <- Config 1: For Kubernetes secret, see sample below
│ │ └── .test.env.tmpl
│ ├── kustomization.yaml
│ └── launcher.yaml
└── overlays
└── aks
├── configs
│ ├── patch.json.tmpl
│ └── patch.json <- Config 2: For control.json patching, see sample below
└── kustomization.yam
Существует два файла, которые необходимо создать для локализации средства запуска для запуска в определенной среде. Каждый из этих файлов можно создать путем вставки копирования и заполнения каждого из указанных выше файлов шаблона:*.tmpl
.test.env
: заполнение из.test.env.tmpl
patch.json
: заполнение изpatch.json.tmpl
Совет
Это .test.env
один набор переменных среды, который управляет поведением средства запуска. Создание его с осторожностью для данной среды обеспечит воспроизводимость поведения средства запуска.
Конфигурация 1. .test.env
Заполненный пример .test.env
файла, созданный на .test.env.tmpl
основе данных ниже, используется в строковый комментарий ary.
Внимание
Приведенный export VAR="value"
ниже синтаксис не предназначен для локального запуска в исходные переменные среды с компьютера, но есть для средства запуска. Средство запуска подключает этот .test.env
файл как kubernetes secret
с помощью Kustomize ( secretGenerator
Kustomize принимает файл, base64 кодирует содержимое всего файла и превращает его в секрет Kubernetes). Во время инициализации средство запуска запускает команду Bash source
, которая импортирует переменные среды из подключенного .test.env
файла в среду средства запуска.
Другими словами, после копирования и редактирования .test.env.tmpl
для создания .test.env
созданный файл должен выглядеть примерно так же, как в приведенном ниже примере. Процесс заполнения .test.env
файла идентичен в операционных системах и терминалах.
Совет
Существует несколько переменных среды, требующих дополнительного объяснения для ясности в воспроизводимости. Они будут закомментированы.see detailed explanation below [X]
Совет
Обратите внимание, что приведенный .test.env
ниже пример предназначен для прямого режима. Некоторые из этих переменных, например ARC_DATASERVICES_EXTENSION_VERSION_TAG
не применяются к косвенному режиму. Для простоты рекомендуется настроить .test.env
файл с переменными прямого режима, переключение CONNECTIVITY_MODE=indirect
будет игнорировать параметры прямого режима и использовать подмножество из списка.
Другими словами, планирование прямого режима позволяет удовлетворить переменные косвенного режима.
Готовый пример .test.env
:
# ======================================
# Arc Data Services deployment version =
# ======================================
# Controller deployment mode: direct, indirect
# For 'direct', the launcher will also onboard the Kubernetes Cluster to Azure Arc
# For 'indirect', the launcher will skip Azure Arc and extension onboarding, and proceed directly to Data Controller deployment - see `patch.json` file
export CONNECTIVITY_MODE="direct"
# The launcher supports deployment of both GA/pre-GA trains - see detailed explanation below [1]
export ARC_DATASERVICES_EXTENSION_RELEASE_TRAIN="stable"
export ARC_DATASERVICES_EXTENSION_VERSION_TAG="1.11.0"
# Image version
export DOCKER_IMAGE_POLICY="Always"
export DOCKER_REGISTRY="mcr.microsoft.com"
export DOCKER_REPOSITORY="arcdata"
export DOCKER_TAG="v1.11.0_2022-09-13"
# "arcdata" Azure CLI extension version override - see detailed explanation below [2]
export ARC_DATASERVICES_WHL_OVERRIDE=""
# ================
# ARM parameters =
# ================
# Custom Location Resource Provider Azure AD Object ID - this is a single, unique value per Azure AD tenant - see detailed explanation below [3]
export CUSTOM_LOCATION_OID="..."
# A pre-rexisting Resource Group is used if found with the same name. Otherwise, launcher will attempt to create a Resource Group
# with the name specified, using the Service Principal specified below (which will require `Owner/Contributor` at the Subscription level to work)
export LOCATION="eastus"
export RESOURCE_GROUP_NAME="..."
# A Service Principal with "sufficient" privileges - see detailed explanation below [4]
export SPN_CLIENT_ID="..."
export SPN_CLIENT_SECRET="..."
export SPN_TENANT_ID="..."
export SUBSCRIPTION_ID="..."
# Optional: certain integration tests test upload to Log Analytics workspace:
# https://learn.microsoft.com/azure/azure-arc/data/upload-logs
export WORKSPACE_ID="..."
export WORKSPACE_SHARED_KEY="..."
# ====================================
# Data Controller deployment profile =
# ====================================
# Samples for AKS
# To see full list of CONTROLLER_PROFILE, run: az arcdata dc config list
export CONTROLLER_PROFILE="azure-arc-aks-default-storage"
# azure, aws, gcp, onpremises, alibaba, other
export DEPLOYMENT_INFRASTRUCTURE="azure"
# The StorageClass used for PVCs created during the tests
export KUBERNETES_STORAGECLASS="default"
# ==============================
# Launcher specific parameters =
# ==============================
# Log/test result upload from launcher container, via SAS URL - see detailed explanation below [5]
export LOGS_STORAGE_ACCOUNT="<your-storage-account>"
export LOGS_STORAGE_ACCOUNT_SAS="?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=...&spr=https&sig=..."
export LOGS_STORAGE_CONTAINER="arc-ci-launcher-1662513182"
# Test behavior parameters
# The test suites to execute - space seperated array,
# Use these default values that run short smoke tests, further elaborate test suites will be added in upcoming releases
export SQL_HA_TEST_REPLICA_COUNT="3"
export TESTS_DIRECT="direct-crud direct-hydration controldb"
export TESTS_INDIRECT="billing controldb kube-rbac"
export TEST_REPEAT_COUNT="1"
export TEST_TYPE="ci"
# Control launcher behavior by setting to '1':
#
# - SKIP_PRECLEAN: Skips initial cleanup
# - SKIP_SETUP: Skips Arc Data deployment
# - SKIP_TEST: Skips sonobuoy tests
# - SKIP_POSTCLEAN: Skips final cleanup
# - SKIP_UPLOAD: Skips log upload
#
# See detailed explanation below [6]
export SKIP_PRECLEAN="0"
export SKIP_SETUP="0"
export SKIP_TEST="0"
export SKIP_POSTCLEAN="0"
export SKIP_UPLOAD="0"
Внимание
При создании файла конфигурации на компьютере Windows необходимо преобразовать последовательность завершения строки из CRLF
(Windows) в (Linux) LF
в качестве arc-ci-launcher
контейнера Linux. Выход из конец строки, как CRLF
может привести к ошибке при arc-ci-launcher
запуске контейнера, например/launcher/config/.test.env: $'\r': command not found
: например, выполните изменение с помощью VSCode (в нижнем правом углу окна):
Подробное описание определенных переменных
1. ARC_DATASERVICES_EXTENSION_*
— версия расширения и обучение
Обязательный: это необходимо для
direct
развертываний в режиме.
Средство запуска может развертывать выпуски общедоступной версии и предварительной версии.
Версия расширения для сопоставления выпуска (ARC_DATASERVICES_EXTENSION_RELEASE_TRAIN
) для обучения () получена здесь:
- Общедоступная версия:
stable
- журнал версий - Предварительная версия:
preview
- предварительное тестирование
2. ARC_DATASERVICES_WHL_OVERRIDE
— URL-адрес скачивания предыдущей версии Azure CLI
Необязательно. Оставьте его пустым,
.test.env
чтобы использовать предварительно упакованный по умолчанию.
Образ средства запуска предварительно упаковается с последней версией интерфейса командной строки arcdata во время каждого выпуска образа контейнера. Однако для работы с более старыми выпусками и тестированием обновлений может потребоваться предоставить средству запуска ссылку на скачивание URL-адреса BLOB-объектов Azure CLI, чтобы переопределить предварительно упаковаемую версию; Например, чтобы указать средство запуска установить версию 1.4.3, заполните следующую команду:
export ARC_DATASERVICES_WHL_OVERRIDE="https://azurearcdatacli.blob.core.windows.net/cli-extensions/arcdata-1.4.3-py2.py3-none-any.whl"
Здесь можно найти версию CLI для сопоставления URL-адресов BLOB-объектов.
3. CUSTOM_LOCATION_OID
— идентификатор объекта custom Locations из конкретного клиента Microsoft Entra
Обязательный: это необходимо для создания настраиваемого расположения подключенного кластера.
Ниже описано, как включить пользовательские расположения в кластере , чтобы получить уникальный идентификатор объекта пользовательского расположения для клиента Microsoft Entra.
Существует два подхода к получению CUSTOM_LOCATION_OID
клиента Microsoft Entra.
С помощью Azure CLI:
az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv # 51dfe1e8-70c6-4de... <--- This is for Microsoft's own tenant - do not use, the value for your tenant will be different, use that instead to align with the Service Principal for launcher.
Через портал Azure — перейдите в колонку Microsoft Entra и выполните поиск:
Custom Locations RP
4. SPN_CLIENT_*
Учетные данные субъекта-службы
Обязательный: это необходимо для развертываний в режиме direct.
Средство запуска войдите в Azure с помощью этих учетных данных.
Тестирование проверки предназначено для кластера Kubernetes, отличного от рабочей среды и тестирования Kubernetes и подписок Azure, в фокусе на функциональной проверке установки Kubernetes/Infrastructure. Поэтому, чтобы избежать количества ручных шагов, необходимых для запуска, рекомендуется указать SPN_CLIENT_ID/SECRET
Owner
уровень группы ресурсов (или подписки), так как он создаст несколько ресурсов в этой группе ресурсов, а также назначать разрешения для этих ресурсов для нескольких управляемых удостоверений, созданных в рамках развертывания (эти назначения ролей, в свою очередь, требуют наличия субъекта-службы Owner
).
5. LOGS_STORAGE_ACCOUNT_SAS
URL-адрес SAS учетной записи хранения BLOB-объектов
Рекомендуется: выход из этого пустого означает, что вы не получите результаты теста и журналы.
Средство запуска требует постоянного расположения (Хранилище BLOB-объектов Azure) для отправки результатов, так как Kubernetes пока не разрешает копирование файлов из остановленных или завершенных модулей pod. См. здесь. Средство запуска обеспечивает подключение к Хранилище BLOB-объектов Azure с помощью URL-адреса SAS с учетной записью (в отличие от url-адреса SAS с областью действия контейнера или большого двоичного объекта) — подписанный URL-адрес с определением доступа с привязкой к времени . Чтобы предоставить ограниченный доступ к ресурсам служба хранилища Azure с помощью подписанных URL-адресов (SAS):
- Создайте новый контейнер хранилища в существующей учетной записи хранения (
LOGS_STORAGE_ACCOUNT
если она не существует (имя на основеLOGS_STORAGE_CONTAINER
) - Создание новых, уникально именованных BLOB-объектов (тестовые файлы tar журнала)
Следующие действия создаются из предоставления ограниченного доступа к ресурсам служба хранилища Azure с помощью подписанных URL-адресов (SAS).
Совет
URL-адреса SAS отличаются от ключа учетной записи хранения, URL-адрес SAS форматируется следующим образом.
?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=...&spr=https&sig=...
Существует несколько подходов к созданию URL-адреса SAS. В этом примере показан портал:
Дополнительные сведения об использовании Azure CLI см. в статье az storage account generate-sas
6. SKIP_*
— управление поведением средства запуска путем пропуска определенных этапов
Необязательный: оставьте его пустым для
.test.env
выполнения всех этапов (эквивалентных0
или пустых)
Средство запуска предоставляет SKIP_*
переменные, чтобы запускать и пропускать определенные этапы, например для выполнения запуска "только очистки".
Несмотря на то, что средство запуска предназначено для очистки как в начале, так и в конце каждого запуска, это возможно для запуска и (или) сбоев тестов, чтобы оставить остатки ресурсов позади. Чтобы запустить средство запуска в режиме "только очистки", задайте следующие переменные в .test.env
:
export SKIP_PRECLEAN="0" # Run cleanup
export SKIP_SETUP="1" # Do not setup Arc-enabled Data Services
export SKIP_TEST="1" # Do not run integration tests
export SKIP_POSTCLEAN="1" # POSTCLEAN is identical to PRECLEAN, although idempotent, not needed here
export SKIP_UPLOAD="1" # Do not upload logs from this run
Приведенные выше параметры указывают средству запуска очистить все ресурсы Arc и Arc Data Services, а также не развертывать или тестировать или отправлять журналы.
Конфигурация 2. patch.json
Заполненный пример patch.json
файла, созданный на patch.json.tmpl
основе ниже:
Обратите внимание, что
spec.docker.registry, repository, imageTag
значения должны совпадать со значениями выше.test.env
Готовый пример patch.json
:
{
"patch": [
{
"op": "add",
"path": "spec.docker",
"value": {
"registry": "mcr.microsoft.com",
"repository": "arcdata",
"imageTag": "v1.11.0_2022-09-13",
"imagePullPolicy": "Always"
}
},
{
"op": "add",
"path": "spec.storage.data.className",
"value": "default"
},
{
"op": "add",
"path": "spec.storage.logs.className",
"value": "default"
}
]
}
Развертывание средства запуска
Рекомендуется развернуть средство запуска в непроизводственных и тестовых кластерах , так как он выполняет разрушительные действия в Arc и других используемых ресурсах Kubernetes.
imageTag
спецификация
Средство запуска определяется в манифесте Kubernetes как a Job
, для которого требуется указать Kubernetes, где найти образ средства запуска. Это задано в base/kustomization.yaml
:
images:
- name: arc-ci-launcher
newName: mcr.microsoft.com/arcdata/arc-ci-launcher
newTag: v1.11.0_2022-09-13
Совет
Чтобы вернуться, на этом этапе - есть 3 места, которые мы указали imageTag
, для ясности, вот объяснение различных использования каждого из них. Как правило, при тестировании данного выпуска все 3 значения будут одинаковыми (выравнивающимися с заданным выпуском):
# | Имя файла | Имя переменной | Почему? | Используется? |
---|---|---|---|---|
1 | .test.env |
DOCKER_TAG |
Подключение образа Bootstrapper в рамках установки расширения | az k8s-extension create в средство запуска |
2 | patch.json |
value.imageTag |
Выбор образа контроллера данных | az arcdata dc create в средство запуска |
3 | kustomization.yaml |
images.newTag |
Определение образа средства запуска | kubectl apply ing the launcher |
kubectl apply
Чтобы проверить правильность настройки манифеста, попробуйте выполнить проверку --dry-run=client
на стороне клиента, с помощью которой выводятся ресурсы Kubernetes, которые будут созданы для средства запуска:
kubectl apply -k arc_data_services/test/launcher/overlays/aks --dry-run=client
# namespace/arc-ci-launcher created (dry run)
# serviceaccount/arc-ci-launcher created (dry run)
# clusterrolebinding.rbac.authorization.k8s.io/arc-ci-launcher created (dry run)
# secret/test-env-fdgfm8gtb5 created (dry run) <- Created from Config 1: `patch.json`
# configmap/control-patch-2hhhgk847m created (dry run) <- Created from Config 2: `.test.env`
# job.batch/arc-ci-launcher created (dry run)
Чтобы развернуть журналы запуска и хвоста, выполните следующие действия:
kubectl apply -k arc_data_services/test/launcher/overlays/aks
kubectl wait --for=condition=Ready --timeout=360s pod -l job-name=arc-ci-launcher -n arc-ci-launcher
kubectl logs job/arc-ci-launcher -n arc-ci-launcher --follow
На этом этапе средство запуска должно начаться, и вы увидите следующее:
Хотя рекомендуется развернуть средство запуска в кластере без существующих ресурсов Arc, средство запуска содержит предварительную проверку, чтобы обнаружить предварительно существующие crD Arc и Arc Data Services CRD и ресурсы ARM, и пытается очистить их на основе лучших усилий (используя предоставленные учетные данные субъекта-службы), прежде чем развертывать новый выпуск:
Этот же процесс обнаружения метаданных и очистки также выполняется при выходе средства запуска, чтобы оставить кластер как можно ближе к существующему состоянию перед запуском.
Действия, выполняемые средствами запуска
На высоком уровне средство запуска выполняет следующую последовательность шагов:
Проверка подлинности в API Kubernetes с помощью учетной записи службы, подключенной к pod
Проверка подлинности в API ARM с помощью субъекта-службы, подключенного к секрету
Выполните сканирование метаданных CRD, чтобы обнаружить существующие пользовательские ресурсы Служб данных Arc и Arc
Очистка существующих пользовательских ресурсов в Kubernetes и последующих ресурсов в Azure. Если какие-либо несоответствия между учетными данными по сравнению с ресурсами,
.test.env
существующими в кластере, закройте работу.Создайте уникальный набор переменных среды на основе метки времени для имени кластера Arc, контроллера данных и пользовательского пространства имен. Выводит переменные среды, маскируя конфиденциальные значения (например, пароль субъекта-службы и т. д.)
a. Для прямого режима — подключение кластера к Azure Arc, а затем развертывает контроллер.
b. Для косвенного режима: развертывание контроллера данных
После создания
Ready
контроллера данных создайте набор журналов Azure CLI (az arcdata dc debug
) и сохраните их локально, помеченные какsetup-complete
базовые.TESTS_DIRECT/INDIRECT
Используйте переменную среды для.test.env
запуска набора параллельных тестов Sonobuoy на основе разделенного пробелом массива (TESTS_(IN)DIRECT
). Эти запуски выполняются в новомsonobuoy
пространстве имен с помощьюarc-sb-plugin
pod, содержащего тесты проверки Pytest.Агрегатор Sonobuoy накапливает результаты теста и журналы для каждого
arc-sb-plugin
тестового выполнения, которые экспортируютсяjunit
в модуль модуля запуска.Возвращает код выхода тестов и создает другой набор журналов отладки — Azure CLI и
sonobuoy
— хранящийся локально, помеченный какtest-complete
.Выполните проверку метаданных CRD, аналогичную шагу 3, чтобы обнаружить существующие пользовательские ресурсы служб Arc и Arc. Затем перейдите к уничтожению всех ресурсов Arc и Arc Data в обратном порядке от развертывания, а также CRD, Role/ClusterRoles, PV/PVCs и т. д.
Попытайтесь использовать маркер
LOGS_STORAGE_ACCOUNT_SAS
SAS, предоставленный для создания нового контейнера учетной записи хранения с именем на основеLOGS_STORAGE_CONTAINER
уже существующей учетной записиLOGS_STORAGE_ACCOUNT
хранения. Если контейнер учетной записи хранения уже существует, используйте его. Отправьте все локальные результаты теста и журналы в этот контейнер хранилища в виде тарбола (см. ниже).Выход.
Тесты, выполняемые для каждого набора тестов
Существует приблизительно 375 уникальных тестов интеграции, доступных в 27 наборах тестов— каждый тестирует отдельную функциональность.
Сюита # | Имя набора тестов | Описание теста |
---|---|---|
1 | ad-connector |
Проверяет развертывание и обновление соединителя Active Directory (соединитель AD). |
2 | billing |
Тестирование различных типов лицензий критически важный для бизнеса отражается в таблице ресурсов в контроллере, используемой для отправки счетов. |
3 | ci-billing |
billing Аналогично, но с большим числом перемечений ЦП или памяти. |
4 | ci-sqlinstance |
Длительные тесты для создания нескольких реплик, обновлений, GP —> обновления BC, проверки резервного копирования и агент SQL Server. |
5 | controldb |
Тесты базы данных управления — проверка секрета SA, проверка входа в систему, создание аудита и проверки работоспособности для версии сборки SQL. |
6 | dc-export |
Отправка непрямого режима выставления счетов и использования. |
7 | direct-crud |
Создает экземпляр SQL с помощью вызовов ARM, проверяется как в Kubernetes, так и в ARM. |
8 | direct-fog |
Создает несколько экземпляров SQL и создает группу отработки отказа между ними с помощью вызовов ARM. |
9 | direct-hydration |
Создает экземпляр SQL с помощью API Kubernetes, проверяет наличие в ARM. |
10 | direct-upload |
Проверяет отправку выставления счетов в режиме direct |
11 | kube-rbac |
Гарантирует, что разрешения учетной записи службы Kubernetes для служб Данных Arc соответствуют ожиданиям наименьших привилегий. |
12 | nonroot |
Гарантирует, что контейнеры выполняются от имени пользователя, не являющегося корневым пользователем |
13 | postgres |
Выполняет различные тесты создания Postgres, масштабирования, резервного копирования и восстановления. |
14 | release-sanitychecks |
Проверка работоспособности для выпусков ежемесячного и месяца, таких как версии сборки SQL Server. |
15 | sqlinstance |
Более короткая версия для быстрой ci-sqlinstance проверки. |
16 | sqlinstance-ad |
Проверяет создание экземпляров SQL с помощью соединителя Active Directory. |
17 | sqlinstance-credentialrotation |
Проверяет автоматическую смену учетных данных для общего назначения и критически важный для бизнеса. |
18 | sqlinstance-ha |
Различные тесты высокой доступности, включая перезагрузки pod, принудительные отработки отказа и приостановки. |
19 | sqlinstance-tde |
Различные прозрачное шифрование данных тесты. |
20 | telemetry-elasticsearch |
Проверяет прием журналов в Elasticsearch. |
21 | telemetry-grafana |
Проверяет, доступен Grafana. |
22 | telemetry-influxdb |
Проверяет прием метрик в MetricDB. |
23 | telemetry-kafka |
Различные тесты для Kafka с помощью SSL, настройки с одним или несколькими брокерами. |
24 | telemetry-monitorstack |
Тесты компонентов мониторинга, такие как Fluentbit и Collectd функциональные. |
25 | telemetry-telemetryrouter |
Проверяет открытые данные телеметрии. |
26 | telemetry-webhook |
Проверяет веб-перехватчики служб данных с допустимыми и недопустимыми вызовами. |
27 | upgrade-arcdata |
Обновляет полный набор экземпляров SQL (GP, РЕПлики BC 2, BC 3 с Active Directory) и обновляется с выпуска прошлого месяца до последней сборки. |
Например, для sqlinstance-ha
примера выполняются следующие тесты:
test_critical_configmaps_present
: гарантирует наличие ConfigMaps и соответствующих полей для экземпляра SQL.test_suspended_system_dbs_auto_heal_by_orchestrator
: гарантирует, еслиmaster
иmsdb
приостановлены любым способом (в данном случае пользователь). Обслуживание оркестратора примиряет автоматическое исцеление его.test_suspended_user_db_does_not_auto_heal_by_orchestrator
: гарантирует, что пользовательская база данных намеренно приостановлена пользователем, согласование обслуживания Orchestrator не выполняет автоматическое восстановление.test_delete_active_orchestrator_twice_and_delete_primary_pod
: удаляет модуль pod оркестратора несколько раз, а затем основную реплику и проверяет синхронизацию всех реплик. Ожидания отработки отказа для 2-й реплики расслаблены.test_delete_primary_pod
: удаляет первичную реплику и проверяет синхронизацию всех реплик. Ожидания отработки отказа для 2-й реплики расслаблены.test_delete_primary_and_orchestrator_pod
: удаляет первичную реплику и модуль pod оркестратора и проверяет синхронизацию всех реплик.test_delete_primary_and_controller
: удаляет первичную реплику и модуль pod контроллера данных и проверяет доступность первичной конечной точки, а новая первичная реплика синхронизирована. Ожидания отработки отказа для 2-й реплики расслаблены.test_delete_one_secondary_pod
: удаляет вторичную реплику и модуль pod контроллера данных и проверяет синхронизацию всех реплик.test_delete_two_secondaries_pods
: удаляет вторичные реплики и модуль pod контроллера данных и проверяет синхронизацию всех реплик.test_delete_controller_orchestrator_secondary_replica_pods
:test_failaway
: принудительное отработка отказа группы доступности от текущей первичной, гарантирует, что новый первичный объект не совпадает со старым первичным. Проверяет синхронизацию всех реплик.test_update_while_rebooting_all_non_primary_replicas
: обновления, управляемые контроллером, устойчивы с повторными попытками, несмотря на различные турбулентные обстоятельства.
Примечание.
Для некоторых тестов может потребоваться определенное оборудование, например привилегированный доступ к контроллерам домена для тестов для ad
создания записи учетной записи и DNS, которые могут быть недоступны во всех средах, которые хотят использовать arc-ci-launcher
.
Проверка результатов теста
Пример контейнера хранилища и файла, отправленного средством запуска:
И результаты теста, созданные из выполнения:
Очистка ресурсов
Чтобы удалить средство запуска, выполните следующую команду:
kubectl delete -k arc_data_services/test/launcher/overlays/aks
Это очищает манифесты ресурсов, развернутые в рамках средства запуска.