diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..92fe38b --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @caerulescens diff --git a/.github/ISSUE_TEMPLATE/1-FEATURE-REQUEST.yaml b/.github/ISSUE_TEMPLATE/1-FEATURE-REQUEST.yaml new file mode 100644 index 0000000..998acfb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1-FEATURE-REQUEST.yaml @@ -0,0 +1,47 @@ +name: "💡 Feature Request" +description: "Create a new ticket for a new feature request." +title: "feat: " +labels: + - "enhancement" +assignees: + - "caerulescens" +body: + # Feature + - type: textarea + id: summary + attributes: + label: "Summary" + description: What feature would you like to add? + placeholder: ... + validations: + required: true + + # Implementation + - type: textarea + id: implementation + attributes: + label: "Implementation" + description: How would the feature work in more detail? + placeholder: ... + validations: + required: true + + # Drawbacks + - type: textarea + id: drawback + attributes: + label: "Drawbacks" + description: What drawbacks does this feature have? + placeholder: ... + validations: + required: false + + # Questions + - type: textarea + id: question + attributes: + label: "Questions" + description: Are there any unsolved question related to the feature? + placeholder: ... + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/2-BUG-REPORT.yaml b/.github/ISSUE_TEMPLATE/2-BUG-REPORT.yaml new file mode 100644 index 0000000..b34be8d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-BUG-REPORT.yaml @@ -0,0 +1,97 @@ +name: "🐞 Bug Report" +description: "Create a new issue for a bug." +title: "fix: <title>" +labels: + - "bug" +assignees: + - "caerulescens" +body: + # Version + - type: textarea + id: version + attributes: + label: "Version" + description: Which version were you running? + placeholder: e.g. '0.1.0' + validations: + required: true + + # Terragrunt Version + - type: textarea + id: terragrunt-version + attributes: + label: "Terragrunt version" + description: Which terragrunt version were you using? + placeholder: e.g. '0.67.16' + validations: + required: true + + # Tofu Version + - type: textarea + id: tofu-version + attributes: + label: "Tofu version" + description: Which tofu version were you using? + placeholder: e.g. '1.8.3' + validations: + required: true + + # Operating System + - type: dropdown + id: operating-system + attributes: + label: "Operating system" + description: Which operating system were you using? + multiple: false + options: + - Windows + - macOS + - GNU/Linux + validations: + required: true + + # Description + - type: textarea + id: description + attributes: + label: "Description" + description: Provide details of the issue you encountered + placeholder: ... + validations: + required: true + + # Reproduction + - type: textarea + id: reproduction + attributes: + label: "Reproduction" + description: Provide details on how to reproduce the issue + placeholder: | + #. Use config '...' + #. Run program '...' + #. See error '...' + render: bash + validations: + required: true + + # Screenshots + - type: textarea + id: screenshot + attributes: + label: "Screenshots" + description: Provide any relevant screenshots + value: | + ![DESCRIPTION](LINK.png) + render: bash + validations: + required: false + + # Logs + - type: textarea + id: log + attributes: + label: "Logs" + description: Provide any raw log output + render: bash + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yaml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yaml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..e1375d0 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,29 @@ +# Title +<!--- Provide a general summary of your changes in the Title above --> + +## Description +<!--- Describe your changes in detail --> + +## Motivation and Context +<!--- Why is this change required? What problem does it solve? --> +<!--- If it fixes an open issue, please link to the issue here. --> + +## How has this been tested? +<!--- Please describe in detail how you tested your changes. --> +<!--- Include details of your testing environment, tests ran to see how --> +<!--- your change affects other areas of the code, etc. --> + +## Screenshots (if appropriate): + +## Types of changes +<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) + +## Checklist: +<!--- Go over all the following points, and put an `x` in all the boxes that apply. --> +<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> +- [ ] My code follows the code style of this project. +- [ ] My change requires a change to the documentation. +- [ ] I have updated the documentation accordingly. diff --git a/.terraform-version b/.terraform-version deleted file mode 100644 index fee0a27..0000000 --- a/.terraform-version +++ /dev/null @@ -1 +0,0 @@ -1.9.7 diff --git a/README.md b/README.md index a4b13be..b318322 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,13 @@ A [`terragrunt`](https://github.com/gruntwork-io/terragrunt) module for [`miniku ## Install -| name | -|-----------------------------------------------------------| -| [docker](https://github.com/docker) | -| [minikube](https://github.com/kubernetes/minikube) | -| [kubectl](https://github.com/kubernetes/kubectl) | -| [terragrunt](https://github.com/gruntwork-io/terragrunt) | -| [terraform](https://github.com/hashicorp/terraform) | -| [opentofu](https://github.com/opentofu/opentofu) | -| [pre-commit](https://github.com/pre-commit/pre-commit) | +| Name | +|--------------------------------------------------------| +| [docker](https://github.com/docker) | +| [kubectl](https://github.com/kubernetes/kubectl) | +| [minikube](https://github.com/kubernetes/minikube) | +| [tenv](https://github.com/tofuutils/tenv) | +| [pre-commit](https://github.com/pre-commit/pre-commit) | ```shell pre-commit install @@ -22,28 +20,55 @@ pre-commit install Configure: ```shell -cat <<EOF > live/minikube/local/dev/default/docker/terraform.tfvars +cat <<EOF > ./live/cluster/docker/terraform.tfvars minikube_clusters = { "minikube": { - "driver": "docker", - "nodes": 3, - "cpus": 4, - "memory": "4096mb" + "driver": "docker" + "nodes": 3 + "cpus": 2 + "memory": "2048mb" + "disk_size": "65536mb", + "extra_disks": 0 } } EOF ``` -Create: +Validate: ```shell -terragrunt init --terragrunt-working-dir live/minikube/local/dev/default/docker -terragrunt plan --terragrunt-working-dir live/minikube/local/dev/default/docker -terragrunt apply --terragrunt-working-dir live/minikube/local/dev/default/docker +terragrunt validate-inputs --terragrunt-working-dir live/dev/cluster ``` -Remove: +Init: ```shell -terragrunt destroy --terragrunt-working-dir live/minikube/local/dev/default/docker +terragrunt init --terragrunt-working-dir live/dev/cluster +``` + +Plan: +```shell +terragrunt plan --terragrunt-working-dir live/dev/cluster +``` + +Apply: +```shell +terragrunt apply --terragrunt-working-dir live/dev/cluster +``` + +Destroy: +```shell +terragrunt destroy --terragrunt-working-dir live/dev/cluster +``` + +## Development + +Validate: +```shell +terragrunt hclvalidate +``` + +Format: +```shell +terragrunt hclfmt ``` Check: diff --git a/live/_envcommon/minikube.hcl b/live/_common/minikube.hcl similarity index 100% rename from live/_envcommon/minikube.hcl rename to live/_common/minikube.hcl diff --git a/live/dev/cluster/terragrunt.hcl b/live/dev/cluster/terragrunt.hcl new file mode 100644 index 0000000..13f3c94 --- /dev/null +++ b/live/dev/cluster/terragrunt.hcl @@ -0,0 +1,14 @@ +include "root" { + path = find_in_parent_folders() +} + +include "common" { + path = "${dirname(find_in_parent_folders())}/_common/minikube.hcl" + expose = true +} + +terraform { + source = "${include.common.locals.base_source_url}?ref=${include.common.locals.ref}" +} + +inputs = {} diff --git a/live/minikube/local/dev/default/docker/.terraform.lock.hcl b/live/minikube/local/dev/default/docker/.terraform.lock.hcl deleted file mode 100644 index 1127207..0000000 --- a/live/minikube/local/dev/default/docker/.terraform.lock.hcl +++ /dev/null @@ -1,21 +0,0 @@ -# This file is maintained automatically by "tofu init". -# Manual edits may be lost in future updates. - -provider "registry.opentofu.org/scott-the-programmer/minikube" { - version = "0.4.0" - constraints = ">= 0.3.10" - hashes = [ - "h1:503dXFnKCuOCDmW4dEOEpNB4Jq7SaCOtGcej3tT/C5U=", - "zh:0e98165e545b462cbc7f4e3466211e11501110116d6267ffa4e1e101a5b639bd", - "zh:1c3e89cf19118fc07d7b04257251fc9897e722c16e0a0df7b07fcd261f8c12e7", - "zh:43e5fa4ba912af382a1930d870dae500d92de99da203d5a1e26e877fb240a727", - "zh:577c2138dc87072183488e984c737236dc03fc41b706838da6e2c7c952fc1217", - "zh:6a0d327c5cfb6eca30481ba8b18a4002c4c9f2b72ba42a7adf4ed99d6a37d1ed", - "zh:92db0672d58615b9581d865c694eebbc1814bb4c1af8d130d8bca6dee85352d7", - "zh:d31aa717a19ca11d5e4d2029c83a930b77fa96579cee43ddd80e1b3f07439cff", - "zh:d95bf62f9cd9e96ff1f1667fcaa0d383f897f34c14b4b7db7c59491c848c89f9", - "zh:ec07fe88016f185fde6f5efef6e61054ea826ca2d836c6c492b4f85ebd7e2348", - "zh:fc742f2997d64b8dd99e13e73b6b2a98c14f5571b3900139822536372f9d05f3", - "zh:fd4a95de5a35db43848cbadf42e907c18358bb77a7399e7773da67854e47c7e5", - ] -} diff --git a/live/minikube/local/dev/default/docker/terragrunt.hcl b/live/minikube/local/dev/default/docker/terragrunt.hcl deleted file mode 100644 index 32fb122..0000000 --- a/live/minikube/local/dev/default/docker/terragrunt.hcl +++ /dev/null @@ -1,16 +0,0 @@ -include "root" { - path = find_in_parent_folders() -} - -include "envcommon" { - path = "${dirname(find_in_parent_folders())}/_envcommon/minikube.hcl" - expose = true -} - -terraform { - source = "${include.envcommon.locals.base_source_url}?ref=${include.envcommon.locals.ref}" -} - -inputs = { - driver = "docker" -} diff --git a/live/minikube/local/dev/default/profile.hcl b/live/minikube/local/dev/default/profile.hcl deleted file mode 100644 index 5cdb455..0000000 --- a/live/minikube/local/dev/default/profile.hcl +++ /dev/null @@ -1,3 +0,0 @@ -locals { - profile = "default" -} diff --git a/live/minikube/local/dev/environment.hcl b/live/minikube/local/dev/environment.hcl deleted file mode 100644 index 33d8b31..0000000 --- a/live/minikube/local/dev/environment.hcl +++ /dev/null @@ -1,3 +0,0 @@ -locals { - environment = "dev" -} diff --git a/live/minikube/local/region.hcl b/live/minikube/local/region.hcl deleted file mode 100644 index 262d537..0000000 --- a/live/minikube/local/region.hcl +++ /dev/null @@ -1,3 +0,0 @@ -locals { - region = "local" -} diff --git a/live/minikube/platform.hcl b/live/minikube/platform.hcl deleted file mode 100644 index 3d47611..0000000 --- a/live/minikube/platform.hcl +++ /dev/null @@ -1,3 +0,0 @@ -locals { - platform = "minikube" -} diff --git a/live/terragrunt.hcl b/live/terragrunt.hcl index a2fc665..67d0826 100644 --- a/live/terragrunt.hcl +++ b/live/terragrunt.hcl @@ -1,21 +1,3 @@ -locals { - # automatically load platform variables - platform_vars = read_terragrunt_config(find_in_parent_folders("platform.hcl")) +locals {} - # automatically load region variables - region_vars = read_terragrunt_config(find_in_parent_folders("region.hcl")) - - # automatically load environment variables - environment_vars = read_terragrunt_config(find_in_parent_folders("environment.hcl")) - - # automatically load environment variables - profile_vars = read_terragrunt_config(find_in_parent_folders("profile.hcl")) -} - -# merge platform, region, environment, and profile vars -inputs = merge( - local.platform_vars.locals, - local.region_vars.locals, - local.environment_vars.locals, - local.profile_vars.locals -) +inputs = {}