updates
This commit is contained in:
parent
fca22e54b5
commit
af6884447b
1 changed files with 64 additions and 11 deletions
|
@ -5,7 +5,7 @@
|
||||||
Это могут быть:
|
Это могут быть:
|
||||||
|
|
||||||
- API для работы с файлами.
|
- API для работы с файлами.
|
||||||
- API для работы с пайплайнами и их запусками в общем.
|
- API для работы с пайплайнами и их запусками.
|
||||||
- API для работы с одним конкретным ML-компонентом.
|
- API для работы с одним конкретным ML-компонентом.
|
||||||
- API для работы с одним конкретным пайплайном.
|
- API для работы с одним конкретным пайплайном.
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ metadata:
|
||||||
namespace: pu-username-pa-appname
|
namespace: pu-username-pa-appname
|
||||||
spec:
|
spec:
|
||||||
published: true
|
published: true
|
||||||
# <вид API>
|
# <тип API>
|
||||||
restfulApi:
|
restfulApi:
|
||||||
auth:
|
auth:
|
||||||
basic:
|
basic:
|
||||||
|
@ -30,22 +30,23 @@ spec:
|
||||||
Здесь,
|
Здесь,
|
||||||
|
|
||||||
- `metadata.name` - имя API-компонента, должно быть уникальным среди API-компонентов в одном модуле
|
- `metadata.name` - имя API-компонента, должно быть уникальным среди API-компонентов в одном модуле
|
||||||
- `metadata.namespace` - полное название приложение
|
- `metadata.namespace` - полное название приложения
|
||||||
- `spec.published` - "включен" ли API - возможно добавить API-компонент, но временно его "выключить" - тогда запросы к нему не будут работать.
|
- `spec.published` - "включен" ли API - возможно добавить API-компонент, но временно его "выключить" - тогда запросы к нему не будут работать.
|
||||||
- `spec.restfulAPI` - раздел настроек доступа. Поддерживается базовая авторизация и Open ID Connect.
|
- `spec.restfulAPI` - раздел настроек доступа. Поддерживается базовая авторизация и Open ID Connect.
|
||||||
|
- `appname-apis-cred` - имя секрета, которое может быть любым.
|
||||||
|
|
||||||
## Вид API-компонента
|
## Типы API-компонентов
|
||||||
|
|
||||||
Выше в шаблоне комментарий "<вид API>" должен быть заменён одной из секций ниже в зависимости от типа API-компонента.
|
Выше в шаблоне комментарий "<вид API>" должен быть заменён одной из секций ниже в зависимости от типа API-компонента.
|
||||||
|
|
||||||
### Файловый APi
|
### Файловый API
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
files:
|
files:
|
||||||
enabled: true
|
enabled: true
|
||||||
```
|
```
|
||||||
|
|
||||||
### API для пайплайнов в целом
|
### API для списка пайплайнов
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
pipelines:
|
pipelines:
|
||||||
|
@ -80,11 +81,11 @@ spec:
|
||||||
|
|
||||||
Подробнее - в разделе [о пайплайнах](./pipeline.md).
|
Подробнее - в разделе [о пайплайнах](./pipeline.md).
|
||||||
|
|
||||||
## Авторизация/аутентификация
|
## Аутентификация и настройка доступа
|
||||||
|
|
||||||
В шаблоне выше приведён пример Basic авторизации. В таком случае используется набор реквизитов, который присутствует в модуле. В данном случае, реквизиты хранятся в компоненте `appname-apis-cred`.
|
В шаблоне выше приведён пример Basic авторизации. В таком случае используется набор реквизитов, который присутствует в модуле. В примере выше реквизиты хранятся в секрете `appname-apis-cred`.
|
||||||
|
|
||||||
Помимо базовой авторизации можно использовать OIDC. Для этого в раздел `spec.restfulApi.auth` нужно добавить поле `oidc`.
|
Помимо базовой авторизации, можно использовать OIDC. Для этого в раздел `spec.restfulApi.auth` нужно добавить поле `oidc`.
|
||||||
|
|
||||||
Пример:
|
Пример:
|
||||||
|
|
||||||
|
@ -102,11 +103,63 @@ spec:
|
||||||
auth:
|
auth:
|
||||||
identityPassThrough: true
|
identityPassThrough: true
|
||||||
oidc: {}
|
oidc: {}
|
||||||
# groups: ["/dev-multi-auth"]
|
groups: ["/group1"]
|
||||||
# enabled: false # default - true
|
# enabled: false # default - true
|
||||||
# roles: ["/test"]
|
# roles: ["/test"]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## ComponentLink
|
||||||
|
|
||||||
|
`ComponentLink` служит для предоставления доступа к API сервисов отдельным пользователям KeyCloak.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: "unified-platform.cs.hse.ru/v1"
|
||||||
|
kind: ComponentLink
|
||||||
|
metadata:
|
||||||
|
name: test-link
|
||||||
|
namespace: pu-username
|
||||||
|
spec:
|
||||||
|
platformAppName: pu-username-pa-test
|
||||||
|
targets:
|
||||||
|
- name: service-api
|
||||||
|
platformAppName: pu-username-pa-test
|
||||||
|
keycloakGroup:
|
||||||
|
userRegistryRef:
|
||||||
|
name: test-keycloak-user-registry
|
||||||
|
secretRef:
|
||||||
|
name: secret1
|
||||||
|
```
|
||||||
|
Здесь,
|
||||||
|
|
||||||
|
- `metadata.name` - имя ComponentLink, должно быть уникальным среди ComponentLink в одном модуле
|
||||||
|
- `metadata.namespace` - пространство имен пользователя
|
||||||
|
- `spec.platformAppName` - полное название приложения
|
||||||
|
- `spec.targets.name` - название API, к которому будет предоставлен доступ
|
||||||
|
- `spec.secretRef.name` - имя секрета, которое может быть любым.
|
||||||
|
|
||||||
|
|
||||||
|
Секрет может выглядеть вот так. В нём перечислены имена пользователей, которым будет предоставлен доступ к API, указанному в ComponentLink. Будут созданы специальные группы в KeyCloak, в которые будут добавлены указанные пользователи.
|
||||||
|
|
||||||
|
```
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
namespace: pu-username
|
||||||
|
name: secret1
|
||||||
|
stringData:
|
||||||
|
emails: |-
|
||||||
|
emaildoesntexist@example.com
|
||||||
|
usernames: |-
|
||||||
|
user4
|
||||||
|
user5
|
||||||
|
robots: |-
|
||||||
|
robot1
|
||||||
|
robot2
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
В самом простом случае поле `oidc` можно оставить пустым словарём - `oidc: {}`. Также можно контролировать настройки OIDC:
|
В самом простом случае поле `oidc` можно оставить пустым словарём - `oidc: {}`. Также можно контролировать настройки OIDC:
|
||||||
|
|
||||||
- `groups` - список разрешённых групп
|
- `groups` - список разрешённых групп
|
||||||
|
|
Loading…
Reference in a new issue