- Terraform Enterprise
- 2.1.x (latest)
- 2.0.x
- 1.2.x
- 1.1.x
- 1.0.x
- v202507-1
- v202506-1
- v202505-1
- v202504-1
- v202503-1
- v202502-2
- v202502-1
- v202501-1
- v202411-2
- v202411-1
- v202410-1
- v202409-3
- v202409-2
- v202409-1
- v202408-1
- No versions of this document exist before v202408-1. Click below to redirect to the version homepage.
- v202407-1
- v202406-1
- v202405-1
- v202404-2
- v202404-1
- v202402-2
- v202402-1
- v202401-2
- v202401-1
- v202312-1
- v202311-1
- v202310-1
- v202309-1
- v202308-1
- v202307-1
- v202306-1
- v202305-2
- v202305-1
- v202304-1
- v202303-1
- v202302-1
- v202301-2
- v202301-1
- v202212-2
- v202212-1
- v202211-1
- v202210-1
- v202209-2
- v202209-1
- v202208-3
- v202208-2
- v202208-1
- v202207-2
- v202207-1
- v202206-1
Modify node configuration of a running node
This topic describes how to update specific configuration values on a running Terraform Enterprise node without restarting it.
Introduction
You can update select runtime configuration values on a running node without restarting the TFE process.
Most configuration changes in Terraform Enterprise require a full process restart to take effect. For a targeted subset of values, however, operators can apply updates while the node continues serving traffic.
Key properties of this command:
- Ephemeral. Updated values exist only in the running node's memory. They are not written to the startup configuration file and do not survive a node restart.
- Single node target. Each invocation targets the specific node on which the command was run. There is no option to run this on all nodes at once.
- Not persistent. If a node is restarted after a configuration reload, it starts with the original values from its environment variables or startup configuration.
Supported keys
The following configuration keys can be updated with tfectl node config-reload.
| Key | Description |
|---|---|
TFE_RUN_PIPELINE_IMAGE | Container image used for Terraform runs. Required if any run pipeline key is set. |
TFE_RUN_PIPELINE_DOCKER_REGISTRY_USERNAME | Username for the private Docker registry used to pull the run pipeline image. Must be supplied together with TFE_RUN_PIPELINE_DOCKER_REGISTRY_PASSWORD. |
TFE_RUN_PIPELINE_DOCKER_REGISTRY_PASSWORD | Password for the private Docker registry. Must be supplied together with TFE_RUN_PIPELINE_DOCKER_REGISTRY_USERNAME. |
TFE_RUN_PIPELINE_KUBERNETES_IMAGE_PULL_SECRET_NAME | Name of the Kubernetes image pull secret for the run pipeline image. |
TFE_OBJECT_STORAGE_S3_ACCESS_KEY_ID | AWS S3 access key ID. Must be supplied together with TFE_OBJECT_STORAGE_S3_SECRET_ACCESS_KEY. |
TFE_OBJECT_STORAGE_S3_SECRET_ACCESS_KEY | AWS S3 secret access key. Must be supplied together with TFE_OBJECT_STORAGE_S3_ACCESS_KEY_ID. |
Validation rules
All key-value pairs are validated before any configuration is mutated. If validation fails, the command returns an error and makes no changes.
- Docker registry credentials —
TFE_RUN_PIPELINE_DOCKER_REGISTRY_USERNAMEandTFE_RUN_PIPELINE_DOCKER_REGISTRY_PASSWORDmust be supplied together. Providing only one is rejected. Omitting both preserves the existing registry credentials. - S3 credentials —
TFE_OBJECT_STORAGE_S3_ACCESS_KEY_IDandTFE_OBJECT_STORAGE_S3_SECRET_ACCESS_KEYmust be supplied together. Providing only one is rejected. - Unknown keys — Any key not in the supported keys table causes the entire invocation to be rejected immediately.
Usage examples
Rotate S3 credentials on a specific node
Use this when rotating AWS credentials for object storage. Both the access key ID and the secret access key must be provided in the same command.
$ tfectl node config-reload \
--set TFE_OBJECT_STORAGE_S3_ACCESS_KEY_ID=ACCESS_KEY_ID \
--set TFE_OBJECT_STORAGE_S3_SECRET_ACCESS_KEY=SECRET_ACCESS_KEY
Update the run pipeline image and registry credentials
Use this when updating the container image used for Terraform runs or rotating private registry credentials.
$ tfectl node config-reload \
--set TFE_RUN_PIPELINE_IMAGE=registry.example.com/tfe-agent:v1.2.3 \
--set TFE_RUN_PIPELINE_DOCKER_REGISTRY_USERNAME=myuser \
--set TFE_RUN_PIPELINE_DOCKER_REGISTRY_PASSWORD=s3cr3t
Rollback behavior
Important: There is no automatic rollback. Read this section before running tfectl node config-reload in production.
To recover, choose one of the following options:
Re-run with corrected values. Run
tfectl node config-reloadagain with the correct key-value pairs.$ tfectl node config-reload \ --set TFE_OBJECT_STORAGE_S3_ACCESS_KEY_ID=CORRECTED_ACCESS_KEY_ID \ --set TFE_OBJECT_STORAGE_S3_SECRET_ACCESS_KEY=CORRECTED_SECRET_ACCESS_KEYRestart the node. A node restart discards all in-memory mutations and restores the original startup configuration from environment variables. Use this option if the in-memory state has diverged in a way that cannot be corrected by re-running the command.
After recovery, verify the node is healthy using tfectl app health readiness and tfectl app diagnostics. For active-active deployments, check all nodes after a recovery operation.
Verify the reload
To verify that the running configuration reflects the updated values, run tfectl app config on the target node:
$ tfectl app config
Sensitive values are redacted by default. Use --unredacted only in secure contexts.
Service action behavior
The underlying action taken after a reload depends on which keys you set.
Image and registry credential updates
For operators on the Docker driver: tasks that are already dispatching when the reload occurs complete against the pre-reload configuration. Tasks dispatched after the reload use the new image and registry credentials. There is no interruption to in-progress runs.
For operators on the Kubernetes driver: TFE_RUN_PIPELINE_KUBERNETES_IMAGE_PULL_SECRET_NAME updates the secret name that task-worker passes when scheduling future run pods. Existing pods are not evicted or restarted. The new secret takes effect for the next task dispatch after the signal is processed.
S3 credential rotation
When you rotate S3 credentials (TFE_OBJECT_STORAGE_S3_ACCESS_KEY_ID / TFE_OBJECT_STORAGE_S3_SECRET_ACCESS_KEY), the object storage service (on the target node) is stopped and restarted to pick up the new credentials. The restart typically completes in under a second. During this window, in-flight S3 operations from dependent services may fail transiently. Those services have retry logic and will recover automatically without operator intervention. All other nodes continue serving S3 operations without interruption throughout the credential rotation.