diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..867570d
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,11 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+
+version: 2
+updates:
+ - package-ecosystem: "terraform" # See documentation for possible values
+ directory: "/" # Location of package manifests
+ schedule:
+ interval: "daily"
diff --git a/.github/workflows/terragrunt-cicd.yml b/.github/workflows/terragrunt-cicd.yml
new file mode 100644
index 0000000..a78523e
--- /dev/null
+++ b/.github/workflows/terragrunt-cicd.yml
@@ -0,0 +1,101 @@
+name: 'Terraform Module CI'
+
+on:
+ push:
+ branches:
+ - main
+ paths:
+ - '**/*.hcl'
+ - '**/*.tf'
+ pull_request:
+ branches:
+ - main
+ paths:
+ - '**/*.hcl'
+ - '**/*.tf'
+
+permissions:
+ contents: read
+ pull-requests: write
+
+jobs:
+ validate:
+ name: 'Validate Module'
+ runs-on: self-hosted
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Setup Terraform
+ uses: hashicorp/setup-terraform@v2
+ with:
+ terraform_version: 1.5.0
+
+ - name: Terraform Init
+ run: |
+ terraform init -backend=false
+
+ - name: Terraform Format
+ run: |
+ terraform fmt -check
+
+ - name: Terraform Validate
+ run: |
+ terraform validate
+
+ - name: Run tflint
+ uses: terraform-linters/setup-tflint@v3
+ if: github.event_name == 'pull_request'
+
+ - name: Lint Terraform
+ if: github.event_name == 'pull_request'
+ run: |
+ tflint --format compact
+
+ release:
+ name: 'Create Release'
+ needs: validate
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
+ runs-on: self-hosted
+ permissions:
+ contents: write
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Setup Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.9'
+
+ - name: Install Commitizen
+ run: |
+ pip install commitizen
+
+ - name: Configure Git
+ run: |
+ git config --local user.email "action@github.com"
+ git config --local user.name "GitHub Action"
+
+ - name: Bump Version and Generate Changelog
+ id: cz
+ run: |
+ cz bump --yes
+ echo "new_version=$(cz version --project)" >> $GITHUB_OUTPUT
+ echo "changelog=$(cz changelog --dry-run)" >> $GITHUB_OUTPUT
+
+ - name: Create Release
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: v${{ steps.cz.outputs.new_version }}
+ release_name: Release v${{ steps.cz.outputs.new_version }}
+ draft: false
+ prerelease: false
+ body: ${{ steps.cz.outputs.changelog }}
diff --git a/.tflint.hcl b/.tflint.hcl
index 684d807..ab8ea66 100644
--- a/.tflint.hcl
+++ b/.tflint.hcl
@@ -4,18 +4,18 @@ config {
disabled_by_default = false
}
-rule "aws_instance_invalid_type" {
- enabled = true
-}
+# rule "aws_instance_invalid_type" {
+# enabled = true
+# }
-plugin "aws" {
- enabled = true
- version = "0.32.0"
- source = "github.com/terraform-linters/tflint-ruleset-aws"
-}
+# plugin "aws" {
+# enabled = true
+# version = "0.32.0"
+# source = "github.com/terraform-linters/tflint-ruleset-aws"
+# }
-plugin "terraform" {
- enabled = true
- version = "0.9.0"
- source = "github.com/terraform-linters/tflint-ruleset-terraform"
-}
+# plugin "terraform" {
+# enabled = true
+# version = "0.9.0"
+# source = "github.com/terraform-linters/tflint-ruleset-terraform"
+# }
diff --git a/README.md b/README.md
index 8d49162..271170e 100644
--- a/README.md
+++ b/README.md
@@ -13,25 +13,20 @@
| Name | Version |
|------|---------|
-| [helm](#provider\_helm) | 2.16.1 |
-| [kubernetes](#provider\_kubernetes) | 2.33.0 |
+| [helm](#provider\_helm) | 2.17.0 |
## Modules
| Name | Source | Version |
|------|--------|---------|
| [images](#module\_images) | git@github.e.it.census.gov:terraform-modules/aws-ecr-copy-images.git/ | tf-upgrade |
-| [preinstall](#module\_preinstall) | git@github.e.it.census.gov:SCT-Engineering/tfmod-config-job.git//config-job | feature-kiali-baseline |
-| [service\_account](#module\_service\_account) | git@github.e.it.census.gov:SCT-Engineering/tfmod-config-job.git//service-account | n/a |
+| [ingress\_resources](#module\_ingress\_resources) | git@github.e.it.census.gov:SCT-Engineering/tfmod-istio-service-ingress.git | main |
## Resources
| Name | Type |
|------|------|
-| [helm_release.kiali](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
| [helm_release.kiali_operator](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
-| [kubernetes_namespace.ns](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/namespace) | resource |
-| [kubernetes_namespace.operators](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/data-sources/namespace) | data source |
## Inputs
@@ -40,18 +35,15 @@
| [cluster\_domain](#input\_cluster\_domain) | The domain name used to reference ingresses for the cluster | `string` | n/a | yes |
| [cluster\_name](#input\_cluster\_name) | The name of the cluster into which the tools are deployed. | `string` | n/a | yes |
| [grafana\_internal\_url](#input\_grafana\_internal\_url) | The url within the cluster to use to access grafana. | `string` | n/a | yes |
-| [grafana\_namespace](#input\_grafana\_namespace) | The namespace holding the grafana instance, used to look up the grafana password. | `string` | n/a | yes |
| [grafana\_public\_url](#input\_grafana\_public\_url) | The URL incoming traffic from outisde the cluster uses to access grafana. | `string` | n/a | yes |
| [grafana\_secret\_name](#input\_grafana\_secret\_name) | The secret in the holding the grafana admin password. | `string` | n/a | yes |
| [istio\_namespace](#input\_istio\_namespace) | The namespace where istio has been deployed. | `string` | `"istio-system"` | no |
-| [jaeger\_internal\_url](#input\_jaeger\_internal\_url) | The url within the cluster to use to query the jaegertracing. | `string` | n/a | yes |
| [kiali\_application\_version](#input\_kiali\_application\_version) | The version of kiali to install | `string` | `"v1.73.0"` | no |
| [kiali\_operator\_version](#input\_kiali\_operator\_version) | The version of kiali to install | `string` | `"1.73.0"` | no |
-| [namespace](#input\_namespace) | The namespace to create and into which the tools are deployed. | `string` | `"istio-tools"` | no |
-| [operators\_namespace](#input\_operators\_namespace) | The namespace into which all operators are to be deployed. | `string` | n/a | yes |
+| [namespace](#input\_namespace) | The namespace to create and into which the tools are deployed. | `string` | `"namespace"` | no |
| [profile](#input\_profile) | The AWS\_PROFILE to use while running the scripts. | `string` | `""` | no |
| [prometheus\_internal\_url](#input\_prometheus\_internal\_url) | The url within the cluster to use to query the prometheus server. | `string` | n/a | yes |
-| [public\_hostname](#input\_public\_hostname) | The hostname to use for kiali that will be publicly available | `string` | `"kiali"` | no |
+| [service\_name](#input\_service\_name) | The name of the service for Kiali. | `string` | `"kiali"` | no |
## Outputs
@@ -60,5 +52,5 @@
| [internal\_endpoint](#output\_internal\_endpoint) | The internal endpoint to use to access kiali |
| [module\_name](#output\_module\_name) | The name of this module. |
| [module\_version](#output\_module\_version) | The version of this module. |
-| [public\_endpoint](#output\_public\_endpoint) | The public endpoint to use to access kiali |
+| [public\_endpoint](#output\_public\_endpoint) | The endpoint at which keycloak can be reached from outside the cluster. |
diff --git a/copy_images.tf b/copy_images.tf
index 96cc219..acf2a39 100644
--- a/copy_images.tf
+++ b/copy_images.tf
@@ -1,6 +1,6 @@
locals {
- kiali_operator_key = format("%v#%v", "istio-tools/kiali-operator", var.kiali_application_version)
- kiali_server_key = format("%v#%v", "istio-tools/kiali", var.kiali_application_version)
+ kiali_operator_key = format("%v#%v", "istio-tools/kiali-operator", var.kiali_application_version)
+ kiali_server_key = format("%v#%v", "istio-tools/kiali", var.kiali_application_version)
image_config = [
## Images for Kiali
diff --git a/main.tf b/main.tf
index b02d609..964cd8d 100644
--- a/main.tf
+++ b/main.tf
@@ -1,47 +1,7 @@
locals {
-
- internal_hostname = format("kiali.%v.svc.cluster.local", var.namespace)
+ internal_hostname = format("%v.%v.svc.cluster.local", var.service_name, var.namespace)
internal_port_number = "20001"
- internal_url = format("http://%v:%v/", local.internal_hostname, local.internal_port_number)
-
- grafana_secret_name = "kiali"
- grafana_password_key = "grafana_password"
-
- preinstall_script = <