Skip to content

Commit

Permalink
Added check script and updated version (#113)
Browse files Browse the repository at this point in the history
* Added helm update check script and updated version
  • Loading branch information
bravecobra authored Oct 31, 2022
1 parent 900fb2d commit 604735e
Show file tree
Hide file tree
Showing 9 changed files with 189 additions and 36 deletions.
49 changes: 49 additions & 0 deletions src/terraform/check-helm-versions.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
function Get-Latest-ChartVersion {
param (
[string]$repository,
[string]$chart
)
Write-Host "Checking $repository/$chart"
$version = helm search repo $repository/$chart | Select-String -Pattern $chart -SimpleMatch | Select-Object -First 1| ForEach-Object{ ($_ -split "\t+")[1]}
return $version
}

helm repo update

## Getting current version from terraform output
$currentversions = terraform output | Select-String -Pattern '^helm_version_(.*) = "(.*)"$' -AllMatches | ForEach-Object { $_.Matches }
## Looking up Latest version in the helm repos
$table = @{}
$table.Add("argocd", (Get-Latest-ChartVersion "argo-cd" "argo-cd" ))
$table.Add("cert-manager", (Get-Latest-ChartVersion "jetstack" "cert-manager" ))
$table.Add("elasticsearch", (Get-Latest-ChartVersion "elastic" "eck-operator"))
$table.Add("etcd", (Get-Latest-ChartVersion "bitnami" "etcd"))
$table.Add("fluent", (Get-Latest-ChartVersion "fluent" "fluent-bit"))
$table.Add("identityserveradmin", (Get-Latest-ChartVersion "identityserver4admin" "identityserver4admin"))
$table.Add("identityserveradmin-mssql", (Get-Latest-ChartVersion "identityserver4admin" "mssql"))
$table.Add("jaeger", (Get-Latest-ChartVersion "jaegertracing" "jaeger-operator"))
$table.Add("keycloak", (Get-Latest-ChartVersion "codecentric" "keycloak"))
$table.Add("linkerd", (Get-Latest-ChartVersion "linkerd" "linkerd2"))
$table.Add("localstack", (Get-Latest-ChartVersion "localstack-charts" "localstack"))
$table.Add("loki", (Get-Latest-ChartVersion "grafana" "loki"))
$table.Add("mariadb", (Get-Latest-ChartVersion "bitnami" "mariadb"))
$table.Add("metrics", (Get-Latest-ChartVersion "bitnami" "metrics-server"))
$table.Add("minio", (Get-Latest-ChartVersion "minio" "minio"))
$table.Add("mssql", (Get-Latest-ChartVersion "simcube" "mssqlserver-2022"))
$table.Add("mysql", (Get-Latest-ChartVersion "bitnami" "mysql"))
$table.Add("opentelemetry", (Get-Latest-ChartVersion "open-telemetry" "opentelemetry-operator"))
$table.Add("postgres", (Get-Latest-ChartVersion "bitnami" "postgresql"))
$table.Add("prometheus", (Get-Latest-ChartVersion "prometheus-community" "kube-prometheus-stack"))
$table.Add("promtail", (Get-Latest-ChartVersion "grafana" "promtail"))
$table.Add("rabbitmq", (Get-Latest-ChartVersion "bitnami" "rabbitmq-cluster-operator"))
$table.Add("seq", (Get-Latest-ChartVersion "datalust" "seq"))
$table.Add("tempo", (Get-Latest-ChartVersion "grafana" "tempo"))
$table.Add("traefik", (Get-Latest-ChartVersion "traefik" "traefik"))
$table.Add("vault", (Get-Latest-ChartVersion "hashicorp" "vault"))

## Foreach terraform version lookup the latest version and see if they match
$currentversions | ForEach-Object {
if ($_.groups[2].Value.Trim() -ne $($table[$($_.groups[1].Value)]).Trim() ) {
"The chart $($_.groups[1]) is upgradable: $($_.groups[2].Value.Trim()) -> $($table[$($_.groups[1].Value)].Trim())"
}
}
2 changes: 1 addition & 1 deletion src/terraform/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ module "argocd" {
source = "./modules/services/deployment/argocd"
helm_release = var.argocd_helm_version
domain-name = var.domain-name
install_dashboards = var.install_prometheus
install_prometheus = var.install_prometheus
namespace = kubernetes_namespace.argocd[0].metadata[0].name
depends_on = [
module.jaeger,
Expand Down
5 changes: 2 additions & 3 deletions src/terraform/modules/services/configuration/etcd/main.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
resource "random_password" "init_password" {
length = 8
special = true
special = false
override_special = "!#$%&*()-_=+[]{}<>:?"
}

Expand Down Expand Up @@ -66,7 +66,6 @@ resource "kubectl_manifest" "e3w-ingress" {
})
depends_on = [
helm_release.etcd,

kubectl_manifest.etcd-cert
]
}
}
2 changes: 1 addition & 1 deletion src/terraform/modules/services/configuration/vault/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ resource "kubectl_manifest" "vault-cert" {

resource "random_password" "init_password" {
length = 8
special = true
special = false
override_special = "%&*()-_=+[]{}<>:?"
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ server:
- /webhooks/6/clientConfig/caBundle
- /webhooks/7/clientConfig/caBundle
metrics:
enabled: true
enabled: ${install_prometheus}
service:
annotations: {}
labels: {}
Expand All @@ -142,7 +142,7 @@ server:

controller:
metrics:
enabled: true
enabled: ${install_prometheus}
service:
annotations: {}
labels: {}
Expand Down Expand Up @@ -171,7 +171,7 @@ dex:
# memory: 32Mi
redis:
metrics:
enabled: true
enabled: ${install_prometheus}
service:
annotations: {}
labels: {}
Expand All @@ -191,7 +191,7 @@ redis:
# memory: 64Mi
repoServer:
metrics:
enabled: true
enabled: ${install_prometheus}
service:
annotations: {}
labels: {}
Expand Down
7 changes: 5 additions & 2 deletions src/terraform/modules/services/deployment/argocd/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ resource "helm_release" "argocd" {
version = var.helm_release
namespace = var.namespace
values = [
templatefile("${path.module}/argo-values.yaml", { domain-name = var.domain-name }),
templatefile("${path.module}/argo-values.yaml", {
domain-name = var.domain-name
install_prometheus = var.install_prometheus
}),
]
}

resource "kubectl_manifest" "argocd_dashboard" {
count = var.install_dashboards ? 1 : 0
count = var.install_prometheus ? 1 : 0
yaml_body = file("${path.module}/dashboards/argocd/argocd-grafana-dashboard.yaml")
depends_on = [
helm_release.argocd
Expand Down
9 changes: 5 additions & 4 deletions src/terraform/modules/services/deployment/argocd/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ variable "domain-name" {
description = "Domain Name"
}

variable "install_dashboards" {
type = bool
}

variable "namespace" {
description = "Namespace"
}

variable "install_prometheus" {
type = bool
description = "Expose metrics"
}
103 changes: 102 additions & 1 deletion src/terraform/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,105 @@ output "oracle-password" {
description = "Oracle password"
value = join("", module.oraclexe[*].oracle-password)
sensitive = true
}
}

output "helm_version_cert-manager" {
value = var.cert_manager_helm_version
}

output "helm_version_traefik" {
value = var.traefik_helm_version
}

output "helm_version_linkerd" {
value = var.linkerd_helm_version
}

output "helm_version_metrics" {
value = var.metrics_helm_version
}

output "helm_version_seq" {
value = var.seq_helm_version
}

output "helm_version_fluent" {
value = var.fluent_helm_version
}

output "helm_version_jaeger" {
value = var.jaeger_helm_version
}

output "helm_version_opentelemetry" {
value = var.opentelemetry_helm_version
}

output "helm_version_loki" {
value = var.loki_helm_version
}

output "helm_version_promtail" {
value = var.promtail_helm_version
}

output "helm_version_tempo" {
value = var.tempo_helm_version
}
output "helm_version_prometheus" {
value = var.prometheus_helm_version
}

output "helm_version_argocd" {
value = var.argocd_helm_version
}
output "helm_version_elasticsearch" {
value = var.elasticsearch_helm_version
}

output "helm_version_vault" {
value = var.vault_helm_version
}

output "helm_version_identityserveradmin" {
value = var.identityserver4admin_helm_version
}
output "helm_version_identityserveradmin-mssql" {
value = var.identityserver4admin_mssql_helm_version
}

output "helm_version_keycloak" {
value = var.keycloak_helm_version
}

output "helm_version_etcd" {
value = var.etcd_helm_version
}

output "helm_version_minio" {
value = var.minio_helm_version
}

output "helm_version_rabbitmq" {
value = var.rabbitmq_helm_version
}

output "helm_version_localstack" {
value = var.localstack_helm_version
}

output "helm_version_mysql" {
value = var.mysql_helm_version
}

output "helm_version_mariadb" {
value = var.mariadb_helm_version
}

output "helm_version_postgres" {
value = var.postgres_helm_version
}

output "helm_version_mssql" {
value = var.mssql_helm_version
}
Loading

0 comments on commit 604735e

Please sign in to comment.