Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Creating minikube clusters using terraform #1

Merged
merged 6 commits into from
Sep 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .env.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
TFLOG=
TF_LOG_PATH=
TF_INPUT=
#TF_VAR_name=
#TF_CLI_ARGS=
#TF_CLI_ARGS_name=
TF_DATA_DIR=
TF_WORKSPACE=
TF_IN_AUTOMATION=
TF_REGISTRY_DISCOVERY_RETRY=
TF_REGISTRY_CLIENT_TIMEOUT=
TF_CLI_CONFIG_FILE=
TF_PLUGIN_CACHE_DIR=
TF_IGNORE=
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/1-FEATURE-REQUEST.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: "💡 Feature Request"
description: "Create a new ticket for a new feature request."
title: "feat: <title>"
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
87 changes: 87 additions & 0 deletions .github/ISSUE_TEMPLATE/2-BUG-REPORT.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
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

# Terraform Version
- type: textarea
id: terraform-version
attributes:
label: "Terraform version"
description: Which terraform version were you using?
placeholder: e.g. '1.8.5'
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
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Genericware Discussions
url: https://github.com/orgs/genericware/discussions
about: Please ask and answer questions here.
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!--- 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.
64 changes: 64 additions & 0 deletions .github/actions/terraform-init/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Terraform Init
description: Run `terraform init` with optional caching

inputs:
args:
description: Arguments for `terraform init`
terraform-version:
description: Desired semver compatible Terraform version
required: true
cache:
description: Enable caching terraform project files
default: 'true'

outputs:
terraform-version:
description: The Terraform version setup
value: ${{ steps.version-terraform.outputs.terraform-version }}
cache-hit:
description: Whether an exact cache hit occurred
value: ${{ steps.cache.outputs.cache-hit }}

runs:
using: composite
steps:
- name: Setup Terraform
id: setup-terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: ${{ inputs.terraform-version }}

- name: Get Version
id: version-terraform
run: printf 'terraform-version=%s\n' "$(terraform version -json | jq -r '.terraform_version')" >> $GITHUB_OUTPUT
shell: bash

- run: printf 'date=%s\n' "$(date -I)" >> $GITHUB_OUTPUT
id: get-date
if: inputs.cache == 'true'
shell: bash

- name: Configure Plugin Cache Directory
id: cache-config
if: inputs.cache == 'true'
run: |
echo 'plugin_cache_dir="~/.terraform.d/plugin-cache"' > ~/.terraformrc
mkdir -p ~/.terraform.d/plugin-cache
shell: bash

- uses: actions/cache@v4
name: Cache Terraform Plugins
id: cache-terraform
if: inputs.cache == 'true'
with:
path: |
~/.terraform.d/plugin-cache
key: terraform-${{ steps.get-date.outputs.date }}-${{ runner.os }}-${{ hashFiles('.terraform.lock.hcl') }}
restore-keys: |
terraform-${{ steps.get-date.outputs.date }}-${{ runner.os }}-
terraform-${{ steps.get-date.outputs.date }}-

- name: Init Terraform
id: init-terraform
run: terraform init ${{ inputs.args }}
shell: bash
63 changes: 63 additions & 0 deletions .github/workflows/.tests-matrix.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
on:
workflow_call:
inputs:
runner:
required: true
type: string
terraform-version:
required: true
type: string
tflint-version:
required: true
type: string
run-tflint:
required: true
type: boolean
run-tftest:
required: true
type: boolean

defaults:
run:
shell: bash

jobs:

tflint:
name: Lint Terraform
runs-on: ${{ inputs.runner }}
if: inputs.run-tflint
steps:
- uses: actions/cache@v4
name: Cache tflint plugins
with:
path: ~/.tflint.d/plugins
key: tflint-${{ inputs.runner }}-${{ hashFiles('.tflint.hcl') }}
restore-keys: |
tflint-${{ inputs.runner }}-

- uses: terraform-linters/setup-tflint@v4
name: Setup TFLint
with:
tflint_version: ${{ inputs.tflint-version }}

- name: Init TFLint
run: tflint --init
env:
GITHUB_TOKEN: ${{ github.token }}

- name: Run TFLint
run: tflint -f compact

tftest:
name: Test Terraform
runs-on: ${{ inputs.runner }}
if: inputs.run-tftest
steps:
- uses: actions/checkout@v4

- uses: ./.github/actions/terraform-init
with:
terraform-version: ${{ inputs.terraform-version }}

- run: terraform test
Loading