Kubernetes

Helm Values Diff재정의가 바꾸는 실제 결과

기본값 하나와 독립된 두 재정의를 비교합니다. 출력 값은 기본적으로 가려집니다.

Helm Values Diff

이전 재정의

차이

세 입력은 모두 브라우저에서 처리하며 내용을 전송하지 않습니다.

출력 값은 기본적으로 가립니다. 경로와 키는 보이며 입력과 교체 미리 보기는 원문입니다. 가려진 YAML은 검토용입니다.

Helm 3.19.0 단일 차트: 기본값에 각 재정의를 독립 적용합니다. 매핑은 병합, 목록은 교체하며 차이는 인덱스로 비교합니다.

입력당 200,000자·20,000노드·깊이 60. 차이 5,000개, 보고서 400만 자, 실행 5초 제한.

설정을 입력하거나 비교를 실행하세요.

Helm Values Diff는 환경별 Values 파일에서 설정을 지웠는데도 배포 설정에 남는 이유를 찾는 데 유용합니다. 재정의를 없애면 차트 기본값이 다시 적용될 수 있습니다. 유효한 결과를 비교하거나 원본 재정의로 전환해 작성자가 바꾼 선언 자체를 검토하세요.

Helm Values Diff를 사용하는 이유

기본값으로 돌아가는 변경 확인

Helm Values Diff는 같은 기본값에 두 버전을 따로 병합합니다. 새 버전에서 replicas를 생략하면 이전 재정의가 아니라 기본 개수를 사용합니다. Helm values 비교에서 파일의 삭제와 실제 값의 삭제를 구별할 수 있습니다.

공통 설정 트리가 두 재정의 가지로 나뉘고, 제거된 잎에 상속된 기본값이 다시 나타나는 그림.

내용을 가려도 변경 사실 유지

실제 값으로 먼저 비교한 다음 보고서의 값을 가립니다. 이전과 새 암호가 같은 표시로 보이더라도 수정 항목은 남습니다. 새 객체와 배열 안의 중첩 값도 처리되므로 보고서의 일부 경로만 따로 놓치지 않습니다.

서로 다른 값 두 개가 가림 처리를 거쳐 같은 덮개 아래 놓이지만 변경 표시는 남아 있는 그림.

검토 목적에 맞게 범위 선택

01

세 입력을 독립적으로 관리

왼쪽 선택기는 기본값, 이전 재정의, 새 재정의를 각각 보관합니다. 환경별 완전한 재정의 한 개씩을 입력하세요. 빈 입력은 빈 매핑으로 취급하지만 모두 비어 있으면 실행 시 입력을 요청합니다. 새 버전을 이전 버전 위에 쌓지 않습니다.

02

선언과 효과를 나누어 확인

기본 모드는 유효 값 비교입니다. 원본 재정의 모드에서는 결과가 같더라도 달라진 선언을 찾을 수 있습니다. 오른쪽의 이전·새 병합 뷰는 비교 모드와 관계없이 항상 유효 값을 보여 줍니다.

03

최신 결과와 선택한 뷰 내보내기

자동 비교는 마지막 편집 후 350밀리초 뒤 실행됩니다. 끄면 비교 버튼이나 Ctrl/Cmd+Enter를 사용합니다. 입력과 옵션 변경 즉시 이전 결과의 내보내기가 차단됩니다. 교체 작업은 문자 수와 미리 보기를 확인한 뒤 적용하며 한 번 되돌릴 수 있습니다.

경로와 자료형으로 읽는 변경

매핑 병합과 목록 교체

중첩 매핑은 재정의에 없는 기본 하위 키를 보존합니다. 빈 매핑은 기본 하위 항목을 지우지 않지만 빈 목록은 기존 목록 전체를 대체합니다. false, 숫자 0, 빈 문자열도 누락이 아닌 값으로 유지됩니다.

누락과 null을 구별

추가·삭제·수정 개수와 JSON Pointer 경로, 변경 전후 자료형을 제공합니다. 문자열 숫자는 숫자와 다릅니다. 경로의 슬래시는 ~1, 물결표는 ~0으로 표시하며 빈 키도 고유한 경로를 가집니다.

서식 잡음을 줄인 구조 비교

주석과 공백, 매핑 키 순서는 비교에서 제외합니다. 목록 순서는 의미가 있으며 최종 목록을 인덱스별로 맞춥니다. 맨 앞에 항목을 넣으면 뒤의 여러 위치가 바뀔 수 있고 이름으로 이동을 추측하지 않습니다.

