Remove HVS Support - #1307
Open
vijayavelsekar wants to merge 10 commits into
Open
Conversation
3 tasks
vijayavelsekar
force-pushed
the
VAULT-36773/Remove-HVS-Support
branch
from
July 24, 2026 14:02
0f7dd03 to
fa251cd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
HCP Vault Secrets (HVS) reached end-of-life on July 1, 2026. This PR removes all
HVS integration from the Vault Secrets Operator (VSO) now that the service is shut down.
The two Custom Resource Definitions introduced for HVS —
HCPAuthandHCPVaultSecretsApp— their controllers, API types, credentials provider,RBAC manifests, Helm chart assets, CRD manifests, sample configs, integration tests,
and the
github.com/hashicorp/hcp-sdk-goGo module dependency have all beenpermanently deleted from the codebase.
What was removed
HCPAuth,HCPVaultSecretsApp(and all generated deep-copy functions)HCPAuthReconciler,HCPVaultSecretsAppReconcilercredentials/hcppackage (provider.go,service_principal.go)secrets.hashicorp.com_hcpauths.yaml,secrets.hashicorp.com_hcpvaultsecretsapps.yaml(config + Helm chart)hcpauth-editor/viewer-role,hcpsecretsapp-editor/viewer-role(config + Helm chart)WithHVSAppSecrets,MakeHVSShadowSecretData,FromHVSShadowSecret,HVSSecretType*constantsHCPVaultSecretsApp(test/integration/hcpvaultsecretsapp/)github.com/hashicorp/hcp-sdk-go v0.118.0and its transitive modules (go mod tidy)config/hvsa-tests/overlay; stale HCP resource entries inconfig/crd/kustomization.yamlHCPAuth+HCPVaultSecretsAppentries removed fromcustomresourcedefinitions.ownedmain.goflag-min-refresh-after-hvsaflag and reconciler setup blocks removedhcp-organization-id,hcp-project-id,hcp-client-id,hcp-client-secretinputs removed from.github/actions/integration-test/action.ymland both call sites in.github/workflows/build.yaml(was causing allenterprise=trueCI jobs to fail on fork PRs)SKIP_HCPVSAPPS_TESTSremoved fromMakefile,scale-testing.mk, andgcp.mkPROJECTresource entriesHCPAuthandHCPVaultSecretsAppkubebuilder resource entries removedcontrollers/registry.goHCPVaultSecretsAppResourceKindconstant and itsString()case removeddemo/infra/app/hcpvs.tfdeleted; 6 HCP variables (with_hcp_vault_secrets,hcp_organization_id,hcp_project_id,hcp_client_id,hcp_client_secret,hcp_hvs_app_name) removed fromdemo/infra/app/variables.tfdocs/diags/hcp-secrets.pumldeleted; unusedAddElementTag("hvs", ...)removed fromdocs/diags/csi-trusted-orchestrator.pumldocs/diags/secrets-transformation.puml—, HCPVSremoved from secret source descriptioncredentials/credentials.go—HCPAuthremoved fromNew()doc commentconsts/reasons.go—ReasonHVSClientConfigErrorandReasonHVSSecretremoved (unreferenced)What was added / fixed
TestChart_upgradeCRDsintest/chart/chart_test.goto handle CRDs removed from the chart. Helm never deletes CRDs during upgrade, sohcpauthsandhcpvaultsecretsappsremain as orphans in the cluster after upgrading from any old chart version. The previous assertion (expected: 8, actual: 10) assumed the chart only ever grows. The fix counts only CRDs declared by the new chart and separately validates that any extra cluster CRDs are traceable to the old install.clusterRoleAggregatedViewer: subsetandclusterRoleAggregatedEditor: subsetintest/unit/clusterrole-aggregates.bats— replacedHCPAuthexample value withvaultStaticSecretso the subset selection tests no longer reference a removed role.utils/utils_test.goHCPAuthCRD fixture with a neutralTestCRDname inTestUpgradeCRDs— the test validates the CRD upgrade utility, not HCPAuth itself.Clusters that have
HCPVaultSecretsApporHCPAuthinstances must clean upthose resources before upgrading to this version of VSO. The critical risk is that
every
HCPVaultSecretsAppinstance carries the finalizerhcpvaultsecretsapp.secrets.hashicorp.com/finalizer; if the old operator is removedbefore the instances are deleted, Kubernetes will hold them in
Terminatingindefinitely.
HVS Cleanup Steps — Quick Reference
Path A — Before Upgrade (Recommended)
HCPVaultSecretsAppandHCPAuthinstances across all namespacesHCPAuthinstances cluster-wide (no finalizer, completes instantly)vso-hvs-*secrets remain in the operator namespace; delete any stragglershcpauthsandhcpvaultsecretsappsCRDs from the clusterClusterRoleobjects left behind by the old operatorPath B — After Upgrade (Recovery)
Terminatinghang), then delete allHCPAuthinstances cluster-wide (no finalizer, always safe)vso-hvs-*secrets from the operator namespaceClusterRoleobjectsPCI review checklist
I have documented a clear reason for, and description of, the change I am making.
If applicable, I've documented a plan to revert these changes if they require more than reverting the pull request.
If applicable, I've documented the impact of any changes to security controls.
Examples of changes to security controls include using new access control methods, adding or removing logging pipelines, etc.