diff --git a/provider/cmd/pulumi-resource-spotinst/bridge-metadata.json b/provider/cmd/pulumi-resource-spotinst/bridge-metadata.json index 75327efb..885de901 100644 --- a/provider/cmd/pulumi-resource-spotinst/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-spotinst/bridge-metadata.json @@ -1049,6 +1049,16 @@ "health": { "maxItemsOne": true }, + "linux_os_config": { + "maxItemsOne": false, + "elem": { + "fields": { + "sysctls": { + "maxItemsOne": false + } + } + } + }, "pod_subnet_ids": { "maxItemsOne": false }, @@ -1065,6 +1075,30 @@ } } } + }, + "tasks": { + "maxItemsOne": false, + "elem": { + "fields": { + "parameters": { + "maxItemsOne": true, + "elem": { + "fields": { + "parameters_cluster_roll": { + "maxItemsOne": true, + "elem": { + "fields": { + "vng_ids": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + } } } } @@ -1131,6 +1165,16 @@ "headrooms": { "maxItemsOne": false }, + "linux_os_config": { + "maxItemsOne": false, + "elem": { + "fields": { + "sysctls": { + "maxItemsOne": false + } + } + } + }, "pod_subnet_ids": { "maxItemsOne": false }, diff --git a/provider/cmd/pulumi-resource-spotinst/schema.json b/provider/cmd/pulumi-resource-spotinst/schema.json index ad2d996e..8cc8ae05 100644 --- a/provider/cmd/pulumi-resource-spotinst/schema.json +++ b/provider/cmd/pulumi-resource-spotinst/schema.json @@ -4341,11 +4341,36 @@ }, "type": "object" }, + "spotinst:azure/OceanNpLinuxOsConfig:OceanNpLinuxOsConfig": { + "properties": { + "sysctls": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpLinuxOsConfigSysctl:OceanNpLinuxOsConfigSysctl" + }, + "description": "System Controls\n" + } + }, + "type": "object" + }, + "spotinst:azure/OceanNpLinuxOsConfigSysctl:OceanNpLinuxOsConfigSysctl": { + "properties": { + "vmMaxMapCount": { + "type": "integer" + } + }, + "type": "object" + }, "spotinst:azure/OceanNpScheduling:OceanNpScheduling": { "properties": { "shutdownHours": { - "$ref": "#/types/spotinst:azure/OceanNpSchedulingShutdownHours:OceanNpSchedulingShutdownHours", - "description": "[Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down.\n" + "$ref": "#/types/spotinst:azure/OceanNpSchedulingShutdownHours:OceanNpSchedulingShutdownHours" + }, + "tasks": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpSchedulingTask:OceanNpSchedulingTask" + } } }, "type": "object" @@ -4362,11 +4387,64 @@ } } }, + "type": "object" + }, + "spotinst:azure/OceanNpSchedulingTask:OceanNpSchedulingTask": { + "properties": { + "cronExpression": { + "type": "string" + }, + "isEnabled": { + "type": "boolean" + }, + "parameters": { + "$ref": "#/types/spotinst:azure/OceanNpSchedulingTaskParameters:OceanNpSchedulingTaskParameters" + }, + "taskType": { + "type": "string" + } + }, "type": "object", "required": [ - "timeWindows" + "cronExpression", + "isEnabled", + "taskType" ] }, + "spotinst:azure/OceanNpSchedulingTaskParameters:OceanNpSchedulingTaskParameters": { + "properties": { + "parametersClusterRoll": { + "$ref": "#/types/spotinst:azure/OceanNpSchedulingTaskParametersParametersClusterRoll:OceanNpSchedulingTaskParametersParametersClusterRoll" + } + }, + "type": "object" + }, + "spotinst:azure/OceanNpSchedulingTaskParametersParametersClusterRoll:OceanNpSchedulingTaskParametersParametersClusterRoll": { + "properties": { + "batchMinHealthyPercentage": { + "type": "integer" + }, + "batchSizePercentage": { + "type": "integer" + }, + "comment": { + "type": "string" + }, + "respectPdb": { + "type": "boolean" + }, + "respectRestrictScaleDown": { + "type": "boolean" + }, + "vngIds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object" + }, "spotinst:azure/OceanNpTaint:OceanNpTaint": { "properties": { "effect": { @@ -4545,6 +4623,26 @@ }, "type": "object" }, + "spotinst:azure/OceanNpVirtualNodeGroupLinuxOsConfig:OceanNpVirtualNodeGroupLinuxOsConfig": { + "properties": { + "sysctls": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupLinuxOsConfigSysctl:OceanNpVirtualNodeGroupLinuxOsConfigSysctl" + }, + "description": "System Controls\n" + } + }, + "type": "object" + }, + "spotinst:azure/OceanNpVirtualNodeGroupLinuxOsConfigSysctl:OceanNpVirtualNodeGroupLinuxOsConfigSysctl": { + "properties": { + "vmMaxMapCount": { + "type": "integer" + } + }, + "type": "object" + }, "spotinst:azure/OceanNpVirtualNodeGroupTaint:OceanNpVirtualNodeGroupTaint": { "properties": { "effect": { @@ -13780,7 +13878,7 @@ } }, "spotinst:azure/oceanNp:OceanNp": { - "description": "Manages a Spotinst Ocean AKS resource.\n\n## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.azure.OceanNp(\"example\", {\n name: \"test\",\n aksRegion: \"eastus\",\n aksClusterName: \"test-cluster\",\n aksInfrastructureResourceGroupName: \"MC_TestResourceGroup_test-cluster_eastus\",\n aksResourceGroupName: \"TestResourceGroup\",\n controllerClusterId: \"test-123124\",\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.azure.OceanNp(\"example\",\n name=\"test\",\n aks_region=\"eastus\",\n aks_cluster_name=\"test-cluster\",\n aks_infrastructure_resource_group_name=\"MC_TestResourceGroup_test-cluster_eastus\",\n aks_resource_group_name=\"TestResourceGroup\",\n controller_cluster_id=\"test-123124\",\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new SpotInst.Azure.OceanNp(\"example\", new()\n {\n Name = \"test\",\n AksRegion = \"eastus\",\n AksClusterName = \"test-cluster\",\n AksInfrastructureResourceGroupName = \"MC_TestResourceGroup_test-cluster_eastus\",\n AksResourceGroupName = \"TestResourceGroup\",\n ControllerClusterId = \"test-123124\",\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/azure\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azure.NewOceanNp(ctx, \"example\", \u0026azure.OceanNpArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tAksRegion: pulumi.String(\"eastus\"),\n\t\t\tAksClusterName: pulumi.String(\"test-cluster\"),\n\t\t\tAksInfrastructureResourceGroupName: pulumi.String(\"MC_TestResourceGroup_test-cluster_eastus\"),\n\t\t\tAksResourceGroupName: pulumi.String(\"TestResourceGroup\"),\n\t\t\tControllerClusterId: pulumi.String(\"test-123124\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.azure.OceanNp;\nimport com.pulumi.spotinst.azure.OceanNpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanNp(\"example\", OceanNpArgs.builder() \n .name(\"test\")\n .aksRegion(\"eastus\")\n .aksClusterName(\"test-cluster\")\n .aksInfrastructureResourceGroupName(\"MC_TestResourceGroup_test-cluster_eastus\")\n .aksResourceGroupName(\"TestResourceGroup\")\n .controllerClusterId(\"test-123124\")\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:azure:OceanNp\n properties:\n name: test\n aksRegion: eastus\n aksClusterName: test-cluster\n aksInfrastructureResourceGroupName: MC_TestResourceGroup_test-cluster_eastus\n aksResourceGroupName: TestResourceGroup\n controllerClusterId: test-123124\n availabilityZones: # -------------------------------------------------------------------\n - '1'\n - '2'\n - '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e \n \n## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values\n\n```hcl \nresource \"spotinst_ocean_aks_np\" \"example\" {\n \n name = \"test\"\n \n // --- AKS -------------------------------------------------------------------------\n \n aks_region = \"eastus\"\n aks_cluster_name = \"test-cluster\"\n aks_infrastructure_resource_group_name = \"MC_TestResourceGroup_test-cluster_eastus\"\n aks_resource_group_name = \"TestResourceGroup\"\n \n // ---------------------------------------------------------------------------------\n\n controller_cluster_id = \"test-123124\"\n\n // --- Auto Scaler ---------------------------------------------------\n \n autoscaler {\n autoscale_is_enabled = true\n resource_limits {\n max_vcpu = 750\n max_memory_gib = 1500\n }\n autoscale_down {\n max_scale_down_percentage = 30\n }\n autoscale_headroom {\n automatic {\n is_enabled = true\n percentage = 5\n }\n }\n }\n \n // ----------------------------------------------------------------------\n\n // --- Health -----------------------------------------------------------\n \n health {\n grace_period = 600\n }\n \n // ----------------------------------------------------------------------\n\n // --- Scheduling -------------------------------------------------------\n \n scheduling {\n shutdown_hours{\n is_enabled = true\n time_windows = [\"Sat:08:00-Sun:08:00\"]\n }\n }\n \n // ----------------------------------------------------------------------\n\n // --- virtualNodeGroupTemplate -----------------------------------------\n\n // --- autoscale --------------------------------------------------------\n headrooms {\n cpu_per_unit = 1024\n memory_per_unit = 512\n gpu_per_unit = 0\n num_of_units = 2\n }\n // ----------------------------------------------------------------------\n \n availability_zones = [\n \"1\",\n \"2\",\n \"3\"\n ]\n labels = {\n key = \"env\"\n value = \"test\"\n }\n \n // --- nodeCountLimits --------------------------------------------------\n \n min_count = 1\n max_count = 100\n \n // ----------------------------------------------------------------------\n\n // --- nodePoolProperties -----------------------------------------------\n \n max_pods_per_node = 30\n enable_node_public_ip = true\n os_disk_size_gb = 30\n os_disk_type = \"Managed\"\n os_type = \"Windows\"\n os_sku = \"Windows2022\"\n kubernetes_version = \"1.26\"\n pod_subnet_ids = [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"]\n vnet_subnet_ids = [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"]\n\n // ----------------------------------------------------------------------\n\n // --- strategy ---------------------------------------------------------\n \n spot_percentage = 50\n fallback_to_ondemand = true\n\n // ----------------------------------------------------------------------\n\n taints {\n key = \"taintKey\"\n value = \"taintValue\"\n effect = \"NoSchedule\"\n }\n\n tags = {\n tagKey = \"env\"\n tagValue = \"staging\"\n }\n // --- vmSizes ----------------------------------------------------------\n \n filters {\n min_vcpu = 2\n max_vcpu = 16\n min_memory_gib = 8\n max_memory_gib = 128\n architectures = [\"x86_64\", \"arm64\"]\n series = [\"D v3\", \"Dds_v4\", \"Dsv2\"]\n exclude_series = [\"Av2\", \"A\", \"Bs\", \"D\", \"E\"]\n accelerated_networking = \"Enabled\"\n disk_performance = \"Premium\"\n min_gpu = 1\n max_gpu = 2\n min_nics = 1\n vm_types = [\"generalPurpose\", \"GPU\"]\n min_disk = 1\n gpu_types = [\"nvidia-tesla-t4\"]\n }\n \n // ----------------------------------------------------------------------\n}\n```\n\n```\noutput \"ocean_id\" {\n value = spotinst_ocean_aks_np.example.id\n}\n```\n\n", + "description": "Manages a Spotinst Ocean AKS resource.\n\n## Basic Ocean Cluster Creation Usage Example - using minimum configuration with only required parameters\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.azure.OceanNp(\"example\", {\n name: \"test\",\n aksRegion: \"eastus\",\n aksClusterName: \"test-cluster\",\n aksInfrastructureResourceGroupName: \"MC_TestResourceGroup_test-cluster_eastus\",\n aksResourceGroupName: \"TestResourceGroup\",\n controllerClusterId: \"test-123124\",\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.azure.OceanNp(\"example\",\n name=\"test\",\n aks_region=\"eastus\",\n aks_cluster_name=\"test-cluster\",\n aks_infrastructure_resource_group_name=\"MC_TestResourceGroup_test-cluster_eastus\",\n aks_resource_group_name=\"TestResourceGroup\",\n controller_cluster_id=\"test-123124\",\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new SpotInst.Azure.OceanNp(\"example\", new()\n {\n Name = \"test\",\n AksRegion = \"eastus\",\n AksClusterName = \"test-cluster\",\n AksInfrastructureResourceGroupName = \"MC_TestResourceGroup_test-cluster_eastus\",\n AksResourceGroupName = \"TestResourceGroup\",\n ControllerClusterId = \"test-123124\",\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/azure\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azure.NewOceanNp(ctx, \"example\", \u0026azure.OceanNpArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t\tAksRegion: pulumi.String(\"eastus\"),\n\t\t\tAksClusterName: pulumi.String(\"test-cluster\"),\n\t\t\tAksInfrastructureResourceGroupName: pulumi.String(\"MC_TestResourceGroup_test-cluster_eastus\"),\n\t\t\tAksResourceGroupName: pulumi.String(\"TestResourceGroup\"),\n\t\t\tControllerClusterId: pulumi.String(\"test-123124\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.azure.OceanNp;\nimport com.pulumi.spotinst.azure.OceanNpArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanNp(\"example\", OceanNpArgs.builder() \n .name(\"test\")\n .aksRegion(\"eastus\")\n .aksClusterName(\"test-cluster\")\n .aksInfrastructureResourceGroupName(\"MC_TestResourceGroup_test-cluster_eastus\")\n .aksResourceGroupName(\"TestResourceGroup\")\n .controllerClusterId(\"test-123124\")\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:azure:OceanNp\n properties:\n name: test\n aksRegion: eastus\n aksClusterName: test-cluster\n aksInfrastructureResourceGroupName: MC_TestResourceGroup_test-cluster_eastus\n aksResourceGroupName: TestResourceGroup\n controllerClusterId: test-123124\n availabilityZones: # -------------------------------------------------------------------\n - '1'\n - '2'\n - '3'\n```\n\u003c!--End PulumiCodeChooser --\u003e \n \n## Detailed Ocean Cluster Creation Usage Example - using all available parameters with sample values\n\n```hcl \nresource \"spotinst_ocean_aks_np\" \"example\" {\n \n name = \"test\"\n \n // --- AKS -------------------------------------------------------------------------\n \n aks_region = \"eastus\"\n aks_cluster_name = \"test-cluster\"\n aks_infrastructure_resource_group_name = \"MC_TestResourceGroup_test-cluster_eastus\"\n aks_resource_group_name = \"TestResourceGroup\"\n \n // ---------------------------------------------------------------------------------\n\n controller_cluster_id = \"test-123124\"\n\n // --- Auto Scaler ---------------------------------------------------\n \n autoscaler {\n autoscale_is_enabled = true\n resource_limits {\n max_vcpu = 750\n max_memory_gib = 1500\n }\n autoscale_down {\n max_scale_down_percentage = 30\n }\n autoscale_headroom {\n automatic {\n is_enabled = true\n percentage = 5\n }\n }\n }\n \n // ----------------------------------------------------------------------\n\n // --- Health -----------------------------------------------------------\n \n health {\n grace_period = 600\n }\n \n // ----------------------------------------------------------------------\n\n // --- virtualNodeGroupTemplate -----------------------------------------\n\n // --- autoscale --------------------------------------------------------\n headrooms {\n cpu_per_unit = 1024\n memory_per_unit = 512\n gpu_per_unit = 0\n num_of_units = 2\n }\n // ----------------------------------------------------------------------\n \n availability_zones = [\n \"1\",\n \"2\",\n \"3\"\n ]\n labels = {\n key = \"env\"\n value = \"test\"\n }\n \n // --- nodeCountLimits --------------------------------------------------\n \n min_count = 1\n max_count = 100\n \n // ----------------------------------------------------------------------\n\n // --- nodePoolProperties -----------------------------------------------\n \n max_pods_per_node = 30\n enable_node_public_ip = true\n os_disk_size_gb = 30\n os_disk_type = \"Managed\"\n os_type = \"Windows\"\n os_sku = \"Windows2022\"\n kubernetes_version = \"1.26\"\n pod_subnet_ids = [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"]\n vnet_subnet_ids = [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"]\n linux_os_config {\n sysctls {\n vm_max_map_count = 79550\n }\n }\n // ----------------------------------------------------------------------\n\n // --- strategy ---------------------------------------------------------\n \n spot_percentage = 50\n fallback_to_ondemand = true\n\n // ----------------------------------------------------------------------\n\n taints {\n key = \"taintKey\"\n value = \"taintValue\"\n effect = \"NoSchedule\"\n }\n\n tags = {\n tagKey = \"env\"\n tagValue = \"staging\"\n }\n // --- vmSizes ----------------------------------------------------------\n \n filters {\n min_vcpu = 2\n max_vcpu = 16\n min_memory_gib = 8\n max_memory_gib = 128\n architectures = [\"x86_64\", \"arm64\"]\n series = [\"D v3\", \"Dds_v4\", \"Dsv2\"]\n exclude_series = [\"Av2\", \"A\", \"Bs\", \"D\", \"E\"]\n accelerated_networking = \"Enabled\"\n disk_performance = \"Premium\"\n min_gpu = 1\n max_gpu = 2\n min_nics = 1\n vm_types = [\"generalPurpose\", \"GPU\"]\n min_disk = 1\n gpu_types = [\"nvidia-tesla-t4\"]\n }\n \n // ----------------------------------------------------------------------\n}\n```\n\n```\noutput \"ocean_id\" {\n value = spotinst_ocean_aks_np.example.id\n}\n```\n\n", "properties": { "aksClusterName": { "type": "string" @@ -13843,6 +13941,13 @@ }, "description": "An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).\n" }, + "linuxOsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpLinuxOsConfig:OceanNpLinuxOsConfig" + }, + "description": "Custom Linux OS configuration.\n" + }, "maxCount": { "type": "integer", "description": "Maximum node count limit.\n" @@ -13883,8 +13988,7 @@ "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "scheduling": { - "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling", - "description": "An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.\n" + "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling" }, "spotPercentage": { "type": "integer", @@ -13985,6 +14089,13 @@ }, "description": "An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).\n" }, + "linuxOsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpLinuxOsConfig:OceanNpLinuxOsConfig" + }, + "description": "Custom Linux OS configuration.\n" + }, "maxCount": { "type": "integer", "description": "Maximum node count limit.\n" @@ -14025,8 +14136,7 @@ "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "scheduling": { - "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling", - "description": "An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.\n" + "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling" }, "spotPercentage": { "type": "integer", @@ -14128,6 +14238,13 @@ }, "description": "An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels).\n" }, + "linuxOsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpLinuxOsConfig:OceanNpLinuxOsConfig" + }, + "description": "Custom Linux OS configuration.\n" + }, "maxCount": { "type": "integer", "description": "Maximum node count limit.\n" @@ -14168,8 +14285,7 @@ "description": "The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin).\n" }, "scheduling": { - "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling", - "description": "An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state.\n" + "$ref": "#/types/spotinst:azure/OceanNpScheduling:OceanNpScheduling" }, "spotPercentage": { "type": "integer", @@ -14203,7 +14319,7 @@ } }, "spotinst:azure/oceanNpVirtualNodeGroup:OceanNpVirtualNodeGroup": { - "description": "Manages a Spotinst Ocean AKS Virtual Node Groups resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.azure.OceanNpVirtualNodeGroup(\"example\", {\n name: \"testVng\",\n oceanId: \"o-134abcd\",\n headrooms: [{\n cpuPerUnit: 1024,\n memoryPerUnit: 512,\n gpuPerUnit: 0,\n numOfUnits: 2,\n }],\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n labels: {\n key: \"env\",\n value: \"test\",\n },\n minCount: 1,\n maxCount: 100,\n maxPodsPerNode: 30,\n enableNodePublicIp: true,\n osDiskSizeGb: 30,\n osDiskType: \"Managed\",\n osType: \"Linux\",\n osSku: \"Ubuntu\",\n kubernetesVersion: \"1.26\",\n podSubnetIds: [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n vnetSubnetIds: [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n spotPercentage: 50,\n fallbackToOndemand: true,\n taints: [{\n key: \"taintKey\",\n value: \"taintValue\",\n effect: \"NoSchedule\",\n }],\n tags: {\n tagKey: \"env\",\n tagValue: \"staging\",\n },\n filters: {\n minVcpu: 2,\n maxVcpu: 16,\n minMemoryGib: 8,\n maxMemoryGib: 128,\n architectures: [\n \"x86_64\",\n \"arm64\",\n ],\n series: [\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n ],\n excludeSeries: [\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n ],\n acceleratedNetworking: \"Enabled\",\n diskPerformance: \"Premium\",\n minGpu: 1,\n maxGpu: 2,\n minNics: 1,\n vmTypes: [\n \"generalPurpose\",\n \"GPU\",\n ],\n minDisk: 1,\n gpuTypes: [\"nvidia-tesla-t4\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.azure.OceanNpVirtualNodeGroup(\"example\",\n name=\"testVng\",\n ocean_id=\"o-134abcd\",\n headrooms=[spotinst.azure.OceanNpVirtualNodeGroupHeadroomArgs(\n cpu_per_unit=1024,\n memory_per_unit=512,\n gpu_per_unit=0,\n num_of_units=2,\n )],\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ],\n labels={\n \"key\": \"env\",\n \"value\": \"test\",\n },\n min_count=1,\n max_count=100,\n max_pods_per_node=30,\n enable_node_public_ip=True,\n os_disk_size_gb=30,\n os_disk_type=\"Managed\",\n os_type=\"Linux\",\n os_sku=\"Ubuntu\",\n kubernetes_version=\"1.26\",\n pod_subnet_ids=[\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n vnet_subnet_ids=[\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n spot_percentage=50,\n fallback_to_ondemand=True,\n taints=[spotinst.azure.OceanNpVirtualNodeGroupTaintArgs(\n key=\"taintKey\",\n value=\"taintValue\",\n effect=\"NoSchedule\",\n )],\n tags={\n \"tagKey\": \"env\",\n \"tagValue\": \"staging\",\n },\n filters=spotinst.azure.OceanNpVirtualNodeGroupFiltersArgs(\n min_vcpu=2,\n max_vcpu=16,\n min_memory_gib=8,\n max_memory_gib=128,\n architectures=[\n \"x86_64\",\n \"arm64\",\n ],\n series=[\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n ],\n exclude_series=[\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n ],\n accelerated_networking=\"Enabled\",\n disk_performance=\"Premium\",\n min_gpu=1,\n max_gpu=2,\n min_nics=1,\n vm_types=[\n \"generalPurpose\",\n \"GPU\",\n ],\n min_disk=1,\n gpu_types=[\"nvidia-tesla-t4\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new SpotInst.Azure.OceanNpVirtualNodeGroup(\"example\", new()\n {\n Name = \"testVng\",\n OceanId = \"o-134abcd\",\n Headrooms = new[]\n {\n new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupHeadroomArgs\n {\n CpuPerUnit = 1024,\n MemoryPerUnit = 512,\n GpuPerUnit = 0,\n NumOfUnits = 2,\n },\n },\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n Labels = \n {\n { \"key\", \"env\" },\n { \"value\", \"test\" },\n },\n MinCount = 1,\n MaxCount = 100,\n MaxPodsPerNode = 30,\n EnableNodePublicIp = true,\n OsDiskSizeGb = 30,\n OsDiskType = \"Managed\",\n OsType = \"Linux\",\n OsSku = \"Ubuntu\",\n KubernetesVersion = \"1.26\",\n PodSubnetIds = new[]\n {\n \"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\",\n },\n VnetSubnetIds = new[]\n {\n \"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\",\n },\n SpotPercentage = 50,\n FallbackToOndemand = true,\n Taints = new[]\n {\n new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupTaintArgs\n {\n Key = \"taintKey\",\n Value = \"taintValue\",\n Effect = \"NoSchedule\",\n },\n },\n Tags = \n {\n { \"tagKey\", \"env\" },\n { \"tagValue\", \"staging\" },\n },\n Filters = new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupFiltersArgs\n {\n MinVcpu = 2,\n MaxVcpu = 16,\n MinMemoryGib = 8,\n MaxMemoryGib = 128,\n Architectures = new[]\n {\n \"x86_64\",\n \"arm64\",\n },\n Series = new[]\n {\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n },\n ExcludeSeries = new[]\n {\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n },\n AcceleratedNetworking = \"Enabled\",\n DiskPerformance = \"Premium\",\n MinGpu = 1,\n MaxGpu = 2,\n MinNics = 1,\n VmTypes = new[]\n {\n \"generalPurpose\",\n \"GPU\",\n },\n MinDisk = 1,\n GpuTypes = new[]\n {\n \"nvidia-tesla-t4\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/azure\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azure.NewOceanNpVirtualNodeGroup(ctx, \"example\", \u0026azure.OceanNpVirtualNodeGroupArgs{\n\t\t\tName: pulumi.String(\"testVng\"),\n\t\t\tOceanId: pulumi.String(\"o-134abcd\"),\n\t\t\tHeadrooms: azure.OceanNpVirtualNodeGroupHeadroomArray{\n\t\t\t\t\u0026azure.OceanNpVirtualNodeGroupHeadroomArgs{\n\t\t\t\t\tCpuPerUnit: pulumi.Int(1024),\n\t\t\t\t\tMemoryPerUnit: pulumi.Int(512),\n\t\t\t\t\tGpuPerUnit: pulumi.Int(0),\n\t\t\t\t\tNumOfUnits: pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"env\"),\n\t\t\t\t\"value\": pulumi.Any(\"test\"),\n\t\t\t},\n\t\t\tMinCount: pulumi.Int(1),\n\t\t\tMaxCount: pulumi.Int(100),\n\t\t\tMaxPodsPerNode: pulumi.Int(30),\n\t\t\tEnableNodePublicIp: pulumi.Bool(true),\n\t\t\tOsDiskSizeGb: pulumi.Int(30),\n\t\t\tOsDiskType: pulumi.String(\"Managed\"),\n\t\t\tOsType: pulumi.String(\"Linux\"),\n\t\t\tOsSku: pulumi.String(\"Ubuntu\"),\n\t\t\tKubernetesVersion: pulumi.String(\"1.26\"),\n\t\t\tPodSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"),\n\t\t\t},\n\t\t\tVnetSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"),\n\t\t\t},\n\t\t\tSpotPercentage: pulumi.Int(50),\n\t\t\tFallbackToOndemand: pulumi.Bool(true),\n\t\t\tTaints: azure.OceanNpVirtualNodeGroupTaintArray{\n\t\t\t\t\u0026azure.OceanNpVirtualNodeGroupTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"taintKey\"),\n\t\t\t\t\tValue: pulumi.String(\"taintValue\"),\n\t\t\t\t\tEffect: pulumi.String(\"NoSchedule\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"tagKey\": pulumi.Any(\"env\"),\n\t\t\t\t\"tagValue\": pulumi.Any(\"staging\"),\n\t\t\t},\n\t\t\tFilters: \u0026azure.OceanNpVirtualNodeGroupFiltersArgs{\n\t\t\t\tMinVcpu: pulumi.Int(2),\n\t\t\t\tMaxVcpu: pulumi.Int(16),\n\t\t\t\tMinMemoryGib: pulumi.Float64(8),\n\t\t\t\tMaxMemoryGib: pulumi.Float64(128),\n\t\t\t\tArchitectures: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"x86_64\"),\n\t\t\t\t\tpulumi.String(\"arm64\"),\n\t\t\t\t},\n\t\t\t\tSeries: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"D v3\"),\n\t\t\t\t\tpulumi.String(\"Dds_v4\"),\n\t\t\t\t\tpulumi.String(\"Dsv2\"),\n\t\t\t\t},\n\t\t\t\tExcludeSeries: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Av2\"),\n\t\t\t\t\tpulumi.String(\"A\"),\n\t\t\t\t\tpulumi.String(\"Bs\"),\n\t\t\t\t\tpulumi.String(\"D\"),\n\t\t\t\t\tpulumi.String(\"E\"),\n\t\t\t\t},\n\t\t\t\tAcceleratedNetworking: pulumi.String(\"Enabled\"),\n\t\t\t\tDiskPerformance: pulumi.String(\"Premium\"),\n\t\t\t\tMinGpu: pulumi.Float64(1),\n\t\t\t\tMaxGpu: pulumi.Float64(2),\n\t\t\t\tMinNics: pulumi.Int(1),\n\t\t\t\tVmTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"generalPurpose\"),\n\t\t\t\t\tpulumi.String(\"GPU\"),\n\t\t\t\t},\n\t\t\t\tMinDisk: pulumi.Int(1),\n\t\t\t\tGpuTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"nvidia-tesla-t4\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.azure.OceanNpVirtualNodeGroup;\nimport com.pulumi.spotinst.azure.OceanNpVirtualNodeGroupArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupHeadroomArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupTaintArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupFiltersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanNpVirtualNodeGroup(\"example\", OceanNpVirtualNodeGroupArgs.builder() \n .name(\"testVng\")\n .oceanId(\"o-134abcd\")\n .headrooms(OceanNpVirtualNodeGroupHeadroomArgs.builder()\n .cpuPerUnit(1024)\n .memoryPerUnit(512)\n .gpuPerUnit(0)\n .numOfUnits(2)\n .build())\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .labels(Map.ofEntries(\n Map.entry(\"key\", \"env\"),\n Map.entry(\"value\", \"test\")\n ))\n .minCount(1)\n .maxCount(100)\n .maxPodsPerNode(30)\n .enableNodePublicIp(true)\n .osDiskSizeGb(30)\n .osDiskType(\"Managed\")\n .osType(\"Linux\")\n .osSku(\"Ubuntu\")\n .kubernetesVersion(\"1.26\")\n .podSubnetIds(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\")\n .vnetSubnetIds(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\")\n .spotPercentage(50)\n .fallbackToOndemand(true)\n .taints(OceanNpVirtualNodeGroupTaintArgs.builder()\n .key(\"taintKey\")\n .value(\"taintValue\")\n .effect(\"NoSchedule\")\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"tagKey\", \"env\"),\n Map.entry(\"tagValue\", \"staging\")\n ))\n .filters(OceanNpVirtualNodeGroupFiltersArgs.builder()\n .minVcpu(2)\n .maxVcpu(16)\n .minMemoryGib(8)\n .maxMemoryGib(128)\n .architectures( \n \"x86_64\",\n \"arm64\")\n .series( \n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\")\n .excludeSeries( \n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\")\n .acceleratedNetworking(\"Enabled\")\n .diskPerformance(\"Premium\")\n .minGpu(1)\n .maxGpu(2)\n .minNics(1)\n .vmTypes( \n \"generalPurpose\",\n \"GPU\")\n .minDisk(1)\n .gpuTypes(\"nvidia-tesla-t4\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:azure:OceanNpVirtualNodeGroup\n properties:\n name: testVng\n oceanId: o-134abcd\n headrooms:\n - cpuPerUnit: 1024\n memoryPerUnit: 512\n gpuPerUnit: 0\n numOfUnits: 2\n availabilityZones:\n - '1'\n - '2'\n - '3'\n labels:\n key: env\n value: test\n minCount: 1\n maxCount: 100 # --- nodePoolProperties --------------------------------------------------\n maxPodsPerNode: 30\n enableNodePublicIp: true\n osDiskSizeGb: 30\n osDiskType: Managed\n osType: Linux\n osSku: Ubuntu\n kubernetesVersion: '1.26'\n podSubnetIds:\n - /subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\n vnetSubnetIds:\n - /subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\n spotPercentage: 50\n fallbackToOndemand: true # ---------------------------------------------------------------------------\n taints:\n - key: taintKey\n value: taintValue\n effect: NoSchedule\n tags:\n tagKey: env\n tagValue: staging\n filters:\n minVcpu: 2\n maxVcpu: 16\n minMemoryGib: 8\n maxMemoryGib: 128\n architectures:\n - x86_64\n - arm64\n series:\n - D v3\n - Dds_v4\n - Dsv2\n excludeSeries:\n - Av2\n - A\n - Bs\n - D\n - E\n acceleratedNetworking: Enabled\n diskPerformance: Premium\n minGpu: 1\n maxGpu: 2\n minNics: 1\n vmTypes:\n - generalPurpose\n - GPU\n minDisk: 1\n gpuTypes:\n - nvidia-tesla-t4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n```\noutput \"vng_id\" {\n value = spotinst_ocean_aks_np_virtual_node_group.example.id\n}\n```\n\n", + "description": "Manages a Spotinst Ocean AKS Virtual Node Groups resource.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as spotinst from \"@pulumi/spotinst\";\n\nconst example = new spotinst.azure.OceanNpVirtualNodeGroup(\"example\", {\n name: \"testVng\",\n oceanId: \"o-134abcd\",\n headrooms: [{\n cpuPerUnit: 1024,\n memoryPerUnit: 512,\n gpuPerUnit: 0,\n numOfUnits: 2,\n }],\n availabilityZones: [\n \"1\",\n \"2\",\n \"3\",\n ],\n labels: {\n key: \"env\",\n value: \"test\",\n },\n minCount: 1,\n maxCount: 100,\n maxPodsPerNode: 30,\n enableNodePublicIp: true,\n osDiskSizeGb: 30,\n osDiskType: \"Managed\",\n osType: \"Linux\",\n osSku: \"Ubuntu\",\n kubernetesVersion: \"1.26\",\n podSubnetIds: [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n vnetSubnetIds: [\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n linuxOsConfigs: [{\n sysctls: [{\n vmMaxMapCount: 79550,\n }],\n }],\n spotPercentage: 50,\n fallbackToOndemand: true,\n taints: [{\n key: \"taintKey\",\n value: \"taintValue\",\n effect: \"NoSchedule\",\n }],\n tags: {\n tagKey: \"env\",\n tagValue: \"staging\",\n },\n filters: {\n minVcpu: 2,\n maxVcpu: 16,\n minMemoryGib: 8,\n maxMemoryGib: 128,\n architectures: [\n \"x86_64\",\n \"arm64\",\n ],\n series: [\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n ],\n excludeSeries: [\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n ],\n acceleratedNetworking: \"Enabled\",\n diskPerformance: \"Premium\",\n minGpu: 1,\n maxGpu: 2,\n minNics: 1,\n vmTypes: [\n \"generalPurpose\",\n \"GPU\",\n ],\n minDisk: 1,\n gpuTypes: [\"nvidia-tesla-t4\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_spotinst as spotinst\n\nexample = spotinst.azure.OceanNpVirtualNodeGroup(\"example\",\n name=\"testVng\",\n ocean_id=\"o-134abcd\",\n headrooms=[spotinst.azure.OceanNpVirtualNodeGroupHeadroomArgs(\n cpu_per_unit=1024,\n memory_per_unit=512,\n gpu_per_unit=0,\n num_of_units=2,\n )],\n availability_zones=[\n \"1\",\n \"2\",\n \"3\",\n ],\n labels={\n \"key\": \"env\",\n \"value\": \"test\",\n },\n min_count=1,\n max_count=100,\n max_pods_per_node=30,\n enable_node_public_ip=True,\n os_disk_size_gb=30,\n os_disk_type=\"Managed\",\n os_type=\"Linux\",\n os_sku=\"Ubuntu\",\n kubernetes_version=\"1.26\",\n pod_subnet_ids=[\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n vnet_subnet_ids=[\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"],\n linux_os_configs=[spotinst.azure.OceanNpVirtualNodeGroupLinuxOsConfigArgs(\n sysctls=[spotinst.azure.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs(\n vm_max_map_count=79550,\n )],\n )],\n spot_percentage=50,\n fallback_to_ondemand=True,\n taints=[spotinst.azure.OceanNpVirtualNodeGroupTaintArgs(\n key=\"taintKey\",\n value=\"taintValue\",\n effect=\"NoSchedule\",\n )],\n tags={\n \"tagKey\": \"env\",\n \"tagValue\": \"staging\",\n },\n filters=spotinst.azure.OceanNpVirtualNodeGroupFiltersArgs(\n min_vcpu=2,\n max_vcpu=16,\n min_memory_gib=8,\n max_memory_gib=128,\n architectures=[\n \"x86_64\",\n \"arm64\",\n ],\n series=[\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n ],\n exclude_series=[\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n ],\n accelerated_networking=\"Enabled\",\n disk_performance=\"Premium\",\n min_gpu=1,\n max_gpu=2,\n min_nics=1,\n vm_types=[\n \"generalPurpose\",\n \"GPU\",\n ],\n min_disk=1,\n gpu_types=[\"nvidia-tesla-t4\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing SpotInst = Pulumi.SpotInst;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new SpotInst.Azure.OceanNpVirtualNodeGroup(\"example\", new()\n {\n Name = \"testVng\",\n OceanId = \"o-134abcd\",\n Headrooms = new[]\n {\n new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupHeadroomArgs\n {\n CpuPerUnit = 1024,\n MemoryPerUnit = 512,\n GpuPerUnit = 0,\n NumOfUnits = 2,\n },\n },\n AvailabilityZones = new[]\n {\n \"1\",\n \"2\",\n \"3\",\n },\n Labels = \n {\n { \"key\", \"env\" },\n { \"value\", \"test\" },\n },\n MinCount = 1,\n MaxCount = 100,\n MaxPodsPerNode = 30,\n EnableNodePublicIp = true,\n OsDiskSizeGb = 30,\n OsDiskType = \"Managed\",\n OsType = \"Linux\",\n OsSku = \"Ubuntu\",\n KubernetesVersion = \"1.26\",\n PodSubnetIds = new[]\n {\n \"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\",\n },\n VnetSubnetIds = new[]\n {\n \"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\",\n },\n LinuxOsConfigs = new[]\n {\n new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupLinuxOsConfigArgs\n {\n Sysctls = new[]\n {\n new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs\n {\n VmMaxMapCount = 79550,\n },\n },\n },\n },\n SpotPercentage = 50,\n FallbackToOndemand = true,\n Taints = new[]\n {\n new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupTaintArgs\n {\n Key = \"taintKey\",\n Value = \"taintValue\",\n Effect = \"NoSchedule\",\n },\n },\n Tags = \n {\n { \"tagKey\", \"env\" },\n { \"tagValue\", \"staging\" },\n },\n Filters = new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupFiltersArgs\n {\n MinVcpu = 2,\n MaxVcpu = 16,\n MinMemoryGib = 8,\n MaxMemoryGib = 128,\n Architectures = new[]\n {\n \"x86_64\",\n \"arm64\",\n },\n Series = new[]\n {\n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\",\n },\n ExcludeSeries = new[]\n {\n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\",\n },\n AcceleratedNetworking = \"Enabled\",\n DiskPerformance = \"Premium\",\n MinGpu = 1,\n MaxGpu = 2,\n MinNics = 1,\n VmTypes = new[]\n {\n \"generalPurpose\",\n \"GPU\",\n },\n MinDisk = 1,\n GpuTypes = new[]\n {\n \"nvidia-tesla-t4\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-spotinst/sdk/v3/go/spotinst/azure\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azure.NewOceanNpVirtualNodeGroup(ctx, \"example\", \u0026azure.OceanNpVirtualNodeGroupArgs{\n\t\t\tName: pulumi.String(\"testVng\"),\n\t\t\tOceanId: pulumi.String(\"o-134abcd\"),\n\t\t\tHeadrooms: azure.OceanNpVirtualNodeGroupHeadroomArray{\n\t\t\t\t\u0026azure.OceanNpVirtualNodeGroupHeadroomArgs{\n\t\t\t\t\tCpuPerUnit: pulumi.Int(1024),\n\t\t\t\t\tMemoryPerUnit: pulumi.Int(512),\n\t\t\t\t\tGpuPerUnit: pulumi.Int(0),\n\t\t\t\t\tNumOfUnits: pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t},\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"key\": pulumi.Any(\"env\"),\n\t\t\t\t\"value\": pulumi.Any(\"test\"),\n\t\t\t},\n\t\t\tMinCount: pulumi.Int(1),\n\t\t\tMaxCount: pulumi.Int(100),\n\t\t\tMaxPodsPerNode: pulumi.Int(30),\n\t\t\tEnableNodePublicIp: pulumi.Bool(true),\n\t\t\tOsDiskSizeGb: pulumi.Int(30),\n\t\t\tOsDiskType: pulumi.String(\"Managed\"),\n\t\t\tOsType: pulumi.String(\"Linux\"),\n\t\t\tOsSku: pulumi.String(\"Ubuntu\"),\n\t\t\tKubernetesVersion: pulumi.String(\"1.26\"),\n\t\t\tPodSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"),\n\t\t\t},\n\t\t\tVnetSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\"),\n\t\t\t},\n\t\t\tLinuxOsConfigs: azure.OceanNpVirtualNodeGroupLinuxOsConfigArray{\n\t\t\t\t\u0026azure.OceanNpVirtualNodeGroupLinuxOsConfigArgs{\n\t\t\t\t\tSysctls: azure.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray{\n\t\t\t\t\t\t\u0026azure.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs{\n\t\t\t\t\t\t\tVmMaxMapCount: pulumi.Int(79550),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSpotPercentage: pulumi.Int(50),\n\t\t\tFallbackToOndemand: pulumi.Bool(true),\n\t\t\tTaints: azure.OceanNpVirtualNodeGroupTaintArray{\n\t\t\t\t\u0026azure.OceanNpVirtualNodeGroupTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"taintKey\"),\n\t\t\t\t\tValue: pulumi.String(\"taintValue\"),\n\t\t\t\t\tEffect: pulumi.String(\"NoSchedule\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"tagKey\": pulumi.Any(\"env\"),\n\t\t\t\t\"tagValue\": pulumi.Any(\"staging\"),\n\t\t\t},\n\t\t\tFilters: \u0026azure.OceanNpVirtualNodeGroupFiltersArgs{\n\t\t\t\tMinVcpu: pulumi.Int(2),\n\t\t\t\tMaxVcpu: pulumi.Int(16),\n\t\t\t\tMinMemoryGib: pulumi.Float64(8),\n\t\t\t\tMaxMemoryGib: pulumi.Float64(128),\n\t\t\t\tArchitectures: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"x86_64\"),\n\t\t\t\t\tpulumi.String(\"arm64\"),\n\t\t\t\t},\n\t\t\t\tSeries: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"D v3\"),\n\t\t\t\t\tpulumi.String(\"Dds_v4\"),\n\t\t\t\t\tpulumi.String(\"Dsv2\"),\n\t\t\t\t},\n\t\t\t\tExcludeSeries: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Av2\"),\n\t\t\t\t\tpulumi.String(\"A\"),\n\t\t\t\t\tpulumi.String(\"Bs\"),\n\t\t\t\t\tpulumi.String(\"D\"),\n\t\t\t\t\tpulumi.String(\"E\"),\n\t\t\t\t},\n\t\t\t\tAcceleratedNetworking: pulumi.String(\"Enabled\"),\n\t\t\t\tDiskPerformance: pulumi.String(\"Premium\"),\n\t\t\t\tMinGpu: pulumi.Float64(1),\n\t\t\t\tMaxGpu: pulumi.Float64(2),\n\t\t\t\tMinNics: pulumi.Int(1),\n\t\t\t\tVmTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"generalPurpose\"),\n\t\t\t\t\tpulumi.String(\"GPU\"),\n\t\t\t\t},\n\t\t\t\tMinDisk: pulumi.Int(1),\n\t\t\t\tGpuTypes: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"nvidia-tesla-t4\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.spotinst.azure.OceanNpVirtualNodeGroup;\nimport com.pulumi.spotinst.azure.OceanNpVirtualNodeGroupArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupHeadroomArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupLinuxOsConfigArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupTaintArgs;\nimport com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupFiltersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OceanNpVirtualNodeGroup(\"example\", OceanNpVirtualNodeGroupArgs.builder() \n .name(\"testVng\")\n .oceanId(\"o-134abcd\")\n .headrooms(OceanNpVirtualNodeGroupHeadroomArgs.builder()\n .cpuPerUnit(1024)\n .memoryPerUnit(512)\n .gpuPerUnit(0)\n .numOfUnits(2)\n .build())\n .availabilityZones( \n \"1\",\n \"2\",\n \"3\")\n .labels(Map.ofEntries(\n Map.entry(\"key\", \"env\"),\n Map.entry(\"value\", \"test\")\n ))\n .minCount(1)\n .maxCount(100)\n .maxPodsPerNode(30)\n .enableNodePublicIp(true)\n .osDiskSizeGb(30)\n .osDiskType(\"Managed\")\n .osType(\"Linux\")\n .osSku(\"Ubuntu\")\n .kubernetesVersion(\"1.26\")\n .podSubnetIds(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\")\n .vnetSubnetIds(\"/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\")\n .linuxOsConfigs(OceanNpVirtualNodeGroupLinuxOsConfigArgs.builder()\n .sysctls(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs.builder()\n .vmMaxMapCount(79550)\n .build())\n .build())\n .spotPercentage(50)\n .fallbackToOndemand(true)\n .taints(OceanNpVirtualNodeGroupTaintArgs.builder()\n .key(\"taintKey\")\n .value(\"taintValue\")\n .effect(\"NoSchedule\")\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"tagKey\", \"env\"),\n Map.entry(\"tagValue\", \"staging\")\n ))\n .filters(OceanNpVirtualNodeGroupFiltersArgs.builder()\n .minVcpu(2)\n .maxVcpu(16)\n .minMemoryGib(8)\n .maxMemoryGib(128)\n .architectures( \n \"x86_64\",\n \"arm64\")\n .series( \n \"D v3\",\n \"Dds_v4\",\n \"Dsv2\")\n .excludeSeries( \n \"Av2\",\n \"A\",\n \"Bs\",\n \"D\",\n \"E\")\n .acceleratedNetworking(\"Enabled\")\n .diskPerformance(\"Premium\")\n .minGpu(1)\n .maxGpu(2)\n .minNics(1)\n .vmTypes( \n \"generalPurpose\",\n \"GPU\")\n .minDisk(1)\n .gpuTypes(\"nvidia-tesla-t4\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: spotinst:azure:OceanNpVirtualNodeGroup\n properties:\n name: testVng\n oceanId: o-134abcd\n headrooms:\n - cpuPerUnit: 1024\n memoryPerUnit: 512\n gpuPerUnit: 0\n numOfUnits: 2\n availabilityZones:\n - '1'\n - '2'\n - '3'\n labels:\n key: env\n value: test\n minCount: 1\n maxCount: 100 # --- nodePoolProperties --------------------------------------------------\n maxPodsPerNode: 30\n enableNodePublicIp: true\n osDiskSizeGb: 30\n osDiskType: Managed\n osType: Linux\n osSku: Ubuntu\n kubernetesVersion: '1.26'\n podSubnetIds:\n - /subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\n vnetSubnetIds:\n - /subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default\n linuxOsConfigs:\n - sysctls:\n - vmMaxMapCount: 79550\n spotPercentage: 50\n fallbackToOndemand: true # ---------------------------------------------------------------------------\n taints:\n - key: taintKey\n value: taintValue\n effect: NoSchedule\n tags:\n tagKey: env\n tagValue: staging\n filters:\n minVcpu: 2\n maxVcpu: 16\n minMemoryGib: 8\n maxMemoryGib: 128\n architectures:\n - x86_64\n - arm64\n series:\n - D v3\n - Dds_v4\n - Dsv2\n excludeSeries:\n - Av2\n - A\n - Bs\n - D\n - E\n acceleratedNetworking: Enabled\n diskPerformance: Premium\n minGpu: 1\n maxGpu: 2\n minNics: 1\n vmTypes:\n - generalPurpose\n - GPU\n minDisk: 1\n gpuTypes:\n - nvidia-tesla-t4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n```\noutput \"vng_id\" {\n value = spotinst_ocean_aks_np_virtual_node_group.example.id\n}\n```\n\n", "properties": { "availabilityZones": { "type": "array", @@ -14242,6 +14358,13 @@ }, "description": "An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels.\n" }, + "linuxOsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupLinuxOsConfig:OceanNpVirtualNodeGroupLinuxOsConfig" + }, + "description": "Custom Linux OS configuration.\n" + }, "maxCount": { "type": "integer", "description": "Maximum node count limit.\n" @@ -14355,6 +14478,13 @@ }, "description": "An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels.\n" }, + "linuxOsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupLinuxOsConfig:OceanNpVirtualNodeGroupLinuxOsConfig" + }, + "description": "Custom Linux OS configuration.\n" + }, "maxCount": { "type": "integer", "description": "Maximum node count limit.\n" @@ -14469,6 +14599,13 @@ }, "description": "An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels.\n" }, + "linuxOsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/spotinst:azure/OceanNpVirtualNodeGroupLinuxOsConfig:OceanNpVirtualNodeGroupLinuxOsConfig" + }, + "description": "Custom Linux OS configuration.\n" + }, "maxCount": { "type": "integer", "description": "Maximum node count limit.\n" diff --git a/provider/go.mod b/provider/go.mod index b0f70380..25445b3a 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -205,7 +205,7 @@ require ( github.com/spf13/cast v1.5.0 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spotinst/spotinst-sdk-go v1.350.0 // indirect + github.com/spotinst/spotinst-sdk-go v1.351.0 // indirect github.com/stretchr/testify v1.9.0 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect diff --git a/provider/go.sum b/provider/go.sum index 5526931c..b8d5edee 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2959,8 +2959,8 @@ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spotinst/spotinst-sdk-go v1.350.0 h1:cnC5Tjo8bRtpeaVFKWxQN57nsfACmyCfQ2xJi8tou3k= -github.com/spotinst/spotinst-sdk-go v1.350.0/go.mod h1:Tn4/eb0SFY6IXmxz71CClujvbD/PuT+EO6Ta8v6AML4= +github.com/spotinst/spotinst-sdk-go v1.351.0 h1:p6RWEHmiyyllBEZGPAfDgxnsQ3C87JisUWl3gIIYI+4= +github.com/spotinst/spotinst-sdk-go v1.351.0/go.mod h1:Tn4/eb0SFY6IXmxz71CClujvbD/PuT+EO6Ta8v6AML4= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= diff --git a/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigArgs.cs new file mode 100644 index 00000000..978aaf7c --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpLinuxOsConfigArgs : global::Pulumi.ResourceArgs + { + [Input("sysctls")] + private InputList? _sysctls; + + /// + /// System Controls + /// + public InputList Sysctls + { + get => _sysctls ?? (_sysctls = new InputList()); + set => _sysctls = value; + } + + public OceanNpLinuxOsConfigArgs() + { + } + public static new OceanNpLinuxOsConfigArgs Empty => new OceanNpLinuxOsConfigArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigGetArgs.cs new file mode 100644 index 00000000..0a7b0ac5 --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpLinuxOsConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("sysctls")] + private InputList? _sysctls; + + /// + /// System Controls + /// + public InputList Sysctls + { + get => _sysctls ?? (_sysctls = new InputList()); + set => _sysctls = value; + } + + public OceanNpLinuxOsConfigGetArgs() + { + } + public static new OceanNpLinuxOsConfigGetArgs Empty => new OceanNpLinuxOsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigSysctlArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigSysctlArgs.cs new file mode 100644 index 00000000..0c8c93dc --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigSysctlArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpLinuxOsConfigSysctlArgs : global::Pulumi.ResourceArgs + { + [Input("vmMaxMapCount")] + public Input? VmMaxMapCount { get; set; } + + public OceanNpLinuxOsConfigSysctlArgs() + { + } + public static new OceanNpLinuxOsConfigSysctlArgs Empty => new OceanNpLinuxOsConfigSysctlArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigSysctlGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigSysctlGetArgs.cs new file mode 100644 index 00000000..96a34805 --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpLinuxOsConfigSysctlGetArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpLinuxOsConfigSysctlGetArgs : global::Pulumi.ResourceArgs + { + [Input("vmMaxMapCount")] + public Input? VmMaxMapCount { get; set; } + + public OceanNpLinuxOsConfigSysctlGetArgs() + { + } + public static new OceanNpLinuxOsConfigSysctlGetArgs Empty => new OceanNpLinuxOsConfigSysctlGetArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingArgs.cs index d0e3c28d..1d46e400 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingArgs.cs @@ -12,12 +12,17 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpSchedulingArgs : global::Pulumi.ResourceArgs { - /// - /// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - /// [Input("shutdownHours")] public Input? ShutdownHours { get; set; } + [Input("tasks")] + private InputList? _tasks; + public InputList Tasks + { + get => _tasks ?? (_tasks = new InputList()); + set => _tasks = value; + } + public OceanNpSchedulingArgs() { } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingGetArgs.cs index 3bbdc265..d37fe6db 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingGetArgs.cs @@ -12,12 +12,17 @@ namespace Pulumi.SpotInst.Azure.Inputs public sealed class OceanNpSchedulingGetArgs : global::Pulumi.ResourceArgs { - /// - /// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - /// [Input("shutdownHours")] public Input? ShutdownHours { get; set; } + [Input("tasks")] + private InputList? _tasks; + public InputList Tasks + { + get => _tasks ?? (_tasks = new InputList()); + set => _tasks = value; + } + public OceanNpSchedulingGetArgs() { } diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingShutdownHoursArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingShutdownHoursArgs.cs index dd57f5aa..93be1f0c 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingShutdownHoursArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingShutdownHoursArgs.cs @@ -15,7 +15,7 @@ public sealed class OceanNpSchedulingShutdownHoursArgs : global::Pulumi.Resource [Input("isEnabled")] public Input? IsEnabled { get; set; } - [Input("timeWindows", required: true)] + [Input("timeWindows")] private InputList? _timeWindows; public InputList TimeWindows { diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingShutdownHoursGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingShutdownHoursGetArgs.cs index 788c5a06..89810c27 100644 --- a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingShutdownHoursGetArgs.cs +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingShutdownHoursGetArgs.cs @@ -15,7 +15,7 @@ public sealed class OceanNpSchedulingShutdownHoursGetArgs : global::Pulumi.Resou [Input("isEnabled")] public Input? IsEnabled { get; set; } - [Input("timeWindows", required: true)] + [Input("timeWindows")] private InputList? _timeWindows; public InputList TimeWindows { diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskArgs.cs new file mode 100644 index 00000000..6231a4dd --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpSchedulingTaskArgs : global::Pulumi.ResourceArgs + { + [Input("cronExpression", required: true)] + public Input CronExpression { get; set; } = null!; + + [Input("isEnabled", required: true)] + public Input IsEnabled { get; set; } = null!; + + [Input("parameters")] + public Input? Parameters { get; set; } + + [Input("taskType", required: true)] + public Input TaskType { get; set; } = null!; + + public OceanNpSchedulingTaskArgs() + { + } + public static new OceanNpSchedulingTaskArgs Empty => new OceanNpSchedulingTaskArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskGetArgs.cs new file mode 100644 index 00000000..8b19ff0a --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpSchedulingTaskGetArgs : global::Pulumi.ResourceArgs + { + [Input("cronExpression", required: true)] + public Input CronExpression { get; set; } = null!; + + [Input("isEnabled", required: true)] + public Input IsEnabled { get; set; } = null!; + + [Input("parameters")] + public Input? Parameters { get; set; } + + [Input("taskType", required: true)] + public Input TaskType { get; set; } = null!; + + public OceanNpSchedulingTaskGetArgs() + { + } + public static new OceanNpSchedulingTaskGetArgs Empty => new OceanNpSchedulingTaskGetArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersArgs.cs new file mode 100644 index 00000000..1b229374 --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpSchedulingTaskParametersArgs : global::Pulumi.ResourceArgs + { + [Input("parametersClusterRoll")] + public Input? ParametersClusterRoll { get; set; } + + public OceanNpSchedulingTaskParametersArgs() + { + } + public static new OceanNpSchedulingTaskParametersArgs Empty => new OceanNpSchedulingTaskParametersArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersGetArgs.cs new file mode 100644 index 00000000..3db5466c --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersGetArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpSchedulingTaskParametersGetArgs : global::Pulumi.ResourceArgs + { + [Input("parametersClusterRoll")] + public Input? ParametersClusterRoll { get; set; } + + public OceanNpSchedulingTaskParametersGetArgs() + { + } + public static new OceanNpSchedulingTaskParametersGetArgs Empty => new OceanNpSchedulingTaskParametersGetArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersParametersClusterRollArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersParametersClusterRollArgs.cs new file mode 100644 index 00000000..5093fb06 --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersParametersClusterRollArgs.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpSchedulingTaskParametersParametersClusterRollArgs : global::Pulumi.ResourceArgs + { + [Input("batchMinHealthyPercentage")] + public Input? BatchMinHealthyPercentage { get; set; } + + [Input("batchSizePercentage")] + public Input? BatchSizePercentage { get; set; } + + [Input("comment")] + public Input? Comment { get; set; } + + [Input("respectPdb")] + public Input? RespectPdb { get; set; } + + [Input("respectRestrictScaleDown")] + public Input? RespectRestrictScaleDown { get; set; } + + [Input("vngIds")] + private InputList? _vngIds; + public InputList VngIds + { + get => _vngIds ?? (_vngIds = new InputList()); + set => _vngIds = value; + } + + public OceanNpSchedulingTaskParametersParametersClusterRollArgs() + { + } + public static new OceanNpSchedulingTaskParametersParametersClusterRollArgs Empty => new OceanNpSchedulingTaskParametersParametersClusterRollArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersParametersClusterRollGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersParametersClusterRollGetArgs.cs new file mode 100644 index 00000000..ac20d03b --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpSchedulingTaskParametersParametersClusterRollGetArgs.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpSchedulingTaskParametersParametersClusterRollGetArgs : global::Pulumi.ResourceArgs + { + [Input("batchMinHealthyPercentage")] + public Input? BatchMinHealthyPercentage { get; set; } + + [Input("batchSizePercentage")] + public Input? BatchSizePercentage { get; set; } + + [Input("comment")] + public Input? Comment { get; set; } + + [Input("respectPdb")] + public Input? RespectPdb { get; set; } + + [Input("respectRestrictScaleDown")] + public Input? RespectRestrictScaleDown { get; set; } + + [Input("vngIds")] + private InputList? _vngIds; + public InputList VngIds + { + get => _vngIds ?? (_vngIds = new InputList()); + set => _vngIds = value; + } + + public OceanNpSchedulingTaskParametersParametersClusterRollGetArgs() + { + } + public static new OceanNpSchedulingTaskParametersParametersClusterRollGetArgs Empty => new OceanNpSchedulingTaskParametersParametersClusterRollGetArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigArgs.cs new file mode 100644 index 00000000..5411c47f --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpVirtualNodeGroupLinuxOsConfigArgs : global::Pulumi.ResourceArgs + { + [Input("sysctls")] + private InputList? _sysctls; + + /// + /// System Controls + /// + public InputList Sysctls + { + get => _sysctls ?? (_sysctls = new InputList()); + set => _sysctls = value; + } + + public OceanNpVirtualNodeGroupLinuxOsConfigArgs() + { + } + public static new OceanNpVirtualNodeGroupLinuxOsConfigArgs Empty => new OceanNpVirtualNodeGroupLinuxOsConfigArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigGetArgs.cs new file mode 100644 index 00000000..1cce6947 --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpVirtualNodeGroupLinuxOsConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("sysctls")] + private InputList? _sysctls; + + /// + /// System Controls + /// + public InputList Sysctls + { + get => _sysctls ?? (_sysctls = new InputList()); + set => _sysctls = value; + } + + public OceanNpVirtualNodeGroupLinuxOsConfigGetArgs() + { + } + public static new OceanNpVirtualNodeGroupLinuxOsConfigGetArgs Empty => new OceanNpVirtualNodeGroupLinuxOsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs.cs new file mode 100644 index 00000000..1fab5870 --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs : global::Pulumi.ResourceArgs + { + [Input("vmMaxMapCount")] + public Input? VmMaxMapCount { get; set; } + + public OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs() + { + } + public static new OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs Empty => new OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs(); + } +} diff --git a/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlGetArgs.cs b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlGetArgs.cs new file mode 100644 index 00000000..0a9b0f84 --- /dev/null +++ b/sdk/dotnet/Azure/Inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlGetArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Inputs +{ + + public sealed class OceanNpVirtualNodeGroupLinuxOsConfigSysctlGetArgs : global::Pulumi.ResourceArgs + { + [Input("vmMaxMapCount")] + public Input? VmMaxMapCount { get; set; } + + public OceanNpVirtualNodeGroupLinuxOsConfigSysctlGetArgs() + { + } + public static new OceanNpVirtualNodeGroupLinuxOsConfigSysctlGetArgs Empty => new OceanNpVirtualNodeGroupLinuxOsConfigSysctlGetArgs(); + } +} diff --git a/sdk/dotnet/Azure/OceanNp.cs b/sdk/dotnet/Azure/OceanNp.cs index c5167b07..16147e71 100644 --- a/sdk/dotnet/Azure/OceanNp.cs +++ b/sdk/dotnet/Azure/OceanNp.cs @@ -118,6 +118,12 @@ public partial class OceanNp : global::Pulumi.CustomResource [Output("labels")] public Output?> Labels { get; private set; } = null!; + /// + /// Custom Linux OS configuration. + /// + [Output("linuxOsConfigs")] + public Output> LinuxOsConfigs { get; private set; } = null!; + /// /// Maximum node count limit. /// @@ -172,9 +178,6 @@ public partial class OceanNp : global::Pulumi.CustomResource [Output("podSubnetIds")] public Output> PodSubnetIds { get; private set; } = null!; - /// - /// An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - /// [Output("scheduling")] public Output Scheduling { get; private set; } = null!; @@ -338,6 +341,18 @@ public InputMap Labels set => _labels = value; } + [Input("linuxOsConfigs")] + private InputList? _linuxOsConfigs; + + /// + /// Custom Linux OS configuration. + /// + public InputList LinuxOsConfigs + { + get => _linuxOsConfigs ?? (_linuxOsConfigs = new InputList()); + set => _linuxOsConfigs = value; + } + /// /// Maximum node count limit. /// @@ -398,9 +413,6 @@ public InputList PodSubnetIds set => _podSubnetIds = value; } - /// - /// An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - /// [Input("scheduling")] public Input? Scheduling { get; set; } @@ -543,6 +555,18 @@ public InputMap Labels set => _labels = value; } + [Input("linuxOsConfigs")] + private InputList? _linuxOsConfigs; + + /// + /// Custom Linux OS configuration. + /// + public InputList LinuxOsConfigs + { + get => _linuxOsConfigs ?? (_linuxOsConfigs = new InputList()); + set => _linuxOsConfigs = value; + } + /// /// Maximum node count limit. /// @@ -603,9 +627,6 @@ public InputList PodSubnetIds set => _podSubnetIds = value; } - /// - /// An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - /// [Input("scheduling")] public Input? Scheduling { get; set; } diff --git a/sdk/dotnet/Azure/OceanNpVirtualNodeGroup.cs b/sdk/dotnet/Azure/OceanNpVirtualNodeGroup.cs index 5a712bb7..95e885e3 100644 --- a/sdk/dotnet/Azure/OceanNpVirtualNodeGroup.cs +++ b/sdk/dotnet/Azure/OceanNpVirtualNodeGroup.cs @@ -64,6 +64,19 @@ namespace Pulumi.SpotInst.Azure /// { /// "/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default", /// }, + /// LinuxOsConfigs = new[] + /// { + /// new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupLinuxOsConfigArgs + /// { + /// Sysctls = new[] + /// { + /// new SpotInst.Azure.Inputs.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs + /// { + /// VmMaxMapCount = 79550, + /// }, + /// }, + /// }, + /// }, /// SpotPercentage = 50, /// FallbackToOndemand = true, /// Taints = new[] @@ -171,6 +184,12 @@ public partial class OceanNpVirtualNodeGroup : global::Pulumi.CustomResource [Output("labels")] public Output?> Labels { get; private set; } = null!; + /// + /// Custom Linux OS configuration. + /// + [Output("linuxOsConfigs")] + public Output> LinuxOsConfigs { get; private set; } = null!; + /// /// Maximum node count limit. /// @@ -361,6 +380,18 @@ public InputMap Labels set => _labels = value; } + [Input("linuxOsConfigs")] + private InputList? _linuxOsConfigs; + + /// + /// Custom Linux OS configuration. + /// + public InputList LinuxOsConfigs + { + get => _linuxOsConfigs ?? (_linuxOsConfigs = new InputList()); + set => _linuxOsConfigs = value; + } + /// /// Maximum node count limit. /// @@ -536,6 +567,18 @@ public InputMap Labels set => _labels = value; } + [Input("linuxOsConfigs")] + private InputList? _linuxOsConfigs; + + /// + /// Custom Linux OS configuration. + /// + public InputList LinuxOsConfigs + { + get => _linuxOsConfigs ?? (_linuxOsConfigs = new InputList()); + set => _linuxOsConfigs = value; + } + /// /// Maximum node count limit. /// diff --git a/sdk/dotnet/Azure/Outputs/OceanNpLinuxOsConfig.cs b/sdk/dotnet/Azure/Outputs/OceanNpLinuxOsConfig.cs new file mode 100644 index 00000000..253b5e34 --- /dev/null +++ b/sdk/dotnet/Azure/Outputs/OceanNpLinuxOsConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Outputs +{ + + [OutputType] + public sealed class OceanNpLinuxOsConfig + { + /// + /// System Controls + /// + public readonly ImmutableArray Sysctls; + + [OutputConstructor] + private OceanNpLinuxOsConfig(ImmutableArray sysctls) + { + Sysctls = sysctls; + } + } +} diff --git a/sdk/dotnet/Azure/Outputs/OceanNpLinuxOsConfigSysctl.cs b/sdk/dotnet/Azure/Outputs/OceanNpLinuxOsConfigSysctl.cs new file mode 100644 index 00000000..07cef3ba --- /dev/null +++ b/sdk/dotnet/Azure/Outputs/OceanNpLinuxOsConfigSysctl.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Outputs +{ + + [OutputType] + public sealed class OceanNpLinuxOsConfigSysctl + { + public readonly int? VmMaxMapCount; + + [OutputConstructor] + private OceanNpLinuxOsConfigSysctl(int? vmMaxMapCount) + { + VmMaxMapCount = vmMaxMapCount; + } + } +} diff --git a/sdk/dotnet/Azure/Outputs/OceanNpScheduling.cs b/sdk/dotnet/Azure/Outputs/OceanNpScheduling.cs index 600ad918..8bfbcbc5 100644 --- a/sdk/dotnet/Azure/Outputs/OceanNpScheduling.cs +++ b/sdk/dotnet/Azure/Outputs/OceanNpScheduling.cs @@ -13,15 +13,17 @@ namespace Pulumi.SpotInst.Azure.Outputs [OutputType] public sealed class OceanNpScheduling { - /// - /// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - /// public readonly Outputs.OceanNpSchedulingShutdownHours? ShutdownHours; + public readonly ImmutableArray Tasks; [OutputConstructor] - private OceanNpScheduling(Outputs.OceanNpSchedulingShutdownHours? shutdownHours) + private OceanNpScheduling( + Outputs.OceanNpSchedulingShutdownHours? shutdownHours, + + ImmutableArray tasks) { ShutdownHours = shutdownHours; + Tasks = tasks; } } } diff --git a/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTask.cs b/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTask.cs new file mode 100644 index 00000000..33fa2296 --- /dev/null +++ b/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTask.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Outputs +{ + + [OutputType] + public sealed class OceanNpSchedulingTask + { + public readonly string CronExpression; + public readonly bool IsEnabled; + public readonly Outputs.OceanNpSchedulingTaskParameters? Parameters; + public readonly string TaskType; + + [OutputConstructor] + private OceanNpSchedulingTask( + string cronExpression, + + bool isEnabled, + + Outputs.OceanNpSchedulingTaskParameters? parameters, + + string taskType) + { + CronExpression = cronExpression; + IsEnabled = isEnabled; + Parameters = parameters; + TaskType = taskType; + } + } +} diff --git a/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTaskParameters.cs b/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTaskParameters.cs new file mode 100644 index 00000000..b5b63ac4 --- /dev/null +++ b/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTaskParameters.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Outputs +{ + + [OutputType] + public sealed class OceanNpSchedulingTaskParameters + { + public readonly Outputs.OceanNpSchedulingTaskParametersParametersClusterRoll? ParametersClusterRoll; + + [OutputConstructor] + private OceanNpSchedulingTaskParameters(Outputs.OceanNpSchedulingTaskParametersParametersClusterRoll? parametersClusterRoll) + { + ParametersClusterRoll = parametersClusterRoll; + } + } +} diff --git a/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTaskParametersParametersClusterRoll.cs b/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTaskParametersParametersClusterRoll.cs new file mode 100644 index 00000000..083909a9 --- /dev/null +++ b/sdk/dotnet/Azure/Outputs/OceanNpSchedulingTaskParametersParametersClusterRoll.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Outputs +{ + + [OutputType] + public sealed class OceanNpSchedulingTaskParametersParametersClusterRoll + { + public readonly int? BatchMinHealthyPercentage; + public readonly int? BatchSizePercentage; + public readonly string? Comment; + public readonly bool? RespectPdb; + public readonly bool? RespectRestrictScaleDown; + public readonly ImmutableArray VngIds; + + [OutputConstructor] + private OceanNpSchedulingTaskParametersParametersClusterRoll( + int? batchMinHealthyPercentage, + + int? batchSizePercentage, + + string? comment, + + bool? respectPdb, + + bool? respectRestrictScaleDown, + + ImmutableArray vngIds) + { + BatchMinHealthyPercentage = batchMinHealthyPercentage; + BatchSizePercentage = batchSizePercentage; + Comment = comment; + RespectPdb = respectPdb; + RespectRestrictScaleDown = respectRestrictScaleDown; + VngIds = vngIds; + } + } +} diff --git a/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupLinuxOsConfig.cs b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupLinuxOsConfig.cs new file mode 100644 index 00000000..971cc2ee --- /dev/null +++ b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupLinuxOsConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Outputs +{ + + [OutputType] + public sealed class OceanNpVirtualNodeGroupLinuxOsConfig + { + /// + /// System Controls + /// + public readonly ImmutableArray Sysctls; + + [OutputConstructor] + private OceanNpVirtualNodeGroupLinuxOsConfig(ImmutableArray sysctls) + { + Sysctls = sysctls; + } + } +} diff --git a/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctl.cs b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctl.cs new file mode 100644 index 00000000..49d22721 --- /dev/null +++ b/sdk/dotnet/Azure/Outputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctl.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.SpotInst.Azure.Outputs +{ + + [OutputType] + public sealed class OceanNpVirtualNodeGroupLinuxOsConfigSysctl + { + public readonly int? VmMaxMapCount; + + [OutputConstructor] + private OceanNpVirtualNodeGroupLinuxOsConfigSysctl(int? vmMaxMapCount) + { + VmMaxMapCount = vmMaxMapCount; + } + } +} diff --git a/sdk/go/spotinst/azure/oceanNp.go b/sdk/go/spotinst/azure/oceanNp.go index 4a2cf6d3..371f732b 100644 --- a/sdk/go/spotinst/azure/oceanNp.go +++ b/sdk/go/spotinst/azure/oceanNp.go @@ -78,6 +78,8 @@ type OceanNp struct { KubernetesVersion pulumi.StringPtrOutput `pulumi:"kubernetesVersion"` // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). Labels pulumi.MapOutput `pulumi:"labels"` + // Custom Linux OS configuration. + LinuxOsConfigs OceanNpLinuxOsConfigArrayOutput `pulumi:"linuxOsConfigs"` // Maximum node count limit. MaxCount pulumi.IntPtrOutput `pulumi:"maxCount"` // The maximum number of pods per node in the node pools. @@ -95,9 +97,8 @@ type OceanNp struct { // The OS type of the OS disk. Can't be modified once set. OsType pulumi.StringPtrOutput `pulumi:"osType"` // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). - PodSubnetIds pulumi.StringArrayOutput `pulumi:"podSubnetIds"` - // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - Scheduling OceanNpSchedulingPtrOutput `pulumi:"scheduling"` + PodSubnetIds pulumi.StringArrayOutput `pulumi:"podSubnetIds"` + Scheduling OceanNpSchedulingPtrOutput `pulumi:"scheduling"` // Percentage of spot VMs to maintain. SpotPercentage pulumi.IntPtrOutput `pulumi:"spotPercentage"` Tags pulumi.MapOutput `pulumi:"tags"` @@ -180,6 +181,8 @@ type oceanNpState struct { KubernetesVersion *string `pulumi:"kubernetesVersion"` // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). Labels map[string]interface{} `pulumi:"labels"` + // Custom Linux OS configuration. + LinuxOsConfigs []OceanNpLinuxOsConfig `pulumi:"linuxOsConfigs"` // Maximum node count limit. MaxCount *int `pulumi:"maxCount"` // The maximum number of pods per node in the node pools. @@ -197,9 +200,8 @@ type oceanNpState struct { // The OS type of the OS disk. Can't be modified once set. OsType *string `pulumi:"osType"` // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). - PodSubnetIds []string `pulumi:"podSubnetIds"` - // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - Scheduling *OceanNpScheduling `pulumi:"scheduling"` + PodSubnetIds []string `pulumi:"podSubnetIds"` + Scheduling *OceanNpScheduling `pulumi:"scheduling"` // Percentage of spot VMs to maintain. SpotPercentage *int `pulumi:"spotPercentage"` Tags map[string]interface{} `pulumi:"tags"` @@ -235,6 +237,8 @@ type OceanNpState struct { KubernetesVersion pulumi.StringPtrInput // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). Labels pulumi.MapInput + // Custom Linux OS configuration. + LinuxOsConfigs OceanNpLinuxOsConfigArrayInput // Maximum node count limit. MaxCount pulumi.IntPtrInput // The maximum number of pods per node in the node pools. @@ -253,8 +257,7 @@ type OceanNpState struct { OsType pulumi.StringPtrInput // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). PodSubnetIds pulumi.StringArrayInput - // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - Scheduling OceanNpSchedulingPtrInput + Scheduling OceanNpSchedulingPtrInput // Percentage of spot VMs to maintain. SpotPercentage pulumi.IntPtrInput Tags pulumi.MapInput @@ -294,6 +297,8 @@ type oceanNpArgs struct { KubernetesVersion *string `pulumi:"kubernetesVersion"` // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). Labels map[string]interface{} `pulumi:"labels"` + // Custom Linux OS configuration. + LinuxOsConfigs []OceanNpLinuxOsConfig `pulumi:"linuxOsConfigs"` // Maximum node count limit. MaxCount *int `pulumi:"maxCount"` // The maximum number of pods per node in the node pools. @@ -311,9 +316,8 @@ type oceanNpArgs struct { // The OS type of the OS disk. Can't be modified once set. OsType *string `pulumi:"osType"` // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). - PodSubnetIds []string `pulumi:"podSubnetIds"` - // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - Scheduling *OceanNpScheduling `pulumi:"scheduling"` + PodSubnetIds []string `pulumi:"podSubnetIds"` + Scheduling *OceanNpScheduling `pulumi:"scheduling"` // Percentage of spot VMs to maintain. SpotPercentage *int `pulumi:"spotPercentage"` Tags map[string]interface{} `pulumi:"tags"` @@ -350,6 +354,8 @@ type OceanNpArgs struct { KubernetesVersion pulumi.StringPtrInput // An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). Labels pulumi.MapInput + // Custom Linux OS configuration. + LinuxOsConfigs OceanNpLinuxOsConfigArrayInput // Maximum node count limit. MaxCount pulumi.IntPtrInput // The maximum number of pods per node in the node pools. @@ -368,8 +374,7 @@ type OceanNpArgs struct { OsType pulumi.StringPtrInput // The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). PodSubnetIds pulumi.StringArrayInput - // An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - Scheduling OceanNpSchedulingPtrInput + Scheduling OceanNpSchedulingPtrInput // Percentage of spot VMs to maintain. SpotPercentage pulumi.IntPtrInput Tags pulumi.MapInput @@ -533,6 +538,11 @@ func (o OceanNpOutput) Labels() pulumi.MapOutput { return o.ApplyT(func(v *OceanNp) pulumi.MapOutput { return v.Labels }).(pulumi.MapOutput) } +// Custom Linux OS configuration. +func (o OceanNpOutput) LinuxOsConfigs() OceanNpLinuxOsConfigArrayOutput { + return o.ApplyT(func(v *OceanNp) OceanNpLinuxOsConfigArrayOutput { return v.LinuxOsConfigs }).(OceanNpLinuxOsConfigArrayOutput) +} + // Maximum node count limit. func (o OceanNpOutput) MaxCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNp) pulumi.IntPtrOutput { return v.MaxCount }).(pulumi.IntPtrOutput) @@ -578,7 +588,6 @@ func (o OceanNpOutput) PodSubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *OceanNp) pulumi.StringArrayOutput { return v.PodSubnetIds }).(pulumi.StringArrayOutput) } -// An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. func (o OceanNpOutput) Scheduling() OceanNpSchedulingPtrOutput { return o.ApplyT(func(v *OceanNp) OceanNpSchedulingPtrOutput { return v.Scheduling }).(OceanNpSchedulingPtrOutput) } diff --git a/sdk/go/spotinst/azure/oceanNpVirtualNodeGroup.go b/sdk/go/spotinst/azure/oceanNpVirtualNodeGroup.go index a055bb9d..b6a18420 100644 --- a/sdk/go/spotinst/azure/oceanNpVirtualNodeGroup.go +++ b/sdk/go/spotinst/azure/oceanNpVirtualNodeGroup.go @@ -63,6 +63,15 @@ import ( // VnetSubnetIds: pulumi.StringArray{ // pulumi.String("/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"), // }, +// LinuxOsConfigs: azure.OceanNpVirtualNodeGroupLinuxOsConfigArray{ +// &azure.OceanNpVirtualNodeGroupLinuxOsConfigArgs{ +// Sysctls: azure.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray{ +// &azure.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs{ +// VmMaxMapCount: pulumi.Int(79550), +// }, +// }, +// }, +// }, // SpotPercentage: pulumi.Int(50), // FallbackToOndemand: pulumi.Bool(true), // Taints: azure.OceanNpVirtualNodeGroupTaintArray{ @@ -137,6 +146,8 @@ type OceanNpVirtualNodeGroup struct { KubernetesVersion pulumi.StringPtrOutput `pulumi:"kubernetesVersion"` // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. Labels pulumi.MapOutput `pulumi:"labels"` + // Custom Linux OS configuration. + LinuxOsConfigs OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput `pulumi:"linuxOsConfigs"` // Maximum node count limit. MaxCount pulumi.IntPtrOutput `pulumi:"maxCount"` // The maximum number of pods per node in the node pools. @@ -214,6 +225,8 @@ type oceanNpVirtualNodeGroupState struct { KubernetesVersion *string `pulumi:"kubernetesVersion"` // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. Labels map[string]interface{} `pulumi:"labels"` + // Custom Linux OS configuration. + LinuxOsConfigs []OceanNpVirtualNodeGroupLinuxOsConfig `pulumi:"linuxOsConfigs"` // Maximum node count limit. MaxCount *int `pulumi:"maxCount"` // The maximum number of pods per node in the node pools. @@ -259,6 +272,8 @@ type OceanNpVirtualNodeGroupState struct { KubernetesVersion pulumi.StringPtrInput // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. Labels pulumi.MapInput + // Custom Linux OS configuration. + LinuxOsConfigs OceanNpVirtualNodeGroupLinuxOsConfigArrayInput // Maximum node count limit. MaxCount pulumi.IntPtrInput // The maximum number of pods per node in the node pools. @@ -308,6 +323,8 @@ type oceanNpVirtualNodeGroupArgs struct { KubernetesVersion *string `pulumi:"kubernetesVersion"` // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. Labels map[string]interface{} `pulumi:"labels"` + // Custom Linux OS configuration. + LinuxOsConfigs []OceanNpVirtualNodeGroupLinuxOsConfig `pulumi:"linuxOsConfigs"` // Maximum node count limit. MaxCount *int `pulumi:"maxCount"` // The maximum number of pods per node in the node pools. @@ -354,6 +371,8 @@ type OceanNpVirtualNodeGroupArgs struct { KubernetesVersion pulumi.StringPtrInput // An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. Labels pulumi.MapInput + // Custom Linux OS configuration. + LinuxOsConfigs OceanNpVirtualNodeGroupLinuxOsConfigArrayInput // Maximum node count limit. MaxCount pulumi.IntPtrInput // The maximum number of pods per node in the node pools. @@ -506,6 +525,13 @@ func (o OceanNpVirtualNodeGroupOutput) Labels() pulumi.MapOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.MapOutput { return v.Labels }).(pulumi.MapOutput) } +// Custom Linux OS configuration. +func (o OceanNpVirtualNodeGroupOutput) LinuxOsConfigs() OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput { + return o.ApplyT(func(v *OceanNpVirtualNodeGroup) OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput { + return v.LinuxOsConfigs + }).(OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput) +} + // Maximum node count limit. func (o OceanNpVirtualNodeGroupOutput) MaxCount() pulumi.IntPtrOutput { return o.ApplyT(func(v *OceanNpVirtualNodeGroup) pulumi.IntPtrOutput { return v.MaxCount }).(pulumi.IntPtrOutput) diff --git a/sdk/go/spotinst/azure/pulumiTypes.go b/sdk/go/spotinst/azure/pulumiTypes.go index c40a2bca..59009766 100644 --- a/sdk/go/spotinst/azure/pulumiTypes.go +++ b/sdk/go/spotinst/azure/pulumiTypes.go @@ -3472,9 +3472,200 @@ func (o OceanNpHealthPtrOutput) GracePeriod() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +type OceanNpLinuxOsConfig struct { + // System Controls + Sysctls []OceanNpLinuxOsConfigSysctl `pulumi:"sysctls"` +} + +// OceanNpLinuxOsConfigInput is an input type that accepts OceanNpLinuxOsConfigArgs and OceanNpLinuxOsConfigOutput values. +// You can construct a concrete instance of `OceanNpLinuxOsConfigInput` via: +// +// OceanNpLinuxOsConfigArgs{...} +type OceanNpLinuxOsConfigInput interface { + pulumi.Input + + ToOceanNpLinuxOsConfigOutput() OceanNpLinuxOsConfigOutput + ToOceanNpLinuxOsConfigOutputWithContext(context.Context) OceanNpLinuxOsConfigOutput +} + +type OceanNpLinuxOsConfigArgs struct { + // System Controls + Sysctls OceanNpLinuxOsConfigSysctlArrayInput `pulumi:"sysctls"` +} + +func (OceanNpLinuxOsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpLinuxOsConfig)(nil)).Elem() +} + +func (i OceanNpLinuxOsConfigArgs) ToOceanNpLinuxOsConfigOutput() OceanNpLinuxOsConfigOutput { + return i.ToOceanNpLinuxOsConfigOutputWithContext(context.Background()) +} + +func (i OceanNpLinuxOsConfigArgs) ToOceanNpLinuxOsConfigOutputWithContext(ctx context.Context) OceanNpLinuxOsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpLinuxOsConfigOutput) +} + +// OceanNpLinuxOsConfigArrayInput is an input type that accepts OceanNpLinuxOsConfigArray and OceanNpLinuxOsConfigArrayOutput values. +// You can construct a concrete instance of `OceanNpLinuxOsConfigArrayInput` via: +// +// OceanNpLinuxOsConfigArray{ OceanNpLinuxOsConfigArgs{...} } +type OceanNpLinuxOsConfigArrayInput interface { + pulumi.Input + + ToOceanNpLinuxOsConfigArrayOutput() OceanNpLinuxOsConfigArrayOutput + ToOceanNpLinuxOsConfigArrayOutputWithContext(context.Context) OceanNpLinuxOsConfigArrayOutput +} + +type OceanNpLinuxOsConfigArray []OceanNpLinuxOsConfigInput + +func (OceanNpLinuxOsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpLinuxOsConfig)(nil)).Elem() +} + +func (i OceanNpLinuxOsConfigArray) ToOceanNpLinuxOsConfigArrayOutput() OceanNpLinuxOsConfigArrayOutput { + return i.ToOceanNpLinuxOsConfigArrayOutputWithContext(context.Background()) +} + +func (i OceanNpLinuxOsConfigArray) ToOceanNpLinuxOsConfigArrayOutputWithContext(ctx context.Context) OceanNpLinuxOsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpLinuxOsConfigArrayOutput) +} + +type OceanNpLinuxOsConfigOutput struct{ *pulumi.OutputState } + +func (OceanNpLinuxOsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpLinuxOsConfig)(nil)).Elem() +} + +func (o OceanNpLinuxOsConfigOutput) ToOceanNpLinuxOsConfigOutput() OceanNpLinuxOsConfigOutput { + return o +} + +func (o OceanNpLinuxOsConfigOutput) ToOceanNpLinuxOsConfigOutputWithContext(ctx context.Context) OceanNpLinuxOsConfigOutput { + return o +} + +// System Controls +func (o OceanNpLinuxOsConfigOutput) Sysctls() OceanNpLinuxOsConfigSysctlArrayOutput { + return o.ApplyT(func(v OceanNpLinuxOsConfig) []OceanNpLinuxOsConfigSysctl { return v.Sysctls }).(OceanNpLinuxOsConfigSysctlArrayOutput) +} + +type OceanNpLinuxOsConfigArrayOutput struct{ *pulumi.OutputState } + +func (OceanNpLinuxOsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpLinuxOsConfig)(nil)).Elem() +} + +func (o OceanNpLinuxOsConfigArrayOutput) ToOceanNpLinuxOsConfigArrayOutput() OceanNpLinuxOsConfigArrayOutput { + return o +} + +func (o OceanNpLinuxOsConfigArrayOutput) ToOceanNpLinuxOsConfigArrayOutputWithContext(ctx context.Context) OceanNpLinuxOsConfigArrayOutput { + return o +} + +func (o OceanNpLinuxOsConfigArrayOutput) Index(i pulumi.IntInput) OceanNpLinuxOsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OceanNpLinuxOsConfig { + return vs[0].([]OceanNpLinuxOsConfig)[vs[1].(int)] + }).(OceanNpLinuxOsConfigOutput) +} + +type OceanNpLinuxOsConfigSysctl struct { + VmMaxMapCount *int `pulumi:"vmMaxMapCount"` +} + +// OceanNpLinuxOsConfigSysctlInput is an input type that accepts OceanNpLinuxOsConfigSysctlArgs and OceanNpLinuxOsConfigSysctlOutput values. +// You can construct a concrete instance of `OceanNpLinuxOsConfigSysctlInput` via: +// +// OceanNpLinuxOsConfigSysctlArgs{...} +type OceanNpLinuxOsConfigSysctlInput interface { + pulumi.Input + + ToOceanNpLinuxOsConfigSysctlOutput() OceanNpLinuxOsConfigSysctlOutput + ToOceanNpLinuxOsConfigSysctlOutputWithContext(context.Context) OceanNpLinuxOsConfigSysctlOutput +} + +type OceanNpLinuxOsConfigSysctlArgs struct { + VmMaxMapCount pulumi.IntPtrInput `pulumi:"vmMaxMapCount"` +} + +func (OceanNpLinuxOsConfigSysctlArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpLinuxOsConfigSysctl)(nil)).Elem() +} + +func (i OceanNpLinuxOsConfigSysctlArgs) ToOceanNpLinuxOsConfigSysctlOutput() OceanNpLinuxOsConfigSysctlOutput { + return i.ToOceanNpLinuxOsConfigSysctlOutputWithContext(context.Background()) +} + +func (i OceanNpLinuxOsConfigSysctlArgs) ToOceanNpLinuxOsConfigSysctlOutputWithContext(ctx context.Context) OceanNpLinuxOsConfigSysctlOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpLinuxOsConfigSysctlOutput) +} + +// OceanNpLinuxOsConfigSysctlArrayInput is an input type that accepts OceanNpLinuxOsConfigSysctlArray and OceanNpLinuxOsConfigSysctlArrayOutput values. +// You can construct a concrete instance of `OceanNpLinuxOsConfigSysctlArrayInput` via: +// +// OceanNpLinuxOsConfigSysctlArray{ OceanNpLinuxOsConfigSysctlArgs{...} } +type OceanNpLinuxOsConfigSysctlArrayInput interface { + pulumi.Input + + ToOceanNpLinuxOsConfigSysctlArrayOutput() OceanNpLinuxOsConfigSysctlArrayOutput + ToOceanNpLinuxOsConfigSysctlArrayOutputWithContext(context.Context) OceanNpLinuxOsConfigSysctlArrayOutput +} + +type OceanNpLinuxOsConfigSysctlArray []OceanNpLinuxOsConfigSysctlInput + +func (OceanNpLinuxOsConfigSysctlArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpLinuxOsConfigSysctl)(nil)).Elem() +} + +func (i OceanNpLinuxOsConfigSysctlArray) ToOceanNpLinuxOsConfigSysctlArrayOutput() OceanNpLinuxOsConfigSysctlArrayOutput { + return i.ToOceanNpLinuxOsConfigSysctlArrayOutputWithContext(context.Background()) +} + +func (i OceanNpLinuxOsConfigSysctlArray) ToOceanNpLinuxOsConfigSysctlArrayOutputWithContext(ctx context.Context) OceanNpLinuxOsConfigSysctlArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpLinuxOsConfigSysctlArrayOutput) +} + +type OceanNpLinuxOsConfigSysctlOutput struct{ *pulumi.OutputState } + +func (OceanNpLinuxOsConfigSysctlOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpLinuxOsConfigSysctl)(nil)).Elem() +} + +func (o OceanNpLinuxOsConfigSysctlOutput) ToOceanNpLinuxOsConfigSysctlOutput() OceanNpLinuxOsConfigSysctlOutput { + return o +} + +func (o OceanNpLinuxOsConfigSysctlOutput) ToOceanNpLinuxOsConfigSysctlOutputWithContext(ctx context.Context) OceanNpLinuxOsConfigSysctlOutput { + return o +} + +func (o OceanNpLinuxOsConfigSysctlOutput) VmMaxMapCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v OceanNpLinuxOsConfigSysctl) *int { return v.VmMaxMapCount }).(pulumi.IntPtrOutput) +} + +type OceanNpLinuxOsConfigSysctlArrayOutput struct{ *pulumi.OutputState } + +func (OceanNpLinuxOsConfigSysctlArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpLinuxOsConfigSysctl)(nil)).Elem() +} + +func (o OceanNpLinuxOsConfigSysctlArrayOutput) ToOceanNpLinuxOsConfigSysctlArrayOutput() OceanNpLinuxOsConfigSysctlArrayOutput { + return o +} + +func (o OceanNpLinuxOsConfigSysctlArrayOutput) ToOceanNpLinuxOsConfigSysctlArrayOutputWithContext(ctx context.Context) OceanNpLinuxOsConfigSysctlArrayOutput { + return o +} + +func (o OceanNpLinuxOsConfigSysctlArrayOutput) Index(i pulumi.IntInput) OceanNpLinuxOsConfigSysctlOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OceanNpLinuxOsConfigSysctl { + return vs[0].([]OceanNpLinuxOsConfigSysctl)[vs[1].(int)] + }).(OceanNpLinuxOsConfigSysctlOutput) +} + type OceanNpScheduling struct { - // [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. ShutdownHours *OceanNpSchedulingShutdownHours `pulumi:"shutdownHours"` + Tasks []OceanNpSchedulingTask `pulumi:"tasks"` } // OceanNpSchedulingInput is an input type that accepts OceanNpSchedulingArgs and OceanNpSchedulingOutput values. @@ -3489,8 +3680,8 @@ type OceanNpSchedulingInput interface { } type OceanNpSchedulingArgs struct { - // [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. ShutdownHours OceanNpSchedulingShutdownHoursPtrInput `pulumi:"shutdownHours"` + Tasks OceanNpSchedulingTaskArrayInput `pulumi:"tasks"` } func (OceanNpSchedulingArgs) ElementType() reflect.Type { @@ -3570,11 +3761,14 @@ func (o OceanNpSchedulingOutput) ToOceanNpSchedulingPtrOutputWithContext(ctx con }).(OceanNpSchedulingPtrOutput) } -// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. func (o OceanNpSchedulingOutput) ShutdownHours() OceanNpSchedulingShutdownHoursPtrOutput { return o.ApplyT(func(v OceanNpScheduling) *OceanNpSchedulingShutdownHours { return v.ShutdownHours }).(OceanNpSchedulingShutdownHoursPtrOutput) } +func (o OceanNpSchedulingOutput) Tasks() OceanNpSchedulingTaskArrayOutput { + return o.ApplyT(func(v OceanNpScheduling) []OceanNpSchedulingTask { return v.Tasks }).(OceanNpSchedulingTaskArrayOutput) +} + type OceanNpSchedulingPtrOutput struct{ *pulumi.OutputState } func (OceanNpSchedulingPtrOutput) ElementType() reflect.Type { @@ -3599,7 +3793,6 @@ func (o OceanNpSchedulingPtrOutput) Elem() OceanNpSchedulingOutput { }).(OceanNpSchedulingOutput) } -// [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. func (o OceanNpSchedulingPtrOutput) ShutdownHours() OceanNpSchedulingShutdownHoursPtrOutput { return o.ApplyT(func(v *OceanNpScheduling) *OceanNpSchedulingShutdownHours { if v == nil { @@ -3609,6 +3802,15 @@ func (o OceanNpSchedulingPtrOutput) ShutdownHours() OceanNpSchedulingShutdownHou }).(OceanNpSchedulingShutdownHoursPtrOutput) } +func (o OceanNpSchedulingPtrOutput) Tasks() OceanNpSchedulingTaskArrayOutput { + return o.ApplyT(func(v *OceanNpScheduling) []OceanNpSchedulingTask { + if v == nil { + return nil + } + return v.Tasks + }).(OceanNpSchedulingTaskArrayOutput) +} + type OceanNpSchedulingShutdownHours struct { IsEnabled *bool `pulumi:"isEnabled"` TimeWindows []string `pulumi:"timeWindows"` @@ -3757,6 +3959,461 @@ func (o OceanNpSchedulingShutdownHoursPtrOutput) TimeWindows() pulumi.StringArra }).(pulumi.StringArrayOutput) } +type OceanNpSchedulingTask struct { + CronExpression string `pulumi:"cronExpression"` + IsEnabled bool `pulumi:"isEnabled"` + Parameters *OceanNpSchedulingTaskParameters `pulumi:"parameters"` + TaskType string `pulumi:"taskType"` +} + +// OceanNpSchedulingTaskInput is an input type that accepts OceanNpSchedulingTaskArgs and OceanNpSchedulingTaskOutput values. +// You can construct a concrete instance of `OceanNpSchedulingTaskInput` via: +// +// OceanNpSchedulingTaskArgs{...} +type OceanNpSchedulingTaskInput interface { + pulumi.Input + + ToOceanNpSchedulingTaskOutput() OceanNpSchedulingTaskOutput + ToOceanNpSchedulingTaskOutputWithContext(context.Context) OceanNpSchedulingTaskOutput +} + +type OceanNpSchedulingTaskArgs struct { + CronExpression pulumi.StringInput `pulumi:"cronExpression"` + IsEnabled pulumi.BoolInput `pulumi:"isEnabled"` + Parameters OceanNpSchedulingTaskParametersPtrInput `pulumi:"parameters"` + TaskType pulumi.StringInput `pulumi:"taskType"` +} + +func (OceanNpSchedulingTaskArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpSchedulingTask)(nil)).Elem() +} + +func (i OceanNpSchedulingTaskArgs) ToOceanNpSchedulingTaskOutput() OceanNpSchedulingTaskOutput { + return i.ToOceanNpSchedulingTaskOutputWithContext(context.Background()) +} + +func (i OceanNpSchedulingTaskArgs) ToOceanNpSchedulingTaskOutputWithContext(ctx context.Context) OceanNpSchedulingTaskOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpSchedulingTaskOutput) +} + +// OceanNpSchedulingTaskArrayInput is an input type that accepts OceanNpSchedulingTaskArray and OceanNpSchedulingTaskArrayOutput values. +// You can construct a concrete instance of `OceanNpSchedulingTaskArrayInput` via: +// +// OceanNpSchedulingTaskArray{ OceanNpSchedulingTaskArgs{...} } +type OceanNpSchedulingTaskArrayInput interface { + pulumi.Input + + ToOceanNpSchedulingTaskArrayOutput() OceanNpSchedulingTaskArrayOutput + ToOceanNpSchedulingTaskArrayOutputWithContext(context.Context) OceanNpSchedulingTaskArrayOutput +} + +type OceanNpSchedulingTaskArray []OceanNpSchedulingTaskInput + +func (OceanNpSchedulingTaskArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpSchedulingTask)(nil)).Elem() +} + +func (i OceanNpSchedulingTaskArray) ToOceanNpSchedulingTaskArrayOutput() OceanNpSchedulingTaskArrayOutput { + return i.ToOceanNpSchedulingTaskArrayOutputWithContext(context.Background()) +} + +func (i OceanNpSchedulingTaskArray) ToOceanNpSchedulingTaskArrayOutputWithContext(ctx context.Context) OceanNpSchedulingTaskArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpSchedulingTaskArrayOutput) +} + +type OceanNpSchedulingTaskOutput struct{ *pulumi.OutputState } + +func (OceanNpSchedulingTaskOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpSchedulingTask)(nil)).Elem() +} + +func (o OceanNpSchedulingTaskOutput) ToOceanNpSchedulingTaskOutput() OceanNpSchedulingTaskOutput { + return o +} + +func (o OceanNpSchedulingTaskOutput) ToOceanNpSchedulingTaskOutputWithContext(ctx context.Context) OceanNpSchedulingTaskOutput { + return o +} + +func (o OceanNpSchedulingTaskOutput) CronExpression() pulumi.StringOutput { + return o.ApplyT(func(v OceanNpSchedulingTask) string { return v.CronExpression }).(pulumi.StringOutput) +} + +func (o OceanNpSchedulingTaskOutput) IsEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v OceanNpSchedulingTask) bool { return v.IsEnabled }).(pulumi.BoolOutput) +} + +func (o OceanNpSchedulingTaskOutput) Parameters() OceanNpSchedulingTaskParametersPtrOutput { + return o.ApplyT(func(v OceanNpSchedulingTask) *OceanNpSchedulingTaskParameters { return v.Parameters }).(OceanNpSchedulingTaskParametersPtrOutput) +} + +func (o OceanNpSchedulingTaskOutput) TaskType() pulumi.StringOutput { + return o.ApplyT(func(v OceanNpSchedulingTask) string { return v.TaskType }).(pulumi.StringOutput) +} + +type OceanNpSchedulingTaskArrayOutput struct{ *pulumi.OutputState } + +func (OceanNpSchedulingTaskArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpSchedulingTask)(nil)).Elem() +} + +func (o OceanNpSchedulingTaskArrayOutput) ToOceanNpSchedulingTaskArrayOutput() OceanNpSchedulingTaskArrayOutput { + return o +} + +func (o OceanNpSchedulingTaskArrayOutput) ToOceanNpSchedulingTaskArrayOutputWithContext(ctx context.Context) OceanNpSchedulingTaskArrayOutput { + return o +} + +func (o OceanNpSchedulingTaskArrayOutput) Index(i pulumi.IntInput) OceanNpSchedulingTaskOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OceanNpSchedulingTask { + return vs[0].([]OceanNpSchedulingTask)[vs[1].(int)] + }).(OceanNpSchedulingTaskOutput) +} + +type OceanNpSchedulingTaskParameters struct { + ParametersClusterRoll *OceanNpSchedulingTaskParametersParametersClusterRoll `pulumi:"parametersClusterRoll"` +} + +// OceanNpSchedulingTaskParametersInput is an input type that accepts OceanNpSchedulingTaskParametersArgs and OceanNpSchedulingTaskParametersOutput values. +// You can construct a concrete instance of `OceanNpSchedulingTaskParametersInput` via: +// +// OceanNpSchedulingTaskParametersArgs{...} +type OceanNpSchedulingTaskParametersInput interface { + pulumi.Input + + ToOceanNpSchedulingTaskParametersOutput() OceanNpSchedulingTaskParametersOutput + ToOceanNpSchedulingTaskParametersOutputWithContext(context.Context) OceanNpSchedulingTaskParametersOutput +} + +type OceanNpSchedulingTaskParametersArgs struct { + ParametersClusterRoll OceanNpSchedulingTaskParametersParametersClusterRollPtrInput `pulumi:"parametersClusterRoll"` +} + +func (OceanNpSchedulingTaskParametersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpSchedulingTaskParameters)(nil)).Elem() +} + +func (i OceanNpSchedulingTaskParametersArgs) ToOceanNpSchedulingTaskParametersOutput() OceanNpSchedulingTaskParametersOutput { + return i.ToOceanNpSchedulingTaskParametersOutputWithContext(context.Background()) +} + +func (i OceanNpSchedulingTaskParametersArgs) ToOceanNpSchedulingTaskParametersOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpSchedulingTaskParametersOutput) +} + +func (i OceanNpSchedulingTaskParametersArgs) ToOceanNpSchedulingTaskParametersPtrOutput() OceanNpSchedulingTaskParametersPtrOutput { + return i.ToOceanNpSchedulingTaskParametersPtrOutputWithContext(context.Background()) +} + +func (i OceanNpSchedulingTaskParametersArgs) ToOceanNpSchedulingTaskParametersPtrOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpSchedulingTaskParametersOutput).ToOceanNpSchedulingTaskParametersPtrOutputWithContext(ctx) +} + +// OceanNpSchedulingTaskParametersPtrInput is an input type that accepts OceanNpSchedulingTaskParametersArgs, OceanNpSchedulingTaskParametersPtr and OceanNpSchedulingTaskParametersPtrOutput values. +// You can construct a concrete instance of `OceanNpSchedulingTaskParametersPtrInput` via: +// +// OceanNpSchedulingTaskParametersArgs{...} +// +// or: +// +// nil +type OceanNpSchedulingTaskParametersPtrInput interface { + pulumi.Input + + ToOceanNpSchedulingTaskParametersPtrOutput() OceanNpSchedulingTaskParametersPtrOutput + ToOceanNpSchedulingTaskParametersPtrOutputWithContext(context.Context) OceanNpSchedulingTaskParametersPtrOutput +} + +type oceanNpSchedulingTaskParametersPtrType OceanNpSchedulingTaskParametersArgs + +func OceanNpSchedulingTaskParametersPtr(v *OceanNpSchedulingTaskParametersArgs) OceanNpSchedulingTaskParametersPtrInput { + return (*oceanNpSchedulingTaskParametersPtrType)(v) +} + +func (*oceanNpSchedulingTaskParametersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OceanNpSchedulingTaskParameters)(nil)).Elem() +} + +func (i *oceanNpSchedulingTaskParametersPtrType) ToOceanNpSchedulingTaskParametersPtrOutput() OceanNpSchedulingTaskParametersPtrOutput { + return i.ToOceanNpSchedulingTaskParametersPtrOutputWithContext(context.Background()) +} + +func (i *oceanNpSchedulingTaskParametersPtrType) ToOceanNpSchedulingTaskParametersPtrOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpSchedulingTaskParametersPtrOutput) +} + +type OceanNpSchedulingTaskParametersOutput struct{ *pulumi.OutputState } + +func (OceanNpSchedulingTaskParametersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpSchedulingTaskParameters)(nil)).Elem() +} + +func (o OceanNpSchedulingTaskParametersOutput) ToOceanNpSchedulingTaskParametersOutput() OceanNpSchedulingTaskParametersOutput { + return o +} + +func (o OceanNpSchedulingTaskParametersOutput) ToOceanNpSchedulingTaskParametersOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersOutput { + return o +} + +func (o OceanNpSchedulingTaskParametersOutput) ToOceanNpSchedulingTaskParametersPtrOutput() OceanNpSchedulingTaskParametersPtrOutput { + return o.ToOceanNpSchedulingTaskParametersPtrOutputWithContext(context.Background()) +} + +func (o OceanNpSchedulingTaskParametersOutput) ToOceanNpSchedulingTaskParametersPtrOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OceanNpSchedulingTaskParameters) *OceanNpSchedulingTaskParameters { + return &v + }).(OceanNpSchedulingTaskParametersPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersOutput) ParametersClusterRoll() OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return o.ApplyT(func(v OceanNpSchedulingTaskParameters) *OceanNpSchedulingTaskParametersParametersClusterRoll { + return v.ParametersClusterRoll + }).(OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) +} + +type OceanNpSchedulingTaskParametersPtrOutput struct{ *pulumi.OutputState } + +func (OceanNpSchedulingTaskParametersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OceanNpSchedulingTaskParameters)(nil)).Elem() +} + +func (o OceanNpSchedulingTaskParametersPtrOutput) ToOceanNpSchedulingTaskParametersPtrOutput() OceanNpSchedulingTaskParametersPtrOutput { + return o +} + +func (o OceanNpSchedulingTaskParametersPtrOutput) ToOceanNpSchedulingTaskParametersPtrOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersPtrOutput { + return o +} + +func (o OceanNpSchedulingTaskParametersPtrOutput) Elem() OceanNpSchedulingTaskParametersOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParameters) OceanNpSchedulingTaskParameters { + if v != nil { + return *v + } + var ret OceanNpSchedulingTaskParameters + return ret + }).(OceanNpSchedulingTaskParametersOutput) +} + +func (o OceanNpSchedulingTaskParametersPtrOutput) ParametersClusterRoll() OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParameters) *OceanNpSchedulingTaskParametersParametersClusterRoll { + if v == nil { + return nil + } + return v.ParametersClusterRoll + }).(OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) +} + +type OceanNpSchedulingTaskParametersParametersClusterRoll struct { + BatchMinHealthyPercentage *int `pulumi:"batchMinHealthyPercentage"` + BatchSizePercentage *int `pulumi:"batchSizePercentage"` + Comment *string `pulumi:"comment"` + RespectPdb *bool `pulumi:"respectPdb"` + RespectRestrictScaleDown *bool `pulumi:"respectRestrictScaleDown"` + VngIds []string `pulumi:"vngIds"` +} + +// OceanNpSchedulingTaskParametersParametersClusterRollInput is an input type that accepts OceanNpSchedulingTaskParametersParametersClusterRollArgs and OceanNpSchedulingTaskParametersParametersClusterRollOutput values. +// You can construct a concrete instance of `OceanNpSchedulingTaskParametersParametersClusterRollInput` via: +// +// OceanNpSchedulingTaskParametersParametersClusterRollArgs{...} +type OceanNpSchedulingTaskParametersParametersClusterRollInput interface { + pulumi.Input + + ToOceanNpSchedulingTaskParametersParametersClusterRollOutput() OceanNpSchedulingTaskParametersParametersClusterRollOutput + ToOceanNpSchedulingTaskParametersParametersClusterRollOutputWithContext(context.Context) OceanNpSchedulingTaskParametersParametersClusterRollOutput +} + +type OceanNpSchedulingTaskParametersParametersClusterRollArgs struct { + BatchMinHealthyPercentage pulumi.IntPtrInput `pulumi:"batchMinHealthyPercentage"` + BatchSizePercentage pulumi.IntPtrInput `pulumi:"batchSizePercentage"` + Comment pulumi.StringPtrInput `pulumi:"comment"` + RespectPdb pulumi.BoolPtrInput `pulumi:"respectPdb"` + RespectRestrictScaleDown pulumi.BoolPtrInput `pulumi:"respectRestrictScaleDown"` + VngIds pulumi.StringArrayInput `pulumi:"vngIds"` +} + +func (OceanNpSchedulingTaskParametersParametersClusterRollArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpSchedulingTaskParametersParametersClusterRoll)(nil)).Elem() +} + +func (i OceanNpSchedulingTaskParametersParametersClusterRollArgs) ToOceanNpSchedulingTaskParametersParametersClusterRollOutput() OceanNpSchedulingTaskParametersParametersClusterRollOutput { + return i.ToOceanNpSchedulingTaskParametersParametersClusterRollOutputWithContext(context.Background()) +} + +func (i OceanNpSchedulingTaskParametersParametersClusterRollArgs) ToOceanNpSchedulingTaskParametersParametersClusterRollOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersParametersClusterRollOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpSchedulingTaskParametersParametersClusterRollOutput) +} + +func (i OceanNpSchedulingTaskParametersParametersClusterRollArgs) ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutput() OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return i.ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(context.Background()) +} + +func (i OceanNpSchedulingTaskParametersParametersClusterRollArgs) ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpSchedulingTaskParametersParametersClusterRollOutput).ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(ctx) +} + +// OceanNpSchedulingTaskParametersParametersClusterRollPtrInput is an input type that accepts OceanNpSchedulingTaskParametersParametersClusterRollArgs, OceanNpSchedulingTaskParametersParametersClusterRollPtr and OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput values. +// You can construct a concrete instance of `OceanNpSchedulingTaskParametersParametersClusterRollPtrInput` via: +// +// OceanNpSchedulingTaskParametersParametersClusterRollArgs{...} +// +// or: +// +// nil +type OceanNpSchedulingTaskParametersParametersClusterRollPtrInput interface { + pulumi.Input + + ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutput() OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput + ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(context.Context) OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput +} + +type oceanNpSchedulingTaskParametersParametersClusterRollPtrType OceanNpSchedulingTaskParametersParametersClusterRollArgs + +func OceanNpSchedulingTaskParametersParametersClusterRollPtr(v *OceanNpSchedulingTaskParametersParametersClusterRollArgs) OceanNpSchedulingTaskParametersParametersClusterRollPtrInput { + return (*oceanNpSchedulingTaskParametersParametersClusterRollPtrType)(v) +} + +func (*oceanNpSchedulingTaskParametersParametersClusterRollPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**OceanNpSchedulingTaskParametersParametersClusterRoll)(nil)).Elem() +} + +func (i *oceanNpSchedulingTaskParametersParametersClusterRollPtrType) ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutput() OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return i.ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(context.Background()) +} + +func (i *oceanNpSchedulingTaskParametersParametersClusterRollPtrType) ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) +} + +type OceanNpSchedulingTaskParametersParametersClusterRollOutput struct{ *pulumi.OutputState } + +func (OceanNpSchedulingTaskParametersParametersClusterRollOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpSchedulingTaskParametersParametersClusterRoll)(nil)).Elem() +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) ToOceanNpSchedulingTaskParametersParametersClusterRollOutput() OceanNpSchedulingTaskParametersParametersClusterRollOutput { + return o +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) ToOceanNpSchedulingTaskParametersParametersClusterRollOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersParametersClusterRollOutput { + return o +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutput() OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return o.ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(context.Background()) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v OceanNpSchedulingTaskParametersParametersClusterRoll) *OceanNpSchedulingTaskParametersParametersClusterRoll { + return &v + }).(OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) BatchMinHealthyPercentage() pulumi.IntPtrOutput { + return o.ApplyT(func(v OceanNpSchedulingTaskParametersParametersClusterRoll) *int { return v.BatchMinHealthyPercentage }).(pulumi.IntPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) BatchSizePercentage() pulumi.IntPtrOutput { + return o.ApplyT(func(v OceanNpSchedulingTaskParametersParametersClusterRoll) *int { return v.BatchSizePercentage }).(pulumi.IntPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) Comment() pulumi.StringPtrOutput { + return o.ApplyT(func(v OceanNpSchedulingTaskParametersParametersClusterRoll) *string { return v.Comment }).(pulumi.StringPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) RespectPdb() pulumi.BoolPtrOutput { + return o.ApplyT(func(v OceanNpSchedulingTaskParametersParametersClusterRoll) *bool { return v.RespectPdb }).(pulumi.BoolPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) RespectRestrictScaleDown() pulumi.BoolPtrOutput { + return o.ApplyT(func(v OceanNpSchedulingTaskParametersParametersClusterRoll) *bool { return v.RespectRestrictScaleDown }).(pulumi.BoolPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollOutput) VngIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v OceanNpSchedulingTaskParametersParametersClusterRoll) []string { return v.VngIds }).(pulumi.StringArrayOutput) +} + +type OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput struct{ *pulumi.OutputState } + +func (OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**OceanNpSchedulingTaskParametersParametersClusterRoll)(nil)).Elem() +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutput() OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return o +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) ToOceanNpSchedulingTaskParametersParametersClusterRollPtrOutputWithContext(ctx context.Context) OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput { + return o +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) Elem() OceanNpSchedulingTaskParametersParametersClusterRollOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParametersParametersClusterRoll) OceanNpSchedulingTaskParametersParametersClusterRoll { + if v != nil { + return *v + } + var ret OceanNpSchedulingTaskParametersParametersClusterRoll + return ret + }).(OceanNpSchedulingTaskParametersParametersClusterRollOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) BatchMinHealthyPercentage() pulumi.IntPtrOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParametersParametersClusterRoll) *int { + if v == nil { + return nil + } + return v.BatchMinHealthyPercentage + }).(pulumi.IntPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) BatchSizePercentage() pulumi.IntPtrOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParametersParametersClusterRoll) *int { + if v == nil { + return nil + } + return v.BatchSizePercentage + }).(pulumi.IntPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) Comment() pulumi.StringPtrOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParametersParametersClusterRoll) *string { + if v == nil { + return nil + } + return v.Comment + }).(pulumi.StringPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) RespectPdb() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParametersParametersClusterRoll) *bool { + if v == nil { + return nil + } + return v.RespectPdb + }).(pulumi.BoolPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) RespectRestrictScaleDown() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParametersParametersClusterRoll) *bool { + if v == nil { + return nil + } + return v.RespectRestrictScaleDown + }).(pulumi.BoolPtrOutput) +} + +func (o OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput) VngIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *OceanNpSchedulingTaskParametersParametersClusterRoll) []string { + if v == nil { + return nil + } + return v.VngIds + }).(pulumi.StringArrayOutput) +} + type OceanNpTaint struct { // Set taint effect. Effect string `pulumi:"effect"` @@ -4804,6 +5461,199 @@ func (o OceanNpVirtualNodeGroupHeadroomArrayOutput) Index(i pulumi.IntInput) Oce }).(OceanNpVirtualNodeGroupHeadroomOutput) } +type OceanNpVirtualNodeGroupLinuxOsConfig struct { + // System Controls + Sysctls []OceanNpVirtualNodeGroupLinuxOsConfigSysctl `pulumi:"sysctls"` +} + +// OceanNpVirtualNodeGroupLinuxOsConfigInput is an input type that accepts OceanNpVirtualNodeGroupLinuxOsConfigArgs and OceanNpVirtualNodeGroupLinuxOsConfigOutput values. +// You can construct a concrete instance of `OceanNpVirtualNodeGroupLinuxOsConfigInput` via: +// +// OceanNpVirtualNodeGroupLinuxOsConfigArgs{...} +type OceanNpVirtualNodeGroupLinuxOsConfigInput interface { + pulumi.Input + + ToOceanNpVirtualNodeGroupLinuxOsConfigOutput() OceanNpVirtualNodeGroupLinuxOsConfigOutput + ToOceanNpVirtualNodeGroupLinuxOsConfigOutputWithContext(context.Context) OceanNpVirtualNodeGroupLinuxOsConfigOutput +} + +type OceanNpVirtualNodeGroupLinuxOsConfigArgs struct { + // System Controls + Sysctls OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayInput `pulumi:"sysctls"` +} + +func (OceanNpVirtualNodeGroupLinuxOsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpVirtualNodeGroupLinuxOsConfig)(nil)).Elem() +} + +func (i OceanNpVirtualNodeGroupLinuxOsConfigArgs) ToOceanNpVirtualNodeGroupLinuxOsConfigOutput() OceanNpVirtualNodeGroupLinuxOsConfigOutput { + return i.ToOceanNpVirtualNodeGroupLinuxOsConfigOutputWithContext(context.Background()) +} + +func (i OceanNpVirtualNodeGroupLinuxOsConfigArgs) ToOceanNpVirtualNodeGroupLinuxOsConfigOutputWithContext(ctx context.Context) OceanNpVirtualNodeGroupLinuxOsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpVirtualNodeGroupLinuxOsConfigOutput) +} + +// OceanNpVirtualNodeGroupLinuxOsConfigArrayInput is an input type that accepts OceanNpVirtualNodeGroupLinuxOsConfigArray and OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput values. +// You can construct a concrete instance of `OceanNpVirtualNodeGroupLinuxOsConfigArrayInput` via: +// +// OceanNpVirtualNodeGroupLinuxOsConfigArray{ OceanNpVirtualNodeGroupLinuxOsConfigArgs{...} } +type OceanNpVirtualNodeGroupLinuxOsConfigArrayInput interface { + pulumi.Input + + ToOceanNpVirtualNodeGroupLinuxOsConfigArrayOutput() OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput + ToOceanNpVirtualNodeGroupLinuxOsConfigArrayOutputWithContext(context.Context) OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput +} + +type OceanNpVirtualNodeGroupLinuxOsConfigArray []OceanNpVirtualNodeGroupLinuxOsConfigInput + +func (OceanNpVirtualNodeGroupLinuxOsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpVirtualNodeGroupLinuxOsConfig)(nil)).Elem() +} + +func (i OceanNpVirtualNodeGroupLinuxOsConfigArray) ToOceanNpVirtualNodeGroupLinuxOsConfigArrayOutput() OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput { + return i.ToOceanNpVirtualNodeGroupLinuxOsConfigArrayOutputWithContext(context.Background()) +} + +func (i OceanNpVirtualNodeGroupLinuxOsConfigArray) ToOceanNpVirtualNodeGroupLinuxOsConfigArrayOutputWithContext(ctx context.Context) OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput) +} + +type OceanNpVirtualNodeGroupLinuxOsConfigOutput struct{ *pulumi.OutputState } + +func (OceanNpVirtualNodeGroupLinuxOsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpVirtualNodeGroupLinuxOsConfig)(nil)).Elem() +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigOutput) ToOceanNpVirtualNodeGroupLinuxOsConfigOutput() OceanNpVirtualNodeGroupLinuxOsConfigOutput { + return o +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigOutput) ToOceanNpVirtualNodeGroupLinuxOsConfigOutputWithContext(ctx context.Context) OceanNpVirtualNodeGroupLinuxOsConfigOutput { + return o +} + +// System Controls +func (o OceanNpVirtualNodeGroupLinuxOsConfigOutput) Sysctls() OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput { + return o.ApplyT(func(v OceanNpVirtualNodeGroupLinuxOsConfig) []OceanNpVirtualNodeGroupLinuxOsConfigSysctl { + return v.Sysctls + }).(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput) +} + +type OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput struct{ *pulumi.OutputState } + +func (OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpVirtualNodeGroupLinuxOsConfig)(nil)).Elem() +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput) ToOceanNpVirtualNodeGroupLinuxOsConfigArrayOutput() OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput { + return o +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput) ToOceanNpVirtualNodeGroupLinuxOsConfigArrayOutputWithContext(ctx context.Context) OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput { + return o +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput) Index(i pulumi.IntInput) OceanNpVirtualNodeGroupLinuxOsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OceanNpVirtualNodeGroupLinuxOsConfig { + return vs[0].([]OceanNpVirtualNodeGroupLinuxOsConfig)[vs[1].(int)] + }).(OceanNpVirtualNodeGroupLinuxOsConfigOutput) +} + +type OceanNpVirtualNodeGroupLinuxOsConfigSysctl struct { + VmMaxMapCount *int `pulumi:"vmMaxMapCount"` +} + +// OceanNpVirtualNodeGroupLinuxOsConfigSysctlInput is an input type that accepts OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs and OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput values. +// You can construct a concrete instance of `OceanNpVirtualNodeGroupLinuxOsConfigSysctlInput` via: +// +// OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs{...} +type OceanNpVirtualNodeGroupLinuxOsConfigSysctlInput interface { + pulumi.Input + + ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput() OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput + ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlOutputWithContext(context.Context) OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput +} + +type OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs struct { + VmMaxMapCount pulumi.IntPtrInput `pulumi:"vmMaxMapCount"` +} + +func (OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpVirtualNodeGroupLinuxOsConfigSysctl)(nil)).Elem() +} + +func (i OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs) ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput() OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput { + return i.ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlOutputWithContext(context.Background()) +} + +func (i OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs) ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlOutputWithContext(ctx context.Context) OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput) +} + +// OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayInput is an input type that accepts OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray and OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput values. +// You can construct a concrete instance of `OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayInput` via: +// +// OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray{ OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs{...} } +type OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayInput interface { + pulumi.Input + + ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput() OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput + ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutputWithContext(context.Context) OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput +} + +type OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray []OceanNpVirtualNodeGroupLinuxOsConfigSysctlInput + +func (OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpVirtualNodeGroupLinuxOsConfigSysctl)(nil)).Elem() +} + +func (i OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray) ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput() OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput { + return i.ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutputWithContext(context.Background()) +} + +func (i OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray) ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutputWithContext(ctx context.Context) OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput) +} + +type OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput struct{ *pulumi.OutputState } + +func (OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput) ElementType() reflect.Type { + return reflect.TypeOf((*OceanNpVirtualNodeGroupLinuxOsConfigSysctl)(nil)).Elem() +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput) ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput() OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput { + return o +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput) ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlOutputWithContext(ctx context.Context) OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput { + return o +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput) VmMaxMapCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v OceanNpVirtualNodeGroupLinuxOsConfigSysctl) *int { return v.VmMaxMapCount }).(pulumi.IntPtrOutput) +} + +type OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput struct{ *pulumi.OutputState } + +func (OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]OceanNpVirtualNodeGroupLinuxOsConfigSysctl)(nil)).Elem() +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput) ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput() OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput { + return o +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput) ToOceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutputWithContext(ctx context.Context) OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput { + return o +} + +func (o OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput) Index(i pulumi.IntInput) OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) OceanNpVirtualNodeGroupLinuxOsConfigSysctl { + return vs[0].([]OceanNpVirtualNodeGroupLinuxOsConfigSysctl)[vs[1].(int)] + }).(OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput) +} + type OceanNpVirtualNodeGroupTaint struct { // Set taint effect. Effect string `pulumi:"effect"` @@ -6751,10 +7601,20 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*OceanNpHeadroomArrayInput)(nil)).Elem(), OceanNpHeadroomArray{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpHealthInput)(nil)).Elem(), OceanNpHealthArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpHealthPtrInput)(nil)).Elem(), OceanNpHealthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpLinuxOsConfigInput)(nil)).Elem(), OceanNpLinuxOsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpLinuxOsConfigArrayInput)(nil)).Elem(), OceanNpLinuxOsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpLinuxOsConfigSysctlInput)(nil)).Elem(), OceanNpLinuxOsConfigSysctlArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpLinuxOsConfigSysctlArrayInput)(nil)).Elem(), OceanNpLinuxOsConfigSysctlArray{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingInput)(nil)).Elem(), OceanNpSchedulingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingPtrInput)(nil)).Elem(), OceanNpSchedulingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingShutdownHoursInput)(nil)).Elem(), OceanNpSchedulingShutdownHoursArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingShutdownHoursPtrInput)(nil)).Elem(), OceanNpSchedulingShutdownHoursArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingTaskInput)(nil)).Elem(), OceanNpSchedulingTaskArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingTaskArrayInput)(nil)).Elem(), OceanNpSchedulingTaskArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingTaskParametersInput)(nil)).Elem(), OceanNpSchedulingTaskParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingTaskParametersPtrInput)(nil)).Elem(), OceanNpSchedulingTaskParametersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingTaskParametersParametersClusterRollInput)(nil)).Elem(), OceanNpSchedulingTaskParametersParametersClusterRollArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpSchedulingTaskParametersParametersClusterRollPtrInput)(nil)).Elem(), OceanNpSchedulingTaskParametersParametersClusterRollArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpTaintInput)(nil)).Elem(), OceanNpTaintArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpTaintArrayInput)(nil)).Elem(), OceanNpTaintArray{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpUpdatePolicyInput)(nil)).Elem(), OceanNpUpdatePolicyArgs{}) @@ -6765,6 +7625,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupFiltersPtrInput)(nil)).Elem(), OceanNpVirtualNodeGroupFiltersArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupHeadroomInput)(nil)).Elem(), OceanNpVirtualNodeGroupHeadroomArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupHeadroomArrayInput)(nil)).Elem(), OceanNpVirtualNodeGroupHeadroomArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupLinuxOsConfigInput)(nil)).Elem(), OceanNpVirtualNodeGroupLinuxOsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupLinuxOsConfigArrayInput)(nil)).Elem(), OceanNpVirtualNodeGroupLinuxOsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupLinuxOsConfigSysctlInput)(nil)).Elem(), OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayInput)(nil)).Elem(), OceanNpVirtualNodeGroupLinuxOsConfigSysctlArray{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupTaintInput)(nil)).Elem(), OceanNpVirtualNodeGroupTaintArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupTaintArrayInput)(nil)).Elem(), OceanNpVirtualNodeGroupTaintArray{}) pulumi.RegisterInputType(reflect.TypeOf((*OceanNpVirtualNodeGroupUpdatePolicyInput)(nil)).Elem(), OceanNpVirtualNodeGroupUpdatePolicyArgs{}) @@ -6841,10 +7705,20 @@ func init() { pulumi.RegisterOutputType(OceanNpHeadroomArrayOutput{}) pulumi.RegisterOutputType(OceanNpHealthOutput{}) pulumi.RegisterOutputType(OceanNpHealthPtrOutput{}) + pulumi.RegisterOutputType(OceanNpLinuxOsConfigOutput{}) + pulumi.RegisterOutputType(OceanNpLinuxOsConfigArrayOutput{}) + pulumi.RegisterOutputType(OceanNpLinuxOsConfigSysctlOutput{}) + pulumi.RegisterOutputType(OceanNpLinuxOsConfigSysctlArrayOutput{}) pulumi.RegisterOutputType(OceanNpSchedulingOutput{}) pulumi.RegisterOutputType(OceanNpSchedulingPtrOutput{}) pulumi.RegisterOutputType(OceanNpSchedulingShutdownHoursOutput{}) pulumi.RegisterOutputType(OceanNpSchedulingShutdownHoursPtrOutput{}) + pulumi.RegisterOutputType(OceanNpSchedulingTaskOutput{}) + pulumi.RegisterOutputType(OceanNpSchedulingTaskArrayOutput{}) + pulumi.RegisterOutputType(OceanNpSchedulingTaskParametersOutput{}) + pulumi.RegisterOutputType(OceanNpSchedulingTaskParametersPtrOutput{}) + pulumi.RegisterOutputType(OceanNpSchedulingTaskParametersParametersClusterRollOutput{}) + pulumi.RegisterOutputType(OceanNpSchedulingTaskParametersParametersClusterRollPtrOutput{}) pulumi.RegisterOutputType(OceanNpTaintOutput{}) pulumi.RegisterOutputType(OceanNpTaintArrayOutput{}) pulumi.RegisterOutputType(OceanNpUpdatePolicyOutput{}) @@ -6855,6 +7729,10 @@ func init() { pulumi.RegisterOutputType(OceanNpVirtualNodeGroupFiltersPtrOutput{}) pulumi.RegisterOutputType(OceanNpVirtualNodeGroupHeadroomOutput{}) pulumi.RegisterOutputType(OceanNpVirtualNodeGroupHeadroomArrayOutput{}) + pulumi.RegisterOutputType(OceanNpVirtualNodeGroupLinuxOsConfigOutput{}) + pulumi.RegisterOutputType(OceanNpVirtualNodeGroupLinuxOsConfigArrayOutput{}) + pulumi.RegisterOutputType(OceanNpVirtualNodeGroupLinuxOsConfigSysctlOutput{}) + pulumi.RegisterOutputType(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArrayOutput{}) pulumi.RegisterOutputType(OceanNpVirtualNodeGroupTaintOutput{}) pulumi.RegisterOutputType(OceanNpVirtualNodeGroupTaintArrayOutput{}) pulumi.RegisterOutputType(OceanNpVirtualNodeGroupUpdatePolicyOutput{}) diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNp.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNp.java index d69d79b5..4d9f598a 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNp.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNp.java @@ -14,6 +14,7 @@ import com.pulumi.spotinst.azure.outputs.OceanNpFilters; import com.pulumi.spotinst.azure.outputs.OceanNpHeadroom; import com.pulumi.spotinst.azure.outputs.OceanNpHealth; +import com.pulumi.spotinst.azure.outputs.OceanNpLinuxOsConfig; import com.pulumi.spotinst.azure.outputs.OceanNpScheduling; import com.pulumi.spotinst.azure.outputs.OceanNpTaint; import com.pulumi.spotinst.azure.outputs.OceanNpUpdatePolicy; @@ -242,6 +243,20 @@ public Output> kubernetesVersion() { public Output>> labels() { return Codegen.optional(this.labels); } + /** + * Custom Linux OS configuration. + * + */ + @Export(name="linuxOsConfigs", refs={List.class,OceanNpLinuxOsConfig.class}, tree="[0,1]") + private Output> linuxOsConfigs; + + /** + * @return Custom Linux OS configuration. + * + */ + public Output>> linuxOsConfigs() { + return Codegen.optional(this.linuxOsConfigs); + } /** * Maximum node count limit. * @@ -368,17 +383,9 @@ public Output> osType() { public Output>> podSubnetIds() { return Codegen.optional(this.podSubnetIds); } - /** - * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - */ @Export(name="scheduling", refs={OceanNpScheduling.class}, tree="[0]") private Output scheduling; - /** - * @return An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - */ public Output> scheduling() { return Codegen.optional(this.scheduling); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpArgs.java index b4998b24..ac63e70c 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpArgs.java @@ -10,6 +10,7 @@ import com.pulumi.spotinst.azure.inputs.OceanNpFiltersArgs; import com.pulumi.spotinst.azure.inputs.OceanNpHeadroomArgs; import com.pulumi.spotinst.azure.inputs.OceanNpHealthArgs; +import com.pulumi.spotinst.azure.inputs.OceanNpLinuxOsConfigArgs; import com.pulumi.spotinst.azure.inputs.OceanNpSchedulingArgs; import com.pulumi.spotinst.azure.inputs.OceanNpTaintArgs; import com.pulumi.spotinst.azure.inputs.OceanNpUpdatePolicyArgs; @@ -206,6 +207,21 @@ public Optional>> labels() { return Optional.ofNullable(this.labels); } + /** + * Custom Linux OS configuration. + * + */ + @Import(name="linuxOsConfigs") + private @Nullable Output> linuxOsConfigs; + + /** + * @return Custom Linux OS configuration. + * + */ + public Optional>> linuxOsConfigs() { + return Optional.ofNullable(this.linuxOsConfigs); + } + /** * Maximum node count limit. * @@ -341,17 +357,9 @@ public Optional>> podSubnetIds() { return Optional.ofNullable(this.podSubnetIds); } - /** - * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - */ @Import(name="scheduling") private @Nullable Output scheduling; - /** - * @return An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - */ public Optional> scheduling() { return Optional.ofNullable(this.scheduling); } @@ -432,6 +440,7 @@ private OceanNpArgs(OceanNpArgs $) { this.health = $.health; this.kubernetesVersion = $.kubernetesVersion; this.labels = $.labels; + this.linuxOsConfigs = $.linuxOsConfigs; this.maxCount = $.maxCount; this.maxPodsPerNode = $.maxPodsPerNode; this.minCount = $.minCount; @@ -733,6 +742,37 @@ public Builder labels(Map labels) { return labels(Output.of(labels)); } + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(@Nullable Output> linuxOsConfigs) { + $.linuxOsConfigs = linuxOsConfigs; + return this; + } + + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(List linuxOsConfigs) { + return linuxOsConfigs(Output.of(linuxOsConfigs)); + } + + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(OceanNpLinuxOsConfigArgs... linuxOsConfigs) { + return linuxOsConfigs(List.of(linuxOsConfigs)); + } + /** * @param maxCount Maximum node count limit. * @@ -932,23 +972,11 @@ public Builder podSubnetIds(String... podSubnetIds) { return podSubnetIds(List.of(podSubnetIds)); } - /** - * @param scheduling An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - * @return builder - * - */ public Builder scheduling(@Nullable Output scheduling) { $.scheduling = scheduling; return this; } - /** - * @param scheduling An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - * @return builder - * - */ public Builder scheduling(OceanNpSchedulingArgs scheduling) { return scheduling(Output.of(scheduling)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroup.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroup.java index add2cf1f..2761326c 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroup.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroup.java @@ -12,6 +12,7 @@ import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupState; import com.pulumi.spotinst.azure.outputs.OceanNpVirtualNodeGroupFilters; import com.pulumi.spotinst.azure.outputs.OceanNpVirtualNodeGroupHeadroom; +import com.pulumi.spotinst.azure.outputs.OceanNpVirtualNodeGroupLinuxOsConfig; import com.pulumi.spotinst.azure.outputs.OceanNpVirtualNodeGroupTaint; import com.pulumi.spotinst.azure.outputs.OceanNpVirtualNodeGroupUpdatePolicy; import java.lang.Boolean; @@ -39,6 +40,7 @@ * import com.pulumi.spotinst.azure.OceanNpVirtualNodeGroup; * import com.pulumi.spotinst.azure.OceanNpVirtualNodeGroupArgs; * import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupHeadroomArgs; + * import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupLinuxOsConfigArgs; * import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupTaintArgs; * import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupFiltersArgs; * import java.util.List; @@ -82,6 +84,11 @@ * .kubernetesVersion("1.26") * .podSubnetIds("/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default") * .vnetSubnetIds("/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default") + * .linuxOsConfigs(OceanNpVirtualNodeGroupLinuxOsConfigArgs.builder() + * .sysctls(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs.builder() + * .vmMaxMapCount(79550) + * .build()) + * .build()) * .spotPercentage(50) * .fallbackToOndemand(true) * .taints(OceanNpVirtualNodeGroupTaintArgs.builder() @@ -231,6 +238,20 @@ public Output> kubernetesVersion() { public Output>> labels() { return Codegen.optional(this.labels); } + /** + * Custom Linux OS configuration. + * + */ + @Export(name="linuxOsConfigs", refs={List.class,OceanNpVirtualNodeGroupLinuxOsConfig.class}, tree="[0,1]") + private Output> linuxOsConfigs; + + /** + * @return Custom Linux OS configuration. + * + */ + public Output>> linuxOsConfigs() { + return Codegen.optional(this.linuxOsConfigs); + } /** * Maximum node count limit. * diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroupArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroupArgs.java index 224139ae..8e604b5c 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/OceanNpVirtualNodeGroupArgs.java @@ -8,6 +8,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupFiltersArgs; import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupHeadroomArgs; +import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupLinuxOsConfigArgs; import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupTaintArgs; import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupUpdatePolicyArgs; import java.lang.Boolean; @@ -130,6 +131,21 @@ public Optional>> labels() { return Optional.ofNullable(this.labels); } + /** + * Custom Linux OS configuration. + * + */ + @Import(name="linuxOsConfigs") + private @Nullable Output> linuxOsConfigs; + + /** + * @return Custom Linux OS configuration. + * + */ + public Optional>> linuxOsConfigs() { + return Optional.ofNullable(this.linuxOsConfigs); + } + /** * Maximum node count limit. * @@ -349,6 +365,7 @@ private OceanNpVirtualNodeGroupArgs(OceanNpVirtualNodeGroupArgs $) { this.headrooms = $.headrooms; this.kubernetesVersion = $.kubernetesVersion; this.labels = $.labels; + this.linuxOsConfigs = $.linuxOsConfigs; this.maxCount = $.maxCount; this.maxPodsPerNode = $.maxPodsPerNode; this.minCount = $.minCount; @@ -551,6 +568,37 @@ public Builder labels(Map labels) { return labels(Output.of(labels)); } + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(@Nullable Output> linuxOsConfigs) { + $.linuxOsConfigs = linuxOsConfigs; + return this; + } + + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(List linuxOsConfigs) { + return linuxOsConfigs(Output.of(linuxOsConfigs)); + } + + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(OceanNpVirtualNodeGroupLinuxOsConfigArgs... linuxOsConfigs) { + return linuxOsConfigs(List.of(linuxOsConfigs)); + } + /** * @param maxCount Maximum node count limit. * diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpLinuxOsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpLinuxOsConfigArgs.java new file mode 100644 index 00000000..8a1c35dc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpLinuxOsConfigArgs.java @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.spotinst.azure.inputs.OceanNpLinuxOsConfigSysctlArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class OceanNpLinuxOsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final OceanNpLinuxOsConfigArgs Empty = new OceanNpLinuxOsConfigArgs(); + + /** + * System Controls + * + */ + @Import(name="sysctls") + private @Nullable Output> sysctls; + + /** + * @return System Controls + * + */ + public Optional>> sysctls() { + return Optional.ofNullable(this.sysctls); + } + + private OceanNpLinuxOsConfigArgs() {} + + private OceanNpLinuxOsConfigArgs(OceanNpLinuxOsConfigArgs $) { + this.sysctls = $.sysctls; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OceanNpLinuxOsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OceanNpLinuxOsConfigArgs $; + + public Builder() { + $ = new OceanNpLinuxOsConfigArgs(); + } + + public Builder(OceanNpLinuxOsConfigArgs defaults) { + $ = new OceanNpLinuxOsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param sysctls System Controls + * + * @return builder + * + */ + public Builder sysctls(@Nullable Output> sysctls) { + $.sysctls = sysctls; + return this; + } + + /** + * @param sysctls System Controls + * + * @return builder + * + */ + public Builder sysctls(List sysctls) { + return sysctls(Output.of(sysctls)); + } + + /** + * @param sysctls System Controls + * + * @return builder + * + */ + public Builder sysctls(OceanNpLinuxOsConfigSysctlArgs... sysctls) { + return sysctls(List.of(sysctls)); + } + + public OceanNpLinuxOsConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpLinuxOsConfigSysctlArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpLinuxOsConfigSysctlArgs.java new file mode 100644 index 00000000..c60a8472 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpLinuxOsConfigSysctlArgs.java @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class OceanNpLinuxOsConfigSysctlArgs extends com.pulumi.resources.ResourceArgs { + + public static final OceanNpLinuxOsConfigSysctlArgs Empty = new OceanNpLinuxOsConfigSysctlArgs(); + + @Import(name="vmMaxMapCount") + private @Nullable Output vmMaxMapCount; + + public Optional> vmMaxMapCount() { + return Optional.ofNullable(this.vmMaxMapCount); + } + + private OceanNpLinuxOsConfigSysctlArgs() {} + + private OceanNpLinuxOsConfigSysctlArgs(OceanNpLinuxOsConfigSysctlArgs $) { + this.vmMaxMapCount = $.vmMaxMapCount; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OceanNpLinuxOsConfigSysctlArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OceanNpLinuxOsConfigSysctlArgs $; + + public Builder() { + $ = new OceanNpLinuxOsConfigSysctlArgs(); + } + + public Builder(OceanNpLinuxOsConfigSysctlArgs defaults) { + $ = new OceanNpLinuxOsConfigSysctlArgs(Objects.requireNonNull(defaults)); + } + + public Builder vmMaxMapCount(@Nullable Output vmMaxMapCount) { + $.vmMaxMapCount = vmMaxMapCount; + return this; + } + + public Builder vmMaxMapCount(Integer vmMaxMapCount) { + return vmMaxMapCount(Output.of(vmMaxMapCount)); + } + + public OceanNpLinuxOsConfigSysctlArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingArgs.java index 7b711d8a..2d84b0ae 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingArgs.java @@ -6,6 +6,8 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.spotinst.azure.inputs.OceanNpSchedulingShutdownHoursArgs; +import com.pulumi.spotinst.azure.inputs.OceanNpSchedulingTaskArgs; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -15,25 +17,25 @@ public final class OceanNpSchedulingArgs extends com.pulumi.resources.ResourceAr public static final OceanNpSchedulingArgs Empty = new OceanNpSchedulingArgs(); - /** - * [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - * - */ @Import(name="shutdownHours") private @Nullable Output shutdownHours; - /** - * @return [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - * - */ public Optional> shutdownHours() { return Optional.ofNullable(this.shutdownHours); } + @Import(name="tasks") + private @Nullable Output> tasks; + + public Optional>> tasks() { + return Optional.ofNullable(this.tasks); + } + private OceanNpSchedulingArgs() {} private OceanNpSchedulingArgs(OceanNpSchedulingArgs $) { this.shutdownHours = $.shutdownHours; + this.tasks = $.tasks; } public static Builder builder() { @@ -54,27 +56,28 @@ public Builder(OceanNpSchedulingArgs defaults) { $ = new OceanNpSchedulingArgs(Objects.requireNonNull(defaults)); } - /** - * @param shutdownHours [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - * - * @return builder - * - */ public Builder shutdownHours(@Nullable Output shutdownHours) { $.shutdownHours = shutdownHours; return this; } - /** - * @param shutdownHours [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - * - * @return builder - * - */ public Builder shutdownHours(OceanNpSchedulingShutdownHoursArgs shutdownHours) { return shutdownHours(Output.of(shutdownHours)); } + public Builder tasks(@Nullable Output> tasks) { + $.tasks = tasks; + return this; + } + + public Builder tasks(List tasks) { + return tasks(Output.of(tasks)); + } + + public Builder tasks(OceanNpSchedulingTaskArgs... tasks) { + return tasks(List.of(tasks)); + } + public OceanNpSchedulingArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingShutdownHoursArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingShutdownHoursArgs.java index 1ae2d51e..84961b5c 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingShutdownHoursArgs.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingShutdownHoursArgs.java @@ -5,7 +5,6 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; import java.util.List; @@ -25,11 +24,11 @@ public Optional> isEnabled() { return Optional.ofNullable(this.isEnabled); } - @Import(name="timeWindows", required=true) - private Output> timeWindows; + @Import(name="timeWindows") + private @Nullable Output> timeWindows; - public Output> timeWindows() { - return this.timeWindows; + public Optional>> timeWindows() { + return Optional.ofNullable(this.timeWindows); } private OceanNpSchedulingShutdownHoursArgs() {} @@ -66,7 +65,7 @@ public Builder isEnabled(Boolean isEnabled) { return isEnabled(Output.of(isEnabled)); } - public Builder timeWindows(Output> timeWindows) { + public Builder timeWindows(@Nullable Output> timeWindows) { $.timeWindows = timeWindows; return this; } @@ -80,9 +79,6 @@ public Builder timeWindows(String... timeWindows) { } public OceanNpSchedulingShutdownHoursArgs build() { - if ($.timeWindows == null) { - throw new MissingRequiredPropertyException("OceanNpSchedulingShutdownHoursArgs", "timeWindows"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskArgs.java new file mode 100644 index 00000000..a337f4d3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskArgs.java @@ -0,0 +1,126 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.spotinst.azure.inputs.OceanNpSchedulingTaskParametersArgs; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class OceanNpSchedulingTaskArgs extends com.pulumi.resources.ResourceArgs { + + public static final OceanNpSchedulingTaskArgs Empty = new OceanNpSchedulingTaskArgs(); + + @Import(name="cronExpression", required=true) + private Output cronExpression; + + public Output cronExpression() { + return this.cronExpression; + } + + @Import(name="isEnabled", required=true) + private Output isEnabled; + + public Output isEnabled() { + return this.isEnabled; + } + + @Import(name="parameters") + private @Nullable Output parameters; + + public Optional> parameters() { + return Optional.ofNullable(this.parameters); + } + + @Import(name="taskType", required=true) + private Output taskType; + + public Output taskType() { + return this.taskType; + } + + private OceanNpSchedulingTaskArgs() {} + + private OceanNpSchedulingTaskArgs(OceanNpSchedulingTaskArgs $) { + this.cronExpression = $.cronExpression; + this.isEnabled = $.isEnabled; + this.parameters = $.parameters; + this.taskType = $.taskType; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OceanNpSchedulingTaskArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OceanNpSchedulingTaskArgs $; + + public Builder() { + $ = new OceanNpSchedulingTaskArgs(); + } + + public Builder(OceanNpSchedulingTaskArgs defaults) { + $ = new OceanNpSchedulingTaskArgs(Objects.requireNonNull(defaults)); + } + + public Builder cronExpression(Output cronExpression) { + $.cronExpression = cronExpression; + return this; + } + + public Builder cronExpression(String cronExpression) { + return cronExpression(Output.of(cronExpression)); + } + + public Builder isEnabled(Output isEnabled) { + $.isEnabled = isEnabled; + return this; + } + + public Builder isEnabled(Boolean isEnabled) { + return isEnabled(Output.of(isEnabled)); + } + + public Builder parameters(@Nullable Output parameters) { + $.parameters = parameters; + return this; + } + + public Builder parameters(OceanNpSchedulingTaskParametersArgs parameters) { + return parameters(Output.of(parameters)); + } + + public Builder taskType(Output taskType) { + $.taskType = taskType; + return this; + } + + public Builder taskType(String taskType) { + return taskType(Output.of(taskType)); + } + + public OceanNpSchedulingTaskArgs build() { + if ($.cronExpression == null) { + throw new MissingRequiredPropertyException("OceanNpSchedulingTaskArgs", "cronExpression"); + } + if ($.isEnabled == null) { + throw new MissingRequiredPropertyException("OceanNpSchedulingTaskArgs", "isEnabled"); + } + if ($.taskType == null) { + throw new MissingRequiredPropertyException("OceanNpSchedulingTaskArgs", "taskType"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskParametersArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskParametersArgs.java new file mode 100644 index 00000000..f4294710 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskParametersArgs.java @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.spotinst.azure.inputs.OceanNpSchedulingTaskParametersParametersClusterRollArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class OceanNpSchedulingTaskParametersArgs extends com.pulumi.resources.ResourceArgs { + + public static final OceanNpSchedulingTaskParametersArgs Empty = new OceanNpSchedulingTaskParametersArgs(); + + @Import(name="parametersClusterRoll") + private @Nullable Output parametersClusterRoll; + + public Optional> parametersClusterRoll() { + return Optional.ofNullable(this.parametersClusterRoll); + } + + private OceanNpSchedulingTaskParametersArgs() {} + + private OceanNpSchedulingTaskParametersArgs(OceanNpSchedulingTaskParametersArgs $) { + this.parametersClusterRoll = $.parametersClusterRoll; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OceanNpSchedulingTaskParametersArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OceanNpSchedulingTaskParametersArgs $; + + public Builder() { + $ = new OceanNpSchedulingTaskParametersArgs(); + } + + public Builder(OceanNpSchedulingTaskParametersArgs defaults) { + $ = new OceanNpSchedulingTaskParametersArgs(Objects.requireNonNull(defaults)); + } + + public Builder parametersClusterRoll(@Nullable Output parametersClusterRoll) { + $.parametersClusterRoll = parametersClusterRoll; + return this; + } + + public Builder parametersClusterRoll(OceanNpSchedulingTaskParametersParametersClusterRollArgs parametersClusterRoll) { + return parametersClusterRoll(Output.of(parametersClusterRoll)); + } + + public OceanNpSchedulingTaskParametersArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskParametersParametersClusterRollArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskParametersParametersClusterRollArgs.java new file mode 100644 index 00000000..fd981f59 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpSchedulingTaskParametersParametersClusterRollArgs.java @@ -0,0 +1,155 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class OceanNpSchedulingTaskParametersParametersClusterRollArgs extends com.pulumi.resources.ResourceArgs { + + public static final OceanNpSchedulingTaskParametersParametersClusterRollArgs Empty = new OceanNpSchedulingTaskParametersParametersClusterRollArgs(); + + @Import(name="batchMinHealthyPercentage") + private @Nullable Output batchMinHealthyPercentage; + + public Optional> batchMinHealthyPercentage() { + return Optional.ofNullable(this.batchMinHealthyPercentage); + } + + @Import(name="batchSizePercentage") + private @Nullable Output batchSizePercentage; + + public Optional> batchSizePercentage() { + return Optional.ofNullable(this.batchSizePercentage); + } + + @Import(name="comment") + private @Nullable Output comment; + + public Optional> comment() { + return Optional.ofNullable(this.comment); + } + + @Import(name="respectPdb") + private @Nullable Output respectPdb; + + public Optional> respectPdb() { + return Optional.ofNullable(this.respectPdb); + } + + @Import(name="respectRestrictScaleDown") + private @Nullable Output respectRestrictScaleDown; + + public Optional> respectRestrictScaleDown() { + return Optional.ofNullable(this.respectRestrictScaleDown); + } + + @Import(name="vngIds") + private @Nullable Output> vngIds; + + public Optional>> vngIds() { + return Optional.ofNullable(this.vngIds); + } + + private OceanNpSchedulingTaskParametersParametersClusterRollArgs() {} + + private OceanNpSchedulingTaskParametersParametersClusterRollArgs(OceanNpSchedulingTaskParametersParametersClusterRollArgs $) { + this.batchMinHealthyPercentage = $.batchMinHealthyPercentage; + this.batchSizePercentage = $.batchSizePercentage; + this.comment = $.comment; + this.respectPdb = $.respectPdb; + this.respectRestrictScaleDown = $.respectRestrictScaleDown; + this.vngIds = $.vngIds; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OceanNpSchedulingTaskParametersParametersClusterRollArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OceanNpSchedulingTaskParametersParametersClusterRollArgs $; + + public Builder() { + $ = new OceanNpSchedulingTaskParametersParametersClusterRollArgs(); + } + + public Builder(OceanNpSchedulingTaskParametersParametersClusterRollArgs defaults) { + $ = new OceanNpSchedulingTaskParametersParametersClusterRollArgs(Objects.requireNonNull(defaults)); + } + + public Builder batchMinHealthyPercentage(@Nullable Output batchMinHealthyPercentage) { + $.batchMinHealthyPercentage = batchMinHealthyPercentage; + return this; + } + + public Builder batchMinHealthyPercentage(Integer batchMinHealthyPercentage) { + return batchMinHealthyPercentage(Output.of(batchMinHealthyPercentage)); + } + + public Builder batchSizePercentage(@Nullable Output batchSizePercentage) { + $.batchSizePercentage = batchSizePercentage; + return this; + } + + public Builder batchSizePercentage(Integer batchSizePercentage) { + return batchSizePercentage(Output.of(batchSizePercentage)); + } + + public Builder comment(@Nullable Output comment) { + $.comment = comment; + return this; + } + + public Builder comment(String comment) { + return comment(Output.of(comment)); + } + + public Builder respectPdb(@Nullable Output respectPdb) { + $.respectPdb = respectPdb; + return this; + } + + public Builder respectPdb(Boolean respectPdb) { + return respectPdb(Output.of(respectPdb)); + } + + public Builder respectRestrictScaleDown(@Nullable Output respectRestrictScaleDown) { + $.respectRestrictScaleDown = respectRestrictScaleDown; + return this; + } + + public Builder respectRestrictScaleDown(Boolean respectRestrictScaleDown) { + return respectRestrictScaleDown(Output.of(respectRestrictScaleDown)); + } + + public Builder vngIds(@Nullable Output> vngIds) { + $.vngIds = vngIds; + return this; + } + + public Builder vngIds(List vngIds) { + return vngIds(Output.of(vngIds)); + } + + public Builder vngIds(String... vngIds) { + return vngIds(List.of(vngIds)); + } + + public OceanNpSchedulingTaskParametersParametersClusterRollArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpState.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpState.java index f5b08f98..40c08c4b 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpState.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpState.java @@ -9,6 +9,7 @@ import com.pulumi.spotinst.azure.inputs.OceanNpFiltersArgs; import com.pulumi.spotinst.azure.inputs.OceanNpHeadroomArgs; import com.pulumi.spotinst.azure.inputs.OceanNpHealthArgs; +import com.pulumi.spotinst.azure.inputs.OceanNpLinuxOsConfigArgs; import com.pulumi.spotinst.azure.inputs.OceanNpSchedulingArgs; import com.pulumi.spotinst.azure.inputs.OceanNpTaintArgs; import com.pulumi.spotinst.azure.inputs.OceanNpUpdatePolicyArgs; @@ -205,6 +206,21 @@ public Optional>> labels() { return Optional.ofNullable(this.labels); } + /** + * Custom Linux OS configuration. + * + */ + @Import(name="linuxOsConfigs") + private @Nullable Output> linuxOsConfigs; + + /** + * @return Custom Linux OS configuration. + * + */ + public Optional>> linuxOsConfigs() { + return Optional.ofNullable(this.linuxOsConfigs); + } + /** * Maximum node count limit. * @@ -340,17 +356,9 @@ public Optional>> podSubnetIds() { return Optional.ofNullable(this.podSubnetIds); } - /** - * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - */ @Import(name="scheduling") private @Nullable Output scheduling; - /** - * @return An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - */ public Optional> scheduling() { return Optional.ofNullable(this.scheduling); } @@ -431,6 +439,7 @@ private OceanNpState(OceanNpState $) { this.health = $.health; this.kubernetesVersion = $.kubernetesVersion; this.labels = $.labels; + this.linuxOsConfigs = $.linuxOsConfigs; this.maxCount = $.maxCount; this.maxPodsPerNode = $.maxPodsPerNode; this.minCount = $.minCount; @@ -732,6 +741,37 @@ public Builder labels(Map labels) { return labels(Output.of(labels)); } + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(@Nullable Output> linuxOsConfigs) { + $.linuxOsConfigs = linuxOsConfigs; + return this; + } + + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(List linuxOsConfigs) { + return linuxOsConfigs(Output.of(linuxOsConfigs)); + } + + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(OceanNpLinuxOsConfigArgs... linuxOsConfigs) { + return linuxOsConfigs(List.of(linuxOsConfigs)); + } + /** * @param maxCount Maximum node count limit. * @@ -931,23 +971,11 @@ public Builder podSubnetIds(String... podSubnetIds) { return podSubnetIds(List.of(podSubnetIds)); } - /** - * @param scheduling An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - * @return builder - * - */ public Builder scheduling(@Nullable Output scheduling) { $.scheduling = scheduling; return this; } - /** - * @param scheduling An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - * - * @return builder - * - */ public Builder scheduling(OceanNpSchedulingArgs scheduling) { return scheduling(Output.of(scheduling)); } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupLinuxOsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupLinuxOsConfigArgs.java new file mode 100644 index 00000000..f8c0d1d4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupLinuxOsConfigArgs.java @@ -0,0 +1,94 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class OceanNpVirtualNodeGroupLinuxOsConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final OceanNpVirtualNodeGroupLinuxOsConfigArgs Empty = new OceanNpVirtualNodeGroupLinuxOsConfigArgs(); + + /** + * System Controls + * + */ + @Import(name="sysctls") + private @Nullable Output> sysctls; + + /** + * @return System Controls + * + */ + public Optional>> sysctls() { + return Optional.ofNullable(this.sysctls); + } + + private OceanNpVirtualNodeGroupLinuxOsConfigArgs() {} + + private OceanNpVirtualNodeGroupLinuxOsConfigArgs(OceanNpVirtualNodeGroupLinuxOsConfigArgs $) { + this.sysctls = $.sysctls; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OceanNpVirtualNodeGroupLinuxOsConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OceanNpVirtualNodeGroupLinuxOsConfigArgs $; + + public Builder() { + $ = new OceanNpVirtualNodeGroupLinuxOsConfigArgs(); + } + + public Builder(OceanNpVirtualNodeGroupLinuxOsConfigArgs defaults) { + $ = new OceanNpVirtualNodeGroupLinuxOsConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param sysctls System Controls + * + * @return builder + * + */ + public Builder sysctls(@Nullable Output> sysctls) { + $.sysctls = sysctls; + return this; + } + + /** + * @param sysctls System Controls + * + * @return builder + * + */ + public Builder sysctls(List sysctls) { + return sysctls(Output.of(sysctls)); + } + + /** + * @param sysctls System Controls + * + * @return builder + * + */ + public Builder sysctls(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs... sysctls) { + return sysctls(List.of(sysctls)); + } + + public OceanNpVirtualNodeGroupLinuxOsConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs.java new file mode 100644 index 00000000..d8c23f47 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs.java @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs extends com.pulumi.resources.ResourceArgs { + + public static final OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs Empty = new OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs(); + + @Import(name="vmMaxMapCount") + private @Nullable Output vmMaxMapCount; + + public Optional> vmMaxMapCount() { + return Optional.ofNullable(this.vmMaxMapCount); + } + + private OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs() {} + + private OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs $) { + this.vmMaxMapCount = $.vmMaxMapCount; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs $; + + public Builder() { + $ = new OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs(); + } + + public Builder(OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs defaults) { + $ = new OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs(Objects.requireNonNull(defaults)); + } + + public Builder vmMaxMapCount(@Nullable Output vmMaxMapCount) { + $.vmMaxMapCount = vmMaxMapCount; + return this; + } + + public Builder vmMaxMapCount(Integer vmMaxMapCount) { + return vmMaxMapCount(Output.of(vmMaxMapCount)); + } + + public OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupState.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupState.java index d65275ed..a68ad47a 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupState.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/inputs/OceanNpVirtualNodeGroupState.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupFiltersArgs; import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupHeadroomArgs; +import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupLinuxOsConfigArgs; import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupTaintArgs; import com.pulumi.spotinst.azure.inputs.OceanNpVirtualNodeGroupUpdatePolicyArgs; import java.lang.Boolean; @@ -129,6 +130,21 @@ public Optional>> labels() { return Optional.ofNullable(this.labels); } + /** + * Custom Linux OS configuration. + * + */ + @Import(name="linuxOsConfigs") + private @Nullable Output> linuxOsConfigs; + + /** + * @return Custom Linux OS configuration. + * + */ + public Optional>> linuxOsConfigs() { + return Optional.ofNullable(this.linuxOsConfigs); + } + /** * Maximum node count limit. * @@ -348,6 +364,7 @@ private OceanNpVirtualNodeGroupState(OceanNpVirtualNodeGroupState $) { this.headrooms = $.headrooms; this.kubernetesVersion = $.kubernetesVersion; this.labels = $.labels; + this.linuxOsConfigs = $.linuxOsConfigs; this.maxCount = $.maxCount; this.maxPodsPerNode = $.maxPodsPerNode; this.minCount = $.minCount; @@ -550,6 +567,37 @@ public Builder labels(Map labels) { return labels(Output.of(labels)); } + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(@Nullable Output> linuxOsConfigs) { + $.linuxOsConfigs = linuxOsConfigs; + return this; + } + + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(List linuxOsConfigs) { + return linuxOsConfigs(Output.of(linuxOsConfigs)); + } + + /** + * @param linuxOsConfigs Custom Linux OS configuration. + * + * @return builder + * + */ + public Builder linuxOsConfigs(OceanNpVirtualNodeGroupLinuxOsConfigArgs... linuxOsConfigs) { + return linuxOsConfigs(List.of(linuxOsConfigs)); + } + /** * @param maxCount Maximum node count limit. * diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpLinuxOsConfig.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpLinuxOsConfig.java new file mode 100644 index 00000000..2a935be5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpLinuxOsConfig.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.spotinst.azure.outputs.OceanNpLinuxOsConfigSysctl; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class OceanNpLinuxOsConfig { + /** + * @return System Controls + * + */ + private @Nullable List sysctls; + + private OceanNpLinuxOsConfig() {} + /** + * @return System Controls + * + */ + public List sysctls() { + return this.sysctls == null ? List.of() : this.sysctls; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OceanNpLinuxOsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List sysctls; + public Builder() {} + public Builder(OceanNpLinuxOsConfig defaults) { + Objects.requireNonNull(defaults); + this.sysctls = defaults.sysctls; + } + + @CustomType.Setter + public Builder sysctls(@Nullable List sysctls) { + + this.sysctls = sysctls; + return this; + } + public Builder sysctls(OceanNpLinuxOsConfigSysctl... sysctls) { + return sysctls(List.of(sysctls)); + } + public OceanNpLinuxOsConfig build() { + final var _resultValue = new OceanNpLinuxOsConfig(); + _resultValue.sysctls = sysctls; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpLinuxOsConfigSysctl.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpLinuxOsConfigSysctl.java new file mode 100644 index 00000000..121d1881 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpLinuxOsConfigSysctl.java @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class OceanNpLinuxOsConfigSysctl { + private @Nullable Integer vmMaxMapCount; + + private OceanNpLinuxOsConfigSysctl() {} + public Optional vmMaxMapCount() { + return Optional.ofNullable(this.vmMaxMapCount); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OceanNpLinuxOsConfigSysctl defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer vmMaxMapCount; + public Builder() {} + public Builder(OceanNpLinuxOsConfigSysctl defaults) { + Objects.requireNonNull(defaults); + this.vmMaxMapCount = defaults.vmMaxMapCount; + } + + @CustomType.Setter + public Builder vmMaxMapCount(@Nullable Integer vmMaxMapCount) { + + this.vmMaxMapCount = vmMaxMapCount; + return this; + } + public OceanNpLinuxOsConfigSysctl build() { + final var _resultValue = new OceanNpLinuxOsConfigSysctl(); + _resultValue.vmMaxMapCount = vmMaxMapCount; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpScheduling.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpScheduling.java index d39eb1ea..13798252 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpScheduling.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpScheduling.java @@ -5,26 +5,24 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.spotinst.azure.outputs.OceanNpSchedulingShutdownHours; +import com.pulumi.spotinst.azure.outputs.OceanNpSchedulingTask; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @CustomType public final class OceanNpScheduling { - /** - * @return [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - * - */ private @Nullable OceanNpSchedulingShutdownHours shutdownHours; + private @Nullable List tasks; private OceanNpScheduling() {} - /** - * @return [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - * - */ public Optional shutdownHours() { return Optional.ofNullable(this.shutdownHours); } + public List tasks() { + return this.tasks == null ? List.of() : this.tasks; + } public static Builder builder() { return new Builder(); @@ -36,10 +34,12 @@ public static Builder builder(OceanNpScheduling defaults) { @CustomType.Builder public static final class Builder { private @Nullable OceanNpSchedulingShutdownHours shutdownHours; + private @Nullable List tasks; public Builder() {} public Builder(OceanNpScheduling defaults) { Objects.requireNonNull(defaults); this.shutdownHours = defaults.shutdownHours; + this.tasks = defaults.tasks; } @CustomType.Setter @@ -48,9 +48,19 @@ public Builder shutdownHours(@Nullable OceanNpSchedulingShutdownHours shutdownHo this.shutdownHours = shutdownHours; return this; } + @CustomType.Setter + public Builder tasks(@Nullable List tasks) { + + this.tasks = tasks; + return this; + } + public Builder tasks(OceanNpSchedulingTask... tasks) { + return tasks(List.of(tasks)); + } public OceanNpScheduling build() { final var _resultValue = new OceanNpScheduling(); _resultValue.shutdownHours = shutdownHours; + _resultValue.tasks = tasks; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingShutdownHours.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingShutdownHours.java index 03cc5f20..10e55b45 100644 --- a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingShutdownHours.java +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingShutdownHours.java @@ -4,7 +4,6 @@ package com.pulumi.spotinst.azure.outputs; import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; import java.util.List; @@ -15,14 +14,14 @@ @CustomType public final class OceanNpSchedulingShutdownHours { private @Nullable Boolean isEnabled; - private List timeWindows; + private @Nullable List timeWindows; private OceanNpSchedulingShutdownHours() {} public Optional isEnabled() { return Optional.ofNullable(this.isEnabled); } public List timeWindows() { - return this.timeWindows; + return this.timeWindows == null ? List.of() : this.timeWindows; } public static Builder builder() { @@ -35,7 +34,7 @@ public static Builder builder(OceanNpSchedulingShutdownHours defaults) { @CustomType.Builder public static final class Builder { private @Nullable Boolean isEnabled; - private List timeWindows; + private @Nullable List timeWindows; public Builder() {} public Builder(OceanNpSchedulingShutdownHours defaults) { Objects.requireNonNull(defaults); @@ -50,10 +49,8 @@ public Builder isEnabled(@Nullable Boolean isEnabled) { return this; } @CustomType.Setter - public Builder timeWindows(List timeWindows) { - if (timeWindows == null) { - throw new MissingRequiredPropertyException("OceanNpSchedulingShutdownHours", "timeWindows"); - } + public Builder timeWindows(@Nullable List timeWindows) { + this.timeWindows = timeWindows; return this; } diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTask.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTask.java new file mode 100644 index 00000000..83901729 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTask.java @@ -0,0 +1,97 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.spotinst.azure.outputs.OceanNpSchedulingTaskParameters; +import java.lang.Boolean; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class OceanNpSchedulingTask { + private String cronExpression; + private Boolean isEnabled; + private @Nullable OceanNpSchedulingTaskParameters parameters; + private String taskType; + + private OceanNpSchedulingTask() {} + public String cronExpression() { + return this.cronExpression; + } + public Boolean isEnabled() { + return this.isEnabled; + } + public Optional parameters() { + return Optional.ofNullable(this.parameters); + } + public String taskType() { + return this.taskType; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OceanNpSchedulingTask defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String cronExpression; + private Boolean isEnabled; + private @Nullable OceanNpSchedulingTaskParameters parameters; + private String taskType; + public Builder() {} + public Builder(OceanNpSchedulingTask defaults) { + Objects.requireNonNull(defaults); + this.cronExpression = defaults.cronExpression; + this.isEnabled = defaults.isEnabled; + this.parameters = defaults.parameters; + this.taskType = defaults.taskType; + } + + @CustomType.Setter + public Builder cronExpression(String cronExpression) { + if (cronExpression == null) { + throw new MissingRequiredPropertyException("OceanNpSchedulingTask", "cronExpression"); + } + this.cronExpression = cronExpression; + return this; + } + @CustomType.Setter + public Builder isEnabled(Boolean isEnabled) { + if (isEnabled == null) { + throw new MissingRequiredPropertyException("OceanNpSchedulingTask", "isEnabled"); + } + this.isEnabled = isEnabled; + return this; + } + @CustomType.Setter + public Builder parameters(@Nullable OceanNpSchedulingTaskParameters parameters) { + + this.parameters = parameters; + return this; + } + @CustomType.Setter + public Builder taskType(String taskType) { + if (taskType == null) { + throw new MissingRequiredPropertyException("OceanNpSchedulingTask", "taskType"); + } + this.taskType = taskType; + return this; + } + public OceanNpSchedulingTask build() { + final var _resultValue = new OceanNpSchedulingTask(); + _resultValue.cronExpression = cronExpression; + _resultValue.isEnabled = isEnabled; + _resultValue.parameters = parameters; + _resultValue.taskType = taskType; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTaskParameters.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTaskParameters.java new file mode 100644 index 00000000..46b8393b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTaskParameters.java @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.spotinst.azure.outputs.OceanNpSchedulingTaskParametersParametersClusterRoll; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class OceanNpSchedulingTaskParameters { + private @Nullable OceanNpSchedulingTaskParametersParametersClusterRoll parametersClusterRoll; + + private OceanNpSchedulingTaskParameters() {} + public Optional parametersClusterRoll() { + return Optional.ofNullable(this.parametersClusterRoll); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OceanNpSchedulingTaskParameters defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable OceanNpSchedulingTaskParametersParametersClusterRoll parametersClusterRoll; + public Builder() {} + public Builder(OceanNpSchedulingTaskParameters defaults) { + Objects.requireNonNull(defaults); + this.parametersClusterRoll = defaults.parametersClusterRoll; + } + + @CustomType.Setter + public Builder parametersClusterRoll(@Nullable OceanNpSchedulingTaskParametersParametersClusterRoll parametersClusterRoll) { + + this.parametersClusterRoll = parametersClusterRoll; + return this; + } + public OceanNpSchedulingTaskParameters build() { + final var _resultValue = new OceanNpSchedulingTaskParameters(); + _resultValue.parametersClusterRoll = parametersClusterRoll; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTaskParametersParametersClusterRoll.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTaskParametersParametersClusterRoll.java new file mode 100644 index 00000000..f5271fe8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpSchedulingTaskParametersParametersClusterRoll.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class OceanNpSchedulingTaskParametersParametersClusterRoll { + private @Nullable Integer batchMinHealthyPercentage; + private @Nullable Integer batchSizePercentage; + private @Nullable String comment; + private @Nullable Boolean respectPdb; + private @Nullable Boolean respectRestrictScaleDown; + private @Nullable List vngIds; + + private OceanNpSchedulingTaskParametersParametersClusterRoll() {} + public Optional batchMinHealthyPercentage() { + return Optional.ofNullable(this.batchMinHealthyPercentage); + } + public Optional batchSizePercentage() { + return Optional.ofNullable(this.batchSizePercentage); + } + public Optional comment() { + return Optional.ofNullable(this.comment); + } + public Optional respectPdb() { + return Optional.ofNullable(this.respectPdb); + } + public Optional respectRestrictScaleDown() { + return Optional.ofNullable(this.respectRestrictScaleDown); + } + public List vngIds() { + return this.vngIds == null ? List.of() : this.vngIds; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OceanNpSchedulingTaskParametersParametersClusterRoll defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer batchMinHealthyPercentage; + private @Nullable Integer batchSizePercentage; + private @Nullable String comment; + private @Nullable Boolean respectPdb; + private @Nullable Boolean respectRestrictScaleDown; + private @Nullable List vngIds; + public Builder() {} + public Builder(OceanNpSchedulingTaskParametersParametersClusterRoll defaults) { + Objects.requireNonNull(defaults); + this.batchMinHealthyPercentage = defaults.batchMinHealthyPercentage; + this.batchSizePercentage = defaults.batchSizePercentage; + this.comment = defaults.comment; + this.respectPdb = defaults.respectPdb; + this.respectRestrictScaleDown = defaults.respectRestrictScaleDown; + this.vngIds = defaults.vngIds; + } + + @CustomType.Setter + public Builder batchMinHealthyPercentage(@Nullable Integer batchMinHealthyPercentage) { + + this.batchMinHealthyPercentage = batchMinHealthyPercentage; + return this; + } + @CustomType.Setter + public Builder batchSizePercentage(@Nullable Integer batchSizePercentage) { + + this.batchSizePercentage = batchSizePercentage; + return this; + } + @CustomType.Setter + public Builder comment(@Nullable String comment) { + + this.comment = comment; + return this; + } + @CustomType.Setter + public Builder respectPdb(@Nullable Boolean respectPdb) { + + this.respectPdb = respectPdb; + return this; + } + @CustomType.Setter + public Builder respectRestrictScaleDown(@Nullable Boolean respectRestrictScaleDown) { + + this.respectRestrictScaleDown = respectRestrictScaleDown; + return this; + } + @CustomType.Setter + public Builder vngIds(@Nullable List vngIds) { + + this.vngIds = vngIds; + return this; + } + public Builder vngIds(String... vngIds) { + return vngIds(List.of(vngIds)); + } + public OceanNpSchedulingTaskParametersParametersClusterRoll build() { + final var _resultValue = new OceanNpSchedulingTaskParametersParametersClusterRoll(); + _resultValue.batchMinHealthyPercentage = batchMinHealthyPercentage; + _resultValue.batchSizePercentage = batchSizePercentage; + _resultValue.comment = comment; + _resultValue.respectPdb = respectPdb; + _resultValue.respectRestrictScaleDown = respectRestrictScaleDown; + _resultValue.vngIds = vngIds; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupLinuxOsConfig.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupLinuxOsConfig.java new file mode 100644 index 00000000..cdd25d59 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupLinuxOsConfig.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.spotinst.azure.outputs.OceanNpVirtualNodeGroupLinuxOsConfigSysctl; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class OceanNpVirtualNodeGroupLinuxOsConfig { + /** + * @return System Controls + * + */ + private @Nullable List sysctls; + + private OceanNpVirtualNodeGroupLinuxOsConfig() {} + /** + * @return System Controls + * + */ + public List sysctls() { + return this.sysctls == null ? List.of() : this.sysctls; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OceanNpVirtualNodeGroupLinuxOsConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List sysctls; + public Builder() {} + public Builder(OceanNpVirtualNodeGroupLinuxOsConfig defaults) { + Objects.requireNonNull(defaults); + this.sysctls = defaults.sysctls; + } + + @CustomType.Setter + public Builder sysctls(@Nullable List sysctls) { + + this.sysctls = sysctls; + return this; + } + public Builder sysctls(OceanNpVirtualNodeGroupLinuxOsConfigSysctl... sysctls) { + return sysctls(List.of(sysctls)); + } + public OceanNpVirtualNodeGroupLinuxOsConfig build() { + final var _resultValue = new OceanNpVirtualNodeGroupLinuxOsConfig(); + _resultValue.sysctls = sysctls; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctl.java b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctl.java new file mode 100644 index 00000000..b3f21239 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/spotinst/azure/outputs/OceanNpVirtualNodeGroupLinuxOsConfigSysctl.java @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.spotinst.azure.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class OceanNpVirtualNodeGroupLinuxOsConfigSysctl { + private @Nullable Integer vmMaxMapCount; + + private OceanNpVirtualNodeGroupLinuxOsConfigSysctl() {} + public Optional vmMaxMapCount() { + return Optional.ofNullable(this.vmMaxMapCount); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(OceanNpVirtualNodeGroupLinuxOsConfigSysctl defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer vmMaxMapCount; + public Builder() {} + public Builder(OceanNpVirtualNodeGroupLinuxOsConfigSysctl defaults) { + Objects.requireNonNull(defaults); + this.vmMaxMapCount = defaults.vmMaxMapCount; + } + + @CustomType.Setter + public Builder vmMaxMapCount(@Nullable Integer vmMaxMapCount) { + + this.vmMaxMapCount = vmMaxMapCount; + return this; + } + public OceanNpVirtualNodeGroupLinuxOsConfigSysctl build() { + final var _resultValue = new OceanNpVirtualNodeGroupLinuxOsConfigSysctl(); + _resultValue.vmMaxMapCount = vmMaxMapCount; + return _resultValue; + } + } +} diff --git a/sdk/nodejs/azure/oceanNp.ts b/sdk/nodejs/azure/oceanNp.ts index f834b94c..bb8cc2eb 100644 --- a/sdk/nodejs/azure/oceanNp.ts +++ b/sdk/nodejs/azure/oceanNp.ts @@ -104,6 +104,10 @@ export class OceanNp extends pulumi.CustomResource { * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). */ public readonly labels!: pulumi.Output<{[key: string]: any} | undefined>; + /** + * Custom Linux OS configuration. + */ + public readonly linuxOsConfigs!: pulumi.Output; /** * Maximum node count limit. */ @@ -140,9 +144,6 @@ export class OceanNp extends pulumi.CustomResource { * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). */ public readonly podSubnetIds!: pulumi.Output; - /** - * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - */ public readonly scheduling!: pulumi.Output; /** * Percentage of spot VMs to maintain. @@ -186,6 +187,7 @@ export class OceanNp extends pulumi.CustomResource { resourceInputs["health"] = state ? state.health : undefined; resourceInputs["kubernetesVersion"] = state ? state.kubernetesVersion : undefined; resourceInputs["labels"] = state ? state.labels : undefined; + resourceInputs["linuxOsConfigs"] = state ? state.linuxOsConfigs : undefined; resourceInputs["maxCount"] = state ? state.maxCount : undefined; resourceInputs["maxPodsPerNode"] = state ? state.maxPodsPerNode : undefined; resourceInputs["minCount"] = state ? state.minCount : undefined; @@ -235,6 +237,7 @@ export class OceanNp extends pulumi.CustomResource { resourceInputs["health"] = args ? args.health : undefined; resourceInputs["kubernetesVersion"] = args ? args.kubernetesVersion : undefined; resourceInputs["labels"] = args ? args.labels : undefined; + resourceInputs["linuxOsConfigs"] = args ? args.linuxOsConfigs : undefined; resourceInputs["maxCount"] = args ? args.maxCount : undefined; resourceInputs["maxPodsPerNode"] = args ? args.maxPodsPerNode : undefined; resourceInputs["minCount"] = args ? args.minCount : undefined; @@ -304,6 +307,10 @@ export interface OceanNpState { * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). */ labels?: pulumi.Input<{[key: string]: any}>; + /** + * Custom Linux OS configuration. + */ + linuxOsConfigs?: pulumi.Input[]>; /** * Maximum node count limit. */ @@ -340,9 +347,6 @@ export interface OceanNpState { * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). */ podSubnetIds?: pulumi.Input[]>; - /** - * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - */ scheduling?: pulumi.Input; /** * Percentage of spot VMs to maintain. @@ -408,6 +412,10 @@ export interface OceanNpArgs { * An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). */ labels?: pulumi.Input<{[key: string]: any}>; + /** + * Custom Linux OS configuration. + */ + linuxOsConfigs?: pulumi.Input[]>; /** * Maximum node count limit. */ @@ -444,9 +452,6 @@ export interface OceanNpArgs { * The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). */ podSubnetIds?: pulumi.Input[]>; - /** - * An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - */ scheduling?: pulumi.Input; /** * Percentage of spot VMs to maintain. diff --git a/sdk/nodejs/azure/oceanNpVirtualNodeGroup.ts b/sdk/nodejs/azure/oceanNpVirtualNodeGroup.ts index 81287e99..3e1e154a 100644 --- a/sdk/nodejs/azure/oceanNpVirtualNodeGroup.ts +++ b/sdk/nodejs/azure/oceanNpVirtualNodeGroup.ts @@ -44,6 +44,11 @@ import * as utilities from "../utilities"; * kubernetesVersion: "1.26", * podSubnetIds: ["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], * vnetSubnetIds: ["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + * linuxOsConfigs: [{ + * sysctls: [{ + * vmMaxMapCount: 79550, + * }], + * }], * spotPercentage: 50, * fallbackToOndemand: true, * taints: [{ @@ -147,6 +152,10 @@ export class OceanNpVirtualNodeGroup extends pulumi.CustomResource { * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. */ public readonly labels!: pulumi.Output<{[key: string]: any} | undefined>; + /** + * Custom Linux OS configuration. + */ + public readonly linuxOsConfigs!: pulumi.Output; /** * Maximum node count limit. */ @@ -222,6 +231,7 @@ export class OceanNpVirtualNodeGroup extends pulumi.CustomResource { resourceInputs["headrooms"] = state ? state.headrooms : undefined; resourceInputs["kubernetesVersion"] = state ? state.kubernetesVersion : undefined; resourceInputs["labels"] = state ? state.labels : undefined; + resourceInputs["linuxOsConfigs"] = state ? state.linuxOsConfigs : undefined; resourceInputs["maxCount"] = state ? state.maxCount : undefined; resourceInputs["maxPodsPerNode"] = state ? state.maxPodsPerNode : undefined; resourceInputs["minCount"] = state ? state.minCount : undefined; @@ -249,6 +259,7 @@ export class OceanNpVirtualNodeGroup extends pulumi.CustomResource { resourceInputs["headrooms"] = args ? args.headrooms : undefined; resourceInputs["kubernetesVersion"] = args ? args.kubernetesVersion : undefined; resourceInputs["labels"] = args ? args.labels : undefined; + resourceInputs["linuxOsConfigs"] = args ? args.linuxOsConfigs : undefined; resourceInputs["maxCount"] = args ? args.maxCount : undefined; resourceInputs["maxPodsPerNode"] = args ? args.maxPodsPerNode : undefined; resourceInputs["minCount"] = args ? args.minCount : undefined; @@ -302,6 +313,10 @@ export interface OceanNpVirtualNodeGroupState { * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. */ labels?: pulumi.Input<{[key: string]: any}>; + /** + * Custom Linux OS configuration. + */ + linuxOsConfigs?: pulumi.Input[]>; /** * Maximum node count limit. */ @@ -390,6 +405,10 @@ export interface OceanNpVirtualNodeGroupArgs { * An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. */ labels?: pulumi.Input<{[key: string]: any}>; + /** + * Custom Linux OS configuration. + */ + linuxOsConfigs?: pulumi.Input[]>; /** * Maximum node count limit. */ diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index cdd8a92e..caeae047 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -2401,16 +2401,45 @@ export namespace azure { gracePeriod?: pulumi.Input; } - export interface OceanNpScheduling { + export interface OceanNpLinuxOsConfig { /** - * [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + * System Controls */ + sysctls?: pulumi.Input[]>; + } + + export interface OceanNpLinuxOsConfigSysctl { + vmMaxMapCount?: pulumi.Input; + } + + export interface OceanNpScheduling { shutdownHours?: pulumi.Input; + tasks?: pulumi.Input[]>; } export interface OceanNpSchedulingShutdownHours { isEnabled?: pulumi.Input; - timeWindows: pulumi.Input[]>; + timeWindows?: pulumi.Input[]>; + } + + export interface OceanNpSchedulingTask { + cronExpression: pulumi.Input; + isEnabled: pulumi.Input; + parameters?: pulumi.Input; + taskType: pulumi.Input; + } + + export interface OceanNpSchedulingTaskParameters { + parametersClusterRoll?: pulumi.Input; + } + + export interface OceanNpSchedulingTaskParametersParametersClusterRoll { + batchMinHealthyPercentage?: pulumi.Input; + batchSizePercentage?: pulumi.Input; + comment?: pulumi.Input; + respectPdb?: pulumi.Input; + respectRestrictScaleDown?: pulumi.Input; + vngIds?: pulumi.Input[]>; } export interface OceanNpTaint { @@ -2528,6 +2557,17 @@ export namespace azure { numOfUnits?: pulumi.Input; } + export interface OceanNpVirtualNodeGroupLinuxOsConfig { + /** + * System Controls + */ + sysctls?: pulumi.Input[]>; + } + + export interface OceanNpVirtualNodeGroupLinuxOsConfigSysctl { + vmMaxMapCount?: pulumi.Input; + } + export interface OceanNpVirtualNodeGroupTaint { /** * Set taint effect. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index a4b4de5d..5b9fd54b 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -2403,16 +2403,45 @@ export namespace azure { gracePeriod?: number; } - export interface OceanNpScheduling { + export interface OceanNpLinuxOsConfig { /** - * [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + * System Controls */ + sysctls?: outputs.azure.OceanNpLinuxOsConfigSysctl[]; + } + + export interface OceanNpLinuxOsConfigSysctl { + vmMaxMapCount?: number; + } + + export interface OceanNpScheduling { shutdownHours?: outputs.azure.OceanNpSchedulingShutdownHours; + tasks?: outputs.azure.OceanNpSchedulingTask[]; } export interface OceanNpSchedulingShutdownHours { isEnabled?: boolean; - timeWindows: string[]; + timeWindows?: string[]; + } + + export interface OceanNpSchedulingTask { + cronExpression: string; + isEnabled: boolean; + parameters?: outputs.azure.OceanNpSchedulingTaskParameters; + taskType: string; + } + + export interface OceanNpSchedulingTaskParameters { + parametersClusterRoll?: outputs.azure.OceanNpSchedulingTaskParametersParametersClusterRoll; + } + + export interface OceanNpSchedulingTaskParametersParametersClusterRoll { + batchMinHealthyPercentage?: number; + batchSizePercentage?: number; + comment?: string; + respectPdb?: boolean; + respectRestrictScaleDown?: boolean; + vngIds?: string[]; } export interface OceanNpTaint { @@ -2530,6 +2559,17 @@ export namespace azure { numOfUnits?: number; } + export interface OceanNpVirtualNodeGroupLinuxOsConfig { + /** + * System Controls + */ + sysctls?: outputs.azure.OceanNpVirtualNodeGroupLinuxOsConfigSysctl[]; + } + + export interface OceanNpVirtualNodeGroupLinuxOsConfigSysctl { + vmMaxMapCount?: number; + } + export interface OceanNpVirtualNodeGroupTaint { /** * Set taint effect. diff --git a/sdk/python/pulumi_spotinst/azure/_inputs.py b/sdk/python/pulumi_spotinst/azure/_inputs.py index 82b9f2f4..35096e6c 100644 --- a/sdk/python/pulumi_spotinst/azure/_inputs.py +++ b/sdk/python/pulumi_spotinst/azure/_inputs.py @@ -33,13 +33,20 @@ 'OceanNpFiltersArgs', 'OceanNpHeadroomArgs', 'OceanNpHealthArgs', + 'OceanNpLinuxOsConfigArgs', + 'OceanNpLinuxOsConfigSysctlArgs', 'OceanNpSchedulingArgs', 'OceanNpSchedulingShutdownHoursArgs', + 'OceanNpSchedulingTaskArgs', + 'OceanNpSchedulingTaskParametersArgs', + 'OceanNpSchedulingTaskParametersParametersClusterRollArgs', 'OceanNpTaintArgs', 'OceanNpUpdatePolicyArgs', 'OceanNpUpdatePolicyRollConfigArgs', 'OceanNpVirtualNodeGroupFiltersArgs', 'OceanNpVirtualNodeGroupHeadroomArgs', + 'OceanNpVirtualNodeGroupLinuxOsConfigArgs', + 'OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs', 'OceanNpVirtualNodeGroupTaintArgs', 'OceanNpVirtualNodeGroupUpdatePolicyArgs', 'OceanNpVirtualNodeGroupUpdatePolicyRollConfigArgs', @@ -1229,55 +1236,246 @@ def grace_period(self, value: Optional[pulumi.Input[int]]): @pulumi.input_type -class OceanNpSchedulingArgs: +class OceanNpLinuxOsConfigArgs: def __init__(__self__, *, - shutdown_hours: Optional[pulumi.Input['OceanNpSchedulingShutdownHoursArgs']] = None): + sysctls: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigSysctlArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigSysctlArgs']]] sysctls: System Controls + """ + if sysctls is not None: + pulumi.set(__self__, "sysctls", sysctls) + + @property + @pulumi.getter + def sysctls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigSysctlArgs']]]]: """ - :param pulumi.Input['OceanNpSchedulingShutdownHoursArgs'] shutdown_hours: [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. + System Controls """ + return pulumi.get(self, "sysctls") + + @sysctls.setter + def sysctls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigSysctlArgs']]]]): + pulumi.set(self, "sysctls", value) + + +@pulumi.input_type +class OceanNpLinuxOsConfigSysctlArgs: + def __init__(__self__, *, + vm_max_map_count: Optional[pulumi.Input[int]] = None): + if vm_max_map_count is not None: + pulumi.set(__self__, "vm_max_map_count", vm_max_map_count) + + @property + @pulumi.getter(name="vmMaxMapCount") + def vm_max_map_count(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vm_max_map_count") + + @vm_max_map_count.setter + def vm_max_map_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vm_max_map_count", value) + + +@pulumi.input_type +class OceanNpSchedulingArgs: + def __init__(__self__, *, + shutdown_hours: Optional[pulumi.Input['OceanNpSchedulingShutdownHoursArgs']] = None, + tasks: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpSchedulingTaskArgs']]]] = None): if shutdown_hours is not None: pulumi.set(__self__, "shutdown_hours", shutdown_hours) + if tasks is not None: + pulumi.set(__self__, "tasks", tasks) @property @pulumi.getter(name="shutdownHours") def shutdown_hours(self) -> Optional[pulumi.Input['OceanNpSchedulingShutdownHoursArgs']]: - """ - [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - """ return pulumi.get(self, "shutdown_hours") @shutdown_hours.setter def shutdown_hours(self, value: Optional[pulumi.Input['OceanNpSchedulingShutdownHoursArgs']]): pulumi.set(self, "shutdown_hours", value) + @property + @pulumi.getter + def tasks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpSchedulingTaskArgs']]]]: + return pulumi.get(self, "tasks") + + @tasks.setter + def tasks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpSchedulingTaskArgs']]]]): + pulumi.set(self, "tasks", value) + @pulumi.input_type class OceanNpSchedulingShutdownHoursArgs: def __init__(__self__, *, - time_windows: pulumi.Input[Sequence[pulumi.Input[str]]], - is_enabled: Optional[pulumi.Input[bool]] = None): - pulumi.set(__self__, "time_windows", time_windows) + is_enabled: Optional[pulumi.Input[bool]] = None, + time_windows: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): if is_enabled is not None: pulumi.set(__self__, "is_enabled", is_enabled) + if time_windows is not None: + pulumi.set(__self__, "time_windows", time_windows) + + @property + @pulumi.getter(name="isEnabled") + def is_enabled(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "is_enabled") + + @is_enabled.setter + def is_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_enabled", value) @property @pulumi.getter(name="timeWindows") - def time_windows(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + def time_windows(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: return pulumi.get(self, "time_windows") @time_windows.setter - def time_windows(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + def time_windows(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "time_windows", value) + +@pulumi.input_type +class OceanNpSchedulingTaskArgs: + def __init__(__self__, *, + cron_expression: pulumi.Input[str], + is_enabled: pulumi.Input[bool], + task_type: pulumi.Input[str], + parameters: Optional[pulumi.Input['OceanNpSchedulingTaskParametersArgs']] = None): + pulumi.set(__self__, "cron_expression", cron_expression) + pulumi.set(__self__, "is_enabled", is_enabled) + pulumi.set(__self__, "task_type", task_type) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter(name="cronExpression") + def cron_expression(self) -> pulumi.Input[str]: + return pulumi.get(self, "cron_expression") + + @cron_expression.setter + def cron_expression(self, value: pulumi.Input[str]): + pulumi.set(self, "cron_expression", value) + @property @pulumi.getter(name="isEnabled") - def is_enabled(self) -> Optional[pulumi.Input[bool]]: + def is_enabled(self) -> pulumi.Input[bool]: return pulumi.get(self, "is_enabled") @is_enabled.setter - def is_enabled(self, value: Optional[pulumi.Input[bool]]): + def is_enabled(self, value: pulumi.Input[bool]): pulumi.set(self, "is_enabled", value) + @property + @pulumi.getter(name="taskType") + def task_type(self) -> pulumi.Input[str]: + return pulumi.get(self, "task_type") + + @task_type.setter + def task_type(self, value: pulumi.Input[str]): + pulumi.set(self, "task_type", value) + + @property + @pulumi.getter + def parameters(self) -> Optional[pulumi.Input['OceanNpSchedulingTaskParametersArgs']]: + return pulumi.get(self, "parameters") + + @parameters.setter + def parameters(self, value: Optional[pulumi.Input['OceanNpSchedulingTaskParametersArgs']]): + pulumi.set(self, "parameters", value) + + +@pulumi.input_type +class OceanNpSchedulingTaskParametersArgs: + def __init__(__self__, *, + parameters_cluster_roll: Optional[pulumi.Input['OceanNpSchedulingTaskParametersParametersClusterRollArgs']] = None): + if parameters_cluster_roll is not None: + pulumi.set(__self__, "parameters_cluster_roll", parameters_cluster_roll) + + @property + @pulumi.getter(name="parametersClusterRoll") + def parameters_cluster_roll(self) -> Optional[pulumi.Input['OceanNpSchedulingTaskParametersParametersClusterRollArgs']]: + return pulumi.get(self, "parameters_cluster_roll") + + @parameters_cluster_roll.setter + def parameters_cluster_roll(self, value: Optional[pulumi.Input['OceanNpSchedulingTaskParametersParametersClusterRollArgs']]): + pulumi.set(self, "parameters_cluster_roll", value) + + +@pulumi.input_type +class OceanNpSchedulingTaskParametersParametersClusterRollArgs: + def __init__(__self__, *, + batch_min_healthy_percentage: Optional[pulumi.Input[int]] = None, + batch_size_percentage: Optional[pulumi.Input[int]] = None, + comment: Optional[pulumi.Input[str]] = None, + respect_pdb: Optional[pulumi.Input[bool]] = None, + respect_restrict_scale_down: Optional[pulumi.Input[bool]] = None, + vng_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + if batch_min_healthy_percentage is not None: + pulumi.set(__self__, "batch_min_healthy_percentage", batch_min_healthy_percentage) + if batch_size_percentage is not None: + pulumi.set(__self__, "batch_size_percentage", batch_size_percentage) + if comment is not None: + pulumi.set(__self__, "comment", comment) + if respect_pdb is not None: + pulumi.set(__self__, "respect_pdb", respect_pdb) + if respect_restrict_scale_down is not None: + pulumi.set(__self__, "respect_restrict_scale_down", respect_restrict_scale_down) + if vng_ids is not None: + pulumi.set(__self__, "vng_ids", vng_ids) + + @property + @pulumi.getter(name="batchMinHealthyPercentage") + def batch_min_healthy_percentage(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "batch_min_healthy_percentage") + + @batch_min_healthy_percentage.setter + def batch_min_healthy_percentage(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "batch_min_healthy_percentage", value) + + @property + @pulumi.getter(name="batchSizePercentage") + def batch_size_percentage(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "batch_size_percentage") + + @batch_size_percentage.setter + def batch_size_percentage(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "batch_size_percentage", value) + + @property + @pulumi.getter + def comment(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "comment") + + @comment.setter + def comment(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "comment", value) + + @property + @pulumi.getter(name="respectPdb") + def respect_pdb(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "respect_pdb") + + @respect_pdb.setter + def respect_pdb(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "respect_pdb", value) + + @property + @pulumi.getter(name="respectRestrictScaleDown") + def respect_restrict_scale_down(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "respect_restrict_scale_down") + + @respect_restrict_scale_down.setter + def respect_restrict_scale_down(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "respect_restrict_scale_down", value) + + @property + @pulumi.getter(name="vngIds") + def vng_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "vng_ids") + + @vng_ids.setter + def vng_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "vng_ids", value) + @pulumi.input_type class OceanNpTaintArgs: @@ -1792,6 +1990,46 @@ def num_of_units(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "num_of_units", value) +@pulumi.input_type +class OceanNpVirtualNodeGroupLinuxOsConfigArgs: + def __init__(__self__, *, + sysctls: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs']]] sysctls: System Controls + """ + if sysctls is not None: + pulumi.set(__self__, "sysctls", sysctls) + + @property + @pulumi.getter + def sysctls(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs']]]]: + """ + System Controls + """ + return pulumi.get(self, "sysctls") + + @sysctls.setter + def sysctls(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs']]]]): + pulumi.set(self, "sysctls", value) + + +@pulumi.input_type +class OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs: + def __init__(__self__, *, + vm_max_map_count: Optional[pulumi.Input[int]] = None): + if vm_max_map_count is not None: + pulumi.set(__self__, "vm_max_map_count", vm_max_map_count) + + @property + @pulumi.getter(name="vmMaxMapCount") + def vm_max_map_count(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "vm_max_map_count") + + @vm_max_map_count.setter + def vm_max_map_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vm_max_map_count", value) + + @pulumi.input_type class OceanNpVirtualNodeGroupTaintArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_spotinst/azure/ocean_np.py b/sdk/python/pulumi_spotinst/azure/ocean_np.py index acdb9e18..f3f86a32 100644 --- a/sdk/python/pulumi_spotinst/azure/ocean_np.py +++ b/sdk/python/pulumi_spotinst/azure/ocean_np.py @@ -30,6 +30,7 @@ def __init__(__self__, *, health: Optional[pulumi.Input['OceanNpHealthArgs']] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigArgs']]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -57,6 +58,7 @@ def __init__(__self__, *, :param pulumi.Input['OceanNpHealthArgs'] health: The Ocean AKS Health object. :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + :param pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigArgs']]] linux_os_configs: Custom Linux OS configuration. :param pulumi.Input[int] max_count: Maximum node count limit. :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. :param pulumi.Input[int] min_count: Minimum node count limit. @@ -66,7 +68,6 @@ def __init__(__self__, *, :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). - :param pulumi.Input['OceanNpSchedulingArgs'] scheduling: An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. :param pulumi.Input[Sequence[pulumi.Input['OceanNpTaintArgs']]] taints: Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). @@ -93,6 +94,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kubernetes_version", kubernetes_version) if labels is not None: pulumi.set(__self__, "labels", labels) + if linux_os_configs is not None: + pulumi.set(__self__, "linux_os_configs", linux_os_configs) if max_count is not None: pulumi.set(__self__, "max_count", max_count) if max_pods_per_node is not None: @@ -280,6 +283,18 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): pulumi.set(self, "labels", value) + @property + @pulumi.getter(name="linuxOsConfigs") + def linux_os_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigArgs']]]]: + """ + Custom Linux OS configuration. + """ + return pulumi.get(self, "linux_os_configs") + + @linux_os_configs.setter + def linux_os_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigArgs']]]]): + pulumi.set(self, "linux_os_configs", value) + @property @pulumi.getter(name="maxCount") def max_count(self) -> Optional[pulumi.Input[int]]: @@ -391,9 +406,6 @@ def pod_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @property @pulumi.getter def scheduling(self) -> Optional[pulumi.Input['OceanNpSchedulingArgs']]: - """ - An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - """ return pulumi.get(self, "scheduling") @scheduling.setter @@ -472,6 +484,7 @@ def __init__(__self__, *, health: Optional[pulumi.Input['OceanNpHealthArgs']] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigArgs']]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -499,6 +512,7 @@ def __init__(__self__, *, :param pulumi.Input['OceanNpHealthArgs'] health: The Ocean AKS Health object. :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + :param pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigArgs']]] linux_os_configs: Custom Linux OS configuration. :param pulumi.Input[int] max_count: Maximum node count limit. :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. :param pulumi.Input[int] min_count: Minimum node count limit. @@ -508,7 +522,6 @@ def __init__(__self__, *, :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). - :param pulumi.Input['OceanNpSchedulingArgs'] scheduling: An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. :param pulumi.Input[Sequence[pulumi.Input['OceanNpTaintArgs']]] taints: Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). @@ -541,6 +554,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kubernetes_version", kubernetes_version) if labels is not None: pulumi.set(__self__, "labels", labels) + if linux_os_configs is not None: + pulumi.set(__self__, "linux_os_configs", linux_os_configs) if max_count is not None: pulumi.set(__self__, "max_count", max_count) if max_pods_per_node is not None: @@ -728,6 +743,18 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): pulumi.set(self, "labels", value) + @property + @pulumi.getter(name="linuxOsConfigs") + def linux_os_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigArgs']]]]: + """ + Custom Linux OS configuration. + """ + return pulumi.get(self, "linux_os_configs") + + @linux_os_configs.setter + def linux_os_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpLinuxOsConfigArgs']]]]): + pulumi.set(self, "linux_os_configs", value) + @property @pulumi.getter(name="maxCount") def max_count(self) -> Optional[pulumi.Input[int]]: @@ -839,9 +866,6 @@ def pod_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str] @property @pulumi.getter def scheduling(self) -> Optional[pulumi.Input['OceanNpSchedulingArgs']]: - """ - An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - """ return pulumi.get(self, "scheduling") @scheduling.setter @@ -922,6 +946,7 @@ def __init__(__self__, health: Optional[pulumi.Input[pulumi.InputType['OceanNpHealthArgs']]] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpLinuxOsConfigArgs']]]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -975,6 +1000,7 @@ def __init__(__self__, :param pulumi.Input[pulumi.InputType['OceanNpHealthArgs']] health: The Ocean AKS Health object. :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpLinuxOsConfigArgs']]]] linux_os_configs: Custom Linux OS configuration. :param pulumi.Input[int] max_count: Maximum node count limit. :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. :param pulumi.Input[int] min_count: Minimum node count limit. @@ -984,7 +1010,6 @@ def __init__(__self__, :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). - :param pulumi.Input[pulumi.InputType['OceanNpSchedulingArgs']] scheduling: An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpTaintArgs']]]] taints: Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). @@ -1049,6 +1074,7 @@ def _internal_init(__self__, health: Optional[pulumi.Input[pulumi.InputType['OceanNpHealthArgs']]] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpLinuxOsConfigArgs']]]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -1099,6 +1125,7 @@ def _internal_init(__self__, __props__.__dict__["health"] = health __props__.__dict__["kubernetes_version"] = kubernetes_version __props__.__dict__["labels"] = labels + __props__.__dict__["linux_os_configs"] = linux_os_configs __props__.__dict__["max_count"] = max_count __props__.__dict__["max_pods_per_node"] = max_pods_per_node __props__.__dict__["min_count"] = min_count @@ -1138,6 +1165,7 @@ def get(resource_name: str, health: Optional[pulumi.Input[pulumi.InputType['OceanNpHealthArgs']]] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpLinuxOsConfigArgs']]]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -1170,6 +1198,7 @@ def get(resource_name: str, :param pulumi.Input[pulumi.InputType['OceanNpHealthArgs']] health: The Ocean AKS Health object. :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group. Only custom user labels are allowed, and not [Kubernetes well-known labels](https://kubernetes.io/docs/reference/labels-annotations-taints/) or [ Azure AKS labels](https://learn.microsoft.com/en-us/azure/aks/use-labels) or [Spot labels](https://docs.spot.io/ocean/features/labels-and-taints?id=spot-labels). + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpLinuxOsConfigArgs']]]] linux_os_configs: Custom Linux OS configuration. :param pulumi.Input[int] max_count: Maximum node count limit. :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. :param pulumi.Input[int] min_count: Minimum node count limit. @@ -1179,7 +1208,6 @@ def get(resource_name: str, :param pulumi.Input[str] os_sku: The OS SKU of the OS type. Must correlate with the os type. :param pulumi.Input[str] os_type: The OS type of the OS disk. Can't be modified once set. :param pulumi.Input[Sequence[pulumi.Input[str]]] pod_subnet_ids: The IDs of subnets in an existing VNet into which to assign pods in the cluster (requires azure network-plugin). - :param pulumi.Input[pulumi.InputType['OceanNpSchedulingArgs']] scheduling: An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. :param pulumi.Input[int] spot_percentage: Percentage of spot VMs to maintain. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpTaintArgs']]]] taints: Add taints to a virtual node group. Only custom user taints are allowed, and not [Kubernetes well-known taints](https://kubernetes.io/docs/reference/labels-annotations-taints/) or Azure AKS [ScaleSetPrioirty (Spot VM) taint](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool). For all Spot VMs, AKS injects a taint kubernetes.azure.com/scalesetpriority=spot:NoSchedule, to ensure that only workloads that can handle interruptions are scheduled on Spot nodes. To [schedule a pod to run on Spot node](https://learn.microsoft.com/en-us/azure/aks/spot-node-pool#schedule-a-pod-to-run-on-the-spot-node), add a toleration but dont include the nodeAffinity (not supported for Spot Ocean), this will prevent the pod from being scheduled using Spot Ocean. :param pulumi.Input[Sequence[pulumi.Input[str]]] vnet_subnet_ids: The IDs of subnets in an existing VNet into which to assign nodes in the cluster (requires azure network-plugin). @@ -1202,6 +1230,7 @@ def get(resource_name: str, __props__.__dict__["health"] = health __props__.__dict__["kubernetes_version"] = kubernetes_version __props__.__dict__["labels"] = labels + __props__.__dict__["linux_os_configs"] = linux_os_configs __props__.__dict__["max_count"] = max_count __props__.__dict__["max_pods_per_node"] = max_pods_per_node __props__.__dict__["min_count"] = min_count @@ -1319,6 +1348,14 @@ def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]: """ return pulumi.get(self, "labels") + @property + @pulumi.getter(name="linuxOsConfigs") + def linux_os_configs(self) -> pulumi.Output[Optional[Sequence['outputs.OceanNpLinuxOsConfig']]]: + """ + Custom Linux OS configuration. + """ + return pulumi.get(self, "linux_os_configs") + @property @pulumi.getter(name="maxCount") def max_count(self) -> pulumi.Output[Optional[int]]: @@ -1394,9 +1431,6 @@ def pod_subnet_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: @property @pulumi.getter def scheduling(self) -> pulumi.Output[Optional['outputs.OceanNpScheduling']]: - """ - An object used to specify times when the cluster will turn off. Once the shutdown time will be over, the cluster will return to its previous state. - """ return pulumi.get(self, "scheduling") @property diff --git a/sdk/python/pulumi_spotinst/azure/ocean_np_virtual_node_group.py b/sdk/python/pulumi_spotinst/azure/ocean_np_virtual_node_group.py index fc967d0d..c61aa85f 100644 --- a/sdk/python/pulumi_spotinst/azure/ocean_np_virtual_node_group.py +++ b/sdk/python/pulumi_spotinst/azure/ocean_np_virtual_node_group.py @@ -24,6 +24,7 @@ def __init__(__self__, *, headrooms: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupHeadroomArgs']]]] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -48,6 +49,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupHeadroomArgs']]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]] linux_os_configs: Custom Linux OS configuration. :param pulumi.Input[int] max_count: Maximum node count limit. :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. :param pulumi.Input[int] min_count: Minimum node count limit. @@ -76,6 +78,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kubernetes_version", kubernetes_version) if labels is not None: pulumi.set(__self__, "labels", labels) + if linux_os_configs is not None: + pulumi.set(__self__, "linux_os_configs", linux_os_configs) if max_count is not None: pulumi.set(__self__, "max_count", max_count) if max_pods_per_node is not None: @@ -201,6 +205,18 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): pulumi.set(self, "labels", value) + @property + @pulumi.getter(name="linuxOsConfigs") + def linux_os_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]]: + """ + Custom Linux OS configuration. + """ + return pulumi.get(self, "linux_os_configs") + + @linux_os_configs.setter + def linux_os_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]]): + pulumi.set(self, "linux_os_configs", value) + @property @pulumi.getter(name="maxCount") def max_count(self) -> Optional[pulumi.Input[int]]: @@ -374,6 +390,7 @@ def __init__(__self__, *, headrooms: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupHeadroomArgs']]]] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -398,6 +415,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupHeadroomArgs']]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + :param pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]] linux_os_configs: Custom Linux OS configuration. :param pulumi.Input[int] max_count: Maximum node count limit. :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. :param pulumi.Input[int] min_count: Minimum node count limit. @@ -426,6 +444,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kubernetes_version", kubernetes_version) if labels is not None: pulumi.set(__self__, "labels", labels) + if linux_os_configs is not None: + pulumi.set(__self__, "linux_os_configs", linux_os_configs) if max_count is not None: pulumi.set(__self__, "max_count", max_count) if max_pods_per_node is not None: @@ -541,6 +561,18 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: def labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): pulumi.set(self, "labels", value) + @property + @pulumi.getter(name="linuxOsConfigs") + def linux_os_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]]: + """ + Custom Linux OS configuration. + """ + return pulumi.get(self, "linux_os_configs") + + @linux_os_configs.setter + def linux_os_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]]): + pulumi.set(self, "linux_os_configs", value) + @property @pulumi.getter(name="maxCount") def max_count(self) -> Optional[pulumi.Input[int]]: @@ -728,6 +760,7 @@ def __init__(__self__, headrooms: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupHeadroomArgs']]]]] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -782,6 +815,11 @@ def __init__(__self__, kubernetes_version="1.26", pod_subnet_ids=["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], vnet_subnet_ids=["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + linux_os_configs=[spotinst.azure.OceanNpVirtualNodeGroupLinuxOsConfigArgs( + sysctls=[spotinst.azure.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs( + vm_max_map_count=79550, + )], + )], spot_percentage=50, fallback_to_ondemand=True, taints=[spotinst.azure.OceanNpVirtualNodeGroupTaintArgs( @@ -837,6 +875,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupHeadroomArgs']]]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]] linux_os_configs: Custom Linux OS configuration. :param pulumi.Input[int] max_count: Maximum node count limit. :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. :param pulumi.Input[int] min_count: Minimum node count limit. @@ -895,6 +934,11 @@ def __init__(__self__, kubernetes_version="1.26", pod_subnet_ids=["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], vnet_subnet_ids=["/subscriptions/123456-1234-1234-1234-123456789/resourceGroups/ExampleResourceGroup/providers/Microsoft.Network/virtualNetworks/ExampleVirtualNetwork/subnets/default"], + linux_os_configs=[spotinst.azure.OceanNpVirtualNodeGroupLinuxOsConfigArgs( + sysctls=[spotinst.azure.OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs( + vm_max_map_count=79550, + )], + )], spot_percentage=50, fallback_to_ondemand=True, taints=[spotinst.azure.OceanNpVirtualNodeGroupTaintArgs( @@ -963,6 +1007,7 @@ def _internal_init(__self__, headrooms: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupHeadroomArgs']]]]] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -994,6 +1039,7 @@ def _internal_init(__self__, __props__.__dict__["headrooms"] = headrooms __props__.__dict__["kubernetes_version"] = kubernetes_version __props__.__dict__["labels"] = labels + __props__.__dict__["linux_os_configs"] = linux_os_configs __props__.__dict__["max_count"] = max_count __props__.__dict__["max_pods_per_node"] = max_pods_per_node __props__.__dict__["min_count"] = min_count @@ -1028,6 +1074,7 @@ def get(resource_name: str, headrooms: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupHeadroomArgs']]]]] = None, kubernetes_version: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + linux_os_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]]] = None, max_count: Optional[pulumi.Input[int]] = None, max_pods_per_node: Optional[pulumi.Input[int]] = None, min_count: Optional[pulumi.Input[int]] = None, @@ -1057,6 +1104,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupHeadroomArgs']]]] headrooms: Specify the custom headroom per VNG. Provide a list of headroom objects. :param pulumi.Input[str] kubernetes_version: The desired Kubernetes version of the launched nodes. In case the value is null, the Kubernetes version of the control plane is used. :param pulumi.Input[Mapping[str, Any]] labels: An array of labels to add to the virtual node group.Only custom user labels are allowed, and not Kubernetes built-in labels or Spot internal labels. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OceanNpVirtualNodeGroupLinuxOsConfigArgs']]]] linux_os_configs: Custom Linux OS configuration. :param pulumi.Input[int] max_count: Maximum node count limit. :param pulumi.Input[int] max_pods_per_node: The maximum number of pods per node in the node pools. :param pulumi.Input[int] min_count: Minimum node count limit. @@ -1082,6 +1130,7 @@ def get(resource_name: str, __props__.__dict__["headrooms"] = headrooms __props__.__dict__["kubernetes_version"] = kubernetes_version __props__.__dict__["labels"] = labels + __props__.__dict__["linux_os_configs"] = linux_os_configs __props__.__dict__["max_count"] = max_count __props__.__dict__["max_pods_per_node"] = max_pods_per_node __props__.__dict__["min_count"] = min_count @@ -1155,6 +1204,14 @@ def labels(self) -> pulumi.Output[Optional[Mapping[str, Any]]]: """ return pulumi.get(self, "labels") + @property + @pulumi.getter(name="linuxOsConfigs") + def linux_os_configs(self) -> pulumi.Output[Optional[Sequence['outputs.OceanNpVirtualNodeGroupLinuxOsConfig']]]: + """ + Custom Linux OS configuration. + """ + return pulumi.get(self, "linux_os_configs") + @property @pulumi.getter(name="maxCount") def max_count(self) -> pulumi.Output[Optional[int]]: diff --git a/sdk/python/pulumi_spotinst/azure/outputs.py b/sdk/python/pulumi_spotinst/azure/outputs.py index a7336e04..3290c40a 100644 --- a/sdk/python/pulumi_spotinst/azure/outputs.py +++ b/sdk/python/pulumi_spotinst/azure/outputs.py @@ -34,13 +34,20 @@ 'OceanNpFilters', 'OceanNpHeadroom', 'OceanNpHealth', + 'OceanNpLinuxOsConfig', + 'OceanNpLinuxOsConfigSysctl', 'OceanNpScheduling', 'OceanNpSchedulingShutdownHours', + 'OceanNpSchedulingTask', + 'OceanNpSchedulingTaskParameters', + 'OceanNpSchedulingTaskParametersParametersClusterRoll', 'OceanNpTaint', 'OceanNpUpdatePolicy', 'OceanNpUpdatePolicyRollConfig', 'OceanNpVirtualNodeGroupFilters', 'OceanNpVirtualNodeGroupHeadroom', + 'OceanNpVirtualNodeGroupLinuxOsConfig', + 'OceanNpVirtualNodeGroupLinuxOsConfigSysctl', 'OceanNpVirtualNodeGroupTaint', 'OceanNpVirtualNodeGroupUpdatePolicy', 'OceanNpVirtualNodeGroupUpdatePolicyRollConfig', @@ -1336,6 +1343,55 @@ def grace_period(self) -> Optional[int]: return pulumi.get(self, "grace_period") +@pulumi.output_type +class OceanNpLinuxOsConfig(dict): + def __init__(__self__, *, + sysctls: Optional[Sequence['outputs.OceanNpLinuxOsConfigSysctl']] = None): + """ + :param Sequence['OceanNpLinuxOsConfigSysctlArgs'] sysctls: System Controls + """ + if sysctls is not None: + pulumi.set(__self__, "sysctls", sysctls) + + @property + @pulumi.getter + def sysctls(self) -> Optional[Sequence['outputs.OceanNpLinuxOsConfigSysctl']]: + """ + System Controls + """ + return pulumi.get(self, "sysctls") + + +@pulumi.output_type +class OceanNpLinuxOsConfigSysctl(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "vmMaxMapCount": + suggest = "vm_max_map_count" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in OceanNpLinuxOsConfigSysctl. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + OceanNpLinuxOsConfigSysctl.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + OceanNpLinuxOsConfigSysctl.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + vm_max_map_count: Optional[int] = None): + if vm_max_map_count is not None: + pulumi.set(__self__, "vm_max_map_count", vm_max_map_count) + + @property + @pulumi.getter(name="vmMaxMapCount") + def vm_max_map_count(self) -> Optional[int]: + return pulumi.get(self, "vm_max_map_count") + + @pulumi.output_type class OceanNpScheduling(dict): @staticmethod @@ -1356,31 +1412,33 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - shutdown_hours: Optional['outputs.OceanNpSchedulingShutdownHours'] = None): - """ - :param 'OceanNpSchedulingShutdownHoursArgs' shutdown_hours: [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - """ + shutdown_hours: Optional['outputs.OceanNpSchedulingShutdownHours'] = None, + tasks: Optional[Sequence['outputs.OceanNpSchedulingTask']] = None): if shutdown_hours is not None: pulumi.set(__self__, "shutdown_hours", shutdown_hours) + if tasks is not None: + pulumi.set(__self__, "tasks", tasks) @property @pulumi.getter(name="shutdownHours") def shutdown_hours(self) -> Optional['outputs.OceanNpSchedulingShutdownHours']: - """ - [Shutdown Hours](https://docs.spot.io/ocean/features/running-hours?id=shutdown-hours)An object used to specify times that the nodes in the cluster will be taken down. - """ return pulumi.get(self, "shutdown_hours") + @property + @pulumi.getter + def tasks(self) -> Optional[Sequence['outputs.OceanNpSchedulingTask']]: + return pulumi.get(self, "tasks") + @pulumi.output_type class OceanNpSchedulingShutdownHours(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "timeWindows": - suggest = "time_windows" - elif key == "isEnabled": + if key == "isEnabled": suggest = "is_enabled" + elif key == "timeWindows": + suggest = "time_windows" if suggest: pulumi.log.warn(f"Key '{key}' not found in OceanNpSchedulingShutdownHours. Access the value via the '{suggest}' property getter instead.") @@ -1394,22 +1452,186 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - time_windows: Sequence[str], - is_enabled: Optional[bool] = None): - pulumi.set(__self__, "time_windows", time_windows) + is_enabled: Optional[bool] = None, + time_windows: Optional[Sequence[str]] = None): if is_enabled is not None: pulumi.set(__self__, "is_enabled", is_enabled) + if time_windows is not None: + pulumi.set(__self__, "time_windows", time_windows) + + @property + @pulumi.getter(name="isEnabled") + def is_enabled(self) -> Optional[bool]: + return pulumi.get(self, "is_enabled") @property @pulumi.getter(name="timeWindows") - def time_windows(self) -> Sequence[str]: + def time_windows(self) -> Optional[Sequence[str]]: return pulumi.get(self, "time_windows") + +@pulumi.output_type +class OceanNpSchedulingTask(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cronExpression": + suggest = "cron_expression" + elif key == "isEnabled": + suggest = "is_enabled" + elif key == "taskType": + suggest = "task_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in OceanNpSchedulingTask. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + OceanNpSchedulingTask.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + OceanNpSchedulingTask.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cron_expression: str, + is_enabled: bool, + task_type: str, + parameters: Optional['outputs.OceanNpSchedulingTaskParameters'] = None): + pulumi.set(__self__, "cron_expression", cron_expression) + pulumi.set(__self__, "is_enabled", is_enabled) + pulumi.set(__self__, "task_type", task_type) + if parameters is not None: + pulumi.set(__self__, "parameters", parameters) + + @property + @pulumi.getter(name="cronExpression") + def cron_expression(self) -> str: + return pulumi.get(self, "cron_expression") + @property @pulumi.getter(name="isEnabled") - def is_enabled(self) -> Optional[bool]: + def is_enabled(self) -> bool: return pulumi.get(self, "is_enabled") + @property + @pulumi.getter(name="taskType") + def task_type(self) -> str: + return pulumi.get(self, "task_type") + + @property + @pulumi.getter + def parameters(self) -> Optional['outputs.OceanNpSchedulingTaskParameters']: + return pulumi.get(self, "parameters") + + +@pulumi.output_type +class OceanNpSchedulingTaskParameters(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "parametersClusterRoll": + suggest = "parameters_cluster_roll" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in OceanNpSchedulingTaskParameters. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + OceanNpSchedulingTaskParameters.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + OceanNpSchedulingTaskParameters.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + parameters_cluster_roll: Optional['outputs.OceanNpSchedulingTaskParametersParametersClusterRoll'] = None): + if parameters_cluster_roll is not None: + pulumi.set(__self__, "parameters_cluster_roll", parameters_cluster_roll) + + @property + @pulumi.getter(name="parametersClusterRoll") + def parameters_cluster_roll(self) -> Optional['outputs.OceanNpSchedulingTaskParametersParametersClusterRoll']: + return pulumi.get(self, "parameters_cluster_roll") + + +@pulumi.output_type +class OceanNpSchedulingTaskParametersParametersClusterRoll(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "batchMinHealthyPercentage": + suggest = "batch_min_healthy_percentage" + elif key == "batchSizePercentage": + suggest = "batch_size_percentage" + elif key == "respectPdb": + suggest = "respect_pdb" + elif key == "respectRestrictScaleDown": + suggest = "respect_restrict_scale_down" + elif key == "vngIds": + suggest = "vng_ids" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in OceanNpSchedulingTaskParametersParametersClusterRoll. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + OceanNpSchedulingTaskParametersParametersClusterRoll.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + OceanNpSchedulingTaskParametersParametersClusterRoll.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + batch_min_healthy_percentage: Optional[int] = None, + batch_size_percentage: Optional[int] = None, + comment: Optional[str] = None, + respect_pdb: Optional[bool] = None, + respect_restrict_scale_down: Optional[bool] = None, + vng_ids: Optional[Sequence[str]] = None): + if batch_min_healthy_percentage is not None: + pulumi.set(__self__, "batch_min_healthy_percentage", batch_min_healthy_percentage) + if batch_size_percentage is not None: + pulumi.set(__self__, "batch_size_percentage", batch_size_percentage) + if comment is not None: + pulumi.set(__self__, "comment", comment) + if respect_pdb is not None: + pulumi.set(__self__, "respect_pdb", respect_pdb) + if respect_restrict_scale_down is not None: + pulumi.set(__self__, "respect_restrict_scale_down", respect_restrict_scale_down) + if vng_ids is not None: + pulumi.set(__self__, "vng_ids", vng_ids) + + @property + @pulumi.getter(name="batchMinHealthyPercentage") + def batch_min_healthy_percentage(self) -> Optional[int]: + return pulumi.get(self, "batch_min_healthy_percentage") + + @property + @pulumi.getter(name="batchSizePercentage") + def batch_size_percentage(self) -> Optional[int]: + return pulumi.get(self, "batch_size_percentage") + + @property + @pulumi.getter + def comment(self) -> Optional[str]: + return pulumi.get(self, "comment") + + @property + @pulumi.getter(name="respectPdb") + def respect_pdb(self) -> Optional[bool]: + return pulumi.get(self, "respect_pdb") + + @property + @pulumi.getter(name="respectRestrictScaleDown") + def respect_restrict_scale_down(self) -> Optional[bool]: + return pulumi.get(self, "respect_restrict_scale_down") + + @property + @pulumi.getter(name="vngIds") + def vng_ids(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "vng_ids") + @pulumi.output_type class OceanNpTaint(dict): @@ -1906,6 +2128,55 @@ def num_of_units(self) -> Optional[int]: return pulumi.get(self, "num_of_units") +@pulumi.output_type +class OceanNpVirtualNodeGroupLinuxOsConfig(dict): + def __init__(__self__, *, + sysctls: Optional[Sequence['outputs.OceanNpVirtualNodeGroupLinuxOsConfigSysctl']] = None): + """ + :param Sequence['OceanNpVirtualNodeGroupLinuxOsConfigSysctlArgs'] sysctls: System Controls + """ + if sysctls is not None: + pulumi.set(__self__, "sysctls", sysctls) + + @property + @pulumi.getter + def sysctls(self) -> Optional[Sequence['outputs.OceanNpVirtualNodeGroupLinuxOsConfigSysctl']]: + """ + System Controls + """ + return pulumi.get(self, "sysctls") + + +@pulumi.output_type +class OceanNpVirtualNodeGroupLinuxOsConfigSysctl(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "vmMaxMapCount": + suggest = "vm_max_map_count" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in OceanNpVirtualNodeGroupLinuxOsConfigSysctl. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + OceanNpVirtualNodeGroupLinuxOsConfigSysctl.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + OceanNpVirtualNodeGroupLinuxOsConfigSysctl.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + vm_max_map_count: Optional[int] = None): + if vm_max_map_count is not None: + pulumi.set(__self__, "vm_max_map_count", vm_max_map_count) + + @property + @pulumi.getter(name="vmMaxMapCount") + def vm_max_map_count(self) -> Optional[int]: + return pulumi.get(self, "vm_max_map_count") + + @pulumi.output_type class OceanNpVirtualNodeGroupTaint(dict): def __init__(__self__, *, diff --git a/upstream b/upstream index 3605f862..515b9f89 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 3605f86266e685a86e03c2c00b5b135649b855ba +Subproject commit 515b9f89237f0c548080f9963d01da1053e04f0d