8.12. 사용자 정의 리소스를 배포하여 3scale 개발자 관리
3scale 관리자는 사용자 정의 리소스(CR)를 사용하여 개별 개발자 사용자를 그룹화하는 개발자 계정을 배포할 수 있습니다. 이러한 계정을 사용하면 개발자 포털에서 3scale 관리 API에 대한 개발자 액세스 권한을 구성하고 관리할 수 있습니다.
테넌트는 여러 개발자 계정을 포함할 수 있으며 각 개발자 계정 링크를 정확히 하나의 테넌트에 연결할 수 있습니다. 개발자 계정에는 여러 개발자 사용자가 포함될 수 있으며 각 개발자 사용자는 정확히 하나의 개발자 계정에 연결됩니다. 테넌트 계획에는 생성할 수 있는 개발자 계정 수와 각 개발자 계정에서 그룹화할 수 있는 개발자 사용자 수에 대한 제한이 결정됩니다.
개발자 사용자 지정 리소스를 사용하려면 3scale Operator에서 3scale을 설치해야 합니다. 3scale Operator가 포함된 네임스페이스에만 개발자 사용자 지정 리소스를 배포할 수 있습니다. 개발자 사용자 지정 리소스 배포는 3scale 관리 포털 또는 3scale 내부 API를 사용하여 개발자를 관리하는 대안입니다.
사용자 지정 리소스를 배포하여 개발자 계정 또는 개발자 사용자를 생성할 때 관리 포털 또는 내부 3scale API를 사용하여 해당 개발자 계정 또는 개발자 사용자를 업데이트할 수 없습니다. 개발자 CR을 배포한 후에는 관리 포털에 새 개발자 계정 또는 새 개발자 사용자가 계정 페이지에 표시되므로 이 점에 유의해야 합니다. 관리 포털 또는 API를 사용하여 CR로 배포된 개발자 계정 또는 개발자 사용자를 업데이트하려고 하면 3scale Operator는 배포된 CR을 반영하도록 변경 사항을 되돌립니다. 이는 향후 릴리스에서 제거될 것으로 예상되는 제한 사항입니다. 그러나 관리 포털 또는 API를 사용하여 CR을 배포하여 생성한 개발자 계정 또는 개발자 사용자를 삭제할 수 있습니다.
8.12.1. 사전 요구 사항
- 3scale은 3scale Operator에 의해 설치되었습니다.
-
계정 관리
API 범위에서 읽기 및 쓰기 권한이 있는 액세스 토큰으로 3scale에 대한 관리자 권한을 제공합니다.
8.12.2. DeveloperAccount 사용자 정의 리소스를 배포하여 3scale 개발자 계정 관리
3scale Operator를 사용하여 3scale을 설치할 때 DeveloperAccount
및 DeveloperUser
사용자 정의 리소스(CR)를 배포할 수 있습니다. 이러한 CR을 사용하면 개발자 포털에서 개발자가 3scale 관리 API에 액세스할 수 있는 계정을 생성하고 업데이트할 수 있습니다.
새 DeveloperAccount
CR을 배포하려면 admin
역할이 있는 사용자에 대해 DeveloperUser
CR도 배포해야 합니다. 여기에 제공된 절차는 새 DeveloperAccount
CR을 배포하기 위한 것입니다. DeveloperAccount
CR을 배포한 후에는 다른 CR과 업데이트 또는 삭제하는 절차와 동일합니다.
3scale Operator가 포함된 네임스페이스에만 CR을 배포할 수 있습니다.
사전 요구 사항
- 3scale Operator가 사용자 정의 리소스가 연결되는 테넌트를 식별하는 방법에 대한 이해
동일한 네임스페이스에 있는 3scale 인스턴스의 기본 테넌트에 연결되지 않는
DeveloperAccount
DeveloperAccount
CR이 연결되는 테넌트를 식별하는 시크릿이 포함됩니다. 보안의 이름은 다음 중 하나입니다.-
threescale-provider-account
- 사용자 정의
이 시크릿에는 3scale 인스턴스의 URL과 해당 3scale 인스턴스의 하나의 테넌트에 대한 액세스 자격 증명이 포함된 토큰이 포함되어 있습니다.
-
-
새
DeveloperAccount
CR에admin
역할이 있는 developer 사용자에 대한 사용자 이름, 암호 및 이메일 주소가 있어야 합니다.
절차
3scale Operator가 포함된 네임스페이스에서 새 개발자 계정 리소스에
admin
역할이 있는 개발자 사용자의 사용자 이름 및 암호가 포함된 시크릿을 정의하는 리소스 파일을 생성하고 저장합니다. 예를 들어myusername01.yaml
파일에는 다음이 포함될 수 있습니다.apiVersion: v1 kind: Secret metadata: name: myusername01 stringData: password: "123456"
시크릿을 생성합니다. 예를 들어 다음과 같습니다.
oc create -f myusername01.yaml
지정된 예제의 출력은 다음과 같습니다.
secret/myusername01 created
admin
역할이 있는 개발자를 위한DeveloperUser
CR을 정의하는.yaml
파일을 생성하고 저장합니다. 이DeveloperUser
CR은 3scale Operator에서 새DeveloperAccount
CR을 배포하는 데 필요합니다. 예를 들어developeruser01.yaml
파일에는 다음이 포함될 수 있습니다.apiVersion: capabilities.3scale.net/v1beta1 kind: DeveloperUser metadata: name: developeruser01 spec: username: myusername01 email: myusername01@example.com passwordCredentialsRef: name: myusername01 role: admin developerAccountRef: name: developeraccount1 providerAccountRef: name: mytenant
DeveloperUser
CR에서 다음을 수행합니다.-
개발자 사용자 계정 이름, 사용자 이름 및 이메일은 포함된
DeveloperAccount
링크가 포함된 테넌트에서 고유해야 합니다. -
여기에서 지정하는 개발자 계정 이름은 이 프로세스에 배포하는
DeveloperAccount
CR의 이름과 일치해야 합니다. 이DeveloperUser
CR을 생성하기 전이나 후에DeveloperAccount
CR을 생성할지 여부는 중요하지 않습니다. -
DeveloperUser
CR이 연결되는 테넌트는 지정된DeveloperAccount
CR과 동일한 테넌트여야 합니다.
-
개발자 사용자 계정 이름, 사용자 이름 및 이메일은 포함된
방금 정의한 리소스를 생성합니다. 예를 들어 다음과 같습니다.
oc create -f developeruser01.yaml
지정된 예제의 출력은 다음과 같습니다.
developeruser.capabilities.3scale.net/developeruser01 created
DeveloperAccount
CR을 정의하는.yaml
파일을 생성하고 저장합니다. 이.yaml
파일에서spec.OrgName
필드는 조직 이름을 지정해야 합니다. 예를 들어developeraccount01.yaml
파일에는 다음이 포함될 수 있습니다.apiVersion: capabilities.3scale.net/v1beta1 kind: DeveloperAccount metadata: name: developeraccount01 spec: orgName: Ecorp providerAccountRef: name: mytenant
방금 정의한 리소스를 생성합니다. 예를 들어 다음과 같습니다.
oc create -f developeraccount01.yaml
지정된 예제의 출력은 다음과 같습니다.
developeraccount.capabilities.3scale.net/developeraccount01 created
다음 단계
3scale Operator가 새로운 사용자 정의 리소스를 반영하도록 3scale 구성을 업데이트하는 데 몇 초가 걸립니다. Operator가 사용자 정의 리소스 정보를 성공적으로 전파하는지 확인하려면 DeveloperAccount
사용자 정의 리소스 상태
필드를 확인하거나 oc wait
명령을 실행하십시오. 예를 들면 다음과 같습니다.
oc wait --for=condition=Ready --timeout=30s developeraccount/developeraccount1
장애가 발생할 경우 사용자 정의 리소스의 status
필드는 오류가 일시적인지 영구적으로 나타내며 문제를 해결하는 데 도움이 되는 오류 메시지를 제공합니다.
새 개발자 사용자에게 개발자 포털에 로그인할 수 있음을 알립니다. 또한 로그인 자격 증명을 전달해야 할 수도 있습니다.
배포된 DeveloperAccount
사용자 정의 리소스를 다른 사용자 지정 리소스를 업데이트하는 것과 동일한 방식으로 업데이트할 수 있습니다. 예를 들어 업데이트하려는 DeveloperAccount
CR을 보유한 테넌트가 포함된 OpenShift 프로젝트에서 다음 명령을 실행하여 devaccount1
CR을 업데이트합니다.
oc edit developeraccount devaccount1
8.12.3. DeveloperUser 사용자 정의 리소스를 배포하여 3scale 개발자 사용자 정의 관리
3scale Operator를 사용하여 3scale을 설치할 때 DeveloperUser
CR(사용자 정의 리소스)을 배포하여 개발자 포털에서 3scale 관리 API에 액세스할 수 있습니다. 여기에 제공된 절차는 새로운 DeveloperUser
CR을 배포하기 위한 것입니다. DeveloperUser
CR을 배포한 후에는 다른 CR과 업데이트 또는 삭제하는 절차와 동일합니다.
3scale Operator가 포함된 네임스페이스에만 CR을 배포할 수 있습니다.
사전 요구 사항
- 3scale Operator가 사용자 정의 리소스가 연결되는 테넌트를 식별하는 방법에 대한 이해
admin
역할이 있는 사용자에게 배포된DeveloperUser
CR이 하나 이상 포함된 배포된DeveloperAccount
사용자 정의 리소스가 하나 이상 있습니다. 동일한 네임스페이스에 있는 3scale 인스턴스의 기본 테넌트에 연결되지 않는DeveloperUser
사용자 정의 리소스를 생성하는 경우DeveloperUser
CR을 포함하는 네임스페이스에DeveloperUser
CR이 연결되는 테넌트를 식별하는 시크릿이 포함됩니다. 보안의 이름은 다음 중 하나입니다.-
threescale-provider-account
- 사용자 정의
이 시크릿에는 3scale 인스턴스의 URL과 해당 3scale 인스턴스의 하나의 테넌트에 대한 액세스 자격 증명이 포함된 토큰이 포함되어 있습니다.
-
-
새로운
DeveloperUser
사용자 정의 리소스의 경우 해당 개발자의 사용자 이름, 암호 및 이메일 주소가 있습니다.
절차
3scale Operator가 포함된 네임스페이스에서 개발자 사용자의 사용자 이름 및 암호가 포함된 시크릿을 정의하는 리소스 파일을 생성하고 저장합니다. 예를 들어
myusername02.yaml
파일에는 다음이 포함될 수 있습니다.apiVersion: v1 kind: Secret metadata: name: myusername02 stringData: password: "987654321"
시크릿을 생성합니다. 예를 들어 다음과 같습니다.
oc create -f myusername02.yaml
지정된 예제의 출력은 다음과 같습니다.
secret/myusername02 created
DeveloperUser
CR을 정의하는.yaml
파일을 생성하고 저장합니다.spec.role
필드에서admin
또는member
를 지정합니다. 예를 들어developeruser02.yaml
파일에는 다음이 포함될 수 있습니다.apiVersion: capabilities.3scale.net/v1beta1 kind: DeveloperUser metadata: name: developeruser02 spec: username: myusername02 email: myusername02@example.com passwordCredentialsRef: name: myusername02 role: member developerAccountRef: name: developeraccount1 providerAccountRef: name: mytenant
DeveloperUser
CR에서 다음을 수행합니다.-
개발자 사용자 이름(
metadata.name
필드에 지정되어 있음), 사용자 이름 및 이메일은 포함된DeveloperAccount
링크가 포함된 테넌트에서 고유해야 합니다. -
developerAccountRef
필드는 배포된DeveloperAccount
CR의 이름을 지정해야 합니다. -
DeveloperUser
CR이 연결되는 테넌트는 지정된DeveloperAccount
CR과 동일한 테넌트여야 합니다.
-
개발자 사용자 이름(
방금 정의한 리소스를 생성합니다. 예를 들어 다음과 같습니다.
oc create -f developefuser02.yaml
지정된 예제의 출력은 다음과 같습니다.
developeruser.capabilities.3scale.net/developeruser02 created
다음 단계
3scale Operator가 새로운 사용자 정의 리소스를 반영하도록 3scale 구성을 업데이트하는 데 몇 초가 걸립니다. Operator가 사용자 정의 리소스 정보를 성공적으로 전파하는지 확인하려면 DeveloperUser
사용자 정의 리소스 상태
필드를 확인하거나 oc wait
명령을 실행하십시오. 예를 들면 다음과 같습니다.
oc wait --for=condition=Ready --timeout=30s developeruser/developeruser02
장애가 발생할 경우 사용자 정의 리소스의 status
필드는 오류가 일시적인지 영구적으로 나타내며 문제를 해결하는 데 도움이 되는 오류 메시지를 제공합니다.
새 개발자 사용자에게 개발자 포털에 로그인할 수 있음을 알립니다. 또한 로그인 자격 증명을 전달해야 할 수도 있습니다.
배포된 DeveloperUser
사용자 정의 리소스를 다른 사용자 정의 리소스와 동일한 방식으로 업데이트할 수 있습니다.
8.12.4. DeveloperAccount 또는 DeveloperUser 사용자 정의 리소스 삭제
3scale 개발자 엔터티를 관리하는 사용자 정의 리소스를 삭제하여 삭제할 수 있습니다.
사용자 정의 리소스를 삭제하면 3scale Operator에서 삭제된 DeveloperAccount CR에 연결된 모든 DeveloperAccount
DeveloperUser
CR도 삭제합니다.
사용자 지정 리소스에서 정의한 개발자 계정 또는 개발자 사용자를 삭제하는 유일한 방법은 여기에 설명된 절차를 따르는 것입니다. 관리 포털이나 3scale API를 사용하여 사용자 정의 리소스로 배포된 개발자 엔터티를 삭제하지 마십시오.
사전 요구 사항
3scale 관리자 권한 또는 삭제하려는 사용자 정의 리소스가 포함된 네임스페이스에서 삭제 권한이 있는 OpenShift 역할. 특정 사용자 정의 리소스를 삭제할 수 있는지 확인하려면
oc auth can-i delete
명령을 실행합니다. 예를 들어DeveloperAccount
CR의 이름이devaccount1
인 경우 다음 명령을 실행합니다.oc auth can-i delete developeraccount.capabilities.3scale.net/devaccount1 -n my-namespace
-
유효한 테넌트에 대한 링크를 삭제할
DeveloperAccount
또는DeveloperUser
CR입니다.
절차
CR이 연결되는 테넌트가 포함된 OpenShift 프로젝트에서
oc delete
명령을 실행하여DeveloperAccount
또는DeveloperUser
사용자 정의 리소스를 삭제합니다. 예를 들어devaccount1.yaml
파일에 정의된DeveloperAccount
CR을 배포한 경우 다음 명령을 실행합니다.oc delete -f devaccount1.yaml
또는
oc delete
명령을 실행하고 정의에 지정된 대로 CR 이름을 지정할 수 있습니다. 예를 들어 다음과 같습니다.oc delete developeraccount.capabilities.3scale.net/devaccount1