5장. Fuse Online 공용 REST API 엔드포인트를 호출하는 방법


OCP에서 Fuse Online을 실행하는 경우 각 Fuse Online 환경에서 퍼블릭 REST API 엔드포인트를 노출할 수 있습니다. CI/CD(외부 지속적 통합/지속적 제공) 툴은 이러한 엔드포인트를 호출하여 Fuse Online 환경에 있는 리소스에서 작동할 수 있습니다.

각 Fuse Online 환경에서 OpenShift 관리자는 외부 툴에서 해당 엔드포인트를 호출하기 전에 Fuse Online 공용 REST API 엔드포인트를 노출해야 합니다. API 엔드포인트를 호출하는 명령은 엔드포인트가 작동하는 Fuse Online 환경의 URL, 시크릿 토큰 및 권한 부여 토큰을 지정합니다.

자세한 내용은 다음 항목을 참조하십시오.

5.1. 외부 툴에서 사용할 Fuse Online 공용 REST API 노출

사이트에서 Fuse Online을 실행하는 경우 외부 툴을 사용하여 Fuse Online 환경에서 다른 Fuse Online 환경으로 Fuse Online 통합을 복사할 수 있습니다. 외부 CI/CD 툴은 Jenkins 작업, Ansible 플레이북, cron- 기반 쉘 스크립트 또는 기타 작업일 수 있습니다. 예를 들어 Ansible Playbook은 Fuse Online 개발 환경에서 통합을 내보내 Fuse Online 테스트 환경으로 가져올 수 있습니다.

이 기능을 사용하려면 각 Fuse Online 환경에 대해 Fuse Online 공용 REST API 엔드포인트를 공개해야 합니다. 즉, Fuse Online이 설치된 각 OpenShift 프로젝트에서 이 절차를 반복해야 합니다.

사전 요구 사항

  • Fuse Online이 설치된 OCP 프로젝트가 있습니다.
  • oc 클라이언트 툴이 설치되고 Fuse Online이 설치된 OCP 클러스터에 연결됩니다.
  • 외부 CI/CD 툴을 사용하며 하나의 Fuse Online 환경에서 다른 Fuse Online 환경으로 마크된 통합을 복사하려고 합니다.
  • syndesis-operator grant 명령을 실행하려면 클러스터 관리 권한이 필요합니다. 클러스터 관리 권한이 없지만 OpenShift 프로젝트에 대한 관리 권한이 있는 사용자는 다른 명령을 실행할 수 있습니다.

프로세스

  1. 클러스터 관리 권한이 있는 계정으로 OpenShift에 로그인합니다. 예를 들면 다음과 같습니다.

    oc login -u admin -p admin

    이 절차에서는 syndesis-operator grant 명령에만 클러스터 관리 권한이 필요하지만 클러스터 관리자가 모든 단계를 수행하는 것으로 가정합니다.

  2. Fuse Online이 실행 중인 OpenShift 프로젝트로 전환합니다. 이 프로젝트에서만 공용 API를 노출하고 있습니다. 예를 들면 다음과 같습니다.

    oc project fuse-online-north

  3. syndesis-public-oauthproxy 서비스 계정에 역할을 부여합니다. OpenShift 프로젝트에서는 이 서비스 계정을 사용하여 OAuth 프록시 서비스를 실행합니다. 클러스터 관리 권한이 있는 사용자 계정을 지정합니다. 예를 들면 다음과 같습니다.

    syndesis-operator grant --user developer

    이 명령은 클러스터 역할 및 클러스터 역할 바인딩을 syndesis-public-oauthproxy 서비스 계정에 생성하고 할당합니다. ClusterRoleBinding 은 이 예에서 fuse-online-north 인 API를 노출하는 OpenShift 프로젝트의 이름을 지정합니다.

    • ClusterRole: syndesis-auth-delegator
    • ClusterRoleBinding: syndesis-fuse-online-north-auth-delegator
  4. 클라이언트 서비스 계정을 생성하고 Fuse Online 공용 API에 액세스할 수 있는 권한을 부여합니다.

    1. 원하는 이름으로 OpenShift 서비스 계정을 생성합니다. 예를 들어 다음 명령은 cicd-client 서비스 계정을 생성합니다.

      oc create serviceaccount cicd-client

      공용 API 엔드포인트를 호출하는 명령은 이 계정을 사용하여 공용 API에 액세스합니다. 또한 API 엔드포인트에 대한 호출에 지정해야 하는 시크릿 토큰을 얻으려면 이 서비스 계정이 필요합니다. 이는 REST API 엔드포인트를 호출하기 위한 시크릿 토큰을 가져오는 데 사용됩니다.

    2. 클라이언트 서비스 계정에 Fuse Online 공용 API에 액세스할 수 있는 권한을 부여합니다. fuse-online-north 가 Fuse Online이 설치된 OpenShift 프로젝트의 이름이며 cicd-client 가 API 서비스 액세스를 위해 생성한 서비스 계정의 이름이면 다음 명령을 호출합니다.

      oc policy add-role-to-user edit system:serviceaccount:fuse-online-north:cicd-client`
  5. syndesis 사용자 정의 리소스를 편집합니다.

    1. 일반적으로 편집기에서 리소스를 여는 다음 명령을 호출합니다.

      oc edit syndesis

    2. 공용 API를 사용하도록 리소스를 편집하고 routeHostname 의 설정으로 엔드포인트를 호출하는 Fuse Online 환경의 공용 주소를 지정합니다. ( Fuse Online을 설치하는 데 사용된 default-cr.yml 파일을 편집하고 공용 API를 활성화하고 엔드포인트의 경로 호스트 이름을 지정한 경우 리소스를 편집할 필요가 없습니다.)

      클러스터 설정에 따라 지정해야 하는 공용 주소가 결정됩니다. 자세한 내용은 경로에 대한 OpenShift 설명서를 참조하십시오. 다음 예에서 경로 호스트 이름은 Minishift 클러스터에 유효합니다.

      spec:
        addons:
          publicApi:
            enabled: true
            routeHostname: public-syndesis.192.168.64.63.nip.io
    3. 리소스를 저장(또는 닫기)합니다.

      syndesis 사용자 정의 리소스 트리거를 저장하면 Fuse Online 설치를 담당하는 syndesis-operator 가 공용 API OAuth 프록시 서비스를 배포합니다.

      syndesis 사용자 정의 리소스를 편집할 필요가 없는 경우 공용 API OAuth 프록시 서비스가 이미 배포되었습니다. 이는 publicApi 가 활성화되고 Fuse Online을 설치하는 데 사용된 default-cr.yml 파일에 지정된 경로가 있기 때문일 수 있습니다.

결과

OpenShift에서 다음을 확인할 수 있습니다.

  • syndesis-public-oauthproxy 배포 구성을 위한 Pod입니다.
  • A syndesis-public-oauthproxy service.
  • A syndesis-public-api route.

이 절차를 수행한 OpenShift 프로젝트에서 외부 CI/CD 툴에서는 Fuse Online 공용 REST API 엔드포인트를 사용하여 Fuse Online 통합을 내보내거나 가져올 수 있습니다.

다음 단계

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.