RATATOSKRATATOSK
로그인

릴리즈

CNCF graduated·incubating 프로젝트 릴리즈 노트의 AI 분석.

프로젝트: Crossplane해제 ×

Crossplane

Orchestration & Management2026년 6월 22일

Crossplane v2.3.3은 OCI 패키지 서명 검증의 TOCTOU 취약점(GHSA-mf7q-r4rv-jv94)을 수정하고, namespaced XR에서 `crossplane render`가 잘못된 namespace를 주입하던 버그를 고칩니다.

  • securityOCI 서명 TOCTOU 취약점(GHSA-mf7q-r4rv-jv94) — 즉시 업그레이드 필요

    이 취약점은 악의적인 OCI 레지스트리가 서명 검증을 통과한 뒤 서명되지 않은 패키지 콘텐츠를 제공할 수 있는 문제입니다. OCI 레지스트리에서 패키지를 설치하는 모든 Crossplane 환경에 해당됩니다. v2.3.3으로 업그레이드하고, 취약한 버전에서 설치된 패키지는 재설치를 검토하세요. 기술 세부사항은 crossplane-runtime v2.3.3 어드바이저리를 확인하세요.

  • securitygolang.org/x/net, x/sys CVE 패치 — 소스 빌드 환경 확인 필요

    Crossplane을 소스에서 빌드하거나 자체 provider/function에서 이 라이브러리를 vendor로 관리하는 팀은 의존성 버전을 v2.3.3 기준으로 맞춰야 합니다. 공식 이미지를 사용 중이라면 v2.3.3 이미지에 이미 패치된 버전이 포함되어 있습니다.

  • breakingnamespaced XR에서 crossplane render의 namespace 주입 동작 변경

    CI 파이프라인이나 로컬 테스트에서 `crossplane render`를 namespaced XR 대상으로 실행한다면, 이제 injected resource ref에 namespace가 붙지 않습니다. 실제 reconciler 동작에 맞춘 수정이지만, 기존 render 테스트 결과가 달라질 수 있습니다. 업그레이드 후 render 테스트를 다시 돌려 예상치 못한 차이가 없는지 확인하세요.

주요 변경 (4)
  • OCI 패키지 서명 검증 TOCTOU 취약점 수정 — crossplane-runtime v2.3.3 통해 반영 (GHSA-mf7q-r4rv-jv94)
  • namespaced XR의 resource ref에 namespace가 잘못 설정되던 `crossplane render` 버그 수정 — KCL 바인딩 등 strict schema 함수가 깨지는 문제 해결
  • Go 툴체인을 1.25.11로 업그레이드
  • apis 모듈 내 golang.org/x/net 및 golang.org/x/sys를 CVE 패치 버전으로 업데이트
원문

Crossplane

Orchestration & Management2026년 6월 5일

v2 업그레이드 준비 상태를 자동으로 점검하는 CLI 명령 추가, golang.org/x/net 보안 패치, 런타임 업데이트가 포함된 패치 릴리스입니다.

  • securitygolang.org/x/net 보안 패치 — 즉시 업그레이드 필요

    golang.org/x/net이 보안 이슈로 v0.55.0으로 업데이트됐습니다. 릴리스 노트가 명시적으로 보안 업데이트로 분류한 만큼, 선택이 아닌 필수 조치입니다. 다음 정기 점검 시점을 기다리지 말고, 가능한 가장 빠른 유지보수 창에 v1.20.9로 업그레이드하세요.

  • breakingupgrade check 결과는 경고가 아닌 실제 차단 항목

    이 명령은 v2에서 제거되거나 변경된 기능 — 네이티브 P&T Composition, ControllerConfig, 외부 시크릿 스토어, 미정규화 패키지 소스 — 의 실제 사용 여부를 검사합니다. 단순한 deprecation 경고가 아니라 업그레이드를 막는 하드 블로커입니다. 점검 결과에 문제가 있다면, v2 업그레이드 전에 제공된 마이그레이션 가이드를 따라 선행 작업을 완료해야 합니다. 그냥 업그레이드하면 운영 중인 워크로드가 중단됩니다.

  • enhancementv2 마이그레이션 계획 전 upgrade check 먼저 실행

    v1.x 컨트롤 플레인을 운영 중이고 v2 전환이 로드맵에 있다면, 지금 당장 `crossplane beta upgrade check`를 실행해 보세요. 어떤 Composition, ControllerConfig, 패키지 참조가 업그레이드를 막는지 정확히 알 수 있어 수동 감사에 드는 시간을 크게 줄일 수 있습니다. `-o json` 옵션과 함께 CI 파이프라인에 연결하면, v2 업그레이드 PR 병합 전 자동 게이팅도 간단히 구현됩니다.

