7.3. 3scale Jenkins 공유 라이브러리를 사용하여 파이프라인 생성


이 섹션에서는 3scale toolbox를 사용하는 사용자 지정 Jenkins 파이프라인을 생성하는 모범 사례를 제공합니다. 3scale Jenkins 공유 라이브러리를 사용하여 예제 애플리케이션을 기반으로 toolbox를 호출하는 Groovy에서 Jenkins 파이프라인을 작성하는 방법을 설명합니다. 자세한 내용은 Jenkins 공유 라이브러리를 참조하십시오.

중요

Red Hat은 Red Hat Integration 리포지토리에 제공된 Jenkins 파이프라인 샘플을 지원합니다.

이러한 파이프라인에 대한 수정 사항은 Red Hat에서 직접 지원하지 않습니다. 사용자 환경에 대해 생성한 사용자 지정 파이프라인은 지원되지 않습니다.

사전 요구 사항

절차

  1. Jenkins 파이프라인의 시작 부분에 다음을 추가하여 파이프라인의 3scale 공유 라이브러리를 참조합니다.

    #!groovy
    
    library identifier: '3scale-toolbox-jenkins@master',
       retriever: modernSCM([$class: 'GitSCMSource',
         remote: 'https://github.com/rh-integration/3scale-toolbox-jenkins.git'])
  2. 파이프라인의 다양한 단계에서 사용할 수 있도록 ThreescaleService 오브젝트를 보유하는 글로벌 변수를 선언합니다.

    def service = null
  3. 모든 관련 정보를 사용하여 ThreescaleService 를 생성합니다.

    stage("Prepare") {
      service = toolbox.prepareThreescaleService(
         openapi: [ filename: "swagger.json" ],
         environment: [ baseSystemName: "my_service" ],
         toolbox: [ openshiftProject: "toolbox",
                       destination: "3scale-tenant",
                       secretName: "3scale-toolbox" ],
         service: [:],
         applications: [
            [ name: "my-test-app", description: "This is used for tests", plan: "test", account: "<CHANGE_ME>" ]
            ],
         applicationPlans: [
           [ systemName: "test", name: "Test", defaultPlan: true, published: true ],
           [ systemName: "silver", name: "Silver" ],
           [ artefactFile: "https://raw.githubusercontent.com/my_username/API-Lifecycle-Mockup/master/testcase-01/plan.yaml"],
         ]
        )
    
      echo "toolbox version = " + service.toolbox.getToolboxVersion()
     }
    • OpenAPI .filename 은 OpenAPI 사양을 포함하는 파일의 경로입니다.
    • environment.baseSystemNameenvironment.environmentName 및 OpenAPI 사양 info.version 의 API 주요 버전을 기반으로 최종 system_name 을 계산하는 데 사용됩니다.
    • toolbox.openshiftProject 는 Kubernetes 작업이 생성될 OpenShift 프로젝트입니다.
    • toolbox.secretName 은 3scale toolbox 설치 및 액세스 활성화에 표시된 대로 3scale toolbox 구성 파일이 포함된 Kubernetes 시크릿의 이름입니다.
    • toolbox.destination 은 3scale toolbox 원격 인스턴스의 이름입니다.
    • applicationPlans.yaml 파일을 사용하거나 애플리케이션 계획 속성 세부 정보를 제공하여 생성할 애플리케이션 계획 목록입니다.
  4. 3scale에서 서비스를 프로비저닝할 파이프라인 단계를 추가합니다.

    stage("Import OpenAPI") {
      service.importOpenAPI()
      echo "Service with system_name ${service.environment.targetSystemName} created !"
    }
  5. 애플리케이션 계획을 생성하려면 단계를 추가합니다.

    stage("Create an Application Plan") {
      service.applyApplicationPlans()
    }
  6. 글로벌 변수와 단계를 추가하여 테스트 애플리케이션을 생성합니다.

    stage("Create an Application") {
      service.applyApplication()
    }
  7. 통합 테스트를 실행하는 단계를 추가합니다. APIcast 호스팅 인스턴스를 사용하는 경우 프록시 정의를 가져와서 스테이징 공용 URL을 추출해야 합니다.

    stage("Run integration tests") {
      def proxy = service.readProxy("sandbox")
      sh """set -e +x
      curl -f -w "ListBeers: %{http_code}\n" -o /dev/null -s ${proxy.sandbox_endpoint}/api/beer -H 'api-key: ${service.applications[0].userkey}'
      curl -f -w "GetBeer: %{http_code}\n" -o /dev/null -s ${proxy.sandbox_endpoint}/api/beer/Weissbier -H 'api-key: ${service.applications[0].userkey}'
      curl -f -w "FindBeersByStatus: %{http_code}\n" -o /dev/null -s ${proxy.sandbox_endpoint}/api/beer/findByStatus/   available -H 'api-key: ${service.applications[0].userkey}'
      """
    }
  8. API를 프로덕션으로 승격하는 단계를 추가합니다.

    stage("Promote to production") {
      service.promoteToProduction()
    }
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.