Skip to content

Commit

Permalink
add more options to override network settings (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
duzitong authored Oct 25, 2024
1 parent 20aa22b commit 4e721ff
Show file tree
Hide file tree
Showing 3 changed files with 120 additions and 12 deletions.
62 changes: 59 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,14 @@ Type: `bool`

Default: `true`

### <a name="input_compute_override_qos_policy"></a> [compute\_override\_qos\_policy](#input\_compute\_override\_qos\_policy)

Description: Indicates whether to override qos policy for compute network.

Type: `bool`

Default: `false`

### <a name="input_compute_qos_policy_overrides"></a> [compute\_qos\_policy\_overrides](#input\_compute\_qos\_policy\_overrides)

Description: QoS policy overrides for network settings with required properties for compute.
Expand Down Expand Up @@ -336,6 +344,22 @@ Type: `bool`

Default: `false`

### <a name="input_compute_rdma_jumbo_packet"></a> [compute\_rdma\_jumbo\_packet](#input\_compute\_rdma\_jumbo\_packet)

Description: The jumbo packet size for RDMA of compute network.

Type: `string`

Default: `"9014"`

### <a name="input_compute_rdma_protocol"></a> [compute\_rdma\_protocol](#input\_compute\_rdma\_protocol)

Description: The RDMA protocol of compute network.

Type: `string`

Default: `"RoCEv2"`

### <a name="input_compute_traffic_type"></a> [compute\_traffic\_type](#input\_compute\_traffic\_type)

Description: Traffic type of compute.
Expand Down Expand Up @@ -602,6 +626,14 @@ Type: `bool`

Default: `true`

### <a name="input_override_qos_policy"></a> [override\_qos\_policy](#input\_override\_qos\_policy)

Description: Indicates whether to override qos policy for converged network.

Type: `bool`

Default: `false`

### <a name="input_qos_policy_overrides"></a> [qos\_policy\_overrides](#input\_qos\_policy\_overrides)

Description: QoS policy overrides for network settings with required properties.
Expand Down Expand Up @@ -644,15 +676,15 @@ Default: `false`

### <a name="input_rdma_jumbo_packet"></a> [rdma\_jumbo\_packet](#input\_rdma\_jumbo\_packet)

Description: The jumbo packet size for RDMA.
Description: The jumbo packet size for RDMA of converged network.

Type: `string`

Default: `"9014"`

### <a name="input_rdma_protocol"></a> [rdma\_protocol](#input\_rdma\_protocol)

Description: The RDMA protocol.
Description: The RDMA protocol of converged network.

Type: `string`

Expand Down Expand Up @@ -762,12 +794,20 @@ Default: `"Storage"`

### <a name="input_storage_override_adapter_property"></a> [storage\_override\_adapter\_property](#input\_storage\_override\_adapter\_property)

Description: Indicates whether to override adapter property for storagte.
Description: Indicates whether to override adapter property for storage network.

Type: `bool`

Default: `true`

### <a name="input_storage_override_qos_policy"></a> [storage\_override\_qos\_policy](#input\_storage\_override\_qos\_policy)

Description: Indicates whether to override qos policy for storage network.

Type: `bool`

Default: `false`

### <a name="input_storage_qos_policy_overrides"></a> [storage\_qos\_policy\_overrides](#input\_storage\_qos\_policy\_overrides)

Description: QoS policy overrides for network settings with required properties for storage.
Expand Down Expand Up @@ -800,6 +840,22 @@ Type: `bool`

Default: `false`

### <a name="input_storage_rdma_jumbo_packet"></a> [storage\_rdma\_jumbo\_packet](#input\_storage\_rdma\_jumbo\_packet)

Description: The jumbo packet size for RDMA of storage network.

Type: `string`

Default: `"9014"`

### <a name="input_storage_rdma_protocol"></a> [storage\_rdma\_protocol](#input\_storage\_rdma\_protocol)

Description: The RDMA protocol of storage network.

Type: `string`

Default: `"RoCEv2"`

### <a name="input_storage_tags"></a> [storage\_tags](#input\_storage\_tags)

Description: (Optional) Tags of the storage.
Expand Down
22 changes: 16 additions & 6 deletions locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,12 @@ locals {
]
combined_adapters = setintersection(toset(var.management_adapters), toset(local.storage_adapters))
combined_keyvault_secrets = length(var.keyvault_secrets) != 0 ? var.keyvault_secrets : local.auto_generated_secrets
converged = (length(local.combined_adapters) == length(var.management_adapters)) && (length(local.combined_adapters) == length(local.storage_adapters))
compute_rdma_adapter_properties = {
jumboPacket = var.compute_rdma_jumbo_packet
networkDirect = "Enabled"
networkDirectTechnology = var.compute_rdma_protocol
}
converged = (length(local.combined_adapters) == length(var.management_adapters)) && (length(local.combined_adapters) == length(local.storage_adapters))
converged_intents = [{
name = var.intent_name,
trafficType = var.traffic_type,
Expand All @@ -31,7 +36,7 @@ locals {
enableIov = "",
loadBalancingAlgorithm = ""
},
overrideQosPolicy = false,
overrideQosPolicy = var.override_qos_policy,
qosPolicyOverrides = var.qos_policy_overrides,
overrideAdapterProperty = var.override_adapter_property,
adapterPropertyOverrides = var.rdma_enabled ? local.rdma_adapter_properties : local.adapter_properties
Expand Down Expand Up @@ -158,28 +163,28 @@ locals {
trafficType = var.compute_traffic_type,
adapter = flatten(var.management_adapters)
overrideVirtualSwitchConfiguration = false,
overrideQosPolicy = false,
overrideQosPolicy = var.compute_override_qos_policy,
overrideAdapterProperty = var.compute_override_adapter_property,
virtualSwitchConfigurationOverrides = {
enableIov = "",
loadBalancingAlgorithm = ""
},
qosPolicyOverrides = var.compute_qos_policy_overrides,
adapterPropertyOverrides = var.compute_rdma_enabled ? local.rdma_adapter_properties : local.adapter_properties
adapterPropertyOverrides = var.compute_rdma_enabled ? local.compute_rdma_adapter_properties : local.adapter_properties
},
{
name = var.storage_intent_name,
trafficType = var.storage_traffic_type,
adapter = local.storage_adapters,
overrideVirtualSwitchConfiguration = false,
overrideQosPolicy = false,
overrideQosPolicy = var.storage_override_qos_policy,
overrideAdapterProperty = var.storage_override_adapter_property,
virtualSwitchConfigurationOverrides = {
enableIov = "",
loadBalancingAlgorithm = ""
},
qosPolicyOverrides = var.storage_qos_policy_overrides,
adapterPropertyOverrides = var.storage_rdma_enabled ? local.rdma_adapter_properties : local.adapter_properties
adapterPropertyOverrides = var.storage_rdma_enabled ? local.storage_rdma_adapter_properties : local.adapter_properties
}]
storage_adapters = flatten([for storageNetwork in var.storage_networks : storageNetwork.networkAdapterName])
storage_networks = var.storage_adapter_ip_info == null ? flatten(var.storage_networks) : [
Expand All @@ -190,6 +195,11 @@ locals {
storageAdapterIPInfo = var.storage_adapter_ip_info[storageNetwork.name]
}
]
storage_rdma_adapter_properties = {
jumboPacket = var.storage_rdma_jumbo_packet
networkDirect = "Enabled"
networkDirectTechnology = var.storage_rdma_protocol
}
witness_secret = {
eceSecretName = "WitnessStorageKey"
secretSuffix = "WitnessStorageKey"
Expand Down
48 changes: 45 additions & 3 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,12 @@ variable "compute_override_adapter_property" {
description = "Indicates whether to override adapter property for compute."
}

variable "compute_override_qos_policy" {
type = bool
default = false
description = "Indicates whether to override qos policy for compute network."
}

variable "compute_qos_policy_overrides" {
type = object({
priorityValue8021Action_SMB = string
Expand All @@ -223,6 +229,18 @@ variable "compute_rdma_enabled" {
description = "Indicates whether RDMA is enabled for compute."
}

variable "compute_rdma_jumbo_packet" {
type = string
default = "9014"
description = "The jumbo packet size for RDMA of compute network."
}

variable "compute_rdma_protocol" {
type = string
default = "RoCEv2"
description = "The RDMA protocol of compute network."
}

variable "compute_traffic_type" {
type = list(string)
default = [
Expand Down Expand Up @@ -446,6 +464,12 @@ variable "override_adapter_property" {
description = "Indicates whether to override adapter property."
}

variable "override_qos_policy" {
type = bool
default = false
description = "Indicates whether to override qos policy for converged network."
}

variable "qos_policy_overrides" {
type = object({
priorityValue8021Action_SMB = string
Expand Down Expand Up @@ -475,13 +499,13 @@ variable "rdma_enabled" {
variable "rdma_jumbo_packet" {
type = string
default = "9014"
description = "The jumbo packet size for RDMA."
description = "The jumbo packet size for RDMA of converged network."
}

variable "rdma_protocol" {
type = string
default = "RoCEv2"
description = "The RDMA protocol."
description = "The RDMA protocol of converged network."
}

variable "resource_group_location" {
Expand Down Expand Up @@ -566,7 +590,13 @@ variable "storage_intent_name" {
variable "storage_override_adapter_property" {
type = bool
default = true
description = "Indicates whether to override adapter property for storagte."
description = "Indicates whether to override adapter property for storage network."
}

variable "storage_override_qos_policy" {
type = bool
default = false
description = "Indicates whether to override qos policy for storage network."
}

variable "storage_qos_policy_overrides" {
Expand All @@ -589,6 +619,18 @@ variable "storage_rdma_enabled" {
description = "Indicates whether RDMA is enabled for storage. Storage RDMA will be enabled if either rdma_enabled or storage_rdma_enabled is set to true."
}

variable "storage_rdma_jumbo_packet" {
type = string
default = "9014"
description = "The jumbo packet size for RDMA of storage network."
}

variable "storage_rdma_protocol" {
type = string
default = "RoCEv2"
description = "The RDMA protocol of storage network."
}

variable "storage_tags" {
type = map(string)
default = null
Expand Down

0 comments on commit 4e721ff

Please sign in to comment.