6.3. 서비스 레지스트리 새 기능

Service Registry 2.4에는 다음과 같은 새로운 기능이 포함되어 있습니다.

서비스 레지스트리 핵심 새로운 기능

아티팩트 참조 개선 사항
  • 아티팩트 참조 무결성 규칙: 새 아티팩트별 규칙과 글로벌 규칙을 적용하여 아티팩트를 생성하거나 업데이트할 때 아티팩트 참조의 무결성을 적용할 수 있습니다. 모든 아티팩트 유형의 경우 규칙은 중복 아티팩트 참조를 감지하고 존재하지 않는 아티팩트에 대한 참조를 방지합니다. 아티팩트 유형(Apache Avro, Google Protobuf, OpenAPI 및 AsyncAPI)의 하위 집합의 경우 규칙은 모든 아티팩트 참조가 매핑되도록 합니다.
  • Maven 플러그인의 자동 아티팩트 참조 감지: 아티팩트 유형(Apache Avro, Google Protobuf 및 JSON 스키마)의 하위 집합의 경우 Maven 플러그인은 아티팩트를 생성하거나 업데이트할 때 지정된 아티팩트에 대한 모든 아티팩트 참조를 자동으로 식별하고 구성할 수 있습니다.
  • 웹 콘솔의 아티팩트 참조 시각화: 아티팩트 버전에 대한 인바운드 및 아웃바운드 참조를 모두 새 참조 탭에서 볼 수 있습니다. REST API는 이제 인바운드 및 아웃바운드 참조 둘 다 검색을 지원합니다. 이전에는 REST API에서 아웃바운드 참조만 검색했으며 웹 콘솔에 참조가 표시되지 않았습니다.
  • 아티팩트 참조는 이제 콘텐츠로 처리됩니다. 이제 이 릴리스에서는 콘텐츠 해시 및 ID를 계산하고 아티팩트 버전의 호환성을 확인할 때 아티팩트 참조를 고려합니다. 다른 참조로 동일한 스키마 콘텐츠를 업로드하는 경우 새 아티팩트 버전을 생성합니다.
클라이언트 SDK 생성 (OpenAPI)
이번 릴리스에서는 사용자가 OpenAPI 아티팩트에서 클라이언트 SDK를 생성할 수 있는 새로운 웹 콘솔 기능이 추가되었습니다. 이 기능은 Microsoft의 Kiota를 사용하여 SDK를 생성합니다. 이 기능은 브라우저에서만 실행되며 API를 사용하여 자동화할 수 없습니다. 자세한 내용은 https://github.com/microsoft/kiota 을 참조하십시오.
아티팩트 버전 삭제
이 릴리스에서는 REST API를 사용하여 아티팩트 버전을 삭제할 수 있도록 새 REST API 작업과 새 Delete 아티팩트 버전 설정이 웹 콘솔에 추가되었습니다. 이전에는 아티팩트 버전을 변경할 수 없었습니다. 더 이상 사용되지 않거나 비활성화할 수는 있었지만 삭제할 수는 없었습니다. 그러나 의미 체계적 의미에도 불구하고 아티팩트 버전을 삭제해야 하는 경우가 있습니다. 예를 들어 규정 또는 정책상의 이유로 아티팩트 버전을 삭제해야 할 수 있습니다.
코어 레지스트리 REST API 개선 사항
  • 버전 주석 API: 이제 REST API를 사용하여 아티팩트 버전에 주석을 추가할 수 있습니다. 웹 콘솔에서는 댓글 관리는 아직 사용할 수 없습니다.
  • 내보내기 API는 Accept 헤더에서 application/json을 지원합니다. 이제 /admin/export API 엔드포인트에 대한 호출에서 Accept 헤더의 값으로 application/json 을 보낼 수 있습니다. 이전에는 애플리케이션/json 형식의 응답을 반환하는 유일한 방법은 forBrowser 쿼리 매개변수를 사용하는 것입니다. 이제 query 매개변수 또는 Accept 헤더를 사용할 수 있습니다.
  • 그룹 관리: 아티팩트 생성의 일부로 암시적으로 암시적으로 REST API를 사용하여 선택적으로 아티팩트 그룹을 직접 관리할 수 있습니다.
Conluent Compatibility REST API 개선 사항
  • Confluent Compatibility API에 대한 업데이트된 지원: Confluent Schema Registry API 버전 7에 대한 지원이 추가되었습니다. 서비스 레지스트리는 이제 다른 엔드포인트에서 v6 및 v7을 모두 지원합니다.
  • 사용자 지정 가능한 최대 주체 수: 이제 registry.ccompat.max-subjects 동적 구성 속성을 사용하여 ccompat API에서 반환하는 최대 주체 수를 사용자 지정할 수 있습니다.
기타 변경 사항
  • 콘텐츠 해시를 사용하여 serializer/deserializer 아티팩트 확인:SerDe 클래스는 스키마의 콘텐츠 해시를 사용하여 아티팩트 좌표를 확인할 수 있습니다.
  • Avro를 축소하는 Maven 플러그인 옵션: Maven 플러그인을 사용하여 Avro 스키마를 등록할 때 등록 전에 콘텐츠를 축소할 수 있습니다.
