8.12. 사용자 정의 리소스를 배포하여 3scale 개발자 관리
3scale 관리자는 CR(사용자 정의 리소스)을 사용하여 개별 개발자 사용자를 그룹화하는 개발자 계정을 배포할 수 있습니다. 이 계정을 사용하면 개발자 포털에서 3scale 관리 API에 대한 개발자 액세스를 구성하고 관리할 수 있습니다.
테넌트는 원하는 수의 개발자 계정과 정확히 하나의 테넌트에 대한 각 개발자 계정 링크를 포함할 수 있습니다. 개발자 계정은 원하는 수의 개발자 사용자와 정확히 하나의 개발자 계정에 대한 각 개발자 사용자 링크를 포함할 수 있습니다. 테넌트 계획은 생성할 수 있는 개발자 계정 수와 각 개발자 계정에 그룹화할 수 있는 개발자 사용자 수에 대한 제한을 결정합니다.
개발자 사용자 지정 리소스를 사용하려면 3scale 운영자가 3scale을 설치해야 합니다. 3scale Operator가 포함된 네임스페이스에만 개발자 사용자 지정 리소스를 배포할 수 있습니다. 개발자 사용자 지정 리소스 배포는 3scale 관리 포털 또는 3scale 내부 API를 사용하여 개발자를 관리하는 대안입니다.
사용자 지정 리소스를 배포하여 개발자 계정 또는 개발자 사용자를 생성하는 경우 관리 포털 또는 내부 3scale API를 사용하여 해당 개발자 계정 또는 개발자 사용자를 업데이트할 수 없습니다. 개발자 CR을 배포한 후 관리 포털에 새 developer 계정 또는 새 developer 사용자를 해당 Accounts (계정) 페이지에 표시하므로 이 점을 인식하는 것이 중요합니다. 관리 포털 또는 API를 사용하여 CR을 사용하여 배포된 개발자 계정 또는 developer 사용자를 업데이트하려는 경우 3scale Operator는 변경 사항을 되돌리고 배포된 CR을 반영합니다. 이는 향후 릴리스에서 제거될 것으로 예상되는 제한 사항입니다. 그러나 관리 포털 또는 API를 사용하여 CR을 배포하여 생성한 개발자 계정 또는 developer 사용자를 삭제할 수 있습니다.
8.12.1. 사전 요구 사항
- 3scale은 3scale 연산자에 의해 설치되었습니다.
-
3scale에 대한 관리자 권한을 제공하는
Account Management
API 범위에서 읽기 및 쓰기 권한이 있는 토큰에 액세스합니다.
8.12.2. DeveloperAccount 사용자 정의 리소스를 배포하여 3scale 개발자 계정 관리
3scale Operator를 사용하여 3scale을 설치할 때 DeveloperAccount 및 Developer
User CR(사용자
정의 리소스)을 배포할 수 있습니다. 이러한 CR을 사용하면 개발자 포털에서 3scale-managed API에 액세스할 수 있도록 계정을 생성하고 업데이트할 수 있습니다.
새 DeveloperAccount
CR을 배포하려면 admin
역할이 있는 사용자에 대해 DeveloperUser
CR도 배포해야 합니다. 여기에서 제공되는 절차는 새 DeveloperAccount
CR을 배포하는 것입니다. DeveloperAccount
CR을 배포한 후 이를 업데이트하거나 삭제하는 절차는 다른 CR과 동일합니다.
3scale Operator가 포함된 네임스페이스에만 CR을 배포할 수 있습니다.
사전 요구 사항
- 3scale Operator가 사용자 정의 리소스 링크가 있는 테넌트를 식별하는 방법에 대한 이해입니다.
동일한 네임스페이스에 있는 3scale 인스턴스에서 기본 테넌트에 연결되지 않는
DeveloperAccount
사용자 정의 리소스를 생성하는 경우 DeveloperAccount CR이 포함된 네임스페이스에DeveloperAccount
CR이연결되는
테넌트를 식별하는 시크릿이 포함됩니다. 보안 이름은 다음 중 하나입니다.-
threescale-provider-account
- 사용자 정의
이 시크릿에는 3scale 인스턴스의 URL과 해당 3scale 인스턴스의 테넌트 1개에 대한 액세스 자격 증명이 포함된 토큰이 포함됩니다.
-
-
새
DeveloperAccount
CR에admin
역할이 있는 developer 사용자를 위한 사용자 이름, 암호 및 이메일 주소가 있습니다.
절차
3scale 운영자가 포함된 네임스페이스에서 새 개발자 계정 리소스에
admin
역할이 있는 developer 사용자의 사용자 이름과 암호가 포함된 시크릿을 정의하는 리소스 파일을 만들고 저장합니다. 예를 들어myusername01.yaml
파일에는 다음이 포함될 수 있습니다.apiVersion: v1 kind: Secret metadata: name: myusername01 stringData: password: "123456"
Copy to clipboardCopiedapiVersion: v1 kind: Secret metadata: name: myusername01 stringData: password: "123456"
시크릿을 생성합니다. 예를 들면 다음과 같습니다.
oc create -f myusername01.yaml
Copy to clipboardCopiedoc create -f myusername01.yaml
주어진 예에서 출력은 다음과 같습니다.
secret/myusername01 created
Copy to clipboardCopiedsecret/myusername01 created
admin
역할이 있는 개발자의DeveloperUser
CR을 정의하는.yaml
파일을 생성하고 저장합니다. 3scale Operator가 새Developer
CR이 필요합니다. 예를 들어Account CR을 배포하는 데 이 Developer
Userdeveloperuser01.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
Copy to clipboardCopiedapiVersion: 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에서 다음을 수행합니다.-
developer 사용자 계정 이름, 사용자 이름 및 이메일은
DeveloperAccount
가 연결되는 테넌트에서 고유해야 합니다. -
여기에서 지정하는 개발자 계정 이름은 이 프로세스에서 배포하는
DeveloperAccount
CR의 이름과 일치해야 합니다. 이 DeveloperUser
CR을 생성하기전후에 DeveloperAccount
CR을 생성할지 여부는 중요하지 않습니다. -
DeveloperUser
CR을 연결하는 테넌트는 지정된DeveloperAccount
CR 링크와 동일한 테넌트여야 합니다.
-
developer 사용자 계정 이름, 사용자 이름 및 이메일은
방금 정의한 리소스를 생성합니다. 예를 들면 다음과 같습니다.
oc create -f developeruser01.yaml
Copy to clipboardCopiedoc create -f developeruser01.yaml
주어진 예에서 출력은 다음과 같습니다.
developeruser.capabilities.3scale.net/developeruser01 created
Copy to clipboardCopieddeveloperuser.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
Copy to clipboardCopiedapiVersion: capabilities.3scale.net/v1beta1 kind: DeveloperAccount metadata: name: developeraccount01 spec: orgName: Ecorp providerAccountRef: name: mytenant
방금 정의한 리소스를 생성합니다. 예를 들면 다음과 같습니다.
oc create -f developeraccount01.yaml
Copy to clipboardCopiedoc create -f developeraccount01.yaml
주어진 예에서 출력은 다음과 같습니다.
developeraccount.capabilities.3scale.net/developeraccount01 created
Copy to clipboardCopieddeveloperaccount.capabilities.3scale.net/developeraccount01 created
다음 단계
3scale Operator가 3scale 구성을 업데이트하여 새 사용자 지정 리소스를 반영하는 데 몇 초가 걸립니다. Operator가 사용자 정의 리소스 정보를 전파하는지 확인하려면 DeveloperAccount
사용자 정의 리소스 상태
필드를 확인하거나 oc wait
명령을 실행합니다. 예를 들면 다음과 같습니다.
oc wait --for=condition=Ready --timeout=30s developeraccount/developeraccount1
oc wait --for=condition=Ready --timeout=30s developeraccount/developeraccount1
Copy to clipboardCopied
실패하는 경우 사용자 정의 리소스의 상태
필드는 오류가 일시적이거나 영구적일지 여부를 나타내며 문제를 해결하는 데 도움이 되는 오류 메시지를 제공합니다.
새 개발자 사용자에게 개발자 포털에 로그인할 수 있음을 알립니다. 또한 로그인 자격 증명을 전달해야 할 수도 있습니다.
다른 사용자 정의 리소스를 업데이트하거나 삭제하는 것과 동일한 방식으로 배포된 DeveloperAccount
사용자 정의 리소스를 업데이트하거나 삭제할 수 있습니다. 그러나 DeveloperAccount
CR을 삭제해도 3scale Operator는 실제로 해당 CR을 삭제하지 않습니다. 삭제한 DeveloperAccount
CR과 동일한 이름을 가진 새 DeveloperAccount
CR을 배포하려는 경우 해당 이름의 DeveloperAccount
CR이 이미 있다는 메시지가 표시됩니다. 새 DeveloperAccount
CR에 다른 이름을 지정해야 합니다.
8.12.3. DeveloperUser 사용자 정의 리소스를 배포하여 3scale 개발자 사용자 관리
3scale 운영자를 사용하여 3scale을 설치하는 경우 개발자 포털에서 3scale-managed API에 대한 개발자 액세스를 관리하기 위해 DeveloperUser
CR(사용자 정의 리소스)을 배포할 수 있습니다. 여기에서 제공되는 절차는 새 DeveloperUser
CR을 배포하는 것입니다. DeveloperUser
CR을 배포한 후 업데이트하거나 삭제하는 절차는 다른 CR과 동일합니다.
3scale Operator가 포함된 네임스페이스에만 CR을 배포할 수 있습니다.
사전 요구 사항
- 3scale Operator가 사용자 정의 리소스 링크가 있는 테넌트를 식별하는 방법에 대한 이해입니다.
admin
역할이 있는 사용자에 대해 배포된Developer
사용자 정의 리소스가 하나 이상 있습니다. 동일한 네임스페이스에 있는 3scale 인스턴스에서 기본 테넌트에 연결되지 않는User CR이 하나 이상 포함된 Developer
AccountDeveloperUser
사용자 지정 리소스를 생성하는 경우 DeveloperUser CR이 포함된 네임스페이스에DeveloperUser
CR이연결되는
테넌트를 식별하는 시크릿이 포함됩니다. 보안 이름은 다음 중 하나입니다.-
threescale-provider-account
- 사용자 정의
이 시크릿에는 3scale 인스턴스의 URL과 해당 3scale 인스턴스의 테넌트 1개에 대한 액세스 자격 증명이 포함된 토큰이 포함됩니다.
-
-
새
DeveloperUser
사용자 지정 리소스의 경우 해당 개발자의 사용자 이름, 암호 및 이메일 주소가 있습니다.
절차
3scale 운영자가 포함된 네임스페이스에서 developer 사용자의 사용자 이름과 암호가 포함된 시크릿을 정의하는 리소스 파일을 만들고 저장합니다. 예를 들어
myusername02.yaml
파일에는 다음이 포함될 수 있습니다.apiVersion: v1 kind: Secret metadata: name: myusername02 stringData: password: "987654321"
Copy to clipboardCopiedapiVersion: v1 kind: Secret metadata: name: myusername02 stringData: password: "987654321"
시크릿을 생성합니다. 예를 들면 다음과 같습니다.
oc create -f myusername02.yaml
Copy to clipboardCopiedoc create -f myusername02.yaml
주어진 예에서 출력은 다음과 같습니다.
secret/myusername02 created
Copy to clipboardCopiedsecret/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
Copy to clipboardCopiedapiVersion: 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에서 다음을 수행합니다.-
developer 사용자 이름(metadata
.name
필드에 지정됨), 사용자 이름 및 이메일은 포함된DeveloperAccount
링크가 포함된 테넌트에서 고유해야 합니다. -
developerAccountRef
필드는 배포된DeveloperAccount
CR의 이름을 지정해야 합니다. -
DeveloperUser
CR을 연결하는 테넌트는 지정된DeveloperAccount
CR 링크와 동일한 테넌트여야 합니다.
-
developer 사용자 이름(metadata
방금 정의한 리소스를 생성합니다. 예를 들면 다음과 같습니다.
oc create -f developefuser02.yaml
Copy to clipboardCopiedoc create -f developefuser02.yaml
주어진 예에서 출력은 다음과 같습니다.
developeruser.capabilities.3scale.net/developeruser02 created
Copy to clipboardCopieddeveloperuser.capabilities.3scale.net/developeruser02 created
다음 단계
3scale Operator가 3scale 구성을 업데이트하여 새 사용자 지정 리소스를 반영하는 데 몇 초가 걸립니다. Operator가 사용자 정의 리소스 정보를 전파하는지 확인하려면 DeveloperUser
사용자 정의 리소스 상태
필드를 확인하거나 oc wait
명령을 실행합니다. 예를 들면 다음과 같습니다.
oc wait --for=condition=Ready --timeout=30s developeruser/developeruser02
oc wait --for=condition=Ready --timeout=30s developeruser/developeruser02
Copy to clipboardCopied
실패하는 경우 사용자 정의 리소스의 상태
필드는 오류가 일시적이거나 영구적일지 여부를 나타내며 문제를 해결하는 데 도움이 되는 오류 메시지를 제공합니다.
새 개발자 사용자에게 개발자 포털에 로그인할 수 있음을 알립니다. 또한 로그인 자격 증명을 전달해야 할 수도 있습니다.
다른 사용자 정의 리소스를 업데이트하거나 삭제하는 것과 동일한 방식으로 배포된 DeveloperUser
사용자 정의 리소스를 업데이트하거나 삭제할 수 있습니다. 그러나 DeveloperUser
CR을 삭제할 때 3scale Operator는 실제로 해당 CR을 삭제하지 않습니다. 삭제한 DeveloperUser
CR과 동일한 계정 이름, 사용자 이름 또는 이메일을 가진 새 DeveloperUser
CR을 배포하려는 경우 DeveloperUser
CR이 이미 있다는 메시지가 표시됩니다. 새 DeveloperUser
CR에 다른 개발자 계정 이름, 사용자 이름 또는 이메일을 지정해야 합니다.
추가 리소스