최신판 |
당신의 편집 |
12번째 줄: |
12번째 줄: |
| # [[envsubst]]: <code>make envsubst</code>를 통해 제공 | | # [[envsubst]]: <code>make envsubst</code>를 통해 제공 |
| # [[helm]]: v3.7.1 이상 | | # [[helm]]: v3.7.1 이상 |
| # [https://github.com/kubernetes-sigs/cluster-api Cluster API] 리포지토리를 로컬로 클론 | | # [https://github.com/kubernetes-sigs/cluster-api Cluster API] 저장소를 로컬로 클론 |
| # 로컬로 배포하려는 제공자도 클론 | | # 로컬로 배포하려는 제공자도 클론 |
|
| |
|
40번째 줄: |
40번째 줄: |
| </syntaxhighlight> | | </syntaxhighlight> |
|
| |
|
| | To use tilt to launch a provider with its own repo, using Cluster API Provider AWS here, tilt-settings.yaml should look like: |
| tilt를 사용하여 자체 리포지토리가 있는 제공자를 시작하려면, 여기서는 Cluster API Provider AWS를 사용하며, <code>tilt-settings.yaml</code>는 다음과 같은 형식이어야 합니다. | | tilt를 사용하여 자체 리포지토리가 있는 제공자를 시작하려면, 여기서는 Cluster API Provider AWS를 사용하며, <code>tilt-settings.yaml</code>는 다음과 같은 형식이어야 합니다. |
|
| |
|
55번째 줄: |
56번째 줄: |
|
| |
|
| ==== tilt-settings 필드 ==== | | ==== tilt-settings 필드 ==== |
|
| |
| '''allowed_contexts''' (Array, default=[]): Tilt가 사용할 수 있는 kubeconfig 컨텍스트 목록. 자세한 내용은 [https://docs.tilt.dev/api.html#api.allow_k8s_contexts allow_k8s_contexts]에 있는 Tilt 문서를 참조하세요.
| |
|
| |
| '''default_registry''' (String, default=[]): 이미지를 push해야 하는 경우 사용할 이미지 레지스트리. 자세한 내용은 [https://docs.tilt.dev/api.html#api.default_registry Tilt 문서]를 참조하세요. 로컬 레지스트리를 사용하지 않는 경우, 이 값이 필요합니다. 또한 Cluster API Tiltfile은 실수로 <code>gcr.io/k8s-staging-cluster-api</code>에 push되는 것을 방지합니다.
| |
|
| |
| '''build_engine''' (String, default=”docker”): 이미지를 빌드하는 데 사용되는 엔진. <code>docker</code> 또는 <code>podman</code>일 수 있습니다. 참고: 기본값은 동적이며 <code>docker version</code>(명령어가 실패한 경우 <code>podman version</code>)에 문자열 "Podman Engine"이 있는 경우 "podman"이 됩니다.
| |
|
| |
| '''kind_cluster_name''' (String, default=”capi-test”): 이미지를 미리 로드할 때 사용할 kind 클러스터의 이름
| |
|
| |
| '''provider_repos''' (Array[]String, default=[]): 사용하려는 모든 제공자에 대한 경로 목록. 각 제공자에는 제공자 빌드 방법을 설명하는 <code>tilt-provider.yaml</code> 또는 <code>tilt-provider.json</code> 파일이 있어야 합니다.
| |
|
| |
| '''enable_providers''' (Array[]String, default=[‘docker’]): 활성화할 제공자 목록. 자세한 내용은 [[#사용가능 제공자|사용가능 제공자]]를 참조하세요 .
| |
|
| |
| '''template_dirs''' (Map{String: Array[]String}, default={”docker”: [ “./test/infrastructure/docker/templates”]}): 클러스터 템플릿이 포함된 디렉토리에 대한 제공자 맵. 아래에 필드의 예시가 있습니다. 어떻게 사용되는지는 [[#워크로드 클러스터 배포|워크로드 클러스터 배포]]를 참조하세요 .
| |
|
| |
| <syntaxhighlight lang='yaml'>
| |
| template_dirs:
| |
| docker:
| |
| - ./test/infrastructure/docker/templates
| |
| - <other-template-dir>
| |
| azure:
| |
| - <azure-template-dir>
| |
| aws:
| |
| - <aws-template-dir>
| |
| gcp:
| |
| - <gcp-template-dir>
| |
| </syntaxhighlight>
| |
|
| |
| '''kustomize_substitutions''' (Map{String: String}, default={}): 제공자 yaml에 있는 ${}-스타일 자리표시자에 대한 선택적 대체 맵. 이러한 대체항목은 클러스터 템플릿을 배포할 때도 사용됩니다. [[#워크로드 클러스터 배포|워크로드 클러스터 배포]]를 참조하세요 .
| |
|
| |
| 참고 : Tilt로 관리되는 기존 클러스터를 사용하여 로컬로 E2E 테스트를 실행할 때, 성공적인 테스트를 위해서는 다음 대체항목이 필요합니다.
| |
|
| |
| <syntaxhighlight lang='yaml'>
| |
| kustomize_substitutions:
| |
| CLUSTER_TOPOLOGY: "true"
| |
| EXP_KUBEADM_BOOTSTRAP_FORMAT_IGNITION: "true"
| |
| EXP_RUNTIME_SDK: "true"
| |
| EXP_MACHINE_SET_PREFLIGHT_CHECKS: "true"
| |
| </syntaxhighlight>
| |
|
| |
| AWS
| |
|
| |
| 예를 들어 yaml에 <code>${AWS_B64ENCODED_CREDENTIALS}</code>가 포함된 경우, 다음을 수행할 수 있습니다.
| |
|
| |
| <syntaxhighlight lang='yaml'>
| |
| kustomize_substitutions:
| |
| AWS_B64ENCODED_CREDENTIALS: "your credentials here"
| |
| </syntaxhighlight>
| |
|
| |
| '''deploy_observability''' ([string], default=[]): 세팅된 경우, 관찰가능성 도구 중 하나를 개발 클러스터에 설치합니다. 중요! 이 기능을 사용하려면 사용자 경로에서 helm 명령어를 사용할 수 있어야 합니다.
| |
|
| |
| 지원되는 값은 다음과 같습니다:
| |
| * <code>grafana</code>*: 대시보드를 만들고 <code>loki</code>, <code>prometheus</code>, <code>tempo</code> 쿼리하기 위한 것
| |
| * <code>kube-state-metrics</code>: Kubernetes와 CAPI 리소스에 대한 메트릭을 <code>prometheus</code>에 노출하기 위한 것
| |
| * <code>loki</code>: 로그를 수신하고 저장하기 위한 것
| |
| * <code>metrics-server</code>: <code>kubectl top node/pod</code> 활성화하기 위한 것
| |
| * <code>prometheus</code>*: Kubernetes에서 메트릭을 수집하기 위한 것
| |
| * <code>promtail</code>: 파드 로그를 <code>loki</code>에 제공하기 위한 것
| |
| * <code>parca</code>*: 프로파일링 데이터를 시각화하기 위한 것
| |
| * <code>tempo</code>: 트레이스를 저장하기 위한 것
| |
| * <code>visualizer</code>*: 각 클러스터의 Cluster API 리소스를 시각화하고, 모든 리소스의 사양 및 상태에 대한 빠른 액세스를 제공하기 위한 것
| |
|
| |
| <nowiki>*:</nowiki> 참고: UI는 tilt 콘솔의 링크를 통해 액세스할 수 있습니다.
| |
|
| |
| '''additional_kustomizations''' (map[string]string, default={}): 세팅된 경우 kustomize를 사용하여 빌드된 추가 리소스를 클러스터에 설치합니다. 예시:
| |
|
| |
| <syntaxhighlight lang='yaml'>
| |
| additional_kustomizations:
| |
| capv-metrics: ../cluster-api-provider-vsphere/config/metrics
| |
| </syntaxhighlight>
| |
|
| |
| '''debug''' (Map{string: Map} default{}): 제공자의 지명 설정 맵. key는 제공자 이름입니다.
| |
|
| |
| 지원하는 세팅:
| |
| * '''port''' (int, default=0 (disabled)): 0이 아닌 값으로 세팅되면, Tilt는 delve를 사용하여 제공자를 실행하고 localhost의 지정된 디버그 포트로 delve 서버를 포트 전달합니다. 그런 다음 Visual Studio Code, Goland, IntelliJ와 같은 IDE와 함께 사용할 수 있습니다.
| |
|
| |
| * '''continue''' (bool, default=true): 기본적으로, Tilt는 <code>--continue</code>를 사용하여 delve를 실행하므로, 특별히 중단점을 입력하지 않는 한 디버깅이 켜져 있는 모든 제공자는 정상적으로 실행됩니다. 기본적으로 컨트롤러가 시작되지 않도록 하려면 false로 변경하세요.
| |
|
| |
| * '''profiler_port''' (int, default=0 (disabled)): 0이 아닌 값으로 세팅되면, Tilt는 <code>--profiler-address</code>를 가지고 프로파일러를 활성화하고 포트 포워드를 셋업합니다. 컨트롤러의 Tilt 웹 UI에 "프로파일러(profiler)" 링크가 표시됩니다.
| |
|
| |
| * '''metrics_port''' (int, default=0 (disabled)): 0이 아닌 값으로 세팅되면, Tilt는 기본 메트릭 포트로 포트 포워드합니다. 컨트롤러의 Tilt 웹 UI에 "메트릭(metrics)" 링크가 표시됩니다.
| |
|
| |
| * '''race_detector''' (bool, default=false) (Linux amd64 only): 활성화되면, Tilt는 지정된 컨트롤러를 cgo로 컴파일하고 시스템 glibc에서 정적으로 컴파일하며 레이스 감지기를 활성화합니다. 현재, 이것은 Linux amd64 시스템에서 빌드할 때만 지원됩니다. 이것이 작동하려면 glibc-static을 설치하거나 libc.a를 사용할 수 있어야 합니다.
| |
|
| |
| 예시: 아래 설정 사용:
| |
| <syntaxhighlight lang='yaml'>
| |
| debug:
| |
| core:
| |
| continue: false
| |
| port: 30000
| |
| profiler_port: 40000
| |
| metrics_port: 40001
| |
| </syntaxhighlight>
| |
|
| |
| ;디버거 연결 | | ;디버거 연결 |
| ;Visual Studio | | ;Visual Studio |
175번째 줄: |
82번째 줄: |
| ;Goland / IntelliJ | | ;Goland / IntelliJ |
| 위의 예시를 활용하면 포트 30000을 가리키는 [https://www.jetbrains.com/help/go/attach-to-running-go-processes-with-debugger.html#step-3-create-the-remote-run-debug-configuration-on-the-client-computer Go Remote 실행/디버그 설정]을 설정할 수 있습니다. | | 위의 예시를 활용하면 포트 30000을 가리키는 [https://www.jetbrains.com/help/go/attach-to-running-go-processes-with-debugger.html#step-3-create-the-remote-run-debug-configuration-on-the-client-computer Go Remote 실행/디버그 설정]을 설정할 수 있습니다. |
|
| |
| '''deploy_cert_manager''' (Boolean, default=<code>true</code>): 웹훅 등록에 사용하기 위해 cert-manager를 클러스터에 배포합니다.
| |
|
| |
| '''trigger_mode''' (String, default=<code>auto</code>): 변경에 따라 tilt를 자동으로 재빌드할지 여부를 설정하는 옵션 세팅. 자동 재빌드를 비활성화하고 사용자가 UI를 통해 변경된 개별 컴포넌트의 재빌드를 트리거하도록 하려면 수동으로 설정합니다.
| |
|
| |
| '''extra_args''' (Object, default=<code>{}</code>): 이 제공자에 대해 설정된 메인 바이너리에 전달할 추가 인수에 대한 제공자 매핑. 배열의 각 항목은 지정된 제공자의 매니저에 전달됩니다.
| |
|
| |
| 예시:
| |
| <syntaxhighlight lang='yaml'>
| |
| extra_args:
| |
| kubeadm-bootstrap:
| |
| - --logging-format=json
| |
| </syntaxhighlight>
| |
|
| |
| 이 설정을 사용하면, 각 매니저가 다음과 같이 호출됩니다.
| |
|
| |
| <syntaxhighlight lang='bash'>
| |
| manager --logging-format=json
| |
| </syntaxhighlight>
| |
|
| |
|
| === kind 클러스터 생성하고 Tilt 실행! === | | === kind 클러스터 생성하고 Tilt 실행! === |
240번째 줄: |
128번째 줄: |
| tilt로 워커 클러스터를 생성한 경우, <code>clusterctl</code>을 관리 작업에 사용해서는 안됩니다. 이는 tilt는 clusterctl init처럼 관리 클러스터에서 제공자를 초기화하지 않기 때문에, clusterctl config와 같은 일부 clusterctl 명령어가 작동하지 않기 때문입니다. | | tilt로 워커 클러스터를 생성한 경우, <code>clusterctl</code>을 관리 작업에 사용해서는 안됩니다. 이는 tilt는 clusterctl init처럼 관리 클러스터에서 제공자를 초기화하지 않기 때문에, clusterctl config와 같은 일부 clusterctl 명령어가 작동하지 않기 때문입니다. |
|
| |
|
| 이러한 한계점은 컨트롤러 로직에 대한 빠른 개발-테스트 반복을 실행하는 동안 수용가능한 절충안입니다. 대신 clusterctl 테스트 워크플로우에 관심이 있다면, [[개발자를 위한 clusterctl|clusterctl 개발자 지침]]을 참조해야 합니다. | | 이러한 한계점은 컨트롤러 로직에 대한 빠른 개발-테스트 반복을 실행하는 동안 수용가능한 절충안입니다. 대신 clusterctl 테스트 워크플로우에 관심이 있다면, [[cluster-api/개발자를 위한 clusterctl|clusterctl 개발자 지침]]을 참조해야 합니다. |
|
| |
|
| == 사용가능 제공자 == | | == 사용가능 제공자 == |
| 현재 Tiltfile에 정의된 제공자는 다음과 같습니다: | | 현재 Tiltfile에 정의된 제공자는 다음과 같습니다: |
|
| |
|
| * '''core''': cluster-api 자체 | | * core: cluster-api 자체 |
| * '''kubeadm-bootstrap''': kubeadm 부트스트랩 제공자 | | * kubeadm-bootstrap: kubeadm 부트스트랩 제공자 |
| * '''kubeadm-control-plane''': kubeadm 컨트롤플레인 제공자 | | * kubeadm-control-plane: kubeadm 컨트롤플레인 제공자 |
| * '''docker''': Docker 인프라스트럭처 제공자 | | * docker: Docker 인프라스트럭처 제공자 |
| * '''in-memory''': In-memory 인프라스트럭처 제공자 | | * in-memory: In-memory 인프라스트럭처 제공자 |
| * '''test-extension''': CAPI E2E 테스트에서 사용하는 런타임 확장기능 | | * test-extension: CAPI E2E 테스트에서 사용하는 런타임 확장기능 |
|
| |
|
| 다음 문단에 설명된 절차에 따라 제공자를 추가할 수 있습니다. | | 다음 문단에 설명된 절차에 따라 제공자를 추가할 수 있습니다. |