주요 변경 (5)
  • `crossplane beta upgrade check` 명령으로 실행 중인 컨트롤 플레인의 v2 호환성을 사전 점검 가능
  • 네이티브 P&T Composition, ControllerConfig 사용, 외부 시크릿 스토어, 미정규화 패키지 소스, 연결 세부 정보 등 v2 주요 변경 사항 전 항목 검사
  • 기본 출력은 사람이 읽기 쉬운 텍스트 형식, `-o json` 옵션으로 JSON 출력 가능하며 문제 발견 시 비정상 종료 코드 반환 — CI 게이팅에 바로 활용 가능
  • 각 점검 결과에 마이그레이션 가이드 및 `crossplane beta convert` 명령 링크 포함
  • 보안 업데이트: golang.org/x/net v0.55.0 및 crossplane-runtime v1.20.9 적용
원문

Crossplane

Orchestration & Management2026년 5월 21일

Crossplane v2.3.0은 고충실도 로컬 렌더 엔진, 리소스별 재조정 제어, 알파 단계의 Provider 삭제 보호 기능을 제공하며, Go stdlib CVE 수정을 포함한 다수의 보안 의존성 업데이트를 반영했습니다.

  • securityGo stdlib CVE 수정 — 이미지 업데이트 권장

    stdlib CVE 패치를 위해 Go가 1.25.10으로 올라갔으며, grpc, go-git, go-jose, cloudflare/circl, golang.org/x/net 등 여러 의존성도 보안 패치가 적용됐습니다. 가능한 빨리 Crossplane 배포를 v2.3.0으로 업데이트하세요. 내부 이미지 미러를 운영 중이라면 롤아웃 전에 새 다이제스트가 반영됐는지 확인하세요.

  • breakingAPI 임포트 경로 변경 및 신규 CLI 저장소 북마크 필수

    Go 코드에서 Crossplane API를 임포트하고 있다면 `github.com/crossplane/crossplane/v2/apis`를 `github.com/crossplane/crossplane/apis/v2`로 수정해야 합니다. `v1.Resource*` 타입은 `v2.ClusterManagedResource*`로 이름이 바뀌었습니다. CLI 버전 관리도 `github.com/crossplane/cli` 저장소 기준으로 전환해야 하며, 코어와 버전이 달라지므로 CI 파이프라인의 버전 핀을 점검하세요.

  • breakingv2.2에서 순차 업그레이드 필수 — 마이너 버전 건너뛰기 금지

    Crossplane은 업그레이드 시 CRD 마이그레이션을 수행하는데, 마이너 버전을 건너뛰면 API 서버 상태가 불일치할 수 있습니다. v1.20 브랜치는 연장 지원을 받지만 v2.x 마이그레이션 계획을 세워야 하며, 공식 업그레이드 가이드의 순차 업그레이드 절차를 반드시 따르세요.

  • enhancement리소스별 폴링 어노테이션으로 API 서버 부하 절감

    변경이 드문 안정적인 XR에 `crossplane.io/poll-interval: 24h`를 설정하면 재조정 빈도를 크게 낮출 수 있습니다. `crossplane.io/reconcile-requested-at` 어노테이션과 함께 쓰면 필요할 때만 온디맨드 재조정을 트리거할 수 있습니다. XR에는 즉시 적용되지만, 관리 리소스는 Provider가 crossplane-runtime v2.3.0 기반으로 릴리스된 후 사용 가능합니다.

  • enhancementProvider 삭제 보호는 비프로덕션 환경에서 먼저 검증

    신규 `--enable-provider-deletion-protection` 알파 플래그는 관리 리소스가 존재하는 동안 Provider 삭제를 막는 `ClusterUsage` 리소스를 자동으로 생성합니다. 공유 클러스터에서 유용한 안전장치인 만큼, 기존 `ClusterUsage` 웹훅이 자동 생성된 리소스를 올바르게 처리하는지 스테이징에서 먼저 확인한 뒤 프로덕션에 적용하세요.

