В этом документе описывается настройка для Transformation Advisor 2.4.x+. Информацию по настройке предыдущих версий можно найти здесь.
Во время установки Transformation Advisor параметрам конфигурации присваиваются значения по умолчанию. Хранение данных - один из параметров, который потребуется настроить в зависимости от особенностей среды. См. раздел "Хранение данных" в документе Предварительные требования. В зависимости от среды и параметров может потребоваться дополнительная настройка Transformation Advisor. Ниже приведен список всех параметров конфигурации Transformation Advisor, которые доступны в YAML пользовательского ресурса. См. инструкции по доступу к YAML пользовательского ресурса в разделе Установка. Многие из этих параметров предназначены для углубленной диагностики неполадок и должны использоваться только специалистами.
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
| networkPolicy.enabled | Включает networkPolicy в кластере. Для углубленной диагностики неполадок. | true |
| route.enabled | Включает маршрут к службе. Для углубленной диагностики неполадок. | true |
| route.hosname | Имя хоста для маршрута. | Задается оператором Transformation Advisor |
| fips.enabled | Укажите значение true в случае установки в среде, где включен FIPS. | false |
| tls.enabled | Включает применение TLS при передаче данных между контейнерами. Для углубленной диагностики неполадок. | true |
| tls.caCert | Сертификат CA для TLS (инструкции по созданию сертификата клиента приведены ниже.) | задается icpa-installer |
| authentication.disabled.liberty | Выключить идентификацию для сервера Liberty. Для углубленной диагностики неполадок. | false |
| authentication.disabled.ui | Выключить идентификацию для пользовательского интерфейса. Для углубленной диагностики неполадок. | false |
| authentication.ocp.authIssuerEndpoint | Конечная точка источника идентификационных данных. | Задается оператором Transformation Advisor |
| authentication.ocp.apiEndpoint | Конечная точка API идентификации. | Задается оператором Transformation Advisor |
| authentication.ocp.secretName | Имя пароля для внутренней идентификации. | transformation-advisor-secret |
| authentication.oidc.endpointPort | Порт конечной точки идентификации OIDC | Задается оператором Transformation Advisor |
| authentication.oidc.clientId | В реестре OIDC будет создана запись с этим ИД | ta-ui |
| authentication.oidc.clientSecret | В реестре OIDC будет создана запись с этим паролем | Задается оператором Transformation Advisor |
| authentication.thirdparty.identityRequestEndpoint | Конечная точка для запросов на идентификацию через внешнюю службу | Значение не задано |
| authentication.thirdparty.identityRequestEndpointPath | Путь к конечной точке для запросов на идентификацию через внешнюю службу | Значение не задано |
| authentication.thirdparty.identityRequestEndpointScope | Область конечной точки для запросов на идентификацию через внешнюю службу | Значение не задано |
| authentication.thirdparty.identityRequestEndpointStatePrefix | Префикс состояния конечной точки для запросов на идентификацию через внешнюю службу | Значение не задано |
| authentication.thirdparty.tokenRequestEndpoint | Конечная точка для запросов маркера внешней службы | Значение не задано |
| authentication.thirdparty.tokenRequestEndpointPath | Путь к конечной точке для запросов маркера внешней службы | Значение не задано |
| authentication.thirdparty.tokenVerificationEndpoint | Конечная точка для проверки маркеров внешней службы | Значение не задано |
| authentication.thirdparty.tokenVerificationEndpointPath | Путь к конечной точке для проверки маркеров внешней службы | Значение не задано |
| couchdb.image | Тег образа Couchdb | Задается оператором Transformation Advisor |
| couchdb.imagePullSecret | Пароль для загрузки образов. Используется для доступа к реестру разрешенного ПО. См. раздел "Предварительные требования". | Нет |
| couchdb.resources.requests.memory | Память запросов (Ресурсы могут изменяться в зависимости от доступности. По умолчанию минимум.) | 1Gi |
| couchdb.resources.requests.cpu | Ресурсы процессора для запросов | 500m |
| couchdb.resources.limits.memory | Максимальный объем памяти | 8Gi |
| couchdb.resources.limits.cpu | Максимальный объем ресурсов | 16000m |
| couchdb.livenessProbe.initialDelaySeconds | Начальная задержка проверки активности контейнера в с. (Проверки могут меняться в зависимости от производительности. Обычно подходят значения по умолчанию. Для углубленной диагностики неполадок.) | 60 |
| couchdb.livenessProbe.timeoutSeconds | Тайм-аут проверки активности контейнера в секундах. Для углубленной диагностики неполадок. | 3 |
| couchdb.livenessProbe.periodSeconds | Периодичность проверки активности контейнера в секундах. Для углубленной диагностики неполадок. | 5 |
| couchdb.livenessProbe.failureThreshold | Пороговое число сбоев проверок активности контейнера. Для углубленной диагностики неполадок. | 6 |
| couchdb.readinessProbe.initialDelaySeconds | Начальная задержка проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 5 |
| couchdb.readinessProbe.timeoutSeconds | Тайм-аут проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 3 |
| couchdb.readinessProbe.periodSeconds | Периодичность проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 5 |
| couchdb.readinessProbe.failureThreshold | Пороговое число сбоев проверок готовности контейнера. Для углубленной диагностики неполадок. | 6 |
| couchdb.persistence.enabled | Включено постоянное хранение (если нет, все данные теряются при перезапуске контейнера БД). | true |
| couchdb.persistence.accessMode | Режим доступа к Couchdb. | ReadWriteMany |
| couchdb.persistence.size | Размер хранилища Couchdb. | 8Gi |
| couchdb.persistence.useDynamicProvisioning | Использовать динамическое предоставление ресурсов. Не изменять. | true |
| couchdb.persistence.existingClaim | Существующий pv claim (обычно существующий PVC указывает на существующие данные). | "" |
| couchdb.persistence.storageClassName | Имя класса хранилища Couchdb (например, "rook-ceph-cephfs-internal") | "" |
| couchdb.persistence.supplementalGroups | Дополнительные группы Couchdb (обычно используется для NFS) | [] |
| transadv.image | Тег образа сервера Transadv Liberty. Для углубленной диагностики неполадок. | |
| transadv.imagePullSecret | Пароль для загрузки образов. Используется для доступа к реестру разрешенного ПО. См. раздел "Предварительные требования". | |
| transadv.pubilcUrl | Внешний URL сервера Transadv | Задается программой Transformation Advisor |
| transadv.image.logLevel | Уровень ведения протокола сервера Transadv | info |
| transadv.resources.requests.memory | Память для запросов | 1Gi |
| transadv.resources.requests.cpu | Ресурсы процессора для запросов | 500m |
| transadv.resources.limits.memory | Максимальный объем памяти | 8Gi |
| transadv.resources.limits.cpu | Максимальный объем ресурсов | 16000m |
| transadv.livenessProbe.initialDelaySeconds | Начальная задержка проверки активности контейнера в секундах. Для углубленной диагностики неполадок. | 60 |
| transadv.livenessProbe.timeoutSeconds | Тайм-аут проверки активности контейнера в секундах. Для углубленной диагностики неполадок. | 3 |
| transadv.livenessProbe.periodSeconds | Периодичность проверки активности контейнера в секундах. Для углубленной диагностики неполадок. | 5 |
| transadv.livenessProbe.failureThreshold | Пороговое число сбоев проверок активности контейнера. Для углубленной диагностики неполадок. | 6 |
| transadv.readinessProbe.initialDelaySeconds | Начальная задержка проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 60 |
| transadv.readinessProbe.timeoutSeconds | Тайм-аут проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 3 |
| transadv.readinessProbe.periodSeconds | Периодичность проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 5 |
| transadv.readinessProbe.failureThreshold | Пороговое число сбоев проверок готовности контейнера. Для углубленной диагностики неполадок. | 6 |
| transadvui.image | Тег образа UI Transadv. Для углубленной диагностики неполадок. | |
| transadvui.imagePullSecret | Пароль для загрузки образов. Используется для доступа к реестру разрешенного ПО. См. раздел "Предварительные требования". | |
| transadvui.image.logLevel | Уровень ведения протокола UI Transadv | info |
| transadvui.useSecureCookie | Использовать безопасный cookie для UI Transadv | true |
| transadvui.resources.requests.memory | Память для запросов | 1Gi |
| transadvui.resources.requests.cpu | Ресурсы процессора для запросов | 500m |
| transadvui.resources.limits.memory | Максимальный объем памяти | 4Gi |
| transadvui.resources.limits.cpu | Максимальный объем ресурсов | 16000m |
| transadvui.livenessProbe.initialDelaySeconds | Начальная задержка проверки активности контейнера в секундах. Для углубленной диагностики неполадок. | 60 |
| transadvui.livenessProbe.timeoutSeconds | Тайм-аут проверки активности контейнера в секундах. Для углубленной диагностики неполадок. | 5 |
| transadvui.livenessProbe.periodSeconds | Периодичность проверки активности контейнера в секундах. Для углубленной диагностики неполадок. | 30 |
| transadvui.livenessProbe.failureThreshold | Пороговое число сбоев проверок активности контейнера. Для углубленной диагностики неполадок. | 6 |
| transadvui.readinessProbe.initialDelaySeconds | Начальная задержка проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 5 |
| transadvui.readinessProbe.timeoutSeconds | Тайм-аут проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 5 |
| transadvui.readinessProbe.periodSeconds | Периодичность проверки готовности контейнера в секундах. Для углубленной диагностики неполадок. | 30 |
| transadvui.readinessProbe.failureThreshold | Пороговое число сбоев проверок готовности контейнера. Для углубленной диагностики неполадок. | 6 |
Ниже описываются параметры команд программы установки CASE:
cloudctl case launch \
--case ibm-transadv \
--inventory v2InstallProduct \
--namespace $TA_PROJECT \
--action install \
--args "[параметры]"
--acceptLicense <true|false> : (обязательный) Должен быть указан со значением true для продолжения установки.
--installIbmCatalog <true|false> : (необязательный) Если указано значение true, будет установлен каталог операторов IBM (если это еще не сделано). По умолчанию false.
--installTaCatalog <true|false> : (необязательный) Если указано значение true, будет установлен каталог Transformation Advisor (если это еще не сделано). По умолчанию false.
--secret <пароль> : (необязательный) Пароль для загрузки образов Tranformation Advisor из реестра разрешенного ПО.
--registry <реестр> : (необязательный) Реестр разрешенного ПО, например cp.icr.io.
--user <пользователь> : (необязательный) Имя пользователя для доступа к реестру разрешенного ПО.
--pass <пароль> : (необязательный) Пароль пользователя для доступа к реестру разрешенного ПО.
--tryAndBuy : (необязательный) Если нет ключа разрешения для реестра разрешенного ПО, то с помощью этого параметра Transformation Advisor можно установить в пробном режиме.
--persistence <true|false> : (необязательный) Требуется ли хранение данных для Transformation Advisor (по умолчанию true).
--accessMode <режим-доступа> : (необязательный) Режим доступа к хранилищу. По умолчанию ReadWriteMany.
--persistenceClaim <затребование> : (необязательный) Использовать существующее затребование хранения данных.
--storageClass <класс-хранилища> : (необязательный) Рекомендуемый способ использования хранилища с Transformation Advisor. Укажите допустимый класс хранилища для использования.
--supplementalGroups [gid,...] : (необязательный) Может использоваться, когда применяется файловое хранилище, для настройки прав доступа на чтение/запись к хранилищу у контейнера базы данных.
--hostName <имя-хоста> : (необязательный) Имя хоста для доступа к кластеру. Это значение задается программой Transformation Advisor. В большинстве сред менять его не требуется.
--apiEndpoint <конечная-точка-api> : (необязательный) URL API для кластера. Это значение задается программой Transformation Advisor. В большинстве сред менять его не требуется.
--authIssuerEndpoint <конечная-точка-источника-идентификации> : (необязательный) Конечная точка источника идентификации для кластера. Это значение задается программой Transformation Advisor. В большинстве сред менять его не требуется.
--publicUrlServer : (необязательный) См. документацию. Это значение задается программой Transformation Advisor. В большинстве сред менять его не требуется.
--publicUrlUI : (необязательный) См. документацию. Это значение задается программой Transformation Advisor. В большинстве сред менять его не требуется.
--customCACert <путь-к-файлу> : (необязательный) Файл пользовательского сертификата CA.
--authConfigFile <путь-к-файлу> (необязательный) Файл для настройки идентификации через внешнюю службу
--fips <true|false> : (необязательный) Требуется ли поддержка FIPS в экземпляре Transformation Advisor. По умолчанию false.
--checkUpgrade : (необязательный) Проверить наличие установленной версии Transformation Advisor в текущем пространстве имен и, если это так, попытаться выполнить автоматическое обновление до новой версии.
--upgrade : (необязательный) По возможности обновить текущую установленную версию Transformation Advisor.
--taHelp : (необязательный) Вывести список доступных параметров.
cloudctl case launch \
--case ibm-transadv \
--inventory v2InstallProduct \
--namespace $TA_PROJECT \
--action uninstall \
--args "[параметры]"
--uninstallIbmCatalog <true|false> : (необязательный) Если указано значение true, будет удален каталог операторов IBM. По умолчанию false.
--uninstallTaCatalog <true|false> : (необязательный) Если указано значение true, будет удален каталог операторов IBM. По умолчанию false.
Примечание: В дополнение к свойствам, описанным в следующих примерах, также необходимо задать значения authentication.oidc.clientId и authentication.oidc.clientSecret в соответствии с выбранным источником идентификации.
Ниже приведен пример конфигурации для объекта конфигурации thirdparty, позволяющей использовать службу Github OAuth:
description: "github"
identityRequestEndpoint: "https://github.com"
identityRequestEndpointPath: "/login/oauth/authorize"
identityRequestEndpointScope: "openid+offline"
identityRequestEndpointStatePrefix: ""
tokenRequestEndpoint: "https://github.com"
tokenRequestEndpointPath: "/login/oauth/access_token"
tokenVerificationEndpoint: "https://api.github.com"
tokenVerificationEndpointPath: "/user"
Ниже приведен пример конфигурации для объекта конфигурации thirdparty, позволяющей использовать службу Box OAuth:
description: "box"
identityRequestEndpoint: "https://account.box.com"
identityRequestEndpointPath: "/api/oauth2/authorize"
identityRequestEndpointScope: "root_readonly"
identityRequestEndpointStatePrefix: ""
tokenRequestEndpoint: "https://api.box.com"
tokenRequestEndpointPath: "/oauth2/token"
tokenVerificationEndpoint: "https://api.box.com"
tokenVerificationEndpointPath: "/2.0/users/me"
Укажите файл конфигурации для идентификации через внешнюю службу в параметре --authConfigFile с действием CASE install. Ниже приведен пример файла для службы GitHub OAuth: Формат файла изменять не следует.
# укажите значение true, чтобы выключить идентификацию на сервере пользовательского интерфейса
TA_AUTH_UI_DISABLED=false
# укажите значение true, чтобы выключить идентификацию на сервере Liberty
TA_AUTH_LIBERTY_DISABLED=false
# ИД клиента сервера OAuth2
TA_AUTH_OIDC_CLIENT_ID=xxx
# Пароль клиента сервера OAuth2
TA_AUTH_OIDC_CLIENT_SECRET=xxx
# конечная точка для запроса идентификации на сервере OAuth2 (без символа / на конце)
TA_AUTH_IDENTITY_REQUEST_ENDPOINT=https://github.com
# путь к конечной точке для запроса идентификации на сервере OAuth2 (с символом / в начале)
TA_AUTH_IDENTITY_REQUEST_ENDPOINT_PATH=/login/oauth/authorize
# Область OAuth2
TA_AUTH_IDENTITY_REQUEST_ENDPOINT_SCOPE=openid+offline
# состояние OAuth2 требует минимальную длину (по умолчанию пустое значение)
TA_AUTH_CALLBACK_STATE_PREFIX_PADDING=
# конечная точка для запроса маркера сервера OAuth2 (без символа / на конце)
TA_AUTH_TOKEN_REQUEST_ENDPOINT=https://github.com
# путь к конечной точке для запроса маркера сервера OAuth2 (с символом / в начале)
TA_AUTH_TOKEN_REQUEST_ENDPOINT_PATH=/login/oauth/access_token
# конечная точка для проверки маркеров сервера OAuth2 (без символа / на конце)
TA_AUTH_TOKEN_VERIFICATION_ENDPOINT=https://api.github.com
# путь к конечной точке для проверки маркеров сервера OAuth2 (с символом / в начале)
TA_AUTH_TOKEN_VERIFICATION_ENDPOINT_PATH=/user
Для внутреннего обмена данными по TLS можно использовать собственный сертификат и ключ.
Предполагается, что:
public.crt, личный ключ - private.pem.Transformation Advisor (TA) установлен или планируется установить в пространстве имен ta.
Ниже приведен пример того, как получить пару из ключа и сертификата (используйте тот же формат для своего ключа и сертификата):
openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 730 -out public.crt -subj "/C=IE/ST=Cork/L=Cork/O=IBM/CN=internal.ta.ibm.com"
После получения пары из сертификата и ключа выполните следующие действия, чтобы их активировать:
Переключитесь на пространство имен ta или создайте его, если TA еще не установлен.
# переключите проект
oc project ta
или
# создайте пространство имен ta, если его еще нет
oc create ns ta
Удалите пароль Transformation Advisor transformation-advisor-secret, если он существует.
oc delete secret transformation-advisor-secret
При установке с помощью программы установки CASE укажите параметр --customCACert <public.crt>, где <public.crt> - полный путь к файлу public.crt.
В случае установки через пользовательский интерфейс OpenShift измените значение свойства caCert в YAML пользовательского ресурса. См. инструкции по доступу к YAML пользовательского ресурса из пользовательского интерфейса в разделе
Установка.
Пример caCert в YAML пользовательского ресурса:
tls:
enabled: true caCert: | -----BEGIN CERTIFICATE----- MIIDKjCCAhICCQCjbqTC95dw+jANBgkqhkiG9w0BAQsFADBXMQswCQYDVQQGEwJJ RTENMAsGA1UECAwEQ29yazENMAsGA1UEBwwEQ29yazEMMAoGA1UECgwDSUJNMRww GgYDVQQDDBNpbnRlcm5hbC50YS5pYm0uY29tMB4XDTIwMDEyMDEzMjkxMVoXDTIy MDExOTEzMjkxMVowVzELMAkGA1UEBhMCSUUxDTALBgNVBAgMBENvcmsxDTALBgNV BAcMBENvcmsxDDAKBgNVBAoMA0lCTTEcMBoGA1UEAwwTaW50ZXJuYWwudGEuaWJt LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMIGfSptUnimmxZ IdVK6uLscJQetel+MX7u4viIaBwdd/IGDE7GHDHEYYFmEfv+gYbVT1+EAkdiLtHG SutUMPxpbUyv1xCW+9z3nDInHKzZxHMJJwB5j4+oVq+XkdXzZu2hwuoc0aA7Ek3r L6FFPIQi9bcmayuOa7HRpH43+86JuJF8tcx1MrDxWzBJraZNuvDVLs574qr/eM2d x5N+qkJqwOy94k0eH+x7kAKRp6vBEcVR+I/HHYDZSnC4UNEX8I/NbCS3wMUXysC9 lcC2vsIKrCRSn9Fu/ixWwlGy6QV1my4H6ZPtvJV56fcS42523KTDbT628Xa9B3/p cX0WZWMCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEADIyp9A4p46DZ6brEbL0e+wWf bnnymf1QZWcz4xrrMW2CcKBmRqFIPFPBpSEbCKlsFaZex5863z7dsa5SU7fHRdHF Yk9t8mGu2B+yZF6nW4biPmezaDLPi9VUomxcd+/rxWKhZJIufWXxs22AOhNQHeeK PSjP8RPCh1Gny7kC3jUz1Q/wd4QF/OGeu+Xf5jhERpJPfjKMtPMPJPGiPYSqhYQM VA6G83nZVlPDtnFJ28AzZU2/YtvCzhU66Ua5PjbSG1w6QsXZt/lE3E9utcJ+MNQi 3JwrLp4/97cupXsGmPPmkvH50LB8ex/N/ra6QOLGLm0gU218yXu7KezOfZNkTw== -----END CERTIFICATE-----
Значение можно вручную скопировать и вставить в нужное место. Важно сохранить отступ. Отступ строк сертификата содержит 2 дополнительных пробела по сравнению со строкой caCert.
Заново создайте секрет TA
# создать key.p12
openssl pkcs12 -export -inkey private.pem -in public.crt -name default -out key.p12 -passout pass:plain-text-password
# private.pem и public.crt в кодировке base64
base64 -w 0 ./private.pem > private-base64 base64 -w 0 ./public.crt > public-base64
# создать ключ и начальный вектор для AES-CBC-256 (P)
# длина ключа для aes256 составляет 256 бит (около 32 символов)
TA_TEMP_KEY=`LC_CTYPE=C tr -dc A-Za-z0-9_ < /dev/urandom | head -c 32 | xargs`
# длина ключа для aes256 составляет 128 бит (около 16 символов)
TA_TEMP_IV=`LC_CTYPE=C tr -dc A-Za-z0-9_ < /dev/urandom | head -c 16 | xargs`
# создать transformation-advisor-secret
oc create secret generic transformation-advisor-secret \ --from-literal=db_username='plain-text-username' --from-literal=secret='plain-text-password' \ --from-file=ta_public_key=./public-base64 --from-file=ta_private_key=./private-base64 \ --from-literal=ta_aes_key=$TA_TEMP_KEY --from-literal=ta_aes_iv=$TA_TEMP_IV \ --from-file=key.p12=key.p12
Теперь можно приступать к установке.