8.11. 테넌트 사용자 정의 리소스 배포
테넌트 사용자
정의 리소스는 공급자 계정 이라고도 합니다.
APIManager
CR(사용자 정의 리소스)을 배포할 때 3scale Operator를 사용하여 3scale을 배포합니다. 기본 3scale 설치에는 사용할 준비가 된 기본 테넌트가 포함되어 있습니다. 필요한 경우 테넌트 사용자 지정 리소스를 배포하여 다른 테넌트를 만들 수 있습니다.
사전 요구 사항
- 일반 사전 요구 사항
-
새
테넌트
CR의 네임스페이스에create
권한이 있는 OpenShift 역할입니다.
절차
3scale이 설치된 OpenShift 프로젝트로 이동합니다. 예를 들어 프로젝트 이름이
my-3scale-project
인 경우 다음 명령을 실행합니다.oc project my-3scale-project
새 테넌트의 3scale admin 계정의 암호가 포함된 보안을 생성합니다.
Tenant
CR 정의에서passwordCredentialsRef
속성을 이 시크릿 이름으로 설정합니다. 4단계의테넌트
CR 정의 예에서ADMIN_SECRET
은 이 시크릿의 자리 표시자입니다. 다음 명령은 보안을 생성하는 예를 제공합니다.oc create secret generic ecorp-admin-secret --from-literal=admin_password=<admin password value>
3scale 마스터 계정 호스트 이름을 가져옵니다. Operator를 사용하여 3scale을 배포할 때 마스터 계정에 고정 URL이 있습니다:
master.${wildcardDomain}
3scale이 설치된 네임스페이스에 액세스할 수 있는 경우 다음 명령을 사용하여 마스터 계정 호스트 이름을 가져올 수 있습니다.
oc get routes --field-selector=spec.to.name==system-master -o jsonpath="{.items[].spec.host}"
4단계의
테넌트
CR 정의 예에서MASTER_HOSTNAME
은 이 이름의 자리 표시자입니다.새
테넌트
사용자 정의 리소스를 정의하는 파일을 생성합니다.Tenant
CR 정의에서masterCredentialsRef.name
속성을system-seed
로 설정합니다. 3scale 마스터 계정 자격 증명을 사용하는 경우에만 테넌트 관리 작업을 수행할 수 있으며, 바람직하게는 액세스 토큰을 사용합니다.APIManager
CR을 배포하는 동안 Operator는 마스터 계정 인증 정보가 포함된 보안을 생성합니다. 시크릿 이름은system-seed
입니다.3scale이 클러스터 전체 모드에 설치된 경우 3scale이 포함된 네임스페이스와 다른 네임스페이스에 새 테넌트를 배포할 수 있습니다. 이렇게 하려면
masterCredentialsRef.namespace
를 3scale 설치가 포함된 네임스페이스로 설정합니다.다음 예제에서는 3scale이 클러스터 전체 모드에 설치되어 있다고 가정합니다.
apiVersion: capabilities.3scale.net/v1alpha1 kind: Tenant metadata: name: ecorp-tenant namespace: <namespace-in-which-to-create-Tenant-CR> spec: username: admin systemMasterUrl: https://<MASTER_HOSTNAME> email: admin@ecorp.com organizationName: ECorp masterCredentialsRef: name: system-seed namespace: <namespace-where-3scale-is-deployed> passwordCredentialsRef: name: <ADMIN_SECRET> tenantSecretRef: name: tenant-secret
Tenant
(테넌트) 사용자 정의 리소스를 만듭니다. 예를 들어 이전 예제 CR을mytenant.yaml
파일에 저장한 경우 다음을 실행합니다.oc create -f mytenant.yaml
이 명령은 다음과 같습니다.
-
Operator는
spec.systemMasterUrl
속성 설정에 따라 가리키는 3scale 설치에 테넌트를 배포합니다. 3scale Operator는 새 테넌트에 대한 인증 정보가 포함된 보안을 생성합니다. 보안 이름은
tenantSecretRef.name
특성에 지정한 값입니다. 이 시크릿에는 새 테넌트의 관리자 URL 및 액세스 토큰이 포함되어 있습니다.참조로, 이는 Operator가 생성하는 보안의 예입니다.
apiVersion: v1 kind: Secret metadata: name: tenant-secret type: Opaque stringData: adminURL: https://my3scale-admin.example.com:443 token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
-
새 테넌트에 연결되는
제품
,백엔드
,OpenAPI
,DeveloperAccount
및DeveloperUser
CR을 배포할 수 있습니다.
-
Operator는
테넌트 사용자 정의
리소스 삭제
배포된 테넌트
사용자 정의 리소스를 삭제하려면 리소스 정의가 포함된 파일의 이름을 지정할 수 있습니다. 예를 들면 다음과 같습니다.
oc delete -f mytenant.yaml
또는 oc delete
명령을 실행하고, Tenant
CR에 이름을 지정하고, 테넌트의 네임스페이스도 지정할 수 있습니다. 예를 들어 다음과 같습니다.
oc delete tenant.capabilities.3scale.net mytenant -n mynamespace
테넌트를 삭제하면 3scale Operator에서 다음을 수행합니다.
- 3scale 설치에서 테넌트를 숨깁니다.
- 테넌트가 소유한 배포된 사용자 지정 리소스를 삭제합니다.
- 15일 후에 테넌트를 삭제하도록 표시합니다.
테넌트를 삭제한 후에는 복구할 수 없습니다. 15일 동안 테넌트가 소유하고 있는 리소스를 백업하고 관리 포털에서만 수행할 수 있습니다. 15일 후 3scale은 테넌트를 삭제합니다. 데이터 보호 법률을 준수하기 위해 일부 데이터는 향후 참조를 위해 보관됩니다.
테넌트 CR을 사용하여 테넌트를 배포한 경우 관리 포털에서 테넌트를 삭제하지 마십시오. 이 경우 Operator는 삭제하려는 테넌트에 CR을 사용하여 다른 테넌트를 생성합니다.
추가 리소스