community-only: 사용자 정의 아티팩트 유형

사용자는 잠재적으로 자체 사용자 지정 아티팩트 유형을 사용하여 서비스 레지스트리를 확장하고 기존 유형에 대한 지원을 제거할 수 있습니다. 이 기능은 서비스 레지스트리의 커뮤니티 버전에서만 사용할 수 있으며 지원되지 않습니다.

참고

이 기능을 제공하기 위해 REST API의 ArtifactTypeenum 에서 간단한 문자열로 변경되었습니다. 사용자 지정 통합을 위해 REST API 클라이언트를 사용하는 경우 최신 클라이언트로 업그레이드한 후 코드를 편집해야 할 수 있습니다.

Service Registry Operator의 새로운 기능

HTTPS에 대한 Operator 지원
OpenShift 클러스터 내에서 HTTPS 연결 구성 지원이 추가되었습니다. 각각 tls.crttls.key 라는 인증서와 개인 키가 포함된 보안을 생성하고 ApicurioRegistry CRD(사용자 정의 리소스 정의) 파일에서 spec.configuration.security.https.secretName 필드를 설정하여 보안을 참조할 수 있습니다. 그러면 Service Registry Operator가 서비스 레지스트리 서비스 리소스에 HTTPS 포트를 구성할 수 있습니다. HTTPS가 활성화된 경우 spec.security.https.disableHttptrue 로 설정하여 HTTP 연결을 비활성화할 수 있습니다.
수동으로 관리되는 OpenShift 리소스 지원

이제 특정 리소스 유형을 비활성화하여 Service Registry Operator가 해당 리소스를 생성하거나 관리하지 않도록 수동으로 구성할 수 있습니다. 수동 구성을 사용하면 현재 Service Registry Operator에서 지원하지 않는 기능을 유연하게 사용할 수 있습니다. 리소스 유형을 비활성화하면 기존 인스턴스가 삭제됩니다. 리소스 유형을 활성화하면 Service Registry Operator에서 app 레이블(예: app=example-apicurioregistry)을 사용하여 리소스를 찾고 관리를 시작합니다. 그렇지 않으면 Service Registry Operator가 새 인스턴스를 생성합니다. 이러한 방식으로 다음 리소스 유형을 비활성화할 수 있습니다.

  • Ingress
  • NetworkPolicy
  • PodDisruptionBudget
로그 수준 구성 개선
ApicurioRegistry CRD 파일에서 spec.configuration.registryLogLevel 필드를 사용하여 Service Registry 및 Service Registry Operator의 로그 수준을 더 쉽게 설정할 수 있습니다. 이 새 필드는 Apicurio 이외의 구성 요소 및 라이브러리에서 작동하는 spec.configuration.logLevel 필드와 달리 Apicurio 애플리케이션 구성 요소(비Apicurio 구성 요소 및 라이브러리 제외)의 로그 수준을 설정합니다. Operator 배포 리소스에서 LOG_LEVEL 환경 변수를 설정하여 Service Registry Operator의 로그 수준을 설정할 수도 있습니다. 유효한 LOG_LEVEL 값은 debug,info,warn, error 입니다.
CORS 허용 출처

서버는 CORS(Cross-Origin Resource Sharing) 메커니즘을 사용하여 요청 출처와 응답을 공유할 수 있는지 여부를 제어할 수 있습니다. Service Registry Operator는 ApicurioRegistry CRD 파일의 spec.deployment.host 필드 값을 기반으로 CORS_ALLOWED_ORIGINS 환경 변수를 설정합니다. 이 환경 변수는 Service Registry에서 보낸 Access-Control-Allow-Origin 헤더를 제어합니다.

사용자 정의 Ingress (예: HTTPS를 설정하기 위해) spec.deployment.managedResources.disable Ingress 필드를 true 로 설정하고 spec.deployment.host 필드를 적절한 값으로 설정하여 Operator 관리 Ingress를 비활성화할 수 있습니다. 완전히 사용자 지정된 CORS 정책을 구성하려면 spec.deployment.host 필드를 비워 두고 변경 사항을 적용한 다음 spec.deployment.env 필드를 사용하여 CORS_ALLOWED_ORIGINS 환경 변수를 수동으로 설정할 수 있습니다.

Pod 템플릿을 사용하여 서비스 레지스트리 배포 구성

ApicurioRegistry CRD 파일에 spec.deployment.podTemplateSpecPreview 필드가 기술 프리뷰 기능으로 포함됩니다. spec.deployment.podTemplateSpecPreview 필드에는 OpenShift Deployment 리소스의 spec.template 필드( PodTemplateSpec 구조)와 동일한 구조가 있습니다. 일부 제한 사항이 있는 경우 Service Registry Operator는 이 필드의 데이터를 Service Registry Deployment 리소스의 해당 필드로 전달합니다. 이 기능은 Service Registry Operator가 각 사용 사례를 기본적으로 지원할 필요 없이 구성 유연성을 향상시킵니다.

중요

기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

Service Registry 사용자 문서 및 예

문서 라이브러리가 버전 2.4에서 사용할 수 있는 새로운 기능으로 업데이트되었습니다.

오픈 소스 데모 애플리케이션도 업데이트되었습니다.