Open lukerops opened 12 months ago
Depois coloca aqui exemplos de uso desse novo agrupamento em comparação com o antigo.
Dúvida: O antigo será removido?
Dúvida: O antigo será removido?
Sim. A ideia por trás do agrupamento inicial era usar o próprio manifesto como um objeto comum entre as versões, porém, isso obrigaria a ter múltiplos recursos separando a criação do recurso, já que versões diferentes podem lógicas diferentes para criação do recurso. Isso se tornou um problema devido à obrigatoriedade de um state mv
sempre que houver a mudança de versão de algum recurso.
Como o recomendado agora é usar um objeto comum entre as versões, que não é mais o próprio manifesto, então, sempre vamos criar alguma lógica de mapeamento para cada versão do CRD. Devido a esse mapeamento, estou mudando o agrupamento dos manifestos, e assim, não forçar sempre o filtro por apiVersionNmae
.
Formato de uso atual:
locals {
resources = merge(
{
for name, resource in local.tf_gapi.resources["<apiGroup>"]["<kind>"] :
name => {
name = name
param = resource.spec.param
}
if resource.apiVersionName == "v1alpha1"
},
{
for name, resource in local.tf_gapi.resources["<apiGroup>"]["<kind>"] :
name => {
name = name
param = resource.spec.enable_param ? "fixed" : null
}
if resource.apiVersionName == "v1alpha2"
}
)
}
resource "tf_resource" "example" {
for_each = local.resources
name = each.value.name
param = each.value.param
}
Formato de uso da proposta:
locals {
resources = merge(
{
for name, resource in local.tf_gapi.resources["<apiGroup>"]["<kind>"]["v1alpha1"] :
name => {
name = name
param = resource.spec.param
}
},
{
for name, resource in local.tf_gapi.resources["<apiGroup>"]["<kind>"]["v1alpha2"] :
name => {
name = name
param = resource.spec.enable_param ? "fixed" : null
}
}
)
}
resource "tf_resource" "example" {
for_each = local.resources
name = each.value.name
param = each.value.param
}
Hoje o mapeamento leva em consideração apenas o
apiGroup
ekind
, porém, para fazer a criação dos recursos é preciso fazer uma lógica para cadaapiVersionName
. Para facilitar essa lógica adicional, vamos mudar o agrupamento para: