Terraform Enterprise 2.1 moves VCS ingress into your agents. What to change before October 2027
Terraform Enterprise 2.1 switches off public sign-up, has agents clone your code, and ends support for built-in Fluent Bit forwarding and the ingress fallback in October 2027. Here's how to pick when to upgrade and what to change first.
part 27 of 28 · Platform releases, explained from scratchthe idea2.1 has agents fetch your code and starts a clock on two old features.
after reading, you can- Decide whether to upgrade to Terraform Enterprise 2.1 now, on the fallback, or hold on 2.0.x
- Plan the agent-to-VCS route and room for ingress jobs before the October 2027 cutoff
- Spot the sign-up, SAML, Redis and custom-image changes that break quietly
Terraform Enterprise 2.1 switches off open sign-up and hands the job of pulling code from GitHub or GitLab to your agents. It also starts a clock: built-in Fluent BitdefinitionAn open-source tool that collects logs and forwards them somewhere else. Terraform Enterprise carries its own copy for this, and HashiCorp stops supporting it in October 2027. log forwarding and the old ingress fallback stop being supported in October 2027. Decide now whether you fix agent networking and log shipping before you upgrade, or use the fallback year to do it.
After 2.1, strangers can't sign up and your agents pull the code. Plan for both
Terraform Enterprise is the self-hosted edition of HashiCorp's Terraform service. Teams install it in their own environment to run the code that builds their cloud and data-center infrastructure, with approvals, policies and audit logs around every change. Version 2.1 came out in late October. Most of it is new features, but a few changes need an owner. Open sign-up is switched off. Pulling code from version control moves onto the agents that run Terraform. And the built-in log shipping and the old code-pulling service both lose support in October 2027.
Think of an office where the mailroom used to collect every parcel and carry it up to each team. Now each team's runner goes to the loading dock and fetches its own, so every runner needs a pass for the dock. The old mailroom stays open as a backup for about a year, then it closes.
- Teams running Terraform Enterprise
- Platform and network engineers
- Identity and SSO owners
- Security and audit teams
- IT leaders planning next year
Why it matters to you
Nothing in 2.1 deletes workspaces or changes how a plan works. The risk sits at the edges of the platform: who can create an account, whether runs still find their code after the upgrade, and whether audit logs still reach your SIEM. Those are the spots where an upgrade fails quietly, and auditors care about the first and the last.
The October 2027 date sets the budget. If your agents can't reach your VCS servers today, someone has to change firewall rules, proxy settings or Kubernetes network policies before the fallback goes away. If logs leave through the built-in Fluent Bit, someone has to build log shipping on the platform side. Both jobs usually need people outside the Terraform team, which is why they slip.
-
01 A commit lands in VCS
Your GitHub, GitLab or other VCS server tells Terraform Enterprise about the change, as it did before.
-
02 2.0: slug-ingress clones it
In 2.0 a separate service inside Terraform Enterprise did the cloning, then packed the code up for the run.
-
03 2.1: an agent job clones it
Now Terraform Enterprise starts an ingress job on the same image your run agents use, and that job does the clone.
-
04 Agents need a route to VCS
Firewalls, proxies and Kubernetes network policies around the agents must let them reach the VCS servers.
-
05 Fallback until October 2027
Slug-ingress still ships as a fallback, and TFE_VCS_INGRESS_SLUG_INGRESS_FALLBACK=true keeps 2.0 behavior while you fix the network.
HashiCorp's release notes describe this change twice, and the two entries read differently. The breaking-changes entry says your agents must be able to reach your VCS servers, and tells you to set TFE_VCS_INGRESS_SLUG_INGRESS_FALLBACK to true and restart if you need 2.0 behavior while you update network rules. The improvements entry says slug-ingressdefinitionThe service that used to clone repositories for Terraform Enterprise and pack them up for runs. In 2.1 it only steps in as a fallback, and support for that ends in October 2027. still runs as a fallback, so upgrading needs no configuration change. Plan for the stricter reading. Open the route from the agents to VCS before the upgrade, or set the variable on purpose and write down when it comes out.
There's a security reason to care where this work runs. HashiCorp's bulletin HCSEC-2026-17 covered a flaw in VCS ingestion of registry modules. Someone allowed to publish a module could pull files from outside the repository into it and download them, including configuration and secrets the ingestion process could read. 2.0.4 and 1.2.4 fixed it. Now that ingestion moves into agent jobs, check what an agent can read and which networks it can reach.
What 2.1 changes, and what needs an owner
The 2.1 changes that affect an upgrade plan
Unauthenticated users can't create accounts from the sign-up page after the upgrade. Instances configured with SAML aren't affected, and email invitations, SAML just-in-time provisioning and SCIM keep working.
Ingress jobs use the run-agent image, CPU and memory settings. They don't count against run concurrency, but they add containers on Docker and Podman, jobs on Nomad and pods on Kubernetes.
Setting TFE_VCS_INGRESS_SLUG_INGRESS_FALLBACK to true keeps the 2.0 behavior for now. Support for the fallback ends in October 2027.
Still works in 2.1, but support ends in October 2027. HashiCorp wants logs forwarded by the container platform's logging driver or a host-level agent instead.
Terraform Enterprise is moving to Red Hat Universal Base Image. Custom images built on the old base have to be rebuilt, and IBM doesn't support custom images at all.
The idp-cert and old-idp-cert attributes and the revoke-old-certificate action are deprecated. Scripts should move to the SAML IdP Certificates API.
Set TFE_OBJECT_STORAGE_AZURE_USE_WORKLOAD_IDENTITY to true or false yourself instead of relying on detection from AZURE_FEDERATED_TOKEN_FILE.
Each SAML response is checked against every trusted certificate, so regional IdPs, IdP migrations and certificate rotations stop breaking logins.
A SAML attribute or role, or a SCIM group, grants and removes the read-only Site Auditor role. It can't be given to service accounts.
You get an email 30 days and again 7 days before a user, team, audit or organization token expires. Site admins can also see and kill any user's API tokens.
HCL-based policy as code, policy sets scoped by workspace tags, and run tasks that apply to a whole project.
No more database passwords or storage keys sitting in a secret. Terraform Enterprise pods sign in to PostgreSQL, Redis and object storage with the cloud's own identity.
Sign-up is the change that bites first if nobody knew you relied on it. Instances on SAML see no difference. Without SAML, new engineers who used to create their own account from the sign-up page will find it stops working on upgrade day. A site admin can turn Enable public registration back on, but for a platform that can change production infrastructure, invitations or SSO are the safer default. Make turning it back on a decision someone signs off on.
The UBI move only matters if you built your own image. HashiCorp's notes are blunt: IBM doesn't support custom Terraform Enterprise images and wants you on the official, unmodified one. If you baked tools or settings into an image, move what you can into configuration, and talk to your IBM account team about whatever's left.
Fluent Bit is the slow one. Built-in forwarding still works in 2.1, so nothing is urgent. But HashiCorp's logging docs also warn that without forwarding, audit logs can be lost when logs rotate. If audit events reach your SIEM through Fluent Bit today, get the replacement running and checked before you remove the old config, or you'll have a hole in the audit trail.
One more item isn't in the 2.1 notes at all. HashiCorp's 2.0.0 notes said Redis 6.2 and 6.4 had reached end of life and that Redis 6.x support would be removed in 2.1.0. Check your Redis version before you upgrade. 2.1 lists Redis 8 and Valkey 9.0 as supported, and 2.1.1 fixes a bug where Terraform Enterprise still sent a Redis password with TFE_REDIS_USE_AUTH set to false.
2.0 and 2.1 side by side
| Detail | 2.0.x | 2.1.x |
|---|---|---|
| First release | 2.0.0, Apr 21, 2026 | 2.1.0, Oct 26, 2026 |
| Latest patch on Nov 4, 2026 | 2.0.9, Oct 29, 2026 | 2.1.1, Nov 3, 2026 |
| Public self-registration | On by default | Off by default (SAML instances unaffected) |
| VCS ingress | Standalone slug-ingress service | Agent jobs, with slug-ingress as a fallback |
| Trusted SAML IdP certificates | One active, plus one during rotation | A list, up to 1,000 per instance |
| Site Auditor role | Assigned by an admin | Also from a SAML attribute or SCIM group |
| Redis | Redis 8 supported; 6.x deprecated | Redis 8 and Valkey 9.0 |
| Base image | Earlier base image | Moving to Red Hat UBI |
| eMudhra CA fix (CVE-2026-111943) | In 2.0.9 | In 2.1.0 and 2.1.1 |
| Last required release | v202406-1 (776) | v202406-1 (776) |
Dates that drive the decision
- Apr 21, 20262.0.0 released
Added SCIM, the Site Auditor token and pre-upgrade checks. Its notes said Redis 6.x support goes in 2.1.0.
- Jul 6, 2026HCSEC-2026-17 published
A flaw in VCS ingestion of registry modules, fixed in 2.0.4 and 1.2.4.
- Oct 26, 20262.1.0 released
Sign-up off by default, VCS ingress in agents, Fluent Bit and the fallback deprecated.
- Oct 29, 20262.0.9 released
HashiCorp is still patching 2.0. The eMudhra CA fix is in this one too.
- Nov 3, 20262.1.1 released
SAML certificate limits and a Redis auth fix. If a script uploads IdP certificates, check its names against the new 90-character cap.
- Oct 2027Fluent Bit and fallback support end
Anything still leaning on the fallback or the built-in Fluent Bit is unsupported from here, so finish the work well before.
| Option | What you do | What it costs you | Best when |
|---|---|---|---|
| Upgrade with the network ready | Open agent egress to VCS, test ingress jobs, then upgrade | Network and Kubernetes changes up front | Your network team can make the change this quarter |
| Upgrade on the fallback | Set the fallback variable, upgrade, fix egress later | A dated workaround someone has to remove | You want 2.1 now and the firewall change is queued |
| Stay on 2.0.x for now | Keep patching 2.0 while you prepare | The work waits, and you miss the SAML and token changes | You need a quiet period and you track HashiCorp's support policy for 2.0 |
| Move to HCP Terraform | Migrate workspaces to HashiCorp's hosted service | A separate project with its own data, network and licence review | You'd rather not run the platform yourselves |
- A list of trusted SAML certificates and IdP-driven Site Auditor
- Token expiry emails and admin revocation
- Someone opens the firewall path to VCS, or sets the fallback
- Sign-up off unless you turn it back on
- Fluent Bit replacement can follow later
- No change to sign-up, ingress or logging yet
- 2.0.9 already has the eMudhra CA fix
- One active SAML certificate during rotations
- The same network and logging work, just later
- Check HashiCorp's support policy for 2.0
How to run the upgrade
Before 2.1: the server clones every repository on its own
Slug-ingress, inside Terraform Enterprise, goes to VCS for every repository. The agents just run plans and applies, and logs head out through the Fluent Bit built into the product.
After 2.1: the workers fetch code themselves. Logs go out through Docker or Kubernetes
Now the agents go to VCS themselves, so they need the firewall opening. Docker or Kubernetes forwards the logs, and your identity provider looks after certificates and Site Auditor.
Getting an instance from 2.0 to 2.1 without surprises
- 01Inventory what 2.1 touches
Write down the deployment type (Kubernetes, Docker, Podman or Nomad), the Redis version, any custom image, whether SAML is on, whether anyone self-registers, and whether logs leave through Fluent Bit.
- 02Check the required-release path
The 2.1 release table lists v202406-1 (776) as the last required release. Online upgrades install required releases automatically. Air-gapped instances have to step through them by hand.
- 03Open agent egress to VCS
Let agents reach every VCS server they'll clone from, including network policies, firewall rules and proxy settings. On Kubernetes that means egress from the agents namespace.
- 04Make room for ingress jobs
Every ingress job is one more pod, container or Nomad job, sized like a run agent. If the agents namespace already runs close to its quota, raise it before upgrade day.
- 05Settle sign-up and SAML scripts
Decide whether public registration stays off. Move any automation that uses idp-cert or old-idp-cert to the SAML IdP Certificates API.
- 06Rehearse on a copy
Upgrade a non-production instance on the same platform. Run a plan from a VCS-backed workspace and publish a registry module from VCS, so you know ingress works through the agents.
- 07Upgrade production
Take your usual backup, upgrade, and run the same checks. Use the fallback variable only if you agreed to beforehand, with a date to remove it.
- 08Replace Fluent Bit before October 2027
Set up forwarding with your platform's logging driver or a host agent, confirm audit events arrive, then remove the Fluent Bit configuration.
What to do now, by role
Who does what before you upgrade
- Ask which Terraform Enterprise version you run and who owns the upgrade.
- Get the agent egress change into a network change window before you approve the upgrade.
- Put the October 2027 Fluent Bit and fallback deadline on next year's plan with a named owner.
- Check the Redis version, any custom image and the Fluent Bit settings on every instance.
- Test an ingress job end to end in non-production, including a registry module published from VCS.
- Decide whether to use the slug-ingress fallback, and record the date you'll take it out.
- Set TFE_OBJECT_STORAGE_AZURE_USE_WORKLOAD_IDENTITY to true or false explicitly on AKS.
- Open the firewall, proxy and network-policy paths from the agents to each VCS server, and tell the platform team when it's done.
- Check certificate chains on VCS servers and proxies for the removed emSign and Comodo AAA roots.
- Settle whether public registration stays off. If someone wants it back on, name who gets to say yes.
- Move SAML certificate automation to the IdP Certificates API and load the next certificate before the old one expires.
- Map a SAML attribute or SCIM group to Site Auditor instead of granting it by hand.
- Pull a list of user tokens that never expire and revoke the ones nobody can explain. Site admins can do that from the admin UI now.
# Check the path to VCS from where the agents run. If this hangs, ingress jobs will hang too $ kubectl -n <agents-namespace> run vcs-check --rm -it --restart=Never --image=curlimages/curl -- curl -sI https://git.example.com # Is public registration on? Needs a site admin token $ curl -s -H "Authorization: Bearer $TFE_TOKEN" https://tfe.example.com/api/v2/admin/general-settings | jq '.data.attributes["enable-public-registration"]' # Keep 2.0 ingress behavior while the network change waits (then restart) TFE_VCS_INGRESS_SLUG_INGRESS_FALLBACK=true
The identity side of 2.1
For identity teams, most of 2.1 is good news. Certificate rotation used to be a two-certificate dance, one active and one temporary during the rotation window. Now Terraform Enterprise keeps a list and checks each SAML response against all of them. You can load the new certificate days ahead, run two identity providers side by side during a migration, or have each region sign with its own certificate.
Site AuditordefinitionA read-only Terraform Enterprise role that sees across all organizations for audit and security work, without access to sensitive data such as state files. access is the other gain. 2.0 added the read-only role for audit and security work. In 2.1 your identity provider can grant and remove it through a SAML attribute or role, or through a SCIM group when SCIM is on. Auditor access then follows the same joiner and leaver process as everything else, and nobody can hand it to a service account.
Tokens get attention too. People get emails 30 and 7 days before a user, team, audit or organization token expires, and site admins can see and revoke any user's API tokens. If your policy says no long-lived personal tokens, you now have somewhere to enforce it.
Machine identity gets better on Kubernetes. With workload identitydefinitionThe pod proves who it is with a short-lived token from the cloud platform, so nobody stores a password or key for it. 2.1 documents it for EKS, GKE and AKS. on EKS, GKE and AKS, Terraform Enterprise pods reach PostgreSQL, Redis and object storage without stored passwords or keys. That's one less set of secrets to rotate. On AKS, set the object storage variable yourself now that auto-detection is deprecated.
Harden it so the next upgrade hurts less
- 01Run the official image
Keep customizations in configuration and run the unmodified image IBM supports, so base-image moves like UBI don't need a rebuild on your side.
- 02Keep network rules next to the deployment
Store agent egress rules and network policies in the same repository as the Terraform Enterprise deployment, so a new VCS server gets added in one review.
- 03Ship logs from the platform
Send application and audit logs out through the platform's logging driver or a host agent. Then alert when audit events stop arriving, because a silent gap is worse than a noisy one.
- 04Let the IdP own access
Use SAML or SCIM for accounts, teams and Site Auditor, and keep public registration off.
- 05Rehearse every minor release
Keep a non-production instance on the same platform and run the pre-upgrade checks there first.
If the upgrade goes wrong
If runs can't fetch code or sign-in breaks after 2.1
Most 2.1 trouble shows up as runs or module publishes that can't fetch code, new people who can't get in, or logs that stop arriving. Work through it in this order.
- 01Containfirst hour
- Pause applies that can wait. Then tell each team which of their workspaces can't fetch code, so nobody debugs the wrong thing.
- Runs failing at ingress? Set TFE_VCS_INGRESS_SLUG_INGRESS_FALLBACK to true and restart. HashiCorp's notes give this as the way back to 2.0 behavior while you fix the network.
- 02Diagnosefirst hours
- Read the ingress agent pods, containers or Nomad jobs and their logs for connection or certificate errors.
- Test the route from an agent to the VCS server, and check the certificate chain if the error mentions verification.
- For sign-up complaints, check whether the person should have been invited or provisioned through SAML or SCIM.
- 03Fix forwardfirst day
- Open the missing egress or proxy rule, then remove the fallback and run a test plan.
- If ingress pods sit in Pending, raise the quota on the agents namespace. They need the same CPU and memory as run agents.
- Open a HashiCorp support case and attach the diagnostics output from the admin console.
- 04Go backonly if needed
- Talk to HashiCorp support before any downgrade, and restore the pre-upgrade backup only the way they advise.
- Before you reopen the instance, run a plan and check that audit events are arriving in the SIEM again.
- 05Learnnext week
- Write down what failed and add a check for it to the rehearsal runbook.
- Put a dated ticket in the backlog, with an owner, for taking out the fallback and Fluent Bit well before October 2027.
What this looks like in practice
Three Terraform Enterprise setups that 2.1 hits differently
- the setup
- A platform team runs Terraform Enterprise on EKS with default-deny network policies. Agents can reach Terraform Enterprise and the cloud APIs, but not the company's self-hosted GitLab.
- what happens
- After 2.1, ingress jobs run as agent pods that can't reach GitLab. The only documented stopgap is the fallback variable, and support for it ends in October 2027.
- what to do
- Add egress from the agents namespace to GitLab, test a VCS-driven plan in non-production, then upgrade without the fallback variable.
- the setup
- A bank runs Terraform Enterprise on Docker and sends its logs, audit events included, to the SIEM through the built-in Fluent Bit output.
- what happens
- 2.1 still forwards logs, but support ends in October 2027. Switching it off before a replacement works would leave a gap in the audit trail.
- what to do
- Set up a Docker logging driver or host agent for the same events, compare both feeds for a while, then remove the Fluent Bit config.
- the setup
- A mid-size company runs Terraform Enterprise without SAML. New engineers create their own account from the sign-up page, and an owner adds them to teams.
- what happens
- After the upgrade the sign-up page stops creating accounts. New starters are stuck until someone acts.
- what to do
- Switch onboarding to email invitations now, plan SAML SSO, and leave public registration off unless someone signs off on turning it back on.
How Cohash helps: we plan and run Terraform Enterprise upgrades with your platform team, including the network, logging and SSO changes 2.1 brings, and we can weigh staying self-hosted against HCP Terraform or OpenTofu. Read how we work on our Terraform page, where you can also hire Terraform engineers, look at our DevSecOps practice, or book an assessment. For the licence and cost side, read what IBM ownership means for Terraform and Vault.
What to take from this
- 01
Terraform Enterprise 2.1.0 came out on October 26, 2026 and 2.1.1 on November 3. Both carry changes someone has to own.
- 02
Public self-registration is off after the upgrade unless the instance uses SAML. Invitations, SAML just-in-time provisioning and SCIM still work.
- 03
Ingress jobs now run on agents, so they need a network path to every VCS server you use. The slug-ingress fallback holds until October 2027.
- 04
Built-in Fluent Bit log forwarding loses support in October 2027. Build platform-side forwarding first, especially for audit logs.
- 05
Check Redis and custom images before upgrading. The 2.0 notes flagged Redis 6.x removal in 2.1, and custom images must be rebuilt on UBI.
- 06
Use the SAML certificate list, IdP-driven Site Auditor and token revocation to tighten access while you're in there.
01Is Terraform Enterprise 2.1 a breaking upgrade?
For some instances. Two changes are marked breaking: public self-registration is off by default (SAML instances aren't affected), and VCS ingress moves into agent jobs, so agents need to reach your VCS servers. Setting TFE_VCS_INGRESS_SLUG_INGRESS_FALLBACK to true keeps the 2.0 behavior while you fix the network.
02Which Terraform Enterprise features lose support in October 2027, and what replaces them?
Two things: built-in Fluent Bit log forwarding and the fallback that lets the old slug-ingress service clone code. Before then, forward logs with the platform's logging driver or a host agent, and open the network path from agents to the VCS servers.
03We upgraded to Terraform Enterprise 2.1 and new people can't sign up. Why?
2.1 disables public self-registration by default. A site admin can turn on Enable public registration in Admin > Settings, or set enable-public-registration to true through the Admin Settings API. Email invitations, SAML just-in-time provisioning and SCIM work either way.
04Do I need to rebuild my Terraform Enterprise image for 2.1?
Only if you built a custom image on the old base. Terraform Enterprise is moving to Red Hat Universal Base Image, so custom images need rebuilding. IBM doesn't support custom images and recommends the official, unmodified one.
05Does Terraform Enterprise 2.1 still support Redis 6?
Plan as if it doesn't. HashiCorp's 2.0.0 notes said Redis 6.x support would be removed in 2.1.0, and the 2.1 notes list Redis 8 and Valkey 9.0 as supported. Check which Redis you run before the upgrade.
06Can we stay on Terraform Enterprise 2.0 for now?
For a while. HashiCorp released 2.0.9 on October 29, 2026 with the eMudhra CA fix. The network and logging work doesn't go away, though, and you'd miss the multi-certificate SAML and token changes. Check HashiCorp's support policy for how long 2.0 stays covered.
07Can we get the Site Auditor role in HCP Terraform too?
No. HashiCorp's SAML docs say Site Auditor exists only in Terraform Enterprise. If auditors rely on it, count that in before any move to HCP Terraform.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1Your instance has no SAML, and new hires create their own accounts. What happens after the 2.1 upgrade?
show the answer
B. Nobody new can sign up until an admin switches public registration back on 2.1 turns public self-registration off by default for instances without SAML. Existing accounts keep working, and invitations, SAML just-in-time provisioning and SCIM still create users.
-
Q2Your agents sit in a Kubernetes namespace that blocks outbound traffic by default. What does 2.1 need from you?
show the answer
C. Open egress from that namespace to the VCS servers, or set the fallback variable for now Ingress jobs now run on agents, so agents must reach VCS. The fallback keeps 2.0 behavior while you change the rules, but it loses support in October 2027.
-
Q3Audit events reach your SIEM through built-in Fluent Bit. What's the safe order of work?
show the answer
A. Build platform-side forwarding, confirm audit events arrive, then remove Fluent Bit HashiCorp warns that audit logs can be lost in rotation without forwarding. Running the new route first and checking it avoids a gap in the audit trail.