Feat/separate functions (#19)
* chore: work save * fix: refactor flavors * fix: refactor pg user and database * fix: refactor flavor parameters * fix: refactor tf script * chore: work save * chore: work save * chore: work save --------- Co-authored-by: Marcel S. Henselin <marcel.henselin@stackit.cloud>
This commit is contained in:
parent
910551f09d
commit
0150fea302
54 changed files with 6010 additions and 2826 deletions
|
|
@ -1 +0,0 @@
|
|||
# see other files
|
||||
3
sample/postgres/outputs.tf
Normal file
3
sample/postgres/outputs.tf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
output "postgres_flavor" {
|
||||
value = data.stackitprivatepreview_postgresflexalpha_flavor.pgsql_flavor.flavor_id
|
||||
}
|
||||
79
sample/postgres/postresql.tf
Normal file
79
sample/postgres/postresql.tf
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
data "stackitprivatepreview_postgresflexalpha_flavor" "pgsql_flavor" {
|
||||
project_id = var.project_id
|
||||
region = "eu01"
|
||||
cpu = 2
|
||||
ram = 4
|
||||
node_type = "Single"
|
||||
storage_class = "premium-perf2-stackit"
|
||||
}
|
||||
|
||||
resource "stackitprivatepreview_postgresflexalpha_instance" "msh-sna-pe-example" {
|
||||
project_id = var.project_id
|
||||
name = "msh-sna-pe-example"
|
||||
backup_schedule = "0 0 * * *"
|
||||
retention_days = 33
|
||||
flavor_id = data.stackitprivatepreview_postgresflexalpha_flavor.pgsql_flavor.flavor_id
|
||||
replicas = 1
|
||||
storage = {
|
||||
# class = "premium-perf2-stackit"
|
||||
class = data.stackitprivatepreview_postgresflexalpha_flavor.pgsql_flavor.storage_class
|
||||
size = 10
|
||||
}
|
||||
encryption = {
|
||||
# key_id = stackit_kms_key.key.key_id
|
||||
# keyring_id = stackit_kms_keyring.keyring.keyring_id
|
||||
key_id = var.key_id
|
||||
keyring_id = var.keyring_id
|
||||
key_version = var.key_version
|
||||
service_account = var.sa_email
|
||||
}
|
||||
network = {
|
||||
acl = ["0.0.0.0/0", "193.148.160.0/19", "170.85.2.177/32"]
|
||||
access_scope = "SNA"
|
||||
}
|
||||
version = 14
|
||||
}
|
||||
|
||||
resource "stackitprivatepreview_postgresflexalpha_user" "ptlsdbadminuser" {
|
||||
project_id = var.project_id
|
||||
instance_id = stackitprivatepreview_postgresflexalpha_instance.msh-sna-pe-example.instance_id
|
||||
username = var.db_admin_username
|
||||
roles = ["createdb", "login"]
|
||||
# roles = ["createdb", "login", "createrole"]
|
||||
}
|
||||
|
||||
resource "stackitprivatepreview_postgresflexalpha_user" "ptlsdbuser" {
|
||||
project_id = var.project_id
|
||||
instance_id = stackitprivatepreview_postgresflexalpha_instance.msh-sna-pe-example.instance_id
|
||||
username = var.db_username
|
||||
roles = ["login"]
|
||||
# roles = ["createdb", "login", "createrole"]
|
||||
}
|
||||
|
||||
resource "stackitprivatepreview_postgresflexalpha_database" "example" {
|
||||
depends_on = [stackitprivatepreview_postgresflexalpha_user.ptlsdbadminuser]
|
||||
project_id = var.project_id
|
||||
instance_id = stackitprivatepreview_postgresflexalpha_instance.msh-sna-pe-example.instance_id
|
||||
name = var.db_name
|
||||
owner = var.db_admin_username
|
||||
}
|
||||
|
||||
data "stackitprivatepreview_postgresflexalpha_instance" "datapsql" {
|
||||
project_id = var.project_id
|
||||
instance_id = var.instance_id
|
||||
region = "eu01"
|
||||
}
|
||||
|
||||
output "psql_instance_id" {
|
||||
value = data.stackitprivatepreview_postgresflexalpha_instance.datapsql.instance_id
|
||||
}
|
||||
|
||||
output "psql_user_password" {
|
||||
value = stackitprivatepreview_postgresflexalpha_user.ptlsdbuser.password
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
output "psql_user_conn" {
|
||||
value = stackitprivatepreview_postgresflexalpha_user.ptlsdbuser.connection_string
|
||||
sensitive = true
|
||||
}
|
||||
|
|
@ -20,5 +20,5 @@ terraform {
|
|||
provider "stackitprivatepreview" {
|
||||
default_region = "eu01"
|
||||
enable_beta_resources = true
|
||||
service_account_key_path = "./service_account.json"
|
||||
service_account_key_path = "../service_account.json"
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
resource "stackitprivatepreview_postgresflexalpha_instance" "ptlsdbsrv" {
|
||||
project_id = var.project_id
|
||||
name = "pgsql-example-instance"
|
||||
backup_schedule = "0 0 * * *"
|
||||
retention_days = 33
|
||||
flavor = {
|
||||
cpu = 2
|
||||
ram = 4
|
||||
}
|
||||
replicas = 1
|
||||
storage = {
|
||||
class = "premium-perf2-stackit"
|
||||
size = 5
|
||||
}
|
||||
encryption = {
|
||||
# key_id = stackit_kms_key.key.key_id
|
||||
# keyring_id = stackit_kms_keyring.keyring.keyring_id
|
||||
key_id = var.key_id
|
||||
keyring_id = var.keyring_id
|
||||
key_version = var.key_version
|
||||
service_account = var.sa_email
|
||||
}
|
||||
network = {
|
||||
acl = ["0.0.0.0/0", "193.148.160.0/19"]
|
||||
access_scope = "SNA"
|
||||
}
|
||||
version = 14
|
||||
}
|
||||
|
||||
# data "stackitprivatepreview_postgresflexalpha_instance" "datapsql" {
|
||||
# project_id = var.project_id
|
||||
# instance_id = "fdb6573e-2dea-4e1d-a638-9157cf90c3ba"
|
||||
# region = "eu01"
|
||||
# }
|
||||
#
|
||||
# output "sample_psqlinstance" {
|
||||
# value = data.stackitprivatepreview_postgresflexalpha_instance.datapsql
|
||||
# }
|
||||
12
sample/sqlserver/flavor.tf
Normal file
12
sample/sqlserver/flavor.tf
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
data "stackitprivatepreview_sqlserverflexalpha_flavor" "sqlserver_flavor" {
|
||||
project_id = var.project_id
|
||||
region = "eu01"
|
||||
cpu = 4
|
||||
ram = 16
|
||||
node_type = "Single"
|
||||
storage_class = "premium-perf2-stackit"
|
||||
}
|
||||
|
||||
output "sqlserver_flavor" {
|
||||
value = data.stackitprivatepreview_sqlserverflexalpha_flavor.sqlserver_flavor.flavor_id
|
||||
}
|
||||
24
sample/sqlserver/providers.tf
Normal file
24
sample/sqlserver/providers.tf
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
# stackit = {
|
||||
# source = "registry.terraform.io/stackitcloud/stackit"
|
||||
# version = "~> 0.70"
|
||||
# }
|
||||
stackitprivatepreview = {
|
||||
source = "registry.terraform.io/mhenselin/stackitprivatepreview"
|
||||
version = "~> 0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# provider "stackit" {
|
||||
# default_region = "eu01"
|
||||
# enable_beta_resources = true
|
||||
# service_account_key_path = "./service_account.json"
|
||||
# }
|
||||
|
||||
provider "stackitprivatepreview" {
|
||||
default_region = "eu01"
|
||||
enable_beta_resources = true
|
||||
service_account_key_path = "../service_account.json"
|
||||
}
|
||||
|
|
@ -18,42 +18,12 @@
|
|||
# value = stackit_kms_key.key.key_id
|
||||
# }
|
||||
|
||||
# resource "stackitalpha_postgresflexalpha_instance" "ptlsdbsrv" {
|
||||
# project_id = var.project_id
|
||||
# name = "example-instance"
|
||||
# acl = ["0.0.0.0/0"]
|
||||
# backup_schedule = "0 0 * * *"
|
||||
# flavor = {
|
||||
# cpu = 2
|
||||
# ram = 4
|
||||
# }
|
||||
# replicas = 1
|
||||
# storage = {
|
||||
# class = "premium-perf2-stackit"
|
||||
# size = 5
|
||||
# }
|
||||
# version = 14
|
||||
# encryption = {
|
||||
# key_id = stackitalpha_kms_key.key.id
|
||||
# keyring_id = stackitalpha_kms_keyring.keyring.keyring_id
|
||||
# key_version = "1"
|
||||
# service_account = var.sa_email
|
||||
# }
|
||||
# network = {
|
||||
# access_scope = "SNA"
|
||||
# }
|
||||
# }
|
||||
|
||||
resource "stackitprivatepreview_sqlserverflexalpha_instance" "ptlsdbsqlsrv" {
|
||||
resource "stackitprivatepreview_sqlserverflexalpha_instance" "sqlsrv" {
|
||||
project_id = var.project_id
|
||||
name = "msh-example-instance-002"
|
||||
backup_schedule = "0 3 * * *"
|
||||
retention_days = 31
|
||||
flavor = {
|
||||
cpu = 4
|
||||
ram = 16
|
||||
node_type = "Single"
|
||||
}
|
||||
flavor_id = data.stackitprivatepreview_sqlserverflexalpha_flavor.sqlserver_flavor.flavor_id
|
||||
storage = {
|
||||
class = "premium-perf2-stackit"
|
||||
size = 50
|
||||
|
|
@ -73,28 +43,27 @@ resource "stackitprivatepreview_sqlserverflexalpha_instance" "ptlsdbsqlsrv" {
|
|||
}
|
||||
}
|
||||
|
||||
# data "stackitalpha_sqlserverflexalpha_instance" "test" {
|
||||
# data "stackitprivatepreview_sqlserverflexalpha_instance" "test" {
|
||||
# project_id = var.project_id
|
||||
# instance_id = var.instance_id
|
||||
# region = "eu01"
|
||||
# }
|
||||
|
||||
# output "test" {
|
||||
# value = data.stackitalpha_sqlserverflexalpha_instance.test
|
||||
# value = data.stackitprivatepreview_sqlserverflexalpha_instance.test
|
||||
# }
|
||||
|
||||
# data "stackitalpha_sqlserverflexalpha_user" "testuser" {
|
||||
# project_id = var.project_id
|
||||
# instance_id = var.instance_id
|
||||
# region = "eu01"
|
||||
# }
|
||||
resource "stackitprivatepreview_sqlserverflexalpha_user" "ptlsdbadminuser" {
|
||||
project_id = var.project_id
|
||||
instance_id = stackitprivatepreview_sqlserverflexalpha_instance.sqlsrv.instance_id
|
||||
username = var.db_admin_username
|
||||
roles = ["##STACKIT_LoginManager##", "##STACKIT_DatabaseManager##"]
|
||||
}
|
||||
|
||||
resource "stackitprivatepreview_sqlserverflexalpha_user" "ptlsdbuser" {
|
||||
project_id = var.project_id
|
||||
instance_id = stackitprivatepreview_sqlserverflexalpha_instance.sqlsrv.instance_id
|
||||
username = var.db_username
|
||||
roles = ["##STACKIT_LoginManager##"]
|
||||
}
|
||||
|
||||
# data "stackitprivatepreview_sqlserverflexalpha_instance" "existing" {
|
||||
# project_id = var.project_id
|
||||
# instance_id = "b31575e9-9dbd-4ff6-b341-82d89c34f14f"
|
||||
# region = "eu01"
|
||||
# }
|
||||
#
|
||||
# output "myinstance" {
|
||||
# value = data.stackitprivatepreview_sqlserverflexalpha_instance.existing
|
||||
# }
|
||||
11
sample/sqlserver/variables.tf.example
Normal file
11
sample/sqlserver/variables.tf.example
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
variable "project_id" {
|
||||
default = "<PROJECT ID UUID>"
|
||||
}
|
||||
|
||||
variable "sa_email" {
|
||||
default = "<SERVICE ACCOUNT EMAIL>"
|
||||
}
|
||||
|
||||
variable "db_username" {
|
||||
default = "<DB USERNAME>"
|
||||
}
|
||||
58
sample/tf.sh
58
sample/tf.sh
|
|
@ -3,28 +3,44 @@
|
|||
|
||||
# ./tf.sh apply > >(tee -a stdout.log) 2> >(tee -a stderr.log >&2)
|
||||
|
||||
# copy or rename sample.tfrc.example and adjust it
|
||||
TERRAFORM_CONFIG=$(pwd)/sample.tfrc
|
||||
export TERRAFORM_CONFIG
|
||||
usage() {
|
||||
echo "$0 usage:" && grep "[[:space:]].)\ #" "$0" | sed 's/#//' | sed -r 's/([a-z])\)/-\1/';
|
||||
exit 0;
|
||||
}
|
||||
|
||||
parsed_options=$(
|
||||
getopt -n "$0" -o dil -- "$@"
|
||||
) || exit
|
||||
eval "set -- $parsed_options"
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case $1 in
|
||||
(-d) TF_LOG=DEBUG
|
||||
export TF_LOG
|
||||
shift;;
|
||||
(-i) TF_LOG=INFO
|
||||
export TF_LOG
|
||||
shift;;
|
||||
(-t) TF_LOG=TRACE
|
||||
export TF_LOG
|
||||
shift;;
|
||||
(--) shift; break;;
|
||||
(*) echo "Unknown option ${1}" # should never be reached.
|
||||
[ $# -eq 0 ] && usage
|
||||
|
||||
CONFIG_FOLDER=$(dirname "$0")
|
||||
BINARY=terraform
|
||||
|
||||
while getopts ":b:hdit" arg; do
|
||||
case $arg in
|
||||
b) # Set binary (default is terraform).
|
||||
BINARY=${OPTARG}
|
||||
shift 2
|
||||
;;
|
||||
d) # Set log level to DEBUG.
|
||||
TF_LOG=DEBUG
|
||||
export TF_LOG
|
||||
shift
|
||||
;;
|
||||
i) # Set log level to INFO.
|
||||
TF_LOG=INFO
|
||||
export TF_LOG
|
||||
shift
|
||||
;;
|
||||
t) # Set log level to TRACE.
|
||||
TF_LOG=TRACE
|
||||
export TF_LOG
|
||||
shift
|
||||
;;
|
||||
h | *) # Display help.
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
terraform "$*"
|
||||
TERRAFORM_CONFIG=${CONFIG_FOLDER}/config.tfrc
|
||||
export TERRAFORM_CONFIG
|
||||
|
||||
${BINARY} "$@"
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
# ./tofu.sh apply > >(tee -a stdout.log) 2> >(tee -a stderr.log >&2)
|
||||
|
||||
# copy or rename sample.tfrc.example and adjust it
|
||||
TERRAFORM_CONFIG=$(pwd)/sample.tfrc
|
||||
export TERRAFORM_CONFIG
|
||||
|
||||
parsed_options=$(
|
||||
getopt -n "$0" -o l -- "$@"
|
||||
) || exit
|
||||
eval "set -- $parsed_options"
|
||||
while [ "$#" -gt 0 ]; do
|
||||
case $1 in
|
||||
(-l) TF_LOG=TRACE
|
||||
export TF_LOG
|
||||
shift;;
|
||||
(--) shift; break;;
|
||||
(*) echo "Unknown option ${1}" # should never be reached.
|
||||
esac
|
||||
done
|
||||
|
||||
tofu "$*"
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# data "stackitprivatepreview_postgresflexalpha_user" "example" {
|
||||
# project_id = stackitprivatepreview_postgresflexalpha_instance.ptlsdbsrv.project_id
|
||||
# instance_id = stackitprivatepreview_postgresflexalpha_instance.ptlsdbsrv.instance_id
|
||||
# user_id = 1
|
||||
# }
|
||||
#
|
||||
# resource "stackitprivatepreview_postgresflexalpha_user" "ptlsdbuser" {
|
||||
# project_id = stackitprivatepreview_postgresflexalpha_instance.ptlsdbsrv.project_id
|
||||
# instance_id = stackitprivatepreview_postgresflexalpha_instance.ptlsdbsrv.instance_id
|
||||
# username = var.db_username
|
||||
# roles = ["createdb", "login"]
|
||||
# # roles = ["createdb", "login", "createrole"]
|
||||
# }
|
||||
#
|
||||
# resource "stackitprivatepreview_sqlserverflexalpha_user" "ptlsdbuser" {
|
||||
# project_id = stackitprivatepreview_sqlserverflexalpha_instance.ptlsdbsqlsrv.project_id
|
||||
# instance_id = stackitprivatepreview_sqlserverflexalpha_instance.ptlsdbsqlsrv.instance_id
|
||||
# username = var.db_username
|
||||
# roles = ["login"]
|
||||
# }
|
||||
Loading…
Add table
Add a link
Reference in a new issue