주요 변경 (6)
  • API 모듈 분리: `github.com/crossplane/crossplane/apis/v2`가 별도 Go 모듈로 분리됨. 외부 소비자는 임포트 경로 변경 필요
  • Crossplane CLI(`crank`)가 별도 저장소(`github.com/crossplane/cli`)로 이전되어 v2.3.0 이후 독립적인 릴리스 일정으로 운영됨
  • `crossplane render`가 병렬 재구현 대신 실제 컴포짓 재조정기를 구동하여 로컬 렌더 결과와 실제 클러스터 동작이 일치하게 됨
  • 신규 어노테이션 `crossplane.io/poll-interval`, `crossplane.io/reconcile-requested-at`으로 리소스별 재조정 제어 가능 (XR은 즉시 적용, 관리 리소스는 Provider가 crossplane-runtime v2.3.0 기반으로 업데이트된 후 적용)
  • `--enable-provider-deletion-protection` 플래그(알파)로 관리 리소스가 존재하는 동안 Provider 실수 삭제 방지 가능
  • Go 1.25.10으로 업그레이드(stdlib CVE 수정) 및 grpc, go-git, go-jose, cloudflare/circl 등 보안 의존성 다수 업데이트
원문

Crossplane

Orchestration & Management2026년 4월 20일

Crossplane v2.2.1은 ImageConfig 접두사 재작성 시 의존성 업그레이드 누락과 ResourceSelector 처리 버그를 수정하고, 보안 관련 의존성을 일괄 업데이트한 패치 릴리스입니다.

  • security보안 패치 적용을 위해 v2.2.1로 즉시 업그레이드

    이번 릴리스에는 cosign, go-git, go-jose, cloudflare/circl 등 8개 이상의 업스트림 라이브러리 보안 패치가 포함됩니다. go-git은 이번 릴리스에서만 v5.17.1과 v5.18.0으로 두 차례 보안 업데이트가 이뤄졌습니다. v2.2.0을 사용 중이라면 지금 바로 업그레이드 일정을 잡으세요. 호환성을 깨는 변경 사항은 없으므로 드롭인 교체가 가능합니다.

  • breaking업그레이드 후 ImageConfig 접두사 재작성 설정 검증 필요

    프라이빗 레지스트리 미러 등으로 패키지 풀을 우회하는 ImageConfig 접두사 재작성을 사용 중이었다면, 이전까지 의존성 패키지가 오래된 버전에 고정된 채로 방치됐을 수 있습니다. v2.2.1로 업그레이드하면 Crossplane이 그동안 멈춰 있던 의존성 패키지를 재조정하며 업그레이드할 수 있으니, 업그레이드 후 설치된 패키지 버전을 반드시 확인하세요.

  • enhancement컴포지션 함수에서 광범위한 ResourceSelector 안전하게 사용 가능

    특정 kind의 모든 리소스를 선택해야 하는 컴포지션 함수에서 더 이상 우회책이 필요하지 않습니다. apiVersion과 kind만 설정한 ResourceSelector가 유효하게 처리됩니다. matchLabels나 matchName 와일드카드로 이 문제를 우회했다면, 함수 로직에서 해당 셀렉터를 단순화할 수 있습니다.

주요 변경 (5)
  • ImageConfig 접두사 재작성으로 설치된 패키지가 의존성 업그레이드를 무시하던 버그 수정
  • apiVersion/kind만 지정한 ResourceSelector가 거부되던 문제 수정 — 이제 해당 종류의 모든 리소스를 선택하는 것으로 올바르게 처리됨
  • Go 런타임을 보안 태그와 함께 1.25.9로 업그레이드
  • cosign, go-git, go-jose, cloudflare/circl, moby/spdystream, sigstore/timestamp-authority, docker/cli, OTel OTLP HTTP 추적 익스포터 보안 패치 적용
  • CI 워크플로우 보강: promote 워크플로우의 스크립트 인젝션 위험 완화 및 작업 수준 권한 추가
원문

Crossplane

Orchestration & Management2026년 4월 20일

