keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+Valid values are “KeyVault” and “ManagedHSM”.
+When set to “KeyVault”, both keys are hosted by Azure Key Vault.
+When set to “ManagedHSM”, both keys are hosted by Azure Managed HSM.
+The type is immutable; key rotation must remain within the same service.
+When omitted, the keys are treated as Key Vault keys.
encryptionKeyURL is the URL of the Azure Key Vault key used for encryption.
-Must be a valid Azure Key Vault key URL in the format
-“https://.vault.azure.net/keys/[/]”.
+
encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key used for encryption.
+Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
This field is immutable once set and cannot be removed.
@@ -39150,9 +39203,10 @@ string
-
encryptionKeyURL is the URL of the Azure Key Vault key to use for encrypting etcd backup artifacts.
-Must be a valid Azure Key Vault key URL in the format
-“https://.vault.azure.net/keys/[/]”.
+
encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key to use for encrypting etcd backup artifacts.
+Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
@@ -39286,9 +39340,10 @@ string
-
encryptionKeyURL is the URL of the Azure Key Vault key used for encryption of the backup.
-Must be a valid Azure Key Vault key URL in the format
-“https://.vault.azure.net/keys/[/]”.
+
encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key used for encryption of the backup.
+Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
@@ -55121,4 +55176,3 @@ This video demonstrates how to deploy a Hosted Control Plane using the Multiclus
This video demonstrates how to deploy an IPv6, fully disconnected Hosted Control Plane using the Agent provider.
-
diff --git a/docs/content/reference/api.md b/docs/content/reference/api.md
index d7b624088949..83e5e7513d18 100644
--- a/docs/content/reference/api.md
+++ b/docs/content/reference/api.md
@@ -3480,6 +3480,7 @@ applications and dev/test.
SecretEncryptionKeyStatus)
+
AzureKMSKey defines an Azure Key Vault or Managed HSM key used for KMS encryption.
keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+Valid values are “KeyVault” and “ManagedHSM”.
+When set to “KeyVault”, both keys are hosted by Azure Key Vault.
+When set to “ManagedHSM”, both keys are hosted by Azure Managed HSM.
+The type is immutable; key rotation must remain within the same service.
+When omitted, the keys are treated as Key Vault keys.
encryptionKeyURL is the URL of the Azure Key Vault key used for encryption.
-Must be a valid Azure Key Vault key URL in the format
-“https://.vault.azure.net/keys/[/]”.
+
encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key used for encryption.
+Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
This field is immutable once set and cannot be removed.
@@ -8702,9 +8746,10 @@ string
-
encryptionKeyURL is the URL of the Azure Key Vault key to use for encrypting etcd backup artifacts.
-Must be a valid Azure Key Vault key URL in the format
-“https://.vault.azure.net/keys/[/]”.
+
encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key to use for encrypting etcd backup artifacts.
+Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
@@ -8838,9 +8883,10 @@ string
-
encryptionKeyURL is the URL of the Azure Key Vault key used for encryption of the backup.
-Must be a valid Azure Key Vault key URL in the format
-“https://.vault.azure.net/keys/[/]”.
+
encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key used for encryption of the backup.
+Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
From 4f7f8f7c1f31069569d04df01ede625791cf4279 Mon Sep 17 00:00:00 2001
From: Hilliary Lipsig
Date: Thu, 27 Aug 2026 13:37:21 -0700
Subject: [PATCH 7/8] chore(api): regenerate release 4.22 manifests
Regenerate feature-gated and install CRDs against the release-4.22 API
set after resolving the backport conflicts.
Signed-off-by: Hilliary Lipsig
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.../AAA_ungated.yaml | 50 +++++++++------
.../AutoNodeKarpenter.yaml | 50 +++++++++------
.../ClusterUpdateAcceptRisks.yaml | 50 +++++++++------
.../ClusterVersionOperatorConfiguration.yaml | 50 +++++++++------
.../ExternalOIDC.yaml | 50 +++++++++------
...ernalOIDCWithUIDAndExtraClaimMappings.yaml | 50 +++++++++------
.../ExternalOIDCWithUpstreamParity.yaml | 50 +++++++++------
.../GCPPlatform.yaml | 50 +++++++++------
.../HCPEtcdBackup.yaml | 61 ++++++++++++-------
...perShiftOnlyDynamicResourceAllocation.yaml | 50 +++++++++------
.../ImageStreamImportMode.yaml | 50 +++++++++------
.../KMSEncryptionProvider.yaml | 50 +++++++++------
.../OpenStack.yaml | 50 +++++++++------
.../AAA_ungated.yaml | 50 +++++++++------
.../AutoNodeKarpenter.yaml | 50 +++++++++------
.../ClusterUpdateAcceptRisks.yaml | 50 +++++++++------
.../ClusterVersionOperatorConfiguration.yaml | 50 +++++++++------
.../ExternalOIDC.yaml | 50 +++++++++------
...ernalOIDCWithUIDAndExtraClaimMappings.yaml | 50 +++++++++------
.../ExternalOIDCWithUpstreamParity.yaml | 50 +++++++++------
.../GCPPlatform.yaml | 50 +++++++++------
.../HCPEtcdBackup.yaml | 61 ++++++++++++-------
...perShiftOnlyDynamicResourceAllocation.yaml | 50 +++++++++------
.../ImageStreamImportMode.yaml | 50 +++++++++------
.../KMSEncryptionProvider.yaml | 50 +++++++++------
.../OpenStack.yaml | 50 +++++++++------
...usters-Hypershift-CustomNoUpgrade.crd.yaml | 61 ++++++++++++-------
...hostedclusters-Hypershift-Default.crd.yaml | 50 +++++++++------
...s-Hypershift-TechPreviewNoUpgrade.crd.yaml | 61 ++++++++++++-------
...planes-Hypershift-CustomNoUpgrade.crd.yaml | 61 ++++++++++++-------
...dcontrolplanes-Hypershift-Default.crd.yaml | 50 +++++++++------
...s-Hypershift-TechPreviewNoUpgrade.crd.yaml | 61 ++++++++++++-------
docs/content/reference/aggregated-docs.md | 1 +
33 files changed, 1061 insertions(+), 606 deletions(-)
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AAA_ungated.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AAA_ungated.yaml
index bfb02b5417ee..ea9f513e9864 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AAA_ungated.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AAA_ungated.yaml
@@ -5039,13 +5039,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6012,15 +6012,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6045,15 +6045,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6080,6 +6080,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6140,6 +6152,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6926,15 +6942,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7161,15 +7176,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AutoNodeKarpenter.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AutoNodeKarpenter.yaml
index edd20bc7bd97..3b40155ca88e 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AutoNodeKarpenter.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/AutoNodeKarpenter.yaml
@@ -5166,13 +5166,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6131,15 +6131,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6164,15 +6164,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6199,6 +6199,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6259,6 +6271,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7065,15 +7081,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7300,15 +7315,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterUpdateAcceptRisks.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterUpdateAcceptRisks.yaml
index 8f516f4fce3d..397fedeebf2a 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterUpdateAcceptRisks.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterUpdateAcceptRisks.yaml
@@ -5030,13 +5030,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5995,15 +5995,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6028,15 +6028,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6063,6 +6063,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6123,6 +6135,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6909,15 +6925,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7144,15 +7159,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml
index 7fdee82f7644..ba86ab0b81f9 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml
@@ -5050,13 +5050,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6015,15 +6015,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6048,15 +6048,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6083,6 +6083,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6143,6 +6155,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6929,15 +6945,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7164,15 +7179,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDC.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDC.yaml
index fbabbd81852a..b108f11a96ab 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDC.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDC.yaml
@@ -5363,13 +5363,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6328,15 +6328,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6361,15 +6361,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6396,6 +6396,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6456,6 +6468,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7407,15 +7423,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7642,15 +7657,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml
index 9a628fd1e9dc..2412ecac050b 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml
@@ -5503,13 +5503,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6468,15 +6468,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6501,15 +6501,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6536,6 +6536,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6596,6 +6608,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7547,15 +7563,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7782,15 +7797,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUpstreamParity.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUpstreamParity.yaml
index 79f43c9a8b80..0bb659752073 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUpstreamParity.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ExternalOIDCWithUpstreamParity.yaml
@@ -5484,13 +5484,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6449,15 +6449,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6482,15 +6482,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6517,6 +6517,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6577,6 +6589,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7363,15 +7379,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7598,15 +7613,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/GCPPlatform.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/GCPPlatform.yaml
index b914e5c54625..959b6aaf24e5 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/GCPPlatform.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/GCPPlatform.yaml
@@ -5030,13 +5030,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6415,15 +6415,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6448,15 +6448,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6483,6 +6483,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6543,6 +6555,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7329,15 +7345,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7564,15 +7579,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HCPEtcdBackup.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HCPEtcdBackup.yaml
index 2e533f729c66..4b0550f1156b 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HCPEtcdBackup.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HCPEtcdBackup.yaml
@@ -2501,16 +2501,17 @@ spec:
properties:
encryptionKeyURL:
description: |-
- encryptionKeyURL is the URL of the Azure Key Vault key to use for encrypting etcd backup artifacts.
- Must be a valid Azure Key Vault key URL in the format
- "https://.vault.azure.net/keys/[/]".
+ encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key to use for encrypting etcd backup artifacts.
+ Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+ Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+ Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
maxLength: 210
minLength: 1
type: string
x-kubernetes-validations:
- message: encryptionKeyURL must be a valid Azure
- Key Vault HTTPS URL (https://.vault.azure.net/keys/[/])
- rule: self.matches('^https://[a-zA-Z0-9-]+\\.vault\\.azure\\.net/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
+ Key Vault or Managed HSM HTTPS URL
+ rule: self.matches('^https://[a-zA-Z0-9-]+\\.(vault\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr)|managedhsm\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr))/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
required:
- encryptionKeyURL
type: object
@@ -5095,13 +5096,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6060,15 +6061,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6093,15 +6094,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6128,6 +6129,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6188,6 +6201,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6986,15 +7003,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7221,15 +7237,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml
index 894b65fa84e9..d492dd3da6f3 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml
@@ -5052,13 +5052,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6017,15 +6017,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6050,15 +6050,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6085,6 +6085,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6145,6 +6157,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6931,15 +6947,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7166,15 +7181,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ImageStreamImportMode.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ImageStreamImportMode.yaml
index 55d6d2fda030..985f265fe249 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ImageStreamImportMode.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/ImageStreamImportMode.yaml
@@ -5048,13 +5048,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6013,15 +6013,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6046,15 +6046,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6081,6 +6081,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6141,6 +6153,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6938,15 +6954,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7173,15 +7188,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/KMSEncryptionProvider.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/KMSEncryptionProvider.yaml
index ee3000e356c0..d9bf4f967740 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/KMSEncryptionProvider.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/KMSEncryptionProvider.yaml
@@ -5106,13 +5106,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6071,15 +6071,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6104,15 +6104,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6139,6 +6139,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6199,6 +6211,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6985,15 +7001,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7220,15 +7235,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/OpenStack.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/OpenStack.yaml
index c8991b80bd5a..f274ac47b0ee 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/OpenStack.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedclusters.hypershift.openshift.io/OpenStack.yaml
@@ -5030,13 +5030,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6546,15 +6546,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6579,15 +6579,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6614,6 +6614,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6674,6 +6686,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7460,15 +7476,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7695,15 +7710,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/AAA_ungated.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/AAA_ungated.yaml
index dd571e490c7c..d54fe9f0b232 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/AAA_ungated.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/AAA_ungated.yaml
@@ -4915,13 +4915,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5863,15 +5863,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5896,15 +5896,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5931,6 +5931,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -5991,6 +6003,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6756,15 +6772,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6991,15 +7006,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/AutoNodeKarpenter.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/AutoNodeKarpenter.yaml
index 2d17d950869b..73009e863a07 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/AutoNodeKarpenter.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/AutoNodeKarpenter.yaml
@@ -5044,13 +5044,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5984,15 +5984,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6017,15 +6017,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6052,6 +6052,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6112,6 +6124,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6897,15 +6913,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7132,15 +7147,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ClusterUpdateAcceptRisks.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ClusterUpdateAcceptRisks.yaml
index d31de0d4b587..e1a5892c96a2 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ClusterUpdateAcceptRisks.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ClusterUpdateAcceptRisks.yaml
@@ -4906,13 +4906,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5846,15 +5846,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5879,15 +5879,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5914,6 +5914,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -5974,6 +5986,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6739,15 +6755,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6974,15 +6989,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml
index 120511f48cf0..b7b6f6cfc729 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ClusterVersionOperatorConfiguration.yaml
@@ -4926,13 +4926,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5866,15 +5866,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5899,15 +5899,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5934,6 +5934,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -5994,6 +6006,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6759,15 +6775,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6994,15 +7009,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDC.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDC.yaml
index 5f76bbf48e51..16edb727bed6 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDC.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDC.yaml
@@ -5239,13 +5239,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6179,15 +6179,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6212,15 +6212,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6247,6 +6247,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6307,6 +6319,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7237,15 +7253,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7472,15 +7487,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml
index 540b77443c0e..96285bc8b97f 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDCWithUIDAndExtraClaimMappings.yaml
@@ -5379,13 +5379,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6319,15 +6319,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6352,15 +6352,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6387,6 +6387,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6447,6 +6459,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7377,15 +7393,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7612,15 +7627,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDCWithUpstreamParity.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDCWithUpstreamParity.yaml
index 833b3fdbcb9f..9f1383ae691e 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDCWithUpstreamParity.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ExternalOIDCWithUpstreamParity.yaml
@@ -5360,13 +5360,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6300,15 +6300,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6333,15 +6333,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6368,6 +6368,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6428,6 +6440,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7193,15 +7209,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7428,15 +7443,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/GCPPlatform.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/GCPPlatform.yaml
index 649e4f7894b0..f3c969ee1d7b 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/GCPPlatform.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/GCPPlatform.yaml
@@ -4906,13 +4906,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6266,15 +6266,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6299,15 +6299,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6334,6 +6334,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6394,6 +6406,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7159,15 +7175,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7394,15 +7409,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/HCPEtcdBackup.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/HCPEtcdBackup.yaml
index a6a52da20e1a..e92faea4e84b 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/HCPEtcdBackup.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/HCPEtcdBackup.yaml
@@ -2418,16 +2418,17 @@ spec:
properties:
encryptionKeyURL:
description: |-
- encryptionKeyURL is the URL of the Azure Key Vault key to use for encrypting etcd backup artifacts.
- Must be a valid Azure Key Vault key URL in the format
- "https://.vault.azure.net/keys/[/]".
+ encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key to use for encrypting etcd backup artifacts.
+ Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+ Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+ Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
maxLength: 210
minLength: 1
type: string
x-kubernetes-validations:
- message: encryptionKeyURL must be a valid Azure
- Key Vault HTTPS URL (https://.vault.azure.net/keys/[/])
- rule: self.matches('^https://[a-zA-Z0-9-]+\\.vault\\.azure\\.net/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
+ Key Vault or Managed HSM HTTPS URL
+ rule: self.matches('^https://[a-zA-Z0-9-]+\\.(vault\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr)|managedhsm\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr))/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
required:
- encryptionKeyURL
type: object
@@ -4971,13 +4972,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5911,15 +5912,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5944,15 +5945,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5979,6 +5980,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6039,6 +6052,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6804,15 +6821,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7039,15 +7055,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml
index c43d47e96d49..c3cfac6239ff 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/HyperShiftOnlyDynamicResourceAllocation.yaml
@@ -4928,13 +4928,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5868,15 +5868,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5901,15 +5901,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5936,6 +5936,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -5996,6 +6008,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6761,15 +6777,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6996,15 +7011,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ImageStreamImportMode.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ImageStreamImportMode.yaml
index ea472e73807a..3e8c3d231fae 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ImageStreamImportMode.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/ImageStreamImportMode.yaml
@@ -4924,13 +4924,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5864,15 +5864,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5897,15 +5897,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5932,6 +5932,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -5992,6 +6004,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6768,15 +6784,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7003,15 +7018,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/KMSEncryptionProvider.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/KMSEncryptionProvider.yaml
index 174be75197cd..ef386420af74 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/KMSEncryptionProvider.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/KMSEncryptionProvider.yaml
@@ -4982,13 +4982,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -5922,15 +5922,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5955,15 +5955,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -5990,6 +5990,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6050,6 +6062,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -6815,15 +6831,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7050,15 +7065,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/OpenStack.yaml b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/OpenStack.yaml
index 1cebfc2a0dc8..4692aa7a5d8b 100644
--- a/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/OpenStack.yaml
+++ b/api/hypershift/v1beta1/zz_generated.featuregated-crd-manifests/hostedcontrolplanes.hypershift.openshift.io/OpenStack.yaml
@@ -4906,13 +4906,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6397,15 +6397,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6430,15 +6430,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6465,6 +6465,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6525,6 +6537,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7290,15 +7306,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7525,15 +7540,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-CustomNoUpgrade.crd.yaml b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-CustomNoUpgrade.crd.yaml
index 23efa259fd20..79f590b7bb99 100644
--- a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-CustomNoUpgrade.crd.yaml
+++ b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-CustomNoUpgrade.crd.yaml
@@ -3354,16 +3354,17 @@ spec:
properties:
encryptionKeyURL:
description: |-
- encryptionKeyURL is the URL of the Azure Key Vault key to use for encrypting etcd backup artifacts.
- Must be a valid Azure Key Vault key URL in the format
- "https://.vault.azure.net/keys/[/]".
+ encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key to use for encrypting etcd backup artifacts.
+ Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+ Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+ Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
maxLength: 210
minLength: 1
type: string
x-kubernetes-validations:
- message: encryptionKeyURL must be a valid Azure
- Key Vault HTTPS URL (https://.vault.azure.net/keys/[/])
- rule: self.matches('^https://[a-zA-Z0-9-]+\\.vault\\.azure\\.net/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
+ Key Vault or Managed HSM HTTPS URL
+ rule: self.matches('^https://[a-zA-Z0-9-]+\\.(vault\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr)|managedhsm\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr))/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
required:
- encryptionKeyURL
type: object
@@ -5968,13 +5969,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -7894,15 +7895,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7927,15 +7928,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7962,6 +7963,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -8022,6 +8035,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -9016,15 +9033,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -9251,15 +9267,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-Default.crd.yaml b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-Default.crd.yaml
index 053f49bd94df..94c985ae613c 100644
--- a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-Default.crd.yaml
+++ b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-Default.crd.yaml
@@ -5532,13 +5532,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6505,15 +6505,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6538,15 +6538,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6573,6 +6573,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6633,6 +6645,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7584,15 +7600,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7819,15 +7834,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-TechPreviewNoUpgrade.crd.yaml b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-TechPreviewNoUpgrade.crd.yaml
index 807ffe110c25..56500294355e 100644
--- a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-TechPreviewNoUpgrade.crd.yaml
+++ b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedclusters-Hypershift-TechPreviewNoUpgrade.crd.yaml
@@ -3265,16 +3265,17 @@ spec:
properties:
encryptionKeyURL:
description: |-
- encryptionKeyURL is the URL of the Azure Key Vault key to use for encrypting etcd backup artifacts.
- Must be a valid Azure Key Vault key URL in the format
- "https://.vault.azure.net/keys/[/]".
+ encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key to use for encrypting etcd backup artifacts.
+ Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+ Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+ Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
maxLength: 210
minLength: 1
type: string
x-kubernetes-validations:
- message: encryptionKeyURL must be a valid Azure
- Key Vault HTTPS URL (https://.vault.azure.net/keys/[/])
- rule: self.matches('^https://[a-zA-Z0-9-]+\\.vault\\.azure\\.net/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
+ Key Vault or Managed HSM HTTPS URL
+ rule: self.matches('^https://[a-zA-Z0-9-]+\\.(vault\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr)|managedhsm\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr))/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
required:
- encryptionKeyURL
type: object
@@ -5879,13 +5880,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -7805,15 +7806,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7838,15 +7839,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7873,6 +7874,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -7933,6 +7946,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -8916,15 +8933,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -9151,15 +9167,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-CustomNoUpgrade.crd.yaml b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-CustomNoUpgrade.crd.yaml
index 381b5f25d2dc..0cd1489e926c 100644
--- a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-CustomNoUpgrade.crd.yaml
+++ b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-CustomNoUpgrade.crd.yaml
@@ -3273,16 +3273,17 @@ spec:
properties:
encryptionKeyURL:
description: |-
- encryptionKeyURL is the URL of the Azure Key Vault key to use for encrypting etcd backup artifacts.
- Must be a valid Azure Key Vault key URL in the format
- "https://.vault.azure.net/keys/[/]".
+ encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key to use for encrypting etcd backup artifacts.
+ Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+ Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+ Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
maxLength: 210
minLength: 1
type: string
x-kubernetes-validations:
- message: encryptionKeyURL must be a valid Azure
- Key Vault HTTPS URL (https://.vault.azure.net/keys/[/])
- rule: self.matches('^https://[a-zA-Z0-9-]+\\.vault\\.azure\\.net/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
+ Key Vault or Managed HSM HTTPS URL
+ rule: self.matches('^https://[a-zA-Z0-9-]+\\.(vault\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr)|managedhsm\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr))/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
required:
- encryptionKeyURL
type: object
@@ -5846,13 +5847,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -7747,15 +7748,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7780,15 +7781,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7815,6 +7816,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -7875,6 +7888,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -8836,15 +8853,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -9071,15 +9087,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-Default.crd.yaml b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-Default.crd.yaml
index 6f1e2814a3bd..81166b1745db 100644
--- a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-Default.crd.yaml
+++ b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-Default.crd.yaml
@@ -5408,13 +5408,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -6356,15 +6356,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6389,15 +6389,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -6424,6 +6424,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -6484,6 +6496,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -7414,15 +7430,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7649,15 +7664,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-TechPreviewNoUpgrade.crd.yaml b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-TechPreviewNoUpgrade.crd.yaml
index ff77c7e8ba7b..2a9c5f40a51a 100644
--- a/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-TechPreviewNoUpgrade.crd.yaml
+++ b/cmd/install/assets/crds/hypershift-operator/zz_generated.crd-manifests/hostedcontrolplanes-Hypershift-TechPreviewNoUpgrade.crd.yaml
@@ -3184,16 +3184,17 @@ spec:
properties:
encryptionKeyURL:
description: |-
- encryptionKeyURL is the URL of the Azure Key Vault key to use for encrypting etcd backup artifacts.
- Must be a valid Azure Key Vault key URL in the format
- "https://.vault.azure.net/keys/[/]".
+ encryptionKeyURL is the URL of the Azure Key Vault or Managed HSM key to use for encrypting etcd backup artifacts.
+ Key Vault URLs are supported in Azure Public Cloud (vault.azure.net), Azure US Government Cloud (vault.usgovcloudapi.net), Azure China Cloud (vault.azure.cn), Azure German Cloud (vault.microsoftazure.de), and Azure Bleu Cloud (vault.sovcloud-api.fr).
+ Managed HSM URLs are supported in Azure Public Cloud (managedhsm.azure.net), Azure US Government Cloud (managedhsm.usgovcloudapi.net), Azure China Cloud (managedhsm.azure.cn), Azure German Cloud (managedhsm.microsoftazure.de), and Azure Bleu Cloud (managedhsm.sovcloud-api.fr).
+ Supporting another cloud requires adding its DNS suffix to this validation and the Azure endpoint resolver.
maxLength: 210
minLength: 1
type: string
x-kubernetes-validations:
- message: encryptionKeyURL must be a valid Azure
- Key Vault HTTPS URL (https://.vault.azure.net/keys/[/])
- rule: self.matches('^https://[a-zA-Z0-9-]+\\.vault\\.azure\\.net/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
+ Key Vault or Managed HSM HTTPS URL
+ rule: self.matches('^https://[a-zA-Z0-9-]+\\.(vault\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr)|managedhsm\\.(azure\\.net|usgovcloudapi\\.net|azure\\.cn|microsoftazure\\.de|sovcloud-api\\.fr))/keys/[a-zA-Z0-9-]+(/[a-zA-Z0-9]+)?$')
required:
- encryptionKeyURL
type: object
@@ -5757,13 +5758,13 @@ spec:
? has(self.workloadIdentities) : !has(self.workloadIdentities)'
cloud:
default: AzurePublicCloud
- description: 'cloud is the cloud environment identifier, valid
- values could be found here: https://github.com/Azure/go-autorest/blob/4c0e21ca2bbb3251fe7853e6f9df6397f53dd419/autorest/azure/environments.go#L33'
+ description: cloud is the Azure cloud environment identifier.
enum:
- AzurePublicCloud
- AzureUSGovernmentCloud
- AzureChinaCloud
- AzureGermanCloud
+ - AzureBleuCloud
- AzureStackCloud
type: string
containerRegistry:
@@ -7658,15 +7659,15 @@ spec:
encrypt new secrets
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7691,15 +7692,15 @@ spec:
The system automatically manages the previous key via the status field.
properties:
keyName:
- description: keyName is the name of the keyvault key
- used for encrypt/decrypt
+ description: keyName is the name of the key used for
+ encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -7726,6 +7727,18 @@ spec:
- Private
- ""
type: string
+ keyVaultType:
+ description: |-
+ keyVaultType specifies whether activeKey and backupKey are hosted by Azure Key Vault or Azure Managed HSM.
+ Valid values are "KeyVault" and "ManagedHSM".
+ When set to "KeyVault", both keys are hosted by Azure Key Vault.
+ When set to "ManagedHSM", both keys are hosted by Azure Managed HSM.
+ The type is immutable; key rotation must remain within the same service.
+ When omitted, the keys are treated as Key Vault keys.
+ enum:
+ - KeyVault
+ - ManagedHSM
+ type: string
kms:
description: kms is a pre-existing managed identity used
to authenticate with Azure KMS.
@@ -7786,6 +7799,10 @@ spec:
both keys must reside in the same Key Vault
rule: '!has(self.backupKey) || self.backupKey.keyVaultName
== self.activeKey.keyVaultName'
+ - message: keyVaultType is immutable
+ rule: '(has(self.keyVaultType) ? self.keyVaultType : ''KeyVault'')
+ == (has(oldSelf.keyVaultType) ? oldSelf.keyVaultType :
+ ''KeyVault'')'
ibmcloud:
description: ibmcloud defines metadata for the IBM Cloud KMS
encryption strategy
@@ -8736,15 +8753,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
@@ -8971,15 +8987,14 @@ spec:
description: azure holds the Azure KMS key identity fields.
properties:
keyName:
- description: keyName is the name of the keyvault key used
- for encrypt/decrypt
+ description: keyName is the name of the key used for encrypt/decrypt.
maxLength: 255
minLength: 1
type: string
keyVaultName:
description: |-
- keyVaultName is the name of the keyvault. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
- Your Microsoft Entra application used to create the cluster must be authorized to access this keyvault, e.g using the AzureCLI:
+ keyVaultName is the name of the Key Vault or Managed HSM. Must match criteria specified at https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name
+ Your Microsoft Entra application used to create the cluster must be authorized to access this resource, e.g using the AzureCLI:
`az keyvault set-policy -n $KEYVAULT_NAME --key-permissions decrypt encrypt --spn `
maxLength: 255
minLength: 1
diff --git a/docs/content/reference/aggregated-docs.md b/docs/content/reference/aggregated-docs.md
index 0f1a01aae0e1..d9658c283277 100644
--- a/docs/content/reference/aggregated-docs.md
+++ b/docs/content/reference/aggregated-docs.md
@@ -55176,3 +55176,4 @@ This video demonstrates how to deploy a Hosted Control Plane using the Multiclus
This video demonstrates how to deploy an IPv6, fully disconnected Hosted Control Plane using the Agent provider.
+
From ad40fdd2f22e6b6fd9f56927a482d273b3ae392f Mon Sep 17 00:00:00 2001
From: Hilliary Lipsig
Date: Thu, 27 Aug 2026 15:41:33 -0700
Subject: [PATCH 8/8] test(control-plane-operator): cover Managed HSM KMS
configuration
Port the Managed HSM sidecar flag and provider identity tests to the
release-4.22 Azure KMS provider API.
Signed-off-by: Hilliary Lipsig
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.../v2/kas/kms/azure_test.go | 112 ++++++++++++++++++
1 file changed, 112 insertions(+)
create mode 100644 control-plane-operator/controllers/hostedcontrolplane/v2/kas/kms/azure_test.go
diff --git a/control-plane-operator/controllers/hostedcontrolplane/v2/kas/kms/azure_test.go b/control-plane-operator/controllers/hostedcontrolplane/v2/kas/kms/azure_test.go
new file mode 100644
index 000000000000..38b0b0a9cbbd
--- /dev/null
+++ b/control-plane-operator/controllers/hostedcontrolplane/v2/kas/kms/azure_test.go
@@ -0,0 +1,112 @@
+package kms
+
+import (
+ "testing"
+
+ . "github.com/onsi/gomega"
+
+ hyperv1 "github.com/openshift/hypershift/api/hypershift/v1beta1"
+
+ corev1 "k8s.io/api/core/v1"
+)
+
+func TestBuildKASContainerAzureKMS(t *testing.T) {
+ tests := []struct {
+ name string
+ keyVaultType hyperv1.AzureKMSKeyVaultType
+ expectManagedHSM bool
+ }{
+ {
+ name: "When keyVaultType is omitted, it should not pass the managed HSM flag",
+ },
+ {
+ name: "When keyVaultType is KeyVault, it should not pass the managed HSM flag",
+ keyVaultType: hyperv1.AzureKMSKeyVaultTypeKeyVault,
+ },
+ {
+ name: "When keyVaultType is ManagedHSM, it should pass the managed HSM flag",
+ keyVaultType: hyperv1.AzureKMSKeyVaultTypeManagedHSM,
+ expectManagedHSM: true,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ g := NewWithT(t)
+ spec := &hyperv1.AzureKMSSpec{
+ ActiveKey: hyperv1.AzureKMSKey{
+ KeyVaultName: "vault",
+ KeyName: "key",
+ KeyVersion: "1",
+ },
+ BackupKey: &hyperv1.AzureKMSKey{ //nolint:staticcheck
+ KeyVaultName: "vault",
+ KeyName: "backup",
+ KeyVersion: "1",
+ },
+ KeyVaultType: tt.keyVaultType,
+ }
+ provider, err := NewAzureKMSProvider(spec.ActiveKey, spec.BackupKey, spec, "test-kms-image:latest") //nolint:staticcheck
+ g.Expect(err).NotTo(HaveOccurred())
+
+ podConfig, err := provider.GenerateKMSPodConfig()
+ g.Expect(err).NotTo(HaveOccurred())
+ for _, name := range []string{"azure-kms-provider-active", "azure-kms-provider-backup"} {
+ container := findContainer(podConfig.Containers, name)
+ g.Expect(container).NotTo(BeNil())
+ if tt.expectManagedHSM {
+ g.Expect(container.Args).To(ContainElement("--managed-hsm"))
+ } else {
+ g.Expect(container.Args).NotTo(ContainElement("--managed-hsm"))
+ }
+ }
+ })
+ }
+}
+
+func TestAzureKMSProviderName(t *testing.T) {
+ const legacyProviderName = "azure-be23a676"
+ key := hyperv1.AzureKMSKey{KeyVaultName: "vault", KeyName: "key", KeyVersion: "1"}
+
+ tests := []struct {
+ name string
+ keyVaultType hyperv1.AzureKMSKeyVaultType
+ expectLegacy bool
+ }{
+ {
+ name: "When keyVaultType is omitted, it should produce the legacy provider name",
+ expectLegacy: true,
+ },
+ {
+ name: "When keyVaultType is KeyVault, it should preserve the legacy provider name",
+ keyVaultType: hyperv1.AzureKMSKeyVaultTypeKeyVault,
+ expectLegacy: true,
+ },
+ {
+ name: "When keyVaultType is ManagedHSM, it should produce a different provider name",
+ keyVaultType: hyperv1.AzureKMSKeyVaultTypeManagedHSM,
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ g := NewWithT(t)
+ name, err := AzureKMSProviderName(key, tt.keyVaultType)
+ g.Expect(err).NotTo(HaveOccurred())
+ if tt.expectLegacy {
+ g.Expect(name).To(Equal(legacyProviderName))
+ } else {
+ g.Expect(name).NotTo(Equal(legacyProviderName))
+ }
+ })
+ }
+}
+
+func findContainer(containers []corev1.Container, name string) *corev1.Container {
+ for i := range containers {
+ if containers[i].Name == name {
+ return &containers[i]
+ }
+ }
+ return nil
+}