Приношу свои извинения, если это неправильная сеть обмена стеками. Я пытаюсь создать образ построителя s2i из исходного кода. Образ компоновщика позволит мне создавать работающие Java образы для Openshift.
Образы компоновщика имеют открытый исходный код и доступны в следующем репозитории:
Openshift JDK Builder Images
Я установил cekit и использую docker Builder Engine. Вот моя команда сборки:
cekit -v build --overrides-file ubi8-openjdk-8.yaml docker
По умолчанию образ cekit будет использовать проверку подлинности Kerberos, но я решил переключиться на проверку подлинности OpenID C для простоты, отредактировав следующий файл и изменив конструктор ODCS как таковой. .
Файл находится по адресу: ~ / Library / Python / 3.7 / lib / python / site-packages / cekit / generator / base.py
Я изменил auth odcs на следующий . Это работает с действующим токеном, так как я не получаю ошибку 401. Если я ввожу неверный токен, я получаю 401.
odcs = ODCS(odcs_url,
auth_mech=AuthMech.OpenIDC,
openidc_token="tokenvalue")
К сожалению, вывод команды cekit приводит к следующему:
{"error":"Forbidden","message":"User KennyBartMan is not in role allowed_clients.","status":403}
2020-05-29 23:03:22,718 cekit ERROR ('Could not create ODCS compose', HTTPError('403 Client Error: FORBIDDEN for url: https://odcs.fedoraproject.org/api/1/composes/'))
Я попытался добавить себя в список allowed_clients в следующем файле:
/Library/Python/3.7/lib/python/site-packages/etc/odcs/config.py
ALLOWED_CLIENTS = {
'groups': {},
'users': {
'KennyBartMan':{},
}
}
Чтобы создать токен openid c, я использую предоставленный сценарий:
import openidc_client
staging = False
if staging:
id_provider = 'https://id.stg.fedoraproject.org/openidc/'
else:
id_provider = 'https://id.fedoraproject.org/openidc/'
# Get the auth token using the OpenID client.
oidc = openidc_client.OpenIDCClient(
'odcs',
id_provider,
{'Token': 'Token', 'Authorization': 'Authorization'},
'odcs-authorizer',
'notsecret',
)
scopes = [
'openid',
'https://id.fedoraproject.org/scope/groups',
'https://pagure.io/odcs/new-compose',
'https://pagure.io/odcs/renew-compose',
'https://pagure.io/odcs/delete-compose',
]
try:
token = oidc.get_token(scopes, new_token=True)
token = oidc.report_token_issue()
print(token)
except requests.exceptions.HTTPError as e:
print(e.response.text)
raise
Я уверен, что мне не хватает чего-то простого. Изменение конфигурации с помощью allowed_clients, похоже, не имеет никакого эффекта. Нужно ли мне подавать заявку на роль в службе создания Fedora? Если да, то как мне это сделать? Я даже не уверен, что имеет смысл добавить себя в список allowed_clients, не делая что-либо в odcs Fedora, а не в локальном файле конфигурации.