v2.1.5는 ImageConfig 업그레이드 누락, ResourceSelector 매칭 오류, XR 삭제 시 서킷 브레이커 초기화 실패 등 세 가지 동작 버그를 수정하고, Go 1.25.9를 포함한 광범위한 보안 의존성 업데이트를 반영한 패치 릴리스입니다.

  • security핵심 의존성 다수에 CVE 패치 포함 — 빠른 업그레이드 권장

    grpc, go-git(두 번 패치), go-jose, cloudflare/circl, moby/spdystream, docker/cli, OTel OTLP 트레이스 익스포터에 걸쳐 보안 업데이트가 포함됐고, Go 자체도 1.25.9로 올라갔습니다. 단순한 의존성 정리 수준이 아닙니다. v2.1.4에 머무를 이유가 없으니, 가능한 한 빨리 이 버전으로 전환하세요.

  • breakingImageConfig 프리픽스 재작성 사용 시 패키지 버전 누락 여부 확인 필수

    ImageConfig로 레지스트리 프리픽스를 재작성하는 환경이라면, 버그가 존재하던 기간 동안 의존 패키지가 조용히 구버전에 고정됐을 수 있습니다. v2.1.5로 업그레이드한 뒤 패키지 의존성 그래프를 직접 확인하세요. 오래된 패키지는 자동으로 재설치되지 않으므로, 버전 범프나 수동 재설치를 통해 명시적으로 갱신해야 합니다.

  • enhancementkind 전체 선택 ResourceSelector로 컴포지션 함수 로직 단순화 가능

    이전에 bare apiVersion/kind 셀렉터가 거부되어 dummy matchLabels를 추가하거나 로직을 우회하는 방식으로 작성한 컴포지션 함수가 있다면 정리할 때가 됐습니다. 매치 필드 없이 apiVersion과 kind만 지정하면 '해당 종류의 모든 리소스'로 올바르게 해석됩니다. 업그레이드 후 기존 워크어라운드를 검토하고 제거하세요.

주요 변경 (5)
  • ImageConfig 프리픽스 재작성 환경에서 의존 패키지가 오래된 버전에 묶여 있던 문제 수정
  • 컴포지션 함수에서 matchName/matchLabels 없이 apiVersion과 kind만으로 특정 종류의 전체 리소스를 선택할 수 있게 됨
  • XR 삭제 후 재생성 시 이전 서킷 브레이커 상태가 남아 조정을 막던 버그 수정
  • grpc, go-git(두 차례), go-jose, cloudflare/circl, moby/spdystream, docker/cli, sigstore, OTel OTLP HTTP 익스포터 보안 패치
  • Go 런타임을 1.25.9로 업그레이드
원문

Crossplane

Orchestration & Management2026년 4월 20일

v2.0.8은 ImageConfig 프리픽스 리라이트 의존성 업그레이드 오류와 ResourceSelector 처리 버그를 수정하고, 다수의 업스트림 보안 취약점을 패치한 릴리스입니다.

  • security보안 패치를 위해 즉시 v2.0.8로 업그레이드

    이번 릴리스에서 보안 태그가 붙은 의존성 업데이트가 다수 포함됐습니다. go-git은 v5.17.1에 이어 v5.18.0까지 두 차례 올라갔고, go-jose, cloudflare/circl 등도 CVE 관련 수정입니다. v2.0.x를 사용 중이라면 지금 바로 업그레이드하세요. API 변경이 없어 업그레이드 경로는 단순합니다.

  • breakingImageConfig 프리픽스 리라이트 환경에서 패키지 의존성 버전 점검 필수

    사설 레지스트리 리다이렉션 등을 위해 ImageConfig 프리픽스 리라이트를 사용해왔다면, 의존 패키지들이 오래된 버전에 조용히 고착됐을 수 있습니다. v2.0.8 업그레이드 후 강제 reconciliation을 실행하고, 모든 패키지 의존성이 기대 버전인지 확인하세요. 업그레이드만으로 이미 고착된 상태가 자동 해소된다고 가정하지 마세요.

  • enhancement컴포지션 함수에서 'kind 전체 선택' 시 빈 ResourceSelector 활용 가능

    기존에는 ResourceSelector에 matchName과 matchLabels를 생략하면 요청 자체가 거부됐습니다. 이제는 빈 셀렉터가 '해당 kind의 모든 리소스'를 의미하도록 올바르게 처리됩니다. 이 제한을 피하려고 리소스를 일일이 열거하거나 더미 조건을 추가했다면, 업그레이드 후 해당 워크어라운드를 정리하세요.

주요 변경 (5)
  • ImageConfig 프리픽스 리라이트 환경에서 의존 패키지가 구버전에 고착되던 버그 수정
  • apiVersion과 kind만 설정된 ResourceSelector(matchName/matchLabels 없음)가 올바르게 '해당 kind의 모든 리소스'로 해석되도록 수정
  • Go 런타임을 1.25.9로 업그레이드(보안 패치 포함)
  • go-git, go-jose, cloudflare/circl, moby/spdystream, sigstore/timestamp-authority, docker/cli, OTLP HTTP trace exporter 보안 패치
  • promote 워크플로우의 스크립트 인젝션 취약점 완화
원문