chore(frontend): suppression des variables inutiles, copie des fichiers terraform communs aux environnements
This commit is contained in:
@@ -4,16 +4,6 @@ locals {
|
|||||||
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-dev/browser"
|
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-dev/browser"
|
||||||
domain = "dev.enervision"
|
domain = "dev.enervision"
|
||||||
}
|
}
|
||||||
|
|
||||||
rec = {
|
|
||||||
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-rec/browser"
|
|
||||||
domain = "rec.enervision"
|
|
||||||
}
|
|
||||||
|
|
||||||
prod = {
|
|
||||||
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-prod/browser"
|
|
||||||
domain = "enervision"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
selected_frontend = local.frontend_environments[var.deployment_environment]
|
selected_frontend = local.frontend_environments[var.deployment_environment]
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
locals {
|
||||||
|
frontend_environments = {
|
||||||
|
prod = {
|
||||||
|
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-prod/browser"
|
||||||
|
domain = "enervision"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
selected_frontend = local.frontend_environments[var.deployment_environment]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "null_resource" "frontend" {
|
||||||
|
depends_on = [module.k3s]
|
||||||
|
|
||||||
|
triggers = {
|
||||||
|
environment = var.deployment_environment
|
||||||
|
|
||||||
|
build_hash = sha256(join("", [
|
||||||
|
for file in fileset("${path.root}/../../../apps/frontend/dist/frontend/browser", "**") :
|
||||||
|
filesha256("${path.root}/../../../apps/frontend/dist/frontend/browser/${file}")
|
||||||
|
]))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Variables pour la connexion SSH
|
||||||
|
connection {
|
||||||
|
type = "ssh"
|
||||||
|
host = var.ssh_host
|
||||||
|
port = var.ssh_port
|
||||||
|
user = var.ssh_user
|
||||||
|
private_key = file(pathexpand(var.ssh_private_key_path))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lancement de script en SSH avec remote-exec
|
||||||
|
// Installation de Nginx et initialisation du répertoire du frontend
|
||||||
|
provisioner "remote-exec" {
|
||||||
|
inline = [
|
||||||
|
"sudo apt-get update",
|
||||||
|
"sudo apt-get install -y nginx",
|
||||||
|
"sudo mkdir -p /var/www/enervision",
|
||||||
|
"sudo rm -rf /var/www/enervision/*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copie des fichiers vers le serveur
|
||||||
|
provisioner "file" {
|
||||||
|
source = "${path.root}/../../../apps/frontend/dist/frontend/browser/"
|
||||||
|
destination = "/tmp/enervision-frontend"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Déplacement des fichiers
|
||||||
|
provisioner "remote-exec" {
|
||||||
|
inline = [
|
||||||
|
"sudo cp -r /tmp/enervision-frontend/* /var/www/enervision/",
|
||||||
|
"sudo chown -R www-data:www-data /var/www/enervision"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
module "k3s" {
|
||||||
|
source = "../../modules/k3s"
|
||||||
|
|
||||||
|
ssh_host = var.ssh_host
|
||||||
|
ssh_port = var.ssh_port
|
||||||
|
ssh_user = var.ssh_user
|
||||||
|
ssh_private_key_path = var.ssh_private_key_path
|
||||||
|
k3s_version = var.k3s_version
|
||||||
|
k3s_disable_components = var.k3s_disable_components
|
||||||
|
kubeconfig_output_path = var.kubeconfig_output_path
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
output "kubeconfig_path" {
|
||||||
|
description = "Chemin local du kubeconfig recupere apres installation."
|
||||||
|
value = module.k3s.kubeconfig_path
|
||||||
|
}
|
||||||
|
|
||||||
|
output "node_host" {
|
||||||
|
description = "Adresse du serveur sur lequel k3s est installe."
|
||||||
|
value = module.k3s.node_host
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
variable "ssh_host" {
|
||||||
|
type = string
|
||||||
|
description = "Adresse IP ou nom d'hote du serveur on-premise de l'ecole."
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ssh_port" {
|
||||||
|
type = number
|
||||||
|
description = "Port SSH du serveur."
|
||||||
|
default = 22
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ssh_user" {
|
||||||
|
type = string
|
||||||
|
description = "Utilisateur SSH utilise pour l'installation."
|
||||||
|
default = "root"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ssh_private_key_path" {
|
||||||
|
type = string
|
||||||
|
description = "Chemin local vers la cle privee SSH."
|
||||||
|
sensitive = true
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "k3s_version" {
|
||||||
|
type = string
|
||||||
|
description = "Version k3s a epingler pour un deploiement reproductible (ex: v1.31.5+k3s1). Voir https://github.com/k3s-io/k3s/releases."
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "k3s_disable_components" {
|
||||||
|
type = list(string)
|
||||||
|
description = "Composants embarques k3s a desactiver."
|
||||||
|
default = ["traefik"]
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "kubeconfig_output_path" {
|
||||||
|
type = string
|
||||||
|
description = "Chemin local ou ecrire le kubeconfig recupere apres installation."
|
||||||
|
default = "./kubeconfig"
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
terraform {
|
||||||
|
required_version = ">= 1.7"
|
||||||
|
|
||||||
|
required_providers {
|
||||||
|
null = {
|
||||||
|
source = "hashicorp/null"
|
||||||
|
version = "~> 3.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
backend "local" {
|
||||||
|
path = "terraform.tfstate"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
locals {
|
||||||
|
frontend_environments = {
|
||||||
|
rec = {
|
||||||
|
source_dir = "${path.root}/../../../apps/frontend/dist/frontend-rec/browser"
|
||||||
|
domain = "rec.enervision"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
selected_frontend = local.frontend_environments[var.deployment_environment]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "null_resource" "frontend" {
|
||||||
|
depends_on = [module.k3s]
|
||||||
|
|
||||||
|
triggers = {
|
||||||
|
environment = var.deployment_environment
|
||||||
|
|
||||||
|
build_hash = sha256(join("", [
|
||||||
|
for file in fileset("${path.root}/../../../apps/frontend/dist/frontend/browser", "**") :
|
||||||
|
filesha256("${path.root}/../../../apps/frontend/dist/frontend/browser/${file}")
|
||||||
|
]))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Variables pour la connexion SSH
|
||||||
|
connection {
|
||||||
|
type = "ssh"
|
||||||
|
host = var.ssh_host
|
||||||
|
port = var.ssh_port
|
||||||
|
user = var.ssh_user
|
||||||
|
private_key = file(pathexpand(var.ssh_private_key_path))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Lancement de script en SSH avec remote-exec
|
||||||
|
// Installation de Nginx et initialisation du répertoire du frontend
|
||||||
|
provisioner "remote-exec" {
|
||||||
|
inline = [
|
||||||
|
"sudo apt-get update",
|
||||||
|
"sudo apt-get install -y nginx",
|
||||||
|
"sudo mkdir -p /var/www/enervision",
|
||||||
|
"sudo rm -rf /var/www/enervision/*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copie des fichiers vers le serveur
|
||||||
|
provisioner "file" {
|
||||||
|
source = "${path.root}/../../../apps/frontend/dist/frontend/browser/"
|
||||||
|
destination = "/tmp/enervision-frontend"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Déplacement des fichiers
|
||||||
|
provisioner "remote-exec" {
|
||||||
|
inline = [
|
||||||
|
"sudo cp -r /tmp/enervision-frontend/* /var/www/enervision/",
|
||||||
|
"sudo chown -R www-data:www-data /var/www/enervision"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
module "k3s" {
|
||||||
|
source = "../../modules/k3s"
|
||||||
|
|
||||||
|
ssh_host = var.ssh_host
|
||||||
|
ssh_port = var.ssh_port
|
||||||
|
ssh_user = var.ssh_user
|
||||||
|
ssh_private_key_path = var.ssh_private_key_path
|
||||||
|
k3s_version = var.k3s_version
|
||||||
|
k3s_disable_components = var.k3s_disable_components
|
||||||
|
kubeconfig_output_path = var.kubeconfig_output_path
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
output "kubeconfig_path" {
|
||||||
|
description = "Chemin local du kubeconfig recupere apres installation."
|
||||||
|
value = module.k3s.kubeconfig_path
|
||||||
|
}
|
||||||
|
|
||||||
|
output "node_host" {
|
||||||
|
description = "Adresse du serveur sur lequel k3s est installe."
|
||||||
|
value = module.k3s.node_host
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
variable "ssh_host" {
|
||||||
|
type = string
|
||||||
|
description = "Adresse IP ou nom d'hote du serveur on-premise de l'ecole."
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ssh_port" {
|
||||||
|
type = number
|
||||||
|
description = "Port SSH du serveur."
|
||||||
|
default = 22
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ssh_user" {
|
||||||
|
type = string
|
||||||
|
description = "Utilisateur SSH utilise pour l'installation."
|
||||||
|
default = "root"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ssh_private_key_path" {
|
||||||
|
type = string
|
||||||
|
description = "Chemin local vers la cle privee SSH."
|
||||||
|
sensitive = true
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "k3s_version" {
|
||||||
|
type = string
|
||||||
|
description = "Version k3s a epingler pour un deploiement reproductible (ex: v1.31.5+k3s1). Voir https://github.com/k3s-io/k3s/releases."
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "k3s_disable_components" {
|
||||||
|
type = list(string)
|
||||||
|
description = "Composants embarques k3s a desactiver."
|
||||||
|
default = ["traefik"]
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "kubeconfig_output_path" {
|
||||||
|
type = string
|
||||||
|
description = "Chemin local ou ecrire le kubeconfig recupere apres installation."
|
||||||
|
default = "./kubeconfig"
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
terraform {
|
||||||
|
required_version = ">= 1.7"
|
||||||
|
|
||||||
|
required_providers {
|
||||||
|
null = {
|
||||||
|
source = "hashicorp/null"
|
||||||
|
version = "~> 3.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
backend "local" {
|
||||||
|
path = "terraform.tfstate"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user