일부 상황에서는 속도 제한(Rate-limiting) 문제를 해결하기 위해 자격 증명의 "풀(Pool)"을 생성하는 것이 바람직할 수 있습니다. 각 자격 증명을 쉼표로 구분하여 _POOL로 끝나는 환경 변수를 생성하면 됩니다. 그러면 Broker 클라이언트는 변수 교체를 수행할 때 사용 중인 변수에 _POOL 접미사가 있는 변형이 있는지 확인하고, 있는 경우 해당 풀의 다음 항목을 사용합니다. 예를 들어 환경 변수 GITHUB_TOKEN을 설정했지만 여러 토큰을 제공하려는 경우 다음과 같이 수행하십시오.
GITHUB_TOKEN_POOL=token1, token2, token3
Helm 차트에서 이를 환경 변수 + 값으로 추가할 수 있습니다.
그러면 Broker 클라이언트는 GITHUB_TOKEN이 필요할 때마다 GITHUB_TOKEN_POOL에서 항목을 가져옵니다.
자격 증명은 라운드 로빈(Round-robin) 방식으로 선택됩니다. 즉, 첫 번째, 두 번째, 세 번째 순으로 선택되며 끝에 도달하면 다시 첫 번째 자격 증명을 선택합니다.
/systemcheck 엔드포인트를 호출하면 모든 자격 증명을 순서대로 검증하고, 첫 번째 항목이 첫 번째 자격 증명인 배열을 반환합니다. 예를 들어 GitHub 클라이언트를 실행 중이고 다음과 같이 설정되어 있다고 가정합니다.
GITHUB_TOKEN_POOL=good_token, bad_token
/systemcheck 엔드포인트는 다음과 같이 첫 번째 객체는 good_token에 대해, 두 번째 객체는 bad_token에 대해 반환합니다.
자격 증명은 마스킹(Masked)되어 표시됩니다. 단, 자격 증명이 6자 이하인 경우 전체가 마스크로 대체됩니다.
자격 증명 풀링의 제한 사항
자격 증명을 사용하기 전에 유효성을 확인하지 않으며, 유효하지 않은 자격 증명이 풀에서 제거되지도 않습니다. 따라서 자격 증명이 서로 다른 시간에 속도 제한에 도달하는 것을 방지하기 위해 Broker 클라이언트에서만 단독으로 자격 증명을 사용할 것을 강력히 권장하며, 사용 전에 /systemcheck 엔드포인트를 호출하십시오.
GitHub과 같은 일부 제공업체는 토큰이나 자격 증명 단위가 아닌 사용자 단위로 속도 제한을 적용합니다. 이 경우 계정당 하나의 자격 증명을 가진 여러 계정을 생성해야 합니다.
자격 증명 매트릭스 (Credentials matrix)
자격 증명의 매트릭스 생성은 지원되지 않습니다.
여기서 "매트릭스"는 길이가 x와 y인 두 개(또는 그 이상)의 _POOL을 가져와 길이가 x * y인 최종 풀을 생성하는 것으로 정의됩니다. 예를 들어 다음과 같은 입력이 주어진 경우:
매트릭스 지원이 된다면 내부적으로 다음과 같이 생성될 것입니다.
하지만 Broker 클라이언트는 내부적으로 처음 발견된 풀만 사용하여 다음과 같이 생성합니다.