검토에 필요한 전체 출력

JSON 보고서는 모델 버전, 비교 모드, 가림 여부, 전체 차이와 두 유효 YAML을 담습니다. 병합 뷰에서는 선택한 버전만 저장합니다. 화면은 처음 50개부터 더 표시할 수 있고 다운로드는 전체 결과를 포함합니다.

지원 범위와 해석의 한계

한 차트의 고정 모델
의존성이 없는 단일 차트에 대한 Helm 3.19.0 병합을 기준으로 합니다. 하위 차트, global 전달, import-values, 의존 조건이나 스키마를 검증하지 않습니다. Go 템플릿, tpl, lookup을 실행하지 않고 릴리스와 클러스터 상태도 읽지 않습니다.
명확한 YAML 입력만 허용
각 입력은 문자열 키를 가진 단일 YAML 1.2 core 매핑이어야 합니다. 중복·복합 키, 지시문, 명시적 태그, 앵커, 별칭, << 키를 거부합니다. yes나 on 같은 모호한 단어는 따옴표로 감싸세요. 숫자는 유한한 JSON 십진 표기와 안전한 정수만 허용하며 언더플로는 거부합니다. 소수는 배정밀도로 처리합니다.
null 삭제는 기본 키와 대응할 때만
재귀 병합에서 같은 이름의 기본 키가 있으면 재정의의 null이 그 키를 삭제합니다. 새 키나 새 매핑 내부의 null, 대체 목록 안의 null은 남습니다. 재정의 키를 생략하면 기본값을 상속하므로 빈 값, 누락, 삭제를 동일하게 취급하지 않습니다.
가려진 YAML은 배포 설정이 아님
null을 제외한 모든 스칼라는 자료형 표식으로 바뀝니다. 숫자와 불리언, 일반 문자열도 가려집니다. 경로, 키, 구조와 null은 보이므로 완전한 익명화는 아닙니다. 원본 편집기와 교체 미리 보기 역시 원문을 유지하며, 실제 값을 담아야 할 때만 가림을 끄세요.
제한을 넘으면 전체 내보내기 중단
각 입력은 200,000자, 20,000노드, 깊이 60, 누적 경로 100만 자까지입니다. 보고서는 5,000개 차이와 400만 자, 실행은 5초까지이며 일부 결과만 반환하지 않습니다. 여러 -f 파일 순서, --set, reuse/reset-values, URL 가져오기와 원본 주석·서식 보존은 지원하지 않습니다.

Helm Values Diff 자주 묻는 질문

helm upgrade 전에 변경을 어떻게 확인하나요?

여기서는 values 계층을 검토한 뒤 helm diff 또는 기존 배포 절차로 렌더링된 매니페스트를 확인하세요. 값이 같아도 템플릿, 차트 버전이나 클러스터 기능이 달라지면 생성 리소스가 달라질 수 있습니다.

기본 파일과 환경 파일의 값이 겹치면 무엇이 우선인가요?

환경 재정의가 우선합니다. 중첩 매핑에서는 지정하지 않은 기본 하위 키만 보완합니다. 버전마다 재정의 입력은 하나이므로 여러 파일은 실제 우선순위대로 정리한 뒤 입력해야 합니다. 이전 버전이 새 버전의 추가 기본값이 되지는 않습니다.

목록이 항목별로 병합되지 않는 이유는 무엇인가요?

Helm은 해당 키의 목록 전체를 교체합니다. 이름으로 객체를 맞추거나 끝에 추가하지 않습니다. 차이 화면은 병합 후의 목록을 인덱스별로 비교하며, 이는 변경을 표현하는 방식입니다.

차트 기본값에서 키를 제거하려면 어떻게 하나요?

해당 재정의 키를 null로 지정하세요. 재정의에서 키만 생략하면 기본값이 돌아옵니다. 기본 매핑에 없는 키에 지정한 null은 유지되므로 새 빈 값과 기본 키 삭제를 구별해야 합니다.

비밀 값을 노출하지 않고 변경 여부만 볼 수 있나요?

가림을 켜 두면 실제 값으로 검출한 차이와 자료형은 유지하고 내용만 표식으로 바꿉니다. 민감하지 않은 값도 가려집니다. 키 이름과 경로는 여전히 보이므로 공유 전에 직접 확인하세요.

설정 비교 사례를 알려 주세요.

두 설정의 효과 검토

Helm Values Diff로 재정의 선언과 유효 결과를 구분한 뒤 검토자에게 필요한 뷰를 저장하세요.