Skip to content

Commit

Permalink
Modules (#7)
Browse files Browse the repository at this point in the history
* moved files

* added missing modules
- monitoring
- nextcloud
- nextcloud_staging

* update

* update

* terraform version update
  • Loading branch information
steled committed Apr 20, 2024
1 parent 7df10b0 commit e7371ee
Show file tree
Hide file tree
Showing 47 changed files with 697 additions and 139 deletions.
7 changes: 7 additions & 0 deletions bin/create-hook-symlinks.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

for hook in "$(dirname "$0")/../githooks/"*; do
ln -s -f "../../githooks/$(basename $hook)" "$(dirname "$0")/../.git/hooks/$(basename $hook)"
echo -e "\n# run $(basename $hook) script" >> "$(dirname "$0")/../.git/hooks/pre-commit"
echo "\$(dirname \"\$0\")/$(basename $hook)" >> "$(dirname "$0")/../.git/hooks/pre-commit"
done
5 changes: 2 additions & 3 deletions cert-manager/cert-manager.tf
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
resource "kubernetes_namespace" "certmanager" {
metadata {
name = var.kubernetes_namespace_name
name = var.namespace
}
}

resource "helm_release" "certmanager" {
name = "cert-manager"
namespace = kubernetes_namespace.certmanager.metadata[0].name

repository = "https://charts.jetstack.io"
chart = "cert-manager"
Expand All @@ -15,6 +16,4 @@ resource "helm_release" "certmanager" {
name = "installCRDs"
value = "true"
}

namespace = kubernetes_namespace.certmanager.metadata[0].name
}
5 changes: 2 additions & 3 deletions cert-manager/duckdns-webhook.tf
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
resource "helm_release" "duckdns_webhook" {
name = "duckdns-webhook"
namespace = kubernetes_namespace.certmanager.metadata[0].name

repository = "https://ebrianne.github.io/helm-charts"
chart = "cert-manager-webhook-duckdns"
version = var.duckdns_webhook_version # check version here: https://github.com/ebrianne/helm-charts/blob/master/charts/cert-manager-webhook-duckdns/Chart.yaml

values = [ var.values_yaml ]

namespace = kubernetes_namespace.certmanager.metadata[0].name
values = [ file(var.duckdns_webhook_values_yaml) ]
}
2 changes: 1 addition & 1 deletion cert-manager/main.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
terraform {
required_version = "~> 1.2.8"
required_version = "~> 1.8.1"

required_providers {
helm = {
Expand Down
12 changes: 6 additions & 6 deletions cert-manager/variables.tf
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
variable "cert_manager_version" {
variable "namespace" {
type = string
description = "Set the version of cert-manager"
description = "Name of the kubernetes namespace"
}

variable "values_yaml" {
variable "cert_manager_version" {
type = string
description = "Path to the values.yml file, relative to the root module"
description = "Set the version of cert-manager"
}

variable "duckdns_webhook_version" {
type = string
description = "Set the version of duckdns webhook"
}

variable "kubernetes_namespace_name" {
variable "duckdns_webhook_values_yaml" {
type = string
description = "Name of the kubernetes namespace"
description = "Path to the duckdns webhook values.yml file, relative to the root module"
}
2 changes: 1 addition & 1 deletion dht22/dht22/dht22.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
resource "kubernetes_deployment" "dht22" {
metadata {
name = "dht22"
namespace = var.kubernetes_namespace_name
namespace = var.namespace
labels = {
app = "dht22"
}
Expand Down
2 changes: 1 addition & 1 deletion dht22/dht22/variables.tf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
variable "kubernetes_namespace_name" {
variable "namespace" {
type = string
description = "Name of the kubernetes namespace"
}
Expand Down
14 changes: 7 additions & 7 deletions dht22/dht22_sdm.tf
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
resource "kubernetes_namespace" "sdm-dht22" {
metadata {
name = var.kubernetes_namespace_name
name = var.namespace
}
}

module "sdm" {
source = "./sdm"
kubernetes_namespace_name = var.kubernetes_namespace_name
node_name = var.node_name
image = var.sdm_image # check version here: https://gitlab.com/arm-research/smarter/smarter-device-manager/container_registry/1080664
namespace = kubernetes_namespace.sdm-dht22.metadata[0].name
node_name = var.node_name
image = var.sdm_image # check version here: https://gitlab.com/arm-research/smarter/smarter-device-manager/container_registry/1080664
}

module "dht22" {
source = "./dht22"

kubernetes_namespace_name = var.kubernetes_namespace_name
node_name = var.node_name
image = var.dht22_image
namespace = kubernetes_namespace.sdm-dht22.metadata[0].name
node_name = var.node_name
image = var.dht22_image

depends_on = [ module.sdm, ]
}
2 changes: 1 addition & 1 deletion dht22/main.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
terraform {
required_version = "~> 1.2.8"
required_version = "~> 1.8.1"

required_providers {
kubernetes = {
Expand Down
4 changes: 2 additions & 2 deletions dht22/sdm/sdm.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
resource "kubernetes_config_map" "sdm" {
metadata {
name = "smarter-device-manager"
namespace = var.kubernetes_namespace_name
namespace = var.namespace
}

data = {
Expand All @@ -15,7 +15,7 @@ CONF
resource "kubernetes_deployment" "sdm" {
metadata {
name = "smarter-device-manager"
namespace = var.kubernetes_namespace_name
namespace = var.namespace
labels = {
app = "sdm"
}
Expand Down
2 changes: 1 addition & 1 deletion dht22/sdm/variables.tf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
variable "kubernetes_namespace_name" {
variable "namespace" {
type = string
description = "Name of the kubernetes namespace"
}
Expand Down
2 changes: 1 addition & 1 deletion dht22/variables.tf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
variable "kubernetes_namespace_name" {
variable "namespace" {
type = string
description = "Name of the kubernetes namespace"
}
Expand Down
2 changes: 1 addition & 1 deletion gitea/main.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
terraform {
required_version = "~> 1.2.8"
required_version = "~> 1.8.1"

required_providers {
helm = {
Expand Down
32 changes: 32 additions & 0 deletions githooks/pre-commit-sed.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
# sed pre-commit hook: duplicate decrypted sensitive file and redact sensitive informations via sed

tmp=$(mktemp)
IFS=$'\n'
for secret_file in $(git -c core.quotePath=false ls-files | git -c core.quotePath=false check-attr --stdin filter | awk 'BEGIN { FS = ":" }; /crypt$/{ print $1 }'); do
# Skip symlinks, they contain the linked target file path not plaintext
if [[ -L $secret_file ]]; then
continue
fi

# extract filename
filename="${secret_file##*/}"
# get file extension
file_extension="${filename##*.}"
# get filename without extension
file="${filename%.*}"
# extract directory
dir="$(dirname ${secret_file})"

# if test -f "${dir}/${file}.sed"; then
if test -f "${dir}/${filename}.sed"; then
if [ $file_extension == $file ]; then
sed -f "${dir}/${filename}.sed" $secret_file > "${dir}/${file}_dec"
else
sed -f "${dir}/${filename}.sed" $secret_file > "${dir}/${file}.${file_extension}.dec"
fi
fi

done
rm -f "${tmp}"
unset IFS
6 changes: 3 additions & 3 deletions hassio/endpoints.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
resource "kubernetes_endpoints" "hassio" {
metadata {
name = var.metadata_name
name = "hassio"
namespace = kubernetes_namespace.hassio.metadata[0].name
}

Expand All @@ -10,9 +10,9 @@ resource "kubernetes_endpoints" "hassio" {
}

port {
name = var.port_name
name = "hassio"
port = 8123
protocol = "TCP"
}
}
}
}
4 changes: 2 additions & 2 deletions hassio/hassio.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
resource "kubernetes_namespace" "hassio" {
metadata {
name = var.kubernetes_namespace_name
name = var.namespace
}
}
}
6 changes: 3 additions & 3 deletions hassio/ingress.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
resource "kubernetes_ingress_v1" "hassio" {
metadata {
name = var.metadata_name
name = "hassio"
namespace = kubernetes_namespace.hassio.metadata[0].name
annotations = {
"kubernetes.io/ingress.class" = "nginx"
Expand All @@ -24,7 +24,7 @@ resource "kubernetes_ingress_v1" "hassio" {
path {
backend {
service {
name = var.metadata_name
name = "hassio"
port {
number = 443
}
Expand All @@ -41,4 +41,4 @@ resource "kubernetes_ingress_v1" "hassio" {
secret_name = "hassio-secret"
}
}
}
}
2 changes: 1 addition & 1 deletion hassio/main.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
terraform {
required_version = "~> 1.2.8"
required_version = "~> 1.8.1"

required_providers {
helm = {
Expand Down
6 changes: 3 additions & 3 deletions hassio/service.tf
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
resource "kubernetes_service" "hassio" {
metadata {
name = var.metadata_name
name = "hassio"
namespace = kubernetes_namespace.hassio.metadata[0].name
}
spec {
port {
name = var.port_name
name = "hassio"
port = 443
target_port = 8123
protocol = "TCP"
}
}
}
}
12 changes: 2 additions & 10 deletions hassio/variables.tf
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
variable "kubernetes_namespace_name" {
variable "namespace" {
type = string
description = "Name of the kubernetes namespace"
}

variable "metadata_name" {
type = string
}

variable "port_name" {
type = string
}

variable "host" {
type = string
}

variable "ip" {
type = string
}
}
9 changes: 4 additions & 5 deletions ingress/ingress.tf
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
resource "kubernetes_namespace" "ingress" {
metadata {
name = var.kubernetes_namespace_name
name = var.namespace
}
}

resource "helm_release" "ingress" {
name = "ingress"
namespace = kubernetes_namespace.ingress.metadata[0].name

repository = "https://kubernetes.github.io/ingress-nginx"
chart = "ingress-nginx"
version = var.ingress_version # check version here: https://github.com/kubernetes/ingress-nginx/blob/master/charts/ingress-nginx/Chart.yaml
version = var.version # check version here: https://github.com/kubernetes/ingress-nginx/blob/master/charts/ingress-nginx/Chart.yaml
force_update = false
recreate_pods = true

values = [ var.values_yaml ]

namespace = kubernetes_namespace.ingress.metadata[0].name
values = [ file(var.values_yaml) ]
}
2 changes: 1 addition & 1 deletion ingress/main.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
terraform {
required_version = "~> 1.2.8"
required_version = "~> 1.8.1"

required_providers {
helm = {
Expand Down
4 changes: 2 additions & 2 deletions ingress/variables.tf
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
variable "kubernetes_namespace_name" {
variable "namespace" {
type = string
description = "Name of the kubernetes namespace"
}

variable "ingress_version" {
variable "version" {
type = string
description = "Set the version of ingress"
}
Expand Down
10 changes: 5 additions & 5 deletions jdownloader/jd/jd.tf
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
resource "kubernetes_deployment" "jdownloader" {
metadata {
name = "jd"
namespace = var.kubernetes_namespace_name
namespace = var.namespace

labels = {
app = "jd-sftp"
Expand Down Expand Up @@ -74,24 +74,24 @@ resource "kubernetes_deployment" "jdownloader" {
volume {
name = "config"
persistent_volume_claim {
claim_name = var.config_pvc_name
claim_name = "jd-sftp-config-pvc"
}
}

volume {
name = "downloads"
persistent_volume_claim {
claim_name = var.downloads_pvc_name
claim_name = "jd-sftp-downloads-pvc"
}
}

volume {
name = "logs"
persistent_volume_claim {
claim_name = var.logs_pvc_name
claim_name = "jd-sftp-logs-pvc"
}
}
}
}
}
}
}
Loading

0 comments on commit e7371ee

Please sign in to comment.