mirror of
https://github.com/kemko/nomad.git
synced 2026-01-07 02:45:42 +03:00
* func: add initial enos skeleton * style: add headers * func: change the variables input to a map of objects to simplify the workloads creation * style: formating * Add tests for servers and clients * style: separate the tests in diferent scripts * style: add missing headers * func: add tests for allocs * style: improve output * func: add step to copy remote upgrade version * style: hcl formatting * fix: remove the terraform nomad provider * fix: Add clean token to remove extra new line added in provision * fix: Add clean token to remove extra new line added in provision * fix: Add clean token to remove extra new line added in provision * fix: add missing license headers * style: hcl fmt * style: rename variables and fix format * func: remove the template step on the workloads module and chop the noamd token output on the provide module * fix: correct the jobspec path on the workloads module * fix: add missing variable definitions on job specs for workloads * style: formatting * fix: Add clean token to remove extra new line added in provision * func: add module to upgrade servers * style: missing headers * func: add upgrade module * func: add install for windows as well * func: add an intermediate module that runs the upgrade server for each server * fix: add missing license headers * fix: remove extra input variables and connect upgrade servers to the scenario * fix: rename missing env variables for cluster health scripts * func: move the cluster health test outside of the modules and into the upgrade scenario * fix: fix the regex to ignore snap files on the gitignore file * fix: Add clean token to remove extra new line added in provision * fix: Add clean token to remove extra new line added in provision * fix: Add clean token to remove extra new line added in provision * fix: remove extra input variables and connect upgrade servers to the scenario * style: formatting * fix: move taken and restoring snapshots out of the upgrade_single_server to avoid possible race conditions * fix: rename variable in health test * fix: Add clean token to remove extra new line added in provision * func: add an intermediate module that runs the upgrade server for each server * fix: Add clean token to remove extra new line added in provision * fix: Add clean token to remove extra new line added in provision * fix: Add clean token to remove extra new line added in provision * func: fix the last_log_index check and add a versions check * func: done use for_each when upgrading the servers, hardcodes each one to ensure they are upgraded one by one * Update enos/modules/upgrade_instance/variables.tf Co-authored-by: Tim Gross <tgross@hashicorp.com> * Update enos/modules/upgrade_instance/variables.tf Co-authored-by: Tim Gross <tgross@hashicorp.com> * Update enos/modules/upgrade_instance/variables.tf Co-authored-by: Tim Gross <tgross@hashicorp.com> * func: make snapshot by calling every server and allowing stale data * style: formatting * fix: make the source for the upgrade binary unknow until apply * func: use enos bundle to install remote upgrade version, enos_files is not meant for dynamic files --------- Co-authored-by: Tim Gross <tgross@hashicorp.com>
65 lines
1.4 KiB
HCL
65 lines
1.4 KiB
HCL
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
terraform {
|
|
required_providers {
|
|
enos = {
|
|
source = "registry.terraform.io/hashicorp-forge/enos"
|
|
}
|
|
}
|
|
}
|
|
|
|
locals {
|
|
binary_destination = var.platform == "windows" ? "C:/opt/" : "/usr/local/bin/"
|
|
ssh_user = var.platform == "windows" ? "Administrator" : "ubuntu"
|
|
}
|
|
|
|
resource "enos_bundle_install" "nomad" {
|
|
destination = local.binary_destination
|
|
|
|
artifactory = var.artifactory_release
|
|
|
|
transport = {
|
|
ssh = {
|
|
host = var.server_address
|
|
private_key_path = var.ssh_key_path
|
|
user = local.ssh_user
|
|
}
|
|
}
|
|
}
|
|
|
|
resource "enos_remote_exec" "restart_linux_services" {
|
|
count = var.platform == "linux" ? 1 : 0
|
|
depends_on = [enos_bundle_install.nomad]
|
|
|
|
|
|
transport = {
|
|
ssh = {
|
|
host = var.server_address
|
|
private_key_path = var.ssh_key_path
|
|
user = local.ssh_user
|
|
}
|
|
}
|
|
|
|
inline = [
|
|
"sudo systemctl restart nomad",
|
|
]
|
|
}
|
|
|
|
resource "enos_remote_exec" "restart_windows_services" {
|
|
count = var.platform == "windows" ? 1 : 0
|
|
depends_on = [enos_bundle_install.nomad]
|
|
|
|
transport = {
|
|
ssh = {
|
|
host = var.server_address
|
|
private_key_path = var.ssh_key_path
|
|
user = local.ssh_user
|
|
}
|
|
}
|
|
|
|
inline = [
|
|
"powershell Restart-Service Nomad"
|
|
]
|
|
}
|