19장. 자동 프로필 태그 설정

인트로스펙션 프로세스는 일련의 벤치마크 테스트를 수행합니다. director는 이러한 테스트의 데이터를 저장합니다. 이 데이터를 사용하는 정책 세트를 다양한 방법으로 생성할 수 있습니다.

  • 정책을 통해 성능이 떨어지거나 불안정한 노드를 식별하고 오버클라우드에서 사용되지 않도록 분리할 수 있습니다.
  • 정책을 통해 노드를 특정 프로필에 자동으로 태그할지 여부를 정의할 수 있습니다.

19.1. 정책 파일 구문

정책 파일은 규칙 세트가 포함된 JSON 포맷을 사용합니다. 각 규칙은 description, conditionaction을 정의합니다.

설명

일반 텍스트로 작성된 규칙 설명입니다.

예:

"description": "A new rule for my node tagging policy"

조건

조건은 다음 키-값 패턴을 사용하여 평가를 정의합니다.

field

평가할 필드를 정의합니다.

  • memory_mb - 노드의 메모리 크기(MB)
  • cpus - 노드 CPU의 총 스레드 수
  • cpu_arch - 노드 CPU의 아키텍처
  • local_gb - 노드 root 디스크의 총 스토리지 공간
op

평가에 사용할 작업을 정의합니다. 다음과 같은 속성이 포함됩니다.

  • eq - 같음
  • ne - 같지 않음
  • lt - 보다 작음
  • gt - 보다 큼
  • le - 작거나 같음
  • ge - 크거나 같음
  • in-net - IP 주소가 지정된 네트워크에 있는지 확인
  • matches - 지정된 정규 표현과 완전히 일치해야 함
  • contains - 지정된 정규 표현식을 포함하는 값이 필요함
  • is-empty - 빌드가 비어 있는지 확인
invert
평가 결과를 반전할지 여부를 정의하는 부울 값입니다.
multiple

여러 결과가 있는 경우 사용할 평가를 정의합니다. 이 매개변수에는 다음과 같은 속성이 포함됩니다.

  • any - 임의 결과가 일치해야 함
  • all - 모든 결과가 일치해야 함
  • first - 첫 번째 결과가 일치해야 함
value
평가의 값을 정의합니다. 필드 및 작업 결과가 값이면 조건이 true 결과를 반환합니다. 값이 아니면 조건이 false 결과를 반환합니다.

예:

"conditions": [
  {
    "field": "local_gb",
    "op": "ge",
    "value": 1024
  }
],

작업

조건이 'true'이면 정책이 작업을 수행합니다. 작업은 action 값에 따라 action 키와 추가 키를 사용합니다.

  • fail - 인트로스펙션이 실패합니다. 실패 메시지에 대한 message 매개변수가 필요합니다.
  • set-attribute - Ironic 노드의 특성을 설정합니다. Ironic 특성의 경로(예: /driver_info/ipmi_address)인 path 필드와 설정할 value가 필요합니다.
  • set-capability - Ironic 노드의 기능을 설정합니다. 새 기능의 이름과 값인 namevalue 필드가 필요합니다. 이 동일한 기능에 대한 기존 값은 교체됩니다. 예를 들면 노드 프로필을 정의하는 데 이 값을 사용합니다.
  • extend-attribute - set-attribute와 동일하지만, 기존 값을 목록으로 처리하고 값을 여기에 추가합니다. 선택 사항인 unique 매개변수를 True로 설정하면, 지정된 값이 이미 목록에 있을 경우 아무것도 추가되지 않습니다.

예:

"actions": [
  {
    "action": "set-capability",
    "name": "profile",
    "value": "swift-storage"
  }
]