이 페이지에서는 Harbor 저장소를 관리하고 유지하는 관리자 또는 개발자가 태그 보관 규칙을 만들고 관리하는 방법을 설명합니다. Harbor 태그 보관 규칙은 Harbor 저장소 내에서 이미지 태그를 자동으로 관리하고 최적화하는 정책 집합입니다.
태그 보관 규칙을 사용하여 다음 작업을 수행합니다.
- 저장공간 확보: 불필요한 데이터가 누적되지 않도록 특정 기간 동안 아티팩트를 보관하는 규칙을 정의하거나 사용하지 않는 이미지 태그를 수동으로 삭제합니다.
- 클린 저장소 유지: 최신 또는 관련 태그만 유지하여 정리 및 검색 가능성을 개선합니다.
- 태그 관리 자동화: 수동 삭제를 방지하고 이미지 저장소 유지관리 간소화
태그 보관 규칙을 사용하면 더 이상 필요하지 않은 이미지 태그를 자동으로 삭제하여 저장소 내 이미지를 관리할 수 있습니다. 보관 규칙은 세 가지 순차적 단계를 통해 태그를 필터링하여 유지할 이미지와 삭제할 이미지를 결정합니다.
- 저장소: 저장소 이름을 입력합니다. Harbor는 먼저 저장소 필터를 적용하고 저장소 이름과 일치하는 저장소에 보관 규칙을 적용합니다.
*repo,repo*,**와 같은 와일드 카드가 허용됩니다. 자세한 내용은 와일드 카드 패턴으로 필터 적용하기를 참고하세요. 예를 들어 저장소 필터를**로 설정하여 프로젝트의 모든 저장소를 포함할 수 있습니다. - 보관할 수량: 최대 태그 수를 입력하거나 태그를 보관할 최대 기간을 지정합니다. 예를 들어 각 저장소에서 가장 최근에 가져온 아티팩트 10개를 유지하도록 보관 정책을 설정할 수 있습니다.
- 유지할 태그: 유지할 이미지 태그의 이름을 입력합니다. Harbor는 입력 텍스트와 일치하는 이미지 태그에 보관 규칙을 적용합니다. 체크박스를 사용하여 태그가 지정되지 않은 아티팩트를 태그 보관이 가능한 아티팩트 집합 또는 해당 이름이 없는 태그의 일부로 캡처할지 선택합니다.
*tag,tag*,**과 같은 와일드 카드가 허용됩니다. 자세한 내용은 와일드 카드 패턴으로 필터 적용하기를 참고하세요.
시작하기 전에
태그 보관 규칙을 만들려면 다음이 필요합니다.
- Harbor의 역할 기반 액세스 제어에서
ProjectAdmin역할이 있는 계정입니다. 자세한 내용은 API 및 Harbor 인스턴스 내 액세스 구성을 참고하세요. - 기존 Harbor 저장소
태그 보관 규칙 만들기
Harbor 보관 태그 규칙은 특정 순서와 논리를 따릅니다. Harbor 태그 보관 규칙을 만들 때는 다음 원칙을 따르세요.
- 프로젝트가 아닌 저장소의 태그 보관 규칙을 정의합니다. 저장소의 보관 규칙을 정의할 때는 보관할 태그를 식별합니다.
- 태그를 명시적으로 삭제하는 규칙을 정의하지 마세요. 규칙을 설정하면 시스템에서 보관 대상이 아닌 것으로 식별된 저장소의 태그를 삭제합니다.
OR알고리즘은 규칙 간에 사용됩니다.
Harbor 콘솔을 사용하여 태그 보관 규칙을 만듭니다.
- 프로젝트 관리자 권한이 있는 계정으로 Harbor 콘솔에 로그인합니다.
- 프로젝트로 이동하여 프로젝트를 선택합니다.
- 프로젝트 창에서 정책 탭을 클릭한 다음 태그 보관을 클릭합니다.
- '규칙 추가'를 클릭합니다.
저장소 메뉴에서 일치 또는 제외를 선택합니다.
일치를 선택하면 Harbor가 지정한 저장소에 규칙을 적용합니다. 제외를 선택하면 Harbor에서 식별된 저장소를 제외한 프로젝트의 모든 저장소에 규칙을 적용합니다.
저장소 상자에 규칙을 적용할 저장소의 이름을 입력합니다. 다음은 텍스트 입력의 예입니다.
example_repo_1과 같은 저장소 이름example_repo_1,example_repo_2,example_repo_3와 같은 저장소 이름을 쉼표로 구분한 목록입니다.example_*,*_3,*_repo_*와 같은 와일드 카드가 포함된 저장소 이름의 일부입니다.- 프로젝트의 모든 저장소에 규칙을 적용하려면 와일드 카드
**를 사용합니다. - 자세한 내용은 와일드 카드 패턴으로 필터 적용하기를 참고하세요.
아티팩트 수 또는 일수별 메뉴에서 보관할 태그 수 또는 태그를 보관할 기간을 선택합니다. 다음 옵션 중 하나를 선택합니다.
- 가장 최근에 푸시된 아티팩트 # 개 유지: 가장 최근에 푸시된 아티팩트를 우선으로 특정 수의 아티팩트를 유지합니다. 아티팩트에는 연령 제한이 적용되지 않습니다.
- 가장 최근에 가져온 아티팩트 # 개 유지: 가장 최근에 가져온 아티팩트를 우선으로 특정 개수의 아티팩트를 유지합니다. 아티팩트에는 연령 제한이 적용되지 않습니다.
- 지난 # 일 이내에 푸시된 아티팩트 유지: 지정된 기간 내에 푸시된 아티팩트를 유지합니다. 아티팩트 수에는 제한이 없습니다.
- 지난 # 일 이내에 가져온 아티팩트 유지: 지정된 기간 내에 가져온 아티팩트를 유지합니다. 아티팩트 수에는 제한이 없습니다.
- 항상 유지: 이 규칙과 일치하는 아티팩트를 항상 유지합니다.
태그 메뉴에서 일치 또는 제외를 선택합니다.
일치를 선택하면 Harbor가 식별한 태그에 규칙이 적용됩니다. 제외를 선택하면 Harbor는 식별한 태그를 제외한 저장소의 모든 태그에 규칙을 적용합니다.
태그 상자에 규칙을 적용할 태그의 이름을 입력합니다.
다음은 텍스트 입력의 예입니다.
example_tag_1과 같은 태그 이름입니다.example_tag_1,example_tag_2,example_tag_3와 같은 태그 이름을 쉼표로 구분한 목록입니다.example_*,*_3,*_tag_*와 같은 와일드 카드가 포함된 태그 이름의 일부입니다.- 프로젝트의 모든 태그에 규칙을 적용하려면 와일드 카드
**를 사용합니다. - 자세한 내용은 와일드 카드 패턴으로 필터 적용하기를 참고하세요.
규칙을 저장하려면 추가를 클릭합니다.
선택사항: 규칙을 더 추가하려면 규칙 추가를 클릭합니다. 프로젝트당 최대 15개의 규칙을 추가할 수 있습니다.
선택사항: 일정 메뉴에서 수정을 클릭하고 규칙을 실행할 빈도를 선택합니다. 맞춤을 선택하는 경우 규칙을 예약하는 cron 작업 명령어를 입력합니다. 여러 규칙을 정의하면 Harbor는 모든 규칙에 일정을 적용합니다. 다른 시간에 실행되도록 다른 규칙을 예약할 수는 없습니다.
정의한 규칙을 테스트하려면 테스트 실행을 클릭합니다.
규칙을 즉시 실행하려면 지금 실행을 클릭합니다.
와일드 카드 패턴으로 필터 적용
Harbor는 더블스타 패턴 일치를 사용합니다. 와일드카드 패턴은 문자열에서 하나 이상의 문자를 일치시키거나 나타내는 데 사용되는 특수 문자 또는 시퀀스입니다. 태그 보관 규칙을 만들 때 저장소 또는 태그 이름에 필터를 적용할 때는 와일드카드 패턴을 사용하세요. 와일드 카드는 다음과 같은 기능을 제공합니다.
- 문자를 명시적으로 지정하지 않고 하나 이상의 문자를 나타냅니다.
다음과 같이 일반적인 와일드 카드를 사용합니다.
*: 0개 이상의 문자와 일치합니다.?: 모든 단일 문자와 일치합니다.
예를 들어
file*는file로 시작하는 모든 파일 이름과 일치합니다.정확한 문자를 모르는 경우에 유용한 유연한 일치를 허용합니다.
태그 보관 규칙을 지정할 때는 다음 지원되는 와일드 카드 패턴을 사용하세요.
| 패턴 | 설명 |
|---|---|
* |
경로가 아닌 구분 기호의 모든 시퀀스와 일치합니다. |
** |
0개 이상의 디렉터리와 일치합니다. |
? |
경로 구분자가 아닌 단일 문자와 일치합니다. |
[class] |
문자 클래스에 대해 단일 비경로 구분자 문자와 일치합니다. 자세한 내용은 문자 클래스로 필터 적용하기를 참고하세요. |
{alt1,...} |
쉼표로 구분된 대안 중 하나가 일치하는 경우 문자 시퀀스와 일치합니다. |
doublestar 패턴 일치에 대한 자세한 내용은 https://github.com/bmatcuk/doublestar를 참고하세요.
문자 클래스로 필터 적용
문자 클래스와 와일드 카드는 모두 패턴 일치에 사용됩니다. 태그 보관 규칙을 만들 때 저장소 또는 태그 이름에 필터를 적용할 때는 문자 클래스를 사용하세요. 문자 클래스는 와일드 카드 패턴에 비해 다음과 같은 기능을 제공합니다.
- 특정 위치에서 일치할 수 있는 특정 문자 집합을 정의합니다.
- 대괄호 (
[])를 사용하여 집합을 묶습니다. 예를 들어[aeiou]는 단일 모음과 일치합니다. - 허용된 문자를 명시적으로 나열하므로 더 정확한 일치가 가능합니다.
다음 문자 클래스를 사용하여 저장소를 필터링하고 보관 규칙을 구성합니다.
| 클래스 | 설명 |
|---|---|
[abc] |
집합 내의 모든 단일 문자와 일치합니다. |
[a-z] |
범위 내의 모든 단일 문자와 일치합니다. |
[^class] |
클래스와 일치하지 않는 모든 단일 문자와 일치합니다. |
[!class] |
클래스를 부정합니다. |
기존 태그 보관 규칙 업데이트
기존 규칙을 수정하려면 규칙 옆에 있는 작업 메뉴를 사용하여 해당 규칙을 비활성화하거나 수정하거나 삭제합니다.
Harbor 콘솔을 사용하여 기존 태그 보관 규칙을 수정합니다.
- 프로젝트 관리자 권한이 있는 계정으로 Harbor 인터페이스에 로그인합니다.
- 프로젝트로 이동하여 프로젝트를 선택합니다.
- 프로젝트 창에서 정책 탭을 클릭한 다음 태그 보관을 클릭합니다.
기존 규칙을 수정하려면 작업 메뉴를 사용하여 다음 옵션 중 하나를 선택합니다.
- 사용 중지: 규칙을 비활성화합니다. 이 규칙은 나중에 다시 활성화할 수 있습니다.
- 수정: 기존 규칙의 설정을 업데이트합니다.
- 삭제: 규칙을 완전히 삭제합니다.