7.2. 샘플 Jenkins CI/CD 파이프라인 배포


3scale toolbox가 포함된 API 라이프사이클 자동화에서는 API 라이프사이클의 배포 단계에 중점을 두고 CI/CD 파이프라인을 사용하여 API 관리 솔루션을 자동화할 수 있습니다. 이 주제에서는 3scale toolbox를 호출하는 샘플 Jenkins 파이프라인을 배포하는 방법을 설명합니다.

7.2.1. Jenkins CI/CD 파이프라인 샘플

다음 샘플은 Red Hat Integration 리포지토리에서 API 라이프사이클 자동화를 위한 Jenkins 파이프라인을 생성하고 배포하는 방법에 대한 예입니다.

표 7.3. Jenkins 공유 라이브러리 파이프라인 샘플
샘플 파이프라인대상 환경보안

SaaS - API 키

3scale Hosted

API 키

하이브리드 - 오픈

APIcast 자체 관리가 가능한 3scale 호스팅 및 3scale 온-프레미스

없음

하이브리드 - OpenID Connect

APIcast 자체 관리가 가능한 3scale 호스팅 및 3scale 온-프레미스

OpenID Connect(OIDC)

멀티 환경

3scale Hosted on development, test, and production, with APIcast self-managed

API 키

의미 체계 버전 관리

3scale Hosted on development, test, and production, with APIcast self-managed

API 키, none, OIDC

이 샘플은 3scale toolbox를 호출하여 주요 API 관리 기능을 보여주는 3scale Jenkins 공유 라이브러리를 사용합니다. 이 주제에서 설정 단계를 수행한 후 Red Hat Integration 리포지토리의 각 샘플 사용 사례에 대해 제공된 OpenShift 템플릿을 사용하여 파이프라인을 설치할 수 있습니다.

중요

샘플 파이프라인 및 애플리케이션은 예제로만 제공됩니다. 샘플 파이프라인에서 활용하는 기본 API, CLI 및 기타 인터페이스는 Red Hat에서 완전히 지원합니다. 파이프라인에 대한 수정 사항은 Red Hat에서 직접 지원하지 않습니다.

7.2.2. 3scale 호스팅 환경 설정

3scale 호스팅 환경 설정은 모든 샘플 Jenkins CI/CD 파이프라인에 필요합니다.

참고

SaaS - API 키,Multi-environment, Semantic 버전 관리 샘플 파이프라인은 3scale 호스트 만 사용합니다. 하이브리드 - 오픈하이브리드 - OIDC 파이프라인은 3scale 온-프레미스도 사용합니다. 3scale 온-프레미스 환경 설정 도 참조하십시오.

사전 요구 사항

  • Linux 워크스테이션이 있어야 합니다.
  • 3scale Hosted 환경이 있어야 합니다.
  • OpenShift 3.11 클러스터가 있어야 합니다. OpenShift 4는 현재 지원되지 않습니다.

  • OpenShift 설명서에 설명된 대로 OpenShift 라우터에서 와일드카드 경로가 활성화되었는지 확인합니다.

절차

  1. 3scale 호스트 관리 포털 콘솔에 로그인합니다.
  2. 계정 관리 API에 대한 쓰기 액세스 권한으로 새 액세스 토큰을 생성합니다.
  3. 나중에 사용할 수 있도록 생성된 액세스 토큰을 저장합니다. 예를 들어 다음과 같습니다.

    export SAAS_ACCESS_TOKEN=123...456
  4. 나중에 사용할 3scale 테넌트의 이름을 저장합니다. 관리 포털 URL의 -admin.3scale.net 이전 문자열입니다. 예를 들어 다음과 같습니다.

    export SAAS_TENANT=my_username
  5. everyone & gt; Accounts > Admin Portal 에서 account로 이동합니다.
  6. Developer 를 클릭합니다.
  7. 개발자 계정 ID 를 에 저장합니다. /buyers/accounts/. 뒤에 있는 URL의 마지막 부분입니다. 예를 들어 다음과 같습니다.

    export SAAS_DEVELOPER_ACCOUNT_ID=123...456

7.2.3. 3scale 온-프레미스 환경 설정

3scale 온프레미스 환경을 설정하는 것은 하이브리드 - 오픈 및 하이브리드 - OIDC 샘플 Jenkins CI/CD 파이프라인에만 필요합니다.

