Skip to content

Commit c378781

Browse files
Merge pull request #9007 from openshift-cherrypick-robot/cherry-pick-9000-to-release-4.17
[release-4.17] OCPBUGS-41300: Azure CAPI: Improve handling of security features configured on the MachinePools and OSDisk
2 parents e63d309 + ba157e8 commit c378781

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

pkg/asset/machines/azure/azuremachines.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ func GenerateMachines(clusterID, resourceGroup, subscriptionID string, in *Machi
9393
image = &capz.Image{ID: &imageID}
9494
}
9595

96+
// Set up OSDisk
9697
osDisk := capz.OSDisk{
9798
OSType: "Linux",
9899
DiskSizeGB: &mpool.DiskSizeGB,
@@ -101,16 +102,31 @@ func GenerateMachines(clusterID, resourceGroup, subscriptionID string, in *Machi
101102
},
102103
CachingType: "ReadWrite",
103104
}
104-
ultrassd := mpool.UltraSSDCapability == "Enabled"
105-
additionalCapabilities := &capz.AdditionalCapabilities{
106-
UltraSSDEnabled: &ultrassd,
107-
}
108105
if in.Pool.Platform.Azure.DiskEncryptionSet != nil {
109106
osDisk.ManagedDisk.DiskEncryptionSet = &capz.DiskEncryptionSetParameters{
110107
ID: mpool.OSDisk.DiskEncryptionSet.ToID(),
111108
}
112109
}
113110

111+
var diskSecurityProfile capz.VMDiskSecurityProfile
112+
if mpool.OSDisk.SecurityProfile != nil && mpool.OSDisk.SecurityProfile.SecurityEncryptionType != "" {
113+
diskSecurityProfile = capz.VMDiskSecurityProfile{
114+
SecurityEncryptionType: capz.SecurityEncryptionType(mpool.OSDisk.SecurityProfile.SecurityEncryptionType),
115+
}
116+
117+
if mpool.OSDisk.SecurityProfile.DiskEncryptionSet != nil {
118+
diskSecurityProfile.DiskEncryptionSet = &capz.DiskEncryptionSetParameters{
119+
ID: mpool.OSDisk.SecurityProfile.DiskEncryptionSet.ToID(),
120+
}
121+
}
122+
osDisk.ManagedDisk.SecurityProfile = &diskSecurityProfile
123+
}
124+
125+
ultrassd := mpool.UltraSSDCapability == "Enabled"
126+
additionalCapabilities := &capz.AdditionalCapabilities{
127+
UltraSSDEnabled: &ultrassd,
128+
}
129+
114130
machineProfile := generateSecurityProfile(mpool)
115131
securityProfile := &capz.SecurityProfile{
116132
EncryptionAtHost: machineProfile.EncryptionAtHost,

pkg/infrastructure/azure/azure.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ func (p *Provider) InfraReady(ctx context.Context, in clusterapi.InfraReadyInput
433433
// If Control Plane Security Type is provided, then pass that along
434434
// during Gen V2 Gallery Image creation. It will be added as a
435435
// supported feature of the image.
436-
securityType, err := getControlPlaneSecurityType(in)
436+
securityType, err := getMachinePoolSecurityType(in)
437437
if err != nil {
438438
return err
439439
}
@@ -887,17 +887,17 @@ func (p Provider) Ignition(ctx context.Context, in clusterapi.IgnitionInput) ([]
887887
return ignSecrets, nil
888888
}
889889

890-
func getControlPlaneSecurityType(in clusterapi.InfraReadyInput) (string, error) {
890+
func getMachinePoolSecurityType(in clusterapi.InfraReadyInput) (string, error) {
891891
var securityType aztypes.SecurityTypes
892-
if in.InstallConfig.Config.ControlPlane != nil {
892+
if in.InstallConfig.Config.ControlPlane != nil && in.InstallConfig.Config.ControlPlane.Platform.Azure != nil {
893893
pool := in.InstallConfig.Config.ControlPlane.Platform.Azure
894-
if pool.EncryptionAtHost && pool.Settings != nil {
894+
if pool.Settings != nil {
895895
securityType = pool.Settings.SecurityType
896896
}
897897
}
898898
if securityType == "" && in.InstallConfig.Config.Platform.Azure.DefaultMachinePlatform != nil {
899899
pool := in.InstallConfig.Config.Platform.Azure.DefaultMachinePlatform
900-
if pool.EncryptionAtHost && pool.Settings != nil {
900+
if pool.Settings != nil {
901901
securityType = pool.Settings.SecurityType
902902
}
903903
}

0 commit comments

Comments
 (0)