Handle alicloud provider setup without credentials

This commit is contained in:
cloudneutral 2025-12-10 15:07:47 +08:00
parent ba458e93da
commit cb065aae70
10 changed files with 188 additions and 8 deletions

View File

@ -8,7 +8,18 @@ terraform {
}
provider "alicloud" {
region = var.region
region = var.region
access_key = coalesce(var.access_key, "mock-access-key")
secret_key = coalesce(var.secret_key, "mock-secret-key")
security_token = var.security_token
dynamic "assume_role" {
for_each = var.ram_role_arn == null ? [] : [var.ram_role_arn]
content {
role_arn = assume_role.value
session_name = var.session_name
}
}
}
locals {

View File

@ -4,6 +4,38 @@ variable "region" {
default = "cn-hangzhou"
}
variable "access_key" {
description = "Alibaba Cloud Access Key ID"
type = string
default = null
}
variable "secret_key" {
description = "Alibaba Cloud Access Key Secret"
type = string
default = null
sensitive = true
}
variable "security_token" {
description = "Optional security token when using STS credentials"
type = string
default = null
sensitive = true
}
variable "ram_role_arn" {
description = "Optional RAM role ARN to assume for operations"
type = string
default = null
}
variable "session_name" {
description = "Session name when assuming a RAM role"
type = string
default = "terraform"
}
variable "account_id" {
description = "Alibaba Cloud account ID used for trust policy"
type = string

View File

@ -8,7 +8,18 @@ terraform {
}
provider "alicloud" {
region = var.region
region = var.region
access_key = coalesce(var.access_key, "mock-access-key")
secret_key = coalesce(var.secret_key, "mock-secret-key")
security_token = var.security_token
dynamic "assume_role" {
for_each = var.ram_role_arn == null ? [] : [var.ram_role_arn]
content {
role_arn = assume_role.value
session_name = var.session_name
}
}
}
resource "alicloud_ots_instance" "this" {

View File

@ -4,6 +4,38 @@ variable "region" {
default = "cn-hangzhou"
}
variable "access_key" {
description = "Alibaba Cloud Access Key ID"
type = string
default = null
}
variable "secret_key" {
description = "Alibaba Cloud Access Key Secret"
type = string
default = null
sensitive = true
}
variable "security_token" {
description = "Optional security token when using STS credentials"
type = string
default = null
sensitive = true
}
variable "ram_role_arn" {
description = "Optional RAM role ARN to assume for operations"
type = string
default = null
}
variable "session_name" {
description = "Session name when assuming a RAM role"
type = string
default = "terraform"
}
variable "instance_name" {
description = "Name of the OTS instance"
type = string

View File

@ -8,12 +8,22 @@ terraform {
}
provider "alicloud" {
region = var.region
region = var.region
access_key = coalesce(var.access_key, "mock-access-key")
secret_key = coalesce(var.secret_key, "mock-secret-key")
security_token = var.security_token
dynamic "assume_role" {
for_each = var.ram_role_arn == null ? [] : [var.ram_role_arn]
content {
role_arn = assume_role.value
session_name = var.session_name
}
}
}
resource "alicloud_oss_bucket" "state" {
bucket = var.state_bucket
acl = var.acl
versioning {
status = "Enabled"
@ -24,6 +34,11 @@ resource "alicloud_oss_bucket" "state" {
}
}
resource "alicloud_oss_bucket_acl" "state" {
bucket = alicloud_oss_bucket.state.bucket
acl = var.acl
}
output "bucket" {
value = alicloud_oss_bucket.state.bucket
}

View File

@ -4,6 +4,38 @@ variable "region" {
default = "cn-hangzhou"
}
variable "access_key" {
description = "Alibaba Cloud Access Key ID"
type = string
default = null
}
variable "secret_key" {
description = "Alibaba Cloud Access Key Secret"
type = string
default = null
sensitive = true
}
variable "security_token" {
description = "Optional security token when using STS credentials"
type = string
default = null
sensitive = true
}
variable "ram_role_arn" {
description = "Optional RAM role ARN to assume for operations"
type = string
default = null
}
variable "session_name" {
description = "Session name when assuming a RAM role"
type = string
default = "terraform"
}
variable "state_bucket" {
description = "Name of the OSS bucket used for remote state"
type = string

View File

@ -9,7 +9,18 @@ terraform {
}
provider "alicloud" {
region = var.region
region = var.region
access_key = coalesce(var.access_key, "mock-access-key")
secret_key = coalesce(var.secret_key, "mock-secret-key")
security_token = var.security_token
dynamic "assume_role" {
for_each = var.ram_role_arn == null ? [] : [var.ram_role_arn]
content {
role_arn = assume_role.value
session_name = var.session_name
}
}
}
module "network" {

View File

@ -4,6 +4,38 @@ variable "region" {
default = "cn-hangzhou"
}
variable "access_key" {
description = "Alibaba Cloud Access Key ID"
type = string
default = null
}
variable "secret_key" {
description = "Alibaba Cloud Access Key Secret"
type = string
default = null
sensitive = true
}
variable "security_token" {
description = "Optional security token when using STS credentials"
type = string
default = null
sensitive = true
}
variable "ram_role_arn" {
description = "Optional RAM role ARN to assume for operations"
type = string
default = null
}
variable "session_name" {
description = "Session name when assuming a RAM role"
type = string
default = "terraform"
}
variable "vpc_name" {
description = "VPC name"
type = string

View File

@ -1,6 +1,5 @@
resource "alicloud_oss_bucket" "this" {
bucket = var.name
acl = var.acl
versioning {
status = var.enable_versioning ? "Enabled" : "Suspended"
@ -11,6 +10,11 @@ resource "alicloud_oss_bucket" "this" {
}
}
resource "alicloud_oss_bucket_acl" "this" {
bucket = alicloud_oss_bucket.this.bucket
acl = var.acl
}
output "bucket" {
value = alicloud_oss_bucket.this.bucket
}

View File

@ -9,8 +9,8 @@ terraform {
provider "alicloud" {
region = var.region
access_key = var.access_key
secret_key = var.secret_key
access_key = coalesce(var.access_key, "mock-access-key")
secret_key = coalesce(var.secret_key, "mock-secret-key")
security_token = var.security_token
dynamic "assume_role" {