참고

이러한 하이브리드 샘플 파이프라인을 사용하려면 3scale 온-프레미스 환경과 3scale 호스팅 환경을 설정해야 합니다. 3scale 호스팅 환경 설정 도 참조하십시오.

사전 요구 사항

  • Linux 워크스테이션이 있어야 합니다.
  • 3scale 온-프레미스 환경이 있어야 합니다. OpenShift에 템플릿을 사용하여 3scale 온-프레미스를 설치하는 방법에 대한 자세한 내용은 3scale 설치 설명서를 참조하십시오.
  • OpenShift 3.11 클러스터가 있어야 합니다. OpenShift 4는 현재 지원되지 않습니다.

  • OpenShift 설명서에 설명된 대로 OpenShift 라우터에서 와일드카드 경로가 활성화되었는지 확인합니다.

절차

  1. 3scale 온-프레미스 관리 포털 콘솔에 로그인합니다.
  2. 계정 관리 API에 대한 쓰기 액세스 권한으로 새 액세스 토큰을 생성합니다.
  3. 나중에 사용할 수 있도록 생성된 액세스 토큰을 저장합니다. 예를 들어 다음과 같습니다.

    export SAAS_ACCESS_TOKEN=123...456
  4. 나중에 사용할 3scale 테넌트의 이름을 저장합니다.

    export ONPREM_ADMIN_PORTAL_HOSTNAME="$(oc get route system-provider-admin -o jsonpath='{.spec.host}')"
  5. 와일드카드 경로를 정의합니다.

    export OPENSHIFT_ROUTER_SUFFIX=app.openshift.test # Replace me!
    
    export APICAST_ONPREM_STAGING_WILDCARD_DOMAIN=onprem-staging.$OPENSHIFT_ROUTER_SUFFIX
    
    export APICAST_ONPREM_PRODUCTION_WILDCARD_DOMAIN=onprem-production.$OPENSHIFT_ROUTER_SUFFIX
    참고

    OPENSHIFT_ROUTER_SUFFIX 의 값을 OpenShift 라우터 접미사(예: app.openshift.test)로 설정해야 합니다.

  6. 기존 3scale 온-프레미스 인스턴스에 와일드카드 경로를 추가합니다.

    oc create route edge apicast-wildcard-staging --service=apicast-staging --hostname="wildcard.$APICAST_ONPREM_STAGING_WILDCARD_DOMAIN" --insecure-policy=Allow --wildcard-policy=Subdomain
    
    oc create route edge apicast-wildcard-production --service=apicast-production --hostname="wildcard.$APICAST_ONPREM_PRODUCTION_WILDCARD_DOMAIN" --insecure-policy=Allow --wildcard-policy=Subdomain
  7. everyone & gt; Accounts > Admin Portal 에서 account로 이동합니다.
  8. Developer 를 클릭합니다.
  9. 개발자 계정 ID 를 에 저장합니다. 이 URL은 /buyers/accounts/:

    export ONPREM_DEVELOPER_ACCOUNT_ID=5

7.2.4. OpenID Connect용 Red Hat Single Sign-On 배포

OIDC( Hybrid - OpenID Connect) 또는 Semantic 버전 관리 샘플 파이프라인을 사용하는 경우 이 섹션의 단계를 수행하여 3scale을 사용하여 Red Hat Single Sign-On(RH-SSO)을 배포합니다. 이는 두 샘플 모두에서 사용되는 OIDC 인증에 필요합니다.

절차

  1. RH-SSO 설명서에 설명된 대로 RH-SSO 7.3 배포.

    다음 예제 명령은 간단한 요약을 제공합니다.

    oc replace -n openshift --force -f https://raw.githubusercontent.com/jboss-container-images/redhat-sso-7-openshift-image/sso73-dev/templates/sso73-image-stream.json
    
    oc replace -n openshift --force -f https://raw.githubusercontent.com/jboss-container-images/redhat-sso-7-openshift-image/sso73-dev/templates/sso73-x509-postgresql-persistent.json
    
    oc -n openshift import-image redhat-sso73-openshift:1.0
    
    oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default
    
    oc new-app --template=sso73-x509-postgresql-persistent --name=sso -p DB_USERNAME=sso -p SSO_ADMIN_USERNAME=admin -p DB_DATABASE=sso
  2. 나중에 사용할 수 있도록 RH-SSO 설치의 호스트 이름을 저장합니다.

    export SSO_HOSTNAME="$(oc get route sso -o jsonpath='{.spec.host}')"
  3. 3scale 개발자 포털 설명서에 설명된 대로 3scale용 RH-SSO를 구성합니다.
  4. 나중에 사용할 영역 이름, 클라이언트 ID 및 클라이언트 시크릿을 저장합니다.

    export REALM=3scale
    
    export CLIENT_ID=3scale-admin
    
    export CLIENT_SECRET=123...456

7.2.5. 3scale toolbox 설치 및 액세스 활성화

이 섹션에서는 toolbox를 설치하고, 원격 3scale 인스턴스를 생성하며, 관리 포털에 액세스하는 데 사용되는 시크릿을 프로비저닝하는 방법을 설명합니다.

절차

  1. 3scale toolbox 에 설명된 대로 3scale toolbox 를 로컬로 설치합니다.
  2. 적절한 toolbox 명령을 실행하여 3scale 원격 인스턴스를 생성합니다.

    3scale Hosted

    3scale remote add 3scale-saas "https://$SAAS_ACCESS_TOKEN@$SAAS_TENANT-admin.3scale.net/"

    3scale On-premises

    3scale remote add 3scale-onprem "https://$ONPREM_ACCESS_TOKEN@$ONPREM_ADMIN_PORTAL_HOSTNAME/"

  3. 다음 OpenShift 명령을 실행하여 3scale 관리 포털 및 액세스 토큰이 포함된 시크릿을 프로비저닝합니다.

    oc create secret generic 3scale-toolbox -n "$TOOLBOX_NAMESPACE" --from-file="$HOME/.3scalerc.yaml"

7.2.6. API 백엔드 배포

이 섹션에서는 샘플 파이프라인과 함께 제공되는 예제 API 백엔드를 배포하는 방법을 보여줍니다. 자체 파이프라인을 생성하고 배포할 때 필요에 따라 자체 API 백엔드를 대체할 수 있습니다.

절차

  1. 다음 샘플과 함께 사용할 Beer Catalog API 백엔드를 배포합니다.

    • SaaS - API 키
    • 하이브리드 - 오픈
    • 하이브리드 - OIDC

      oc new-app -n "$TOOLBOX_NAMESPACE" -i openshift/redhat-openjdk18-openshift:1.4 https://github.com/microcks/api-lifecycle.git --context-dir=/beer-catalog-demo/api-implementation --name=beer-catalog
      
      oc expose -n "$TOOLBOX_NAMESPACE" svc/beer-catalog
  2. 나중에 사용할 수 있도록 Beer Catalog API 호스트 이름을 저장합니다.

    export BEER_CATALOG_HOSTNAME="$(oc get route -n "$TOOLBOX_NAMESPACE" beer-catalog -o jsonpath='{.spec.host}')"
  3. 다음 샘플과 함께 사용할 Red Hat Event API 백엔드 예제를 배포합니다.

    • 멀티 환경
    • 의미 체계 버전 관리

      oc new-app -n "$TOOLBOX_NAMESPACE" -i openshift/nodejs:10 'https://github.com/nmasse-itix/rhte-api.git#085b015' --name=event-api
      
      oc expose -n "$TOOLBOX_NAMESPACE" svc/event-api
  4. 나중에 사용할 수 있도록 이벤트 API 호스트 이름을 저장합니다.

    export EVENT_API_HOSTNAME="$(oc get route -n "$TOOLBOX_NAMESPACE" event-api -o jsonpath='{.spec.host}')"

7.2.7. 자체 관리 APIcast 인스턴스 배포

이 섹션은 3scale 호스팅 환경에서 APIcast 자체 관리 인스턴스와 함께 사용됩니다. SaaS - API 키를 제외한 모든 샘플 파이프라인에 적용됩니다.

