Skip to content

Conversation

@boruszak
Copy link
Contributor

@boruszak boruszak commented Nov 13, 2025

Description

This PR re-adds the steps to migrate from HCP Consul Dedicated to a self-managed cluster. HashiCorp retains snapshots for 30 days, and support expects to continue supporting customers through the migration process.

This page was created at /consul/docs/hcp instead of in the hcp-docs directory because the migration process onboards to Consul Enterprise.

The PR also updates the redirect from HCP Consul content, and includes a redirect for the versioned Consul docs.

Preview links

Preview

@github-actions
Copy link
Contributor

github-actions bot commented Nov 13, 2025

Vercel Previews Deployed

Name Status Preview Updated (UTC)
Dev Portal ✅ Ready (Inspect) Visit Preview Thu Nov 13 21:18:31 UTC 2025
Unified Docs API ✅ Ready (Inspect) Visit Preview Thu Nov 13 21:12:25 UTC 2025

@github-actions
Copy link
Contributor

github-actions bot commented Nov 13, 2025

Broken Link Checker

No broken links found! 🎉

@boruszak boruszak marked this pull request as ready for review November 13, 2025 18:29
@boruszak boruszak requested review from a team as code owners November 13, 2025 18:29
@boruszak boruszak requested review from danielehc and judithpatudith and removed request for judithpatudith November 13, 2025 18:29
Copy link
Contributor

@aimeeu aimeeu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some nit-picky suggestions and...

Issues with links to HCP Consul docs that no longer exist in production... and you'll have circular redirects based on the new entries in redirects.jsonc.

The other thing is you may want to revise the workflows since users no longer have access to HCP Consul at all. They literally cannot create a snapshot of the HCP Consul Dedicated cluster. Suggest refactor to use existing snapshot or contact Support to get an archived snapshot. Plus remove the message about "As of November 12..."


## Migration workflows

The process to migrate a Dedicated cluster to a self-managed environment consists of the following steps, which change depending on whether your cluster runs on virtual machines (VMs) or Kubernetes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The process to migrate a Dedicated cluster to a self-managed environment consists of the following steps, which change depending on whether your cluster runs on virtual machines (VMs) or Kubernetes.
The process to migrate a Dedicated cluster to a self-managed environment consists of steps that depend on whether your cluster runs on virtual machines (VMs) or Kubernetes.

Suggested wording change based solely on my personal annoyance: using "following steps" and then no immediate list, instead going directly into headings.

The process to migrate a Dedicated cluster to a self-managed environment consists of the following steps, which change depending on whether your cluster runs on virtual machines (VMs) or Kubernetes.

### VMs

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love the steps with direct links!


## Migrate to self-managed on VMs

To migrate to a self-managed Consul Enterprise cluster on VMs, [connect to the Dedicated cluster's current leader node](/hcp/docs/consul/dedicated/access) and then complete the following steps.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/hcp/docs/consul/dedicated/access
In the PR, the link just reloads this /consul/docs/hcp page.

-> in production, this redirects to https://developer.hashicorp.com/hcp/docs/changelog#2025-11-12

- Both clusters have 3 nodes.
- ACLs, TLS, and gossip encryption are enabled.
- You have command line access to both the Dedicated cluster and your self-managed cluster.
- You [generated an admin token for the Dedicated cluster](/hcp/docs/consul/dedicated/access#generate-admin-token) and exported it to the `CONSUL_HTTP_TOKEN` environment variable. Alternatively, add the `-token=` flag to CLI commands.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HCP Consul docs are gone in production. The link redirects to https://developer.hashicorp.com/hcp/docs/changelog#2025-11-12. "For questions about your account and data, or for help migrating to a self-managed Consul deployment, contact our support team."

In the PR deploy preview, the link just reloads the current page.


## Migrate to self-managed on Kubernetes

To migrate to a self-managed Consul Enterprise cluster on Kubernetes, [connect to the Dedicated cluster's current leader node](/hcp/docs/consul/dedicated/access) and then complete the following steps.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same problem with the HCP Consul docs no longer in production. This link redirects to https://developer.hashicorp.com/hcp/docs/changelog#2025-11-12

- [https://letsencrypt.org/certs/2024/r11.pem](https://letsencrypt.org/certs/2024/r11.pem)
- Update the `tlsServerName` field to the appropriate value. It is usually the hostname of the
managed cluster. If the value is not known, TLS verification fails when you apply this configuration and the error log lists possible values.
- Set `useSystemRoots` to `false` to use the new CA certs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer to see the dot notation here so I know what collection. But maybe that's not needed for experienced users.

Suggested change
- Set `useSystemRoots` to `false` to use the new CA certs.
- Set `externalServes.useSystemRoots` to `false` to use the new CA certs.

- [https://letsencrypt.org/certs/2024/e6-cross.pem](https://letsencrypt.org/certs/2024/e6-cross.pem)
- [https://letsencrypt.org/certs/2024/r10.pem](https://letsencrypt.org/certs/2024/r10.pem)
- [https://letsencrypt.org/certs/2024/r11.pem](https://letsencrypt.org/certs/2024/r11.pem)
- Update the `tlsServerName` field to the appropriate value. It is usually the hostname of the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Update the `tlsServerName` field to the appropriate value. It is usually the hostname of the
- Update the `externalServers.tlsServerName` field to the appropriate value. It is usually the hostname of the

I would prefer to see the dot notation here so I know what collection. But maybe that's not needed for experienced users.


### Upgrade the cluster

After you update the `values.yaml` file, run the following command to update the self-managed Kubernetes cluster.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
After you update the `values.yaml` file, run the following command to update the self-managed Kubernetes cluster.
After you update the `values.yaml` file, run the `consul-k8s upgrade` command to update the self-managed Kubernetes cluster.


### Verify that the migration was successful

After you update the CoreDNS entry, check the Consul catalog to ensure that the migration was successful. You can check the Consul UI or run the following CLI command.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
After you update the CoreDNS entry, check the Consul catalog to ensure that the migration was successful. You can check the Consul UI or run the following CLI command.
After you update the CoreDNS entry, check the Consul catalog to ensure that the migration was successful. You can check the Consul UI or run the `kubectl exec` command.

$ kubectl exec -c consul-server-0 -- consul members
```

Run `consul members` on the Dedicated cluster as well. Ensure that all service nodes appear as `inactive` or `left`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Run `consul members` on the Dedicated cluster as well. Ensure that all service nodes appear as `inactive` or `left`.
Run the `consul members` command on the Dedicated cluster as well. Ensure that all service nodes appear as `inactive` or `left`.

@boruszak boruszak merged commit 6e9ecd2 into main Nov 13, 2025
15 checks passed
@boruszak boruszak deleted the consul/jeff-CE-1082 branch November 13, 2025 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants