Вы можете пройти проверку подлинности Actions Runner Controller (ARC) в API с помощью App или с помощью personal access token (classic).
Примечание.
Проверку подлинности невозможно выполнить с помощью App для запуска на корпоративном уровне. Дополнительные сведения см. в разделе Управление доступом к самостоятельно размещенным средствам выполнения с помощью групп.
Создайте App, принадлежащих организации. Дополнительные сведения см. в разделе Регистрация приложения . Настройте App следующим образом.
Введите
https://.com/actions/actions-runner-controller
url-адрес домашней страницы.В разделе "Разрешения" щелкните разрешения репозитория. Затем используйте раскрывающееся меню, чтобы выбрать следующие разрешения доступа.
Администрирование: чтение и запись
Примечание.
Administration: Read and write
требуется только при настройке Actions Runner Controller для регистрации в области репозитория. Не требуется регистрироваться в области организации.Метаданные: только для чтения
В разделе "Разрешения" щелкните разрешения организации. Затем используйте раскрывающееся меню, чтобы выбрать следующие разрешения доступа.
- Локальные средства выполнения: чтение и запись
После создания Appна странице Appобратите внимание на значение "Идентификатор приложения". Это значение будет использоваться позже.
В разделе "Закрытые ключи" щелкните "Создать закрытый ключ" и сохраните
.pem
файл. Этот ключ будет использоваться позже.В меню в левом верхнем углу страницы нажмите кнопку "Установить приложение" и рядом с организацией нажмите кнопку "Установить ", чтобы установить приложение в вашей организации.
После подтверждения разрешений на установку в организации обратите внимание на идентификатор установки приложения. Оно понадобится вам позже. Идентификатор установки приложения можно найти на странице установки приложения, который имеет следующий формат URL-адреса:
https://.com/organizations/ORGANIZATION/settings/installations/INSTALLATION_ID
Arc может использовать personal access tokens (classic) для регистрации локальных модулей выполнения.
Создайте personal access token (classic) с необходимыми областями. Требуемые области различаются в зависимости от того, регистрируете ли вы средства выполнения в репозитории уровня. Дополнительные сведения о создании personal access token (classic)см. в разделе Управление личными маркерами доступа.
Ниже приведен список обязательных областей personal access token для runners ARC.
- Средства выполнения репозитория:
repo
- Запуски организации:
admin:org
- Средства выполнения репозитория:
Чтобы создать секрет Kubernetes со значением данных personal access token (classic), используйте следующую команду.
Примечание.
Создайте секрет в том же пространстве имен, где установлена диаграмма
gha-runner-scale-set
. В этом примере пространство имен соответствуетarc-runners
документации по краткому руководству. Дополнительные сведения см. в разделе Краткое руководство по контроллеру запуска действий.Bash kubectl create secret generic pre-defined-secret \ --namespace=arc-runners \ --from-literal=_token='YOUR-PAT'
kubectl create secret generic pre-defined-secret \ --namespace=arc-runners \ --from-literal=_token='YOUR-PAT'
В копии файла передайте имя секрета
values.yaml
в качестве ссылки.ConfigSecret: pre-defined-secret
Дополнительные параметры конфигурации Helm см
values.yaml
. в репозитории ARC.
Arc может использовать fine-grained personal access tokens для регистрации локальных модулей выполнения.
Создайте fine-grained personal access token с необходимыми областями. Требуемые области различаются в зависимости от того, регистрируются ли модули выполнения на уровне репозитория или организации. Дополнительные сведения о создании fine-grained personal access tokenсм. в разделе Управление личными маркерами доступа.
Ниже приведен список обязательных областей personal access token для runners ARC.
Средства выполнения репозитория:
- Администрирование: чтение и запись
Запуски организации:
- Администрирование: чтение
- Локальные средства выполнения: чтение и запись
Чтобы создать секрет Kubernetes со значением данных fine-grained personal access token, используйте следующую команду.
Примечание.
Создайте секрет в том же пространстве имен, где установлена диаграмма
gha-runner-scale-set
. В этом примере пространство имен соответствуетarc-runners
документации по краткому руководству. Дополнительные сведения см. в разделе Краткое руководство по контроллеру запуска действий.Bash kubectl create secret generic pre-defined-secret \ --namespace=arc-runners \ --from-literal=_token='YOUR-PAT'
kubectl create secret generic pre-defined-secret \ --namespace=arc-runners \ --from-literal=_token='YOUR-PAT'
В копии файла передайте имя секрета
values.yaml
в качестве ссылки.ConfigSecret: pre-defined-secret
Дополнительные параметры конфигурации Helm см
values.yaml
. в репозитории ARC.
Примечание.
Интеграция хранилища в настоящее время доступна в общедоступной предварительной версии с поддержкой Azure Key Vault.
Начиная с gha-runner-scale-set версии 0.12.0, ARC поддерживает получение учетных данных из внешнего хранилища. Интеграция хранилища настраивается на масштабируемый набор runner. Это означает, что некоторые масштабируемые наборы можно запускать с помощью секретов Kubernetes, а другие используют секреты на основе хранилища в зависимости от требований к безопасности и эксплуатации.
Чтобы включить интеграцию хранилища для масштабируемого набора runner, выполните следующую команду:
ConfigSecret
Задайте для поля вvalues.yaml
файле имя секретного ключа, хранящегося в хранилище. Это значение должно быть строкой.- Раскомментируйте и настройте
keyVault
раздел вvalues.yaml
файле с соответствующим поставщиком и сведениями о доступе. - Предоставьте требуемый сертификат (
.pfx
) контроллеру и прослушивателю. Это можно сделать: *Перестроение образа контроллера с включенным сертификатом или *Подключение сертификата в качестве тома в контроллере и прослушивателе с помощьюlistenerTemplate
полей иcontrollerManager
полей.
Секрет, хранящийся в Azure Key Vault, должен быть в формате JSON. Структура зависит от типа используемой проверки подлинности:
{
"_token": "TOKEN"
}
{
"_app_id": "APP_ID_OR_CLIENT_ID",
"_app_installation_id": "INSTALLATION_ID",
"_app_private_key": "PRIVATE_KEY"
}
Сертификат хранится в виде PFX-файла и подключен к контейнеру по адресу /akv/cert.pfx. Ниже приведен пример настройки раздела keyVault для использования этого сертификата для проверки подлинности:
keyVault:
type: "azure_key_vault"
proxy:
https:
url: "PROXY_URL"
credentialSecretRef: "PROXY_CREDENTIALS_SECRET_NAME"
http: {}
noProxy: []
azureKeyVault:
clientId: <AZURE_CLIENT_ID>
tenantId: <AZURE_TENANT_ID>
url: <AZURE_VAULT_URL>
certificatePath: "/akv/cert.pfx"
Для проверки подлинности в хранилище требуется .pfx
сертификат. Этот сертификат должен быть доступен как контроллеру, так и компонентам прослушивателя во время установки контроллера. Для этого можно подключить сертификат в качестве тома с помощью controllerManager
listenerTemplate
полей в values.yaml
файле:
volumes:
- name: cert-volume
secret:
secretName: my-cert-secret
volumeMounts:
- mountPath: /akv
name: cert-volume
readOnly: true
listenerTemplate:
volumeMounts:
- name: cert-volume
mountPath: /akv/certs
readOnly: true
volumes:
- name: cert-volume
secret:
secretName: my-cert-secret
Приведенный ниже код является примером файла масштабируемого набора values.yml
.
listenerTemplate:
spec:
containers:
- name: listener
volumeMounts:
- name: cert-volume
mountPath: /akv
readOnly: true
volumes:
- name: cert-volume
secret:
secretName: my-cert-secret
Части были адаптированы в соответствии с https://.com/actions/actions-runner-controller/ лицензией Apache-2.0:
Copyright 2019 Moto Ishizawa
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.