절차

  1. 와일드카드 경로를 정의합니다.

    export APICAST_SELF_MANAGED_STAGING_WILDCARD_DOMAIN=saas-staging.$OPENSHIFT_ROUTER_SUFFIX
    
    export APICAST_SELF_MANAGED_PRODUCTION_WILDCARD_DOMAIN=saas-production.$OPENSHIFT_ROUTER_SUFFIX
  2. 프로젝트에 APIcast 자체 관리 인스턴스를 배포합니다.

    oc create secret generic 3scale-tenant --from-literal=password=https://$SAAS_ACCESS_TOKEN@$SAAS_TENANT-admin.3scale.net
    
    oc create -f https://raw.githubusercontent.com/3scale/apicast/v3.5.0/openshift/apicast-template.yml
    
    oc new-app --template=3scale-gateway --name=apicast-staging -p CONFIGURATION_URL_SECRET=3scale-tenant -p CONFIGURATION_CACHE=0 -p RESPONSE_CODES=true -p LOG_LEVEL=info -p CONFIGURATION_LOADER=lazy -p APICAST_NAME=apicast-staging -p DEPLOYMENT_ENVIRONMENT=sandbox -p IMAGE_NAME=registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.13
    
    oc new-app --template=3scale-gateway --name=apicast-production -p CONFIGURATION_URL_SECRET=3scale-tenant -p CONFIGURATION_CACHE=60 -p RESPONSE_CODES=true -p LOG_LEVEL=info -p CONFIGURATION_LOADER=boot -p APICAST_NAME=apicast-production -p DEPLOYMENT_ENVIRONMENT=production -p IMAGE_NAME=registry.redhat.io/3scale-amp2/apicast-gateway-rhel8:3scale2.13
    
    oc scale dc/apicast-staging --replicas=1
    
    oc scale dc/apicast-production --replicas=1
    
    oc create route edge apicast-staging --service=apicast-staging --hostname="wildcard.$APICAST_SELF_MANAGED_STAGING_WILDCARD_DOMAIN" --insecure-policy=Allow --wildcard-policy=Subdomain
    
    oc create route edge apicast-production --service=apicast-production --hostname="wildcard.$APICAST_SELF_MANAGED_PRODUCTION_WILDCARD_DOMAIN" --insecure-policy=Allow --wildcard-policy=Subdomain

7.2.8. 샘플 파이프라인 설치 및 배포

필수 환경을 설정한 후에는 Red Hat Integration 리포지토리의 각 샘플 사용 사례에 대해 제공된 OpenShift 템플릿을 사용하여 샘플 파이프라인을 설치하고 배포할 수 있습니다. 예를 들어 이 섹션에서는 SaaS - API Key 샘플만 보여줍니다.

절차

  1. 제공된 OpenShift 템플릿을 사용하여 Jenkins 파이프라인을 설치합니다.

    oc process -f saas-usecase-apikey/setup.yaml \
               -p DEVELOPER_ACCOUNT_ID="$SAAS_DEVELOPER_ACCOUNT_ID" \
               -p PRIVATE_BASE_URL="http://$BEER_CATALOG_HOSTNAME" \
               -p NAMESPACE="$TOOLBOX_NAMESPACE" |oc create -f -
  2. 다음과 같이 샘플을 배포합니다.

    oc start-build saas-usecase-apikey

7.2.9. 3scale toolbox를 통한 API 라이프사이클 자동화 제한

이 릴리스에는 다음과 같은 제한 사항이 적용됩니다.

OpenShift 지원
샘플 파이프라인은 OpenShift 3.11에서만 지원됩니다. OpenShift 4는 현재 지원되지 않습니다. 지원되는 구성에 대한 자세한 내용은 Red Hat 3scale API Management Supported Configurations 페이지를 참조하십시오.
애플리케이션 업데이트
  • 3scale 애플리케이션 apply toolbox 명령을 사용하여 애플리케이션을 생성하고 업데이트할 수 있습니다. 계정, 계획, 서비스 및 애플리케이션 키를 지원하는 명령을 생성합니다.
  • 업데이트 명령은 계정, 계획 또는 서비스 변경 사항을 지원하지 않습니다. 변경 사항이 전달되면 파이프라인이 트리거되고 오류가 표시되지 않지만 해당 필드는 업데이트되지 않습니다.
서비스 복사
3scale 복사 서비스 toolbox 명령을 사용하여 사용자 지정 정책으로 서비스를 복사하는 경우 사용자 지정 정책을 먼저 복사하고 별도로 복사해야 합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.