-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
4.20
-
Quality / Stability / Reliability
-
False
-
-
None
-
Moderate
-
None
-
None
-
None
-
OpenShift SPLAT - Sprint 276, OpenShift SPLAT - Sprint 277, OpenShift SPLAT - Sprint 278, OpenShift SPLAT - Sprint 279, OpenShift SPLAT - Sprint 280
-
5
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description of problem:
In install-config.yaml file, set dataDisks under both controlPlane and compute sections as below, installation is successful, but settings are not applied on all nodes.
compute:
- architecture: amd64
hyperthreading: Enabled
name: worker
platform:
azure:
encryptionAtHost: true
settings:
securityType: ConfidentialVM
confidentialVM:
uefiSettings:
secureBoot: Enabled
virtualizedTrustedPlatformModule: Enabled
osDisk:
securityProfile:
securityEncryptionType: VMGuestStateOnly
type: Standard_DC4ads_v5
dataDisks:
- cachingType: ReadWrite
diskSizeGB: 256
lun: 1
nameSuffix: vardisk
managedDisk:
storageAccountType: Premium_LRS
securityProfile:
securityEncryptionType: VMGuestStateOnly
diskSetup:
- type: user-defined
userDefined:
platformDiskID: vardisk
mountPath: /var
replicas: 3
controlPlane:
architecture: amd64
hyperthreading: Enabled
name: master
platform:
azure:
encryptionAtHost: false
settings:
securityType: ConfidentialVM
confidentialVM:
uefiSettings:
secureBoot: Enabled
virtualizedTrustedPlatformModule: Enabled
osDisk:
securityProfile:
securityEncryptionType: VMGuestStateOnly
type: Standard_DC8ads_v5
dataDisks:
- cachingType: ReadWrite
diskSizeGB: 256
lun: 1
nameSuffix: uddisk
managedDisk:
storageAccountType: Premium_LRS
securityProfile:
securityEncryptionType: VMGuestStateOnly
diskSetup:
- type: user-defined
userDefined:
platformDiskID: uddisk
mountPath: /var/lib/containers
replicas: 3
For master nodes, the spec in cluster api machine manifests looks correct.
$ cat 10_inframachine_jimamdisk-789cj-master-0.yaml
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
......
spec:
additionalCapabilities:
ultraSSDEnabled: false
additionalTags:
kubernetes.io_cluster.jimamdisk-789cj: owned
dataDisks:
- cachingType: ReadWrite
diskSizeGB: 256
lun: 1
managedDisk:
securityProfile:
securityEncryptionType: VMGuestStateOnly
storageAccountType: Premium_LRS
nameSuffix: uddisk
But securityProfile on created master machine is null.
$ az vm show -n jimamdisk-4bgfj-master-0 -g jimamdisk-4bgfj-rg --query storageProfile.dataDisks[].managedDisk
[
{
"diskEncryptionSet": null,
"id": "/subscriptions/53b8f551-f0fc-4bea-8cba-6d1fefd54c8a/resourceGroups/jimamdisk-4bgfj-rg/providers/Microsoft.Compute/disks/jimamdisk-4bgfj-master-0_uddisk",
"resourceGroup": "jimamdisk-4bgfj-rg",
"securityProfile": null,
"storageAccountType": "Premium_LRS"
}
]
For worker nodes, after generating manifests, the spec in worker machineset manifests yaml file does not include securityProfile settings.
$ cat 99_openshift-cluster-api_worker-machineset-0.yaml
apiVersion: machine.openshift.io/v1beta1
......
spec:
......
template:
spec:
providerSpec:
value:
apiVersion: machine.openshift.io/v1beta1
credentialsSecret:
name: azure-cloud-credentials
namespace: openshift-machine-api
dataDisks:
- cachingType: ReadWrite
deletionPolicy: Delete
diskSizeGB: 256
lun: 1
managedDisk:
storageAccountType: Premium_LRS
nameSuffix: vardisk
Version-Release number of selected component (if applicable):
built from PR https://github.com/openshift/installer/pull/9706
How reproducible:
Always
Steps to Reproduce:
1. Configure dataDisk with 'VMGuestStateOnly' security encryption type
2. Install cluster
3. check each node to make sure that specified securityEncryptionType is applied
Actual results:
Specified securityEncryptionType is not applied on all nodes.
Expected results:
Specified securityEncryptionType is not applied on each node.
Additional info:
Besides above issue, when user configures dataDisks.managedDisk.securityProfile, field 'settings.securityType' under controlPlane/compute/defaultMachinePlatform should be 'ConfidentialVM' to make sure that machine is provisioned with confidentialVM security type. Otherwise, master machines will be provisioned failed with error:
WARNING Condition VMRunning has status: "False", reason: "Failed", message: "virtualmachine failed to create or update. err: failed to create or update resource jimadisk-lcp8j-rg/jimadisk-lcp8j-master-1 (service: virtualmachine): PUT https://management.azure.com/subscriptions/53b8f551-f0fc-4bea-8cba-6d1fefd54c8a/resourceGroups/jimadisk-lcp8j-rg/providers/Microsoft.Compute/virtualMachines/jimadisk-lcp8j-master-1\n--------------------------------------------------------------------------------\nRESPONSE 400: 400 Bad Request\nERROR CODE: BadRequest\n--------------------------------------------------------------------------------\n{\n \"error\": {\n \"code\": \"BadRequest\",\n \"message\": \"The VM size 'Standard_DC4ads_v5' is not supported for creation of VMs and Virtual Machine Scale Set with '<NULL>' security type.\"\n }\n}
So suggest having a pre-check for this case.