Skip to content

Commit

Permalink
feat: add support for opentofu (#328)
Browse files Browse the repository at this point in the history
  • Loading branch information
LucasMrqes authored Oct 18, 2024
1 parent 53eae91 commit 49b466f
Show file tree
Hide file tree
Showing 45 changed files with 801 additions and 261 deletions.
39 changes: 33 additions & 6 deletions api/v1alpha1/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,25 +44,48 @@ type OnErrorRemediationStrategy struct {
}

type TerraformConfig struct {
Version string `json:"version,omitempty"`
TerragruntConfig TerragruntConfig `json:"terragrunt,omitempty"`
Version string `json:"version,omitempty"`
Enabled *bool `json:"enabled,omitempty"`
}

type TerragruntConfig struct {
type OpenTofuConfig struct {
Version string `json:"version,omitempty"`
Enabled *bool `json:"enabled,omitempty"`
}

type TerragruntConfig struct {
Version string `json:"version,omitempty"`
Enabled *bool `json:"enabled,omitempty"`
}

func GetTerraformEnabled(repository *TerraformRepository, layer *TerraformLayer) bool {
if isEnabled(layer.Spec.OpenTofuConfig.Enabled) {
return false
}
return chooseBool(repository.Spec.TerraformConfig.Enabled, layer.Spec.TerraformConfig.Enabled, false)
}

func GetOpenTofuEnabled(repository *TerraformRepository, layer *TerraformLayer) bool {
if isEnabled(layer.Spec.TerraformConfig.Enabled) {
return false
}
return chooseBool(repository.Spec.OpenTofuConfig.Enabled, layer.Spec.OpenTofuConfig.Enabled, false)
}

func GetTerraformVersion(repository *TerraformRepository, layer *TerraformLayer) string {
return chooseString(repository.Spec.TerraformConfig.Version, layer.Spec.TerraformConfig.Version)
}

func GetTerragruntVersion(repository *TerraformRepository, layer *TerraformLayer) string {
return chooseString(repository.Spec.TerraformConfig.TerragruntConfig.Version, layer.Spec.TerraformConfig.TerragruntConfig.Version)
func GetOpenTofuVersion(repository *TerraformRepository, layer *TerraformLayer) string {
return chooseString(repository.Spec.OpenTofuConfig.Version, layer.Spec.OpenTofuConfig.Version)
}

func GetTerragruntEnabled(repository *TerraformRepository, layer *TerraformLayer) bool {
return chooseBool(repository.Spec.TerraformConfig.TerragruntConfig.Enabled, layer.Spec.TerraformConfig.TerragruntConfig.Enabled, false)
return chooseBool(repository.Spec.TerragruntConfig.Enabled, layer.Spec.TerragruntConfig.Enabled, false)
}

func GetTerragruntVersion(repository *TerraformRepository, layer *TerraformLayer) string {
return chooseString(repository.Spec.TerragruntConfig.Version, layer.Spec.TerragruntConfig.Version)
}

func GetOverrideRunnerSpec(repository *TerraformRepository, layer *TerraformLayer) OverrideRunnerSpec {
Expand Down Expand Up @@ -99,6 +122,10 @@ func GetAutoApplyEnabled(repo *TerraformRepository, layer *TerraformLayer) bool
return chooseBool(repo.Spec.RemediationStrategy.AutoApply, layer.Spec.RemediationStrategy.AutoApply, false)
}

func isEnabled(enabled *bool) bool {
return enabled != nil && *enabled
}

func chooseBool(a, b *bool, defaultVal bool) bool {
if b != nil {
return *b
Expand Down
Loading

0 comments on commit 49b466f

Please sign in to comment.