4.4.2. 임베디드 APIcast에 사용자 정의 정책 추가
3scale 온프레미스 배포에 사용자 지정 APIcast 정책을 추가하려면 사용자 지정 정책이 포함된 OpenShift 이미지를 빌드하고 배포에 추가해야 합니다. 3scale은 프레임워크로 사용할 수 있는 샘플 리포지토리를 제공하여 온프레미스 배포에 사용자 지정 정책을 만들고 추가할 수 있습니다.
이 샘플 리포지토리에는 사용자 지정 정책에 대한 올바른 디렉터리 구조와 생성한 사용자 지정 정책이 포함된 새 APIcast OpenShift 이미지를 빌드하기 위한 이미지 스트림 및 BuildConfigs를 생성하는 템플릿이 포함되어 있습니다.
apicast-custom-policies
를 빌드하면 빌드 프로세스에서 새 이미지를 the amp-apicast:latest
태그로 내보냅니다. 이 이미지 스트림 태그(:latest
)에 이미지가 변경되면 기본적으로 apicast-staging 및 apicast-production 태그 모두 새 배포를 자동으로 시작하도록 구성됩니다. 프로덕션 서비스(또는 스테이징)의 중단을 방지하려면 자동 배포(이미지가변경될 경우 자동으로 새 배포를 시작) 확인란을 비활성화하거나 프로덕션에 대해 다른 이미지 스트림 태그(예:: amp-apicast:production
)를 구성하는 것이 좋습니다.
온프레미스 배포에 사용자 지정 정책을 추가하려면 다음을 수행합니다.
다음 고려 사항에 따라 레지스트리 서비스 계정 생성에서 생성한 인증 정보를 사용하여
docker-registry
보안을 생성합니다.-
your-registry-service-account-username
을 12345678|username 형식으로 생성된 사용자 이름으로 바꿉니다. -
Token Information ( 토큰 정보) 탭의 username 아래의 password 문자열로
your-registry-service-account-password
를 바꿉니다. 이미지 스트림이 상주하고 registry.redhat.io 를 사용하는 모든 새
네임스페이스에
대해docker-registry
보안을 생성합니다.이 명령을 실행하여
docker-registry
보안을 생성합니다.oc create secret docker-registry threescale-registry-auth \ --docker-server=registry.redhat.io \ --docker-username="your-registry-service-account-username" \ --docker-password="your-registry-service-account-password"
-
- 정책 예제를 사용하여 공용 리포지토리를 분기 하거나 해당 콘텐츠를 사용하여 개인 리포지토리를 생성합니다. OpenShift에서 이미지를 빌드하려면 Git 리포지토리에서 사용할 수 있는 사용자 지정 정책 코드가 있어야 합니다. 개인 Git 리포지토리를 사용하려면 OpenShift에서 시크릿을 설정해야 합니다.
- 리포지토리를 로컬로 복제하고, 정책에 대한 구현을 추가하고, 변경 사항을 Git 리포지토리로 내보냅니다.
openshift.yml
템플릿을 업데이트합니다. 구체적으로 다음 매개변수를 변경합니다.-
정책 BuildConfig의
spec.source.git.uri: https://github.com/3scale/apicast-example-policy.git
- Git 리포지토리 위치로 변경합니다. -
사용자 정의 정책 BuildConfig의
spec.source.images[0].paths.sourcePath: /opt/app-root/policies/example
-예제
를 리포지토리의 policy 디렉터리에 추가한 사용자 지정정책
이름으로 변경합니다. -
선택적으로 OpenShift 오브젝트 이름 및 이미지 태그를 업데이트합니다. 그러나 변경 사항이 일관성(예:
apicast-example-policy
BuildConfig 빌드)인지 확인하고apicast-
이미지를 푸시해야 합니다. 따라서 태그는 동일해야 합니다.custom-policies BuildConfig에서 소스로 사용되는 apicast-
policy:example
-
정책 BuildConfig의
명령을 실행하여 OpenShift 오브젝트를 생성합니다.
oc new-app -f openshift.yml --param AMP_RELEASE=2.10
빌드가 자동으로 시작되지 않으면 다음 두 명령을 실행합니다. 변경한 경우
apicast-example-policy
를 자체 BuildConfig 이름(예:apicast-<name>-policy
)으로 바꿉니다. 두 번째 명령을 실행하기 전에 첫 번째 명령이 완료될 때까지 기다립니다.oc start-build apicast-example-policy oc start-build apicast-custom-policies
포함된 APIcast 이미지에 the amp-apicast:latest
이미지 스트림의 변경 사항을 추적하는 트리거가 있는 경우 APIcast의 새 배포가 시작됩니다. apicast-staging
이 다시 시작되면 Integration > Policies (통합 > 정책 )로 이동하여 Add Policy (정책 추가) 버튼을 클릭하여 나열된 사용자 정의 정책을 확인합니다. 이를 선택하고 구성한 후 Update Policy(정책 체인 업데이트)를 클릭하여 스테이징 APIcast에서 사용자 지정 정책이 작동하도록 합니다.