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


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

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

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

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

SaaS - API key

3scale Hosted

API 키

Hybrid - open

APIcast 자체 관리가 포함된 3scale Hosted 및 3scale 온-프레미스

없음

하이브리드 - OpenID Connect

APIcast 자체 관리가 포함된 3scale Hosted 및 3scale 온-프레미스

OpenID Connect(OIDC)

다중 환경

APIcast 자체 관리로 개발, 테스트 및 프로덕션에 3scale 호스팅

API 키

의미 체계 버전 관리

APIcast 자체 관리로 개발, 테스트 및 프로덕션에 3scale 호스팅

API 키, 없음, OIDC

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

중요

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

3.2.2. 3scale Hosted 환경 설정

모든 샘플 Jenkins CI/CD 파이프라인에는 3scale Hosted 환경을 설정해야 합니다.

참고

SaaS - API 키,다중 환경Semantic 버전 관리 샘플 파이프라인은 3scale Hosted만 사용합니다. 하이브리드 - 개방형하이브리드 - OIDC 파이프라인도 3scale 온-프레미스를 사용합니다. 3.2.3절. “3scale 온-프레미스 환경 설정” 을 참조하십시오.

사전 요구 사항

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

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

절차

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

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

    export SAAS_TENANT=my_username
  5. 관리 포털에서 Audience > Accounts > Listing 으로 이동합니다.
  6. Developer 를 클릭합니다.
  7. 개발자 계정 ID 를 저장합니다. /buyers/accounts/ 이후 URL의 마지막 부분입니다. 예를 들면 다음과 같습니다.

    export SAAS_DEVELOPER_ACCOUNT_ID=123...456

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

하이브리드 - 개방형 및 하이브리드 - OIDC 샘플 Jenkins CI/CD 파이프라인만 3scale 온- 프레미스 환경을 설정해야 합니다.

참고

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

사전 요구 사항

  • 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. 관리 포털에서 Audience > Accounts > Listing 으로 이동합니다.
  8. Developer 를 클릭합니다.
  9. 개발자 계정 ID 를 저장합니다. /buyers/accounts/: 이후 URL의 마지막 부분입니다.

    export ONPREM_DEVELOPER_ACCOUNT_ID=5

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

Hybrid - OpenID Connect(OIDC) 또는 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

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

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

절차

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

    3scale Hosted

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

    3scale 온-프레미스

    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"

3.2.6. API 백엔드 배포

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

절차

  1. 다음 샘플과 함께 사용할 수 있도록 Beer Catalog API 백엔드 예제를 배포합니다.

    • SaaS - API key
    • 하이브리드 - 오픈
    • 하이브리드 - 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. 나중에 사용할 수 있도록 Event API 호스트 이름을 저장합니다.

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

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

이 섹션은 3scale Hosted 환경의 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-rhel7:3scale2.7
    
    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-rhel7:3scale2.7
    
    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

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

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

절차

  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

3.2.9. 3scale toolbox를 사용한 API 라이프사이클 자동화의 제한 사항

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

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

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.