-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Este projeto utiliza o Terraform para provisionar e gerenciar um cluster Kubernetes. Ele inclui funcionalidades para aguardar a criação do cluster, obter o kubeconfig e salvá-lo em um arquivo local.
-
main.tf
: Arquivo principal contendo os recursos e data sources do Terraform. -
outputs.tf
: Define os outputs do Terraform. -
variables.tf
: Define as variáveis utilizadas no projeto. -
kubeconfig.yaml
: Arquivo gerado contendo o kubeconfig do cluster Kubernetes.
-
Provisionamento do Cluster Kubernetes:
- Cria um cluster Kubernetes com um node pool.
-
Tempo de Espera para o Cluster:
- Utiliza o recurso
time_sleep
para aguardar a criação do cluster antes de prosseguir.
- Utiliza o recurso
-
Obtenção do Kubeconfig:
- Utiliza um data source para obter o kubeconfig do cluster Kubernetes após a criação.
-
Salvamento do Kubeconfig:
- Salva o kubeconfig obtido em um arquivo local (
kubeconfig.yaml
).
- Salva o kubeconfig obtido em um arquivo local (
- Terraform instalado.
- Credenciais configuradas para acessar o provedor de nuvem utilizado.
git clone https://github.com/nataliagranato/terraform-mgc-k8s-module.git
cd terraform-mgc-k8s-module
mgc auth login
Você será redirecionado para realizar o login em sua conta Magalu, depois disso inicie o projeto.
Edite o arquivo variables.tf
para configurar as variáveis necessárias para o provisionamento do cluster.
terraform init --upgrade
terraform apply
Após a execução bem-sucedida, verifique se o arquivo kubeconfig.yaml
foi criado no diretório especificado.
resource "time_sleep" "wait_for_cluster" {
depends_on = [mgc_kubernetes_cluster.cluster_with_nodepool]
create_duration = "10m" # Ajuste o tempo conforme necessário
}
data "mgc_kubernetes_cluster_kubeconfig" "cluster" {
depends_on = [time_sleep.wait_for_cluster]
cluster_id = mgc_kubernetes_cluster.cluster_with_nodepool.id
}
resource "local_file" "kubeconfig" {
provider = local
content = data.mgc_kubernetes_cluster_kubeconfig.cluster.kubeconfig
filename = "${path.module}/kubeconfig.yaml"
}
- Faça um fork do projeto.
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature
). - Commit suas mudanças (
git commit -am 'Adiciona nova feature'
). - Faça um push para a branch (
git push origin feature/nova-feature
). - Crie um novo Pull Request.
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.
Para mais informações, entre em contato com contato@nataliagranato.xyz.
Este README fornece uma visão geral do projeto, instruções de uso e informações sobre como contribuir. Certifique-se de ajustar os detalhes conforme necessário para o seu projeto específico.