Infograb logo
GitLab CI

이 문서는 GitLab CI 및 Machine ID에 대한 참조 역할을 합니다. GitLab 조인 방법을 사용할 때 사용할 수 있는 구성 옵션에 대한 전체 설명과 함께 심층 가이드에 대한 링크를 찾을 수 있습니다.

가이드

Machine ID 및 GitLab CI 사용에 대한 단계별 가이드를 읽을 수 있습니다:

GitLab 조인 토큰

GitLab 조인 토큰에는 해당 토큰을 사용하여 Teleport 클러스터에 조인할 수 있는 파이프라인을 설명하는 허용 규칙이 포함되어 있습니다. 규칙은 여러 필드를 포함할 수 있으며, 단일 규칙 내의 모든 필드와 일치하는 파이프라인은 액세스 권한이 부여됩니다.

kind: token
version: v2
metadata:
  # name은 토큰을 식별합니다. 봇이나 노드를 이 토큰을 사용하여 조인하도록 구성할 때,
  # 이 이름을 지정해야 합니다.
  name: gitlab-demo
spec:
  # Bot 역할은 이 토큰이 봇 사용자에게 액세스 권한을 부여함을 나타내며,
  # 노드가 조인할 수 있도록 허용하지 않습니다.
  roles: [Bot]
  # GitLab 조인 방법은 항상 "gitlab"입니다.
  join_method: gitlab

  # bot_name은 이 토큰을 사용했을 때 액세스를 부여할 봇의 이름을 지정합니다.
  bot_name: gitlab-demo

  gitlab:
    # domain은 GitLab 인스턴스의 도메인이어야 합니다. GitLab의 클라우드 호스팅 서비스를 사용하는 경우,
    # 이 필드를 전혀 생략하십시오.
    domain: gitlab.example.com
    # allow는 어떤 GitLab CI 작업이 조인할 수 있는지에 대한 규칙 구성의 배열입니다.
    # 하나의 allow 항목 내에서 구성된 모든 옵션이 충족되어야 GitLab CI 실행이 조인할 수 있습니다.
    # 여러 allow 항목이 지정된 경우, 단일 항목 내의 모든 옵션을 충족하는 작업은 조인할 수 있습니다.
    #
    # allow 항목은 최소한 하나를 포함해야 합니다:
    # - project_path
    # - namespace_path
    # - sub
    # 이는 다른 GitLab 사용자의 프로젝트에서의 GitLab CI 실행이
    # 귀하의 Teleport 클러스터에 액세스하지 못하도록 보장합니다.
    allow:
      # project_path는 지정된 프로젝트 내에서 시작되는 작업으로 조인을 제한합니다.
      #
      # 이 필드는 glob 스타일 매칭을 지원합니다:
      # - '*'를 사용하여 0개 이상의 문자를 일치시킵니다.
      # - '?'를 사용하여 단일 문자를 일치시킵니다.
      - project_path: my-user/my-project
        # namespace_path는 지정된 네임스페이스 내의 프로젝트에 존재하는
        # 모든 실행으로 조인을 제한합니다. 네임스페이스는 사용자 이름
        # 또는 그룹의 이름이 될 수 있습니다.
        #
        # 이 필드는 glob 스타일 매칭을 지원합니다:
        # - '*'를 사용하여 0개 이상의 문자를 일치시킵니다.
        # - '?'를 사용하여 단일 문자를 일치시킵니다.
        namespace_path: my-user
        # pipeline_source는 특정 기준으로 트리거된 작업만 조인하도록 제한합니다.
        # 예: 웹 인터페이스를 통해 트리거됨.
        pipeline_source: web
        # environment는 지정된 환경과 연관된 작업으로 조인을 제한합니다.
        environment: production
        # ref_type은 특정 유형의 git 참조에 의해 트리거된 작업만 조인하도록 제한합니다.
        # `branch` 또는 `tag` 입니다.
        ref_type: branch
        # ref는 특정 git 참조에 의해 트리거된 작업으로 조인을 제한합니다.
        # 이를 `ref_type` 과 결합하여 특정 브랜치 또는 태그에 의해 트리거된
        # 허용 규칙을 생성할 수 있습니다.
        #
        # 이 필드는 glob 스타일 매칭을 지원합니다:
        # - '*'를 사용하여 0개 이상의 문자를 일치시킵니다.
        # - '?'를 사용하여 단일 문자를 일치시킵니다.
        ref: main
        # sub는 project_path, ref_type 및 ref를 연결한 단일 문자열입니다.
        # 이는 단일 문자열을 사용하여 조인을 제한할 수 있으며,
        # 특정 프로젝트 및 git 참조를 설명할 수 있습니다.
        #
        # 개별 필드를 사용하는 것이 좋습니다. sub 문자열을 잘못 형식화하기
        # 쉽기 때문입니다.
        #
        # 이 필드는 glob 스타일 매칭을 지원합니다:
        # - '*'를 사용하여 0개 이상의 문자를 일치시킵니다.
        # - '?'를 사용하여 단일 문자를 일치시킵니다.
        sub: project_path:my-user/my-project:ref_type:branch:ref:main
        # user_login은 특정 사용자 이름으로 트리거된 작업으로 조인을 제한합니다.
        user_login: octocat
        # user_email은 주어진 이메일로 트리거된 작업으로 조인을 제한합니다.
        user_email: octo.cat@example.com
        # ref_protected가 true로 설정되면 보호된 참조에 대해 실행되는 작업으로 조인을 제한합니다.
        # 생략할 경우, 참조의 보호 상태는 확인되지 않습니다.
        ref_protected: true
        # environment_protected가 true로 설정되면 보호된 참조에 대해 실행되는 작업으로 조인을 제한합니다.
        # 생략할 경우, 참조의 보호 상태는 확인되지 않습니다.
        environment_protected: true
        # ci_config_sha는 특정 CI 구성의 커밋을 사용하는 작업으로 조인을 제한합니다.
        ci_config_sha: ffffffffffffffffffffffffffffffffffffffff
        # ci_config_ref_uri는 특정 CI 구성 출처를 사용하는 작업으로 조인을 제한합니다.
        ci_config_ref_uri: gitlab.example.com/my-group/my-project//.gitlab-ci.yml@refs/heads/main
        # deployment_tier는 특정 deployment_tier로 배포하는 작업으로 조인을 제한합니다.
        deployment_tier: production
        # project_visibility는 특정 가시성 구성에 대해 실행되는 작업으로 조인을 제한합니다.
        project_visibility: public
Teleport 원문 보기