that's not set at all ... so it should be the default 300, no? But its
having an issue at 30s.
By the way, I have another cluster I just spun up on different hardware,
but otherwise identical and it too has the same problem.
Both are running 4.21.0
I'm not familiar enough with the internals here, what would I need to do
to investigate this further?
On 10/1/25 12:50 PM, Kiran Chavala wrote:
Hi Brad
Can you try using the timeout value in provider configuration
https://registry.terraform.io/providers/cloudstack/cloudstack/latest/docs
A value in seconds. This is the time allowed for Cloudstack to complete each
asynchronous job triggered. If unset, this can be sourced from the
CLOUDSTACK_TIMEOUT environment variable. Otherwise, this will default to 300
seconds
Regards
Kiran
From: Brad House <[email protected]>
Date: Tuesday, 30 September 2025 at 11:42 PM
To: [email protected] <[email protected]>
Subject: Re: [VOTE] Release Apache CloudStack Terraform Provider v0.6.0 RC-2
The rule actually gets created, but it throws the error. I have to
manually delete the rule to re-add it and test again. I tried adding
your depends_on clause just to see, but it still fails.
It does take about 30s (even though it prints 20s) for it to fail, maybe
there's a timeout and my system is just slow (it is a test lab on 7yr
old hw).
Can I do something to see a network trace? I enabled TF_LOG=TRACE and
it doesn't really show much:
cloudstack_port_forward.bastion: Still creating... [00m20s elapsed]
2025-09-30T18:10:07.464Z [TRACE] dag/walk: vertex
"provider[\"registry.terraform.io/cloudstack/cloudstack\"] (close)" is
waiting for "cloudstack_port_forward.bastion"
2025-09-30T18:10:07.465Z [TRACE] dag/walk: vertex "root" is waiting for
"provider[\"registry.terraform.io/cloudstack/cloudstack\"] (close)"
2025-09-30T18:10:12.469Z [TRACE] dag/walk: vertex "root" is waiting for
"provider[\"registry.terraform.io/cloudstack/cloudstack\"] (close)"
2025-09-30T18:10:12.469Z [TRACE] dag/walk: vertex
"provider[\"registry.terraform.io/cloudstack/cloudstack\"] (close)" is
waiting for "cloudstack_port_forward.bastion"
2025-09-30T18:10:16.347Z [TRACE] provider.terraform-provider-cloudstack:
Called downstream:
@caller=github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:910
@module=sdk.helper_schema
tf_provider_addr=registry.terraform.io/cloudstack/cloudstack
tf_resource_type=cloudstack_port_forward tf_rpc=ApplyResourceChange
tf_mux_provider=tf5to6server.v5tov6Server
tf_req_id=c8dcb1e6-d571-7d29-8136-8bf92a942554
timestamp=2025-09-30T18:10:16.347Z
2025-09-30T18:10:16.347Z [TRACE] provider.terraform-provider-cloudstack:
Received downstream response:
tf_req_id=c8dcb1e6-d571-7d29-8136-8bf92a942554
tf_resource_type=cloudstack_port_forward
@caller=github.com/hashicorp/[email protected]/tfprotov6/internal/tf6serverlogging/downstream_request.go:42
@module=sdk.proto diagnostic_warning_count=0
tf_provider_addr=registry.terraform.io/cloudstack/cloudstack
tf_rpc=ApplyResourceChange diagnostic_error_count=0 tf_proto_version=6.6
tf_req_duration_ms=28888 timestamp=2025-09-30T18:10:16.347Z
2025-09-30T18:10:16.347Z [TRACE] provider.terraform-provider-cloudstack:
Served request: @module=sdk.proto tf_proto_version=6.6
tf_provider_addr=registry.terraform.io/cloudstack/cloudstack
@caller=github.com/hashicorp/[email protected]/tfprotov6/tf6server/server.go:878
tf_req_id=c8dcb1e6-d571-7d29-8136-8bf92a942554
tf_resource_type=cloudstack_port_forward tf_rpc=ApplyResourceChange
timestamp=2025-09-30T18:10:16.347Z
2025-09-30T18:10:16.348Z [TRACE] maybeTainted:
cloudstack_port_forward.bastion encountered an error during creation, so
it is now marked as tainted
2025-09-30T18:10:16.348Z [TRACE] terraform.contextPlugins: Schema for
provider "registry.terraform.io/cloudstack/cloudstack" is in the global
cache
2025-09-30T18:10:16.348Z [TRACE]
NodeAbstractResouceInstance.writeResourceInstanceState to workingState
for cloudstack_port_forward.bastion
2025-09-30T18:10:16.348Z [TRACE]
NodeAbstractResouceInstance.writeResourceInstanceState: removing state
object for cloudstack_port_forward.bastion
2025-09-30T18:10:16.348Z [TRACE] evalApplyProvisioners:
cloudstack_port_forward.bastion is tainted, so skipping provisioning
2025-09-30T18:10:16.348Z [TRACE] maybeTainted:
cloudstack_port_forward.bastion was already tainted, so nothing to do
2025-09-30T18:10:16.348Z [TRACE] terraform.contextPlugins: Schema for
provider "registry.terraform.io/cloudstack/cloudstack" is in the global
cache
2025-09-30T18:10:16.348Z [TRACE]
NodeAbstractResouceInstance.writeResourceInstanceState to workingState
for cloudstack_port_forward.bastion
2025-09-30T18:10:16.348Z [TRACE]
NodeAbstractResouceInstance.writeResourceInstanceState: removing state
object for cloudstack_port_forward.bastion
2025-09-30T18:10:16.349Z [TRACE] statemgr.Filesystem: creating backup
snapshot at terraform.tfstate.backup
2025-09-30T18:10:16.351Z [TRACE] statemgr.Filesystem: state has changed
since last snapshot, so incrementing serial to 600
2025-09-30T18:10:16.351Z [TRACE] statemgr.Filesystem: writing snapshot
at terraform.tfstate
2025-09-30T18:10:16.356Z [DEBUG] State storage *statemgr.Filesystem
declined to persist a state snapshot
2025-09-30T18:10:16.356Z [ERROR] vertex
"cloudstack_port_forward.bastion" error: Provider produced inconsistent
result after apply
2025-09-30T18:10:16.356Z [TRACE] vertex
"cloudstack_port_forward.bastion": visit complete, with errors
2025-09-30T18:10:16.356Z [TRACE] dag/walk: upstream of
"provider[\"registry.terraform.io/cloudstack/cloudstack\"] (close)"
errored, so skipping
2025-09-30T18:10:16.356Z [TRACE] dag/walk: upstream of "root" errored,
so skipping
2025-09-30T18:10:16.356Z [TRACE] terraform.contextPlugins: Schema for
provider "registry.terraform.io/cloudstack/cloudstack" is in the global
cache
2025-09-30T18:10:16.356Z [TRACE] statemgr.Filesystem: have already
backed up original terraform.tfstate to terraform.tfstate.backup on a
previous write
2025-09-30T18:10:16.357Z [TRACE] statemgr.Filesystem: state has changed
since last snapshot, so incrementing serial to 601
2025-09-30T18:10:16.357Z [TRACE] statemgr.Filesystem: writing snapshot
at terraform.tfstate
On 9/30/25 1:51 PM, Kiran Chavala wrote:
Hi Brad
I am not facing the issue , here is the terraform config that I have used
screenshot
https://prnt.sc/8FOLXkgwmYWm
---------
resource "cloudstack_ipaddress" "bastion" {
vpc_id = "b12facb3-5787-4ce9-bee2-0ea8d676e26d"
zone = "fe54a4ca-6ca8-4ac9-9769-dbc1244f138b"
}
resource "cloudstack_port_forward" "bastion" {
ip_address_id = cloudstack_ipaddress.bastion.id
forward {
protocol = "tcp"
private_port = 22
public_port = 5022
virtual_machine_id = "92e55318-2ae3-457c-811a-d6885efb381c"
}
depends_on = [
cloudstack_ipaddress.bastion
]
}
terraform apply
Terraform used the selected providers to generate the following execution plan.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# cloudstack_ipaddress.bastion will be created
+ resource "cloudstack_ipaddress" "bastion" {
+ id = (known after apply)
+ ip_address = (known after apply)
+ is_portable = false
+ is_source_nat = (known after apply)
+ project = (known after apply)
+ tags = (known after apply)
+ vpc_id = "b12facb3-5787-4ce9-bee2-0ea8d676e26d"
+ zone = "fe54a4ca-6ca8-4ac9-9769-dbc1244f138b"
}
# cloudstack_port_forward.bastion will be created
+ resource "cloudstack_port_forward" "bastion" {
+ id = (known after apply)
+ ip_address_id = (known after apply)
+ managed = false
+ forward {
+ private_end_port = (known after apply)
+ private_port = 22
+ protocol = "tcp"
+ public_end_port = (known after apply)
+ public_port = 5022
+ uuid = (known after apply)
+ virtual_machine_id = "92e55318-2ae3-457c-811a-d6885efb381c"
# (1 unchanged attribute hidden)
}
}
Plan: 2 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
cloudstack_ipaddress.bastion: Creating...
cloudstack_ipaddress.bastion: Creation complete after 1s
[id=ae73e8e4-93ea-46de-95ff-eece5828cdb5]
cloudstack_port_forward.bastion: Creating...
cloudstack_port_forward.bastion: Creation complete after 5s
[id=ae73e8e4-93ea-46de-95ff-eece5828cdb5]
Regards
kiran
From: Brad House <[email protected]>
Date: Tuesday, 30 September 2025 at 10:42 PM
To: [email protected] <[email protected]>
Subject: Re: [VOTE] Release Apache CloudStack Terraform Provider v0.6.0 RC-2
It appears port forwarding is still broken even though this discussion
indicated it was fixed:
https://github.com/apache/cloudstack-terraform-provider/issues/227
$ terraform init -upgrade
...
Initializing provider plugins...
- Finding cloudstack/cloudstack versions matching "0.6.0-rc2"...
- Installing cloudstack/cloudstack v0.6.0-rc2...
- Installed cloudstack/cloudstack v0.6.0-rc2 (self-signed, key ID
7B3F1C5E93F97FAB)
Terraform will perform the following actions:
# cloudstack_port_forward.bastion will be created
+ resource "cloudstack_port_forward" "bastion" {
+ id = (known after apply)
+ ip_address_id = "02aae2fe-ae43-4030-8123-8967931fd7e1"
+ managed = false
+ forward {
+ private_end_port = (known after apply)
+ private_port = 22
+ protocol = "tcp"
+ public_end_port = (known after apply)
+ public_port = 5022
+ uuid = (known after apply)
+ virtual_machine_id = "bebcac94-65f5-4c73-8586-e6e860bcc17e"
# (1 unchanged attribute hidden)
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
cloudstack_port_forward.bastion: Creating...
cloudstack_port_forward.bastion: Still creating... [00m10s elapsed]
cloudstack_port_forward.bastion: Still creating... [00m20s elapsed]
╷
│ Error: Provider produced inconsistent result after apply
│
│ When applying changes to cloudstack_port_forward.bastion, provider
"provider[\"registry.terraform.io/cloudstack/cloudstack\"]" produced an
unexpected new value: Root object
│ was present, but now absent.
│
│ This is a bug in the provider, which should be reported in the
provider's own issue tracker.
╵
On 9/30/25 5:30 AM, Kiran Chavala wrote:
Hi ALL
I've created a CloudStack Terraform Provider release candidate for version
0.6.0, with the following artefacts up for a vote:
Git Branch and Commit SH:
https://github.com/cloudstack/terraform-provider-cloudstack
Commit: 919a358fcc951724c2364ee363a9a055258b1fc3
Source release (checksums and signatures are available at the same
location):
https://dist.apache.org/repos/dist/dev/cloudstack/cloudstack-terraform-provider-0.6.0/
PGP release keys (signed using E03379CB066175FAC2BC9E027B3F1C5E93F97FAB):
https://dist.apache.org/repos/dist/release/cloudstack/KEYS
For testing/voting purposes, you can use the provider
terraform {
required_providers {
cloudstack = {
source = "cloudstack/cloudstack"
version = "0.6.0-rc2"
}
}
}
Vote will be open for 72 hours.
For sanity in tallying the vote, can PMC members please be sure to indicate
"(binding)" with their vote?
[ ] +1 approve
[ ] +0 no opinion
[ ] -1 disapprove (and reason why)