테라폼 + 투구 = ❤️
7682 단어 terraformdevopskubernetes
이 게시물에서는 각 도구의 장점을 사용하여 Helm을 Terraform과 통합하는 방법에 대한 간단하고 기능적인 예를 공유하고자 합니다.
이 통합 설정은 Helm v3가 출시된 후 훨씬 쉬워졌습니다. 이제 Kubernetes 자격 증명을 Helm 공급자에게 전달하고 Terraform을 사용하여 차트 배포를 시작할 수 있습니다!
provider "helm" {
kubernetes {
config_path = "/path/to/kube_cluster.yaml"
}
}
이제
helm_release
리소스 🎉를 사용하여 차트를 배포할 수 있습니다.resource "helm_release" "example" {
name = "my-redis-release"
repository = "https://kubernetes-charts.storage.googleapis.com"
chart = "redis"
version = "6.0.1"
values = [
"${file("values.yaml")}"
]
set {
name = "cluster.enabled"
value = "true"
}
set {
name = "metrics.enabled"
value = "true"
}
set_string {
name = "service.annotations.prometheus\\.io/port"
value = "9127"
}
}
좋아, 괜찮아 Lucas, 하지만 기본적으로 Helm 공급자page를 표시했습니다. 여기서 시간을 낭비하는 건가요?
이 게시물에서는 helm_relase 리소스의 이 과도한
set {}
매개변수를 모두 처리하고자 합니다. 이러한 변수를 관리하는 더 쉬운 방법이 있어야 합니다.실제로 튜토리얼에서 이미 그 방법을 보여주었습니다!
values
매개변수를 사용하고 모든 변수를 YAML 형식으로 전달할 수 있습니다.values = [
"${file("values.yaml")}"
]
파일 함수를 사용하는 대신 EOF 형식으로 전달할 수도 있습니다.
루카스...
알았어 알았어 미안해! 본론으로 들어가겠습니다. 조금만 더 기다려 주세요!
템플릿 파일
terraform에서는 templatefile
function 을 사용하여 동적 템플릿을 만들 수 있습니다. 이 함수를 helm_release 리소스의 values
매개변수와 결합하면 많은 유연성을 얻을 수 있습니다!
템플릿 파일 기능은 Terraform과 구문이 약간 다르지만 쉽게 적응할 수 있습니다.
예:
backends.tmpl
%{ for addr in ip_addrs ~}
backend ${addr}:${port}
%{ endfor ~}
그리고 이 템플릿을 렌더링하려면:
templatefile("${path.module}/backends.tmpl", { port = 8080, ip_addrs = ["10.0.0.1", "10.0.0.2"] })
출력 제공:
backend 10.0.0.1:8080
backend 10.0.0.2:8080
그렇습니다. 궁금한 경우 if 문을 사용할 수도 있습니다.
이 모든 유연성을 값 매개변수에 직접 사용할 수 있으며 다음은 동적values.yaml
을 만드는 방법의 예입니다.
<script id="gist-ltag"src="https://gist.github.com/souzaxx/c59ad91872ea0e9fef00c72b900e32e3.js?file=aws-vpc-cni.yaml.tpl"/>
Templatefile은 삶을 더 쉽게 만들어주는 테라폼 개체도 허용합니다.
<script id="gist-ltag"src="https://gist.github.com/souzaxx/c59ad91872ea0e9fef00c72b900e32e3.js?file=helm_relase_example.tf"/>
완전한 예를 따르고 싶다면:
<사업부 클래스="readme-개요">
수작스 / EKS-온-스테로이드
다음 게시물에서는 이 프로젝트에 대해 자세히 설명하고 IP 주소가 부족한 eks 클러스터에 어떻게 도움이 되는지 설명하겠습니다.
읽어주셔서 감사합니다.
안전을 유지하세요. 잘 지내세요.
루카스.
Reference
이 문제에 관하여(테라폼 + 투구 = ❤️), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/souzaxx/terraform-helm-57bk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)