diff --git a/.ci-mgmt.yaml b/.ci-mgmt.yaml
index d2eecaff..180d8fe0 100644
--- a/.ci-mgmt.yaml
+++ b/.ci-mgmt.yaml
@@ -26,10 +26,10 @@ languages:
publish:
sdk: "all,!java"
cdn: false
-#license:
-# ignore:
- # Don't check for the license of the local shim package
- #- github.com/scaleway/terraform-provider-scaleway/v2/shim
+license:
+ ignore:
+ # The following is Apache 2.0 licensed but the license file is not detected correctly
+ - github.com/cyberphone/json-canonicalization/go/src/webpki.org/jsoncanonicalizer
toolVersions:
go: "1.22.x"
pulumiConvert: 1
diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml
index ce6c5e43..040b01f7 100644
--- a/.github/workflows/license.yml
+++ b/.github/workflows/license.yml
@@ -42,6 +42,7 @@ jobs:
with:
module-path: provider
ignore-modules: >-
+ github.com/cyberphone/json-canonicalization/go/src/webpki.org/jsoncanonicalizer,
github.com/aead/chacha20,
github.com/apache/arrow/go/v12,
github.com/apache/thrift/lib/go/thrift,
diff --git a/provider/cmd/pulumi-resource-talos/bridge-metadata.json b/provider/cmd/pulumi-resource-talos/bridge-metadata.json
index 3786c62d..19008b1b 100644
--- a/provider/cmd/pulumi-resource-talos/bridge-metadata.json
+++ b/provider/cmd/pulumi-resource-talos/bridge-metadata.json
@@ -1,6 +1,12 @@
{
"auto-aliasing": {
"resources": {
+ "talos_cluster_kubeconfig": {
+ "current": "talos:cluster/kubeconfig:Kubeconfig"
+ },
+ "talos_image_factory_schematic": {
+ "current": "talos:imageFactory/schematic:Schematic"
+ },
"talos_machine_bootstrap": {
"current": "talos:machine/bootstrap:Bootstrap"
},
@@ -45,6 +51,40 @@
"talos_cluster_kubeconfig": {
"current": "talos:cluster/getKubeconfig:getKubeconfig"
},
+ "talos_image_factory_extensions_versions": {
+ "current": "talos:imageFactory/getExtensionsVersions:getExtensionsVersions",
+ "fields": {
+ "extensions_info": {
+ "maxItemsOne": false
+ },
+ "filters": {
+ "fields": {
+ "names": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ }
+ },
+ "talos_image_factory_overlays_versions": {
+ "current": "talos:imageFactory/getOverlaysVersions:getOverlaysVersions",
+ "fields": {
+ "overlays_info": {
+ "maxItemsOne": false
+ }
+ }
+ },
+ "talos_image_factory_urls": {
+ "current": "talos:imageFactory/getUrls:getUrls"
+ },
+ "talos_image_factory_versions": {
+ "current": "talos:imageFactory/getVersions:getVersions",
+ "fields": {
+ "talos_versions": {
+ "maxItemsOne": false
+ }
+ }
+ },
"talos_machine_configuration": {
"current": "talos:machine/getConfiguration:getConfiguration",
"fields": {
diff --git a/provider/cmd/pulumi-resource-talos/schema.json b/provider/cmd/pulumi-resource-talos/schema.json
index 01e2db07..b97d21aa 100644
--- a/provider/cmd/pulumi-resource-talos/schema.json
+++ b/provider/cmd/pulumi-resource-talos/schema.json
@@ -59,7 +59,14 @@
}
}
},
- "config": {},
+ "config": {
+ "variables": {
+ "imageFactoryUrl": {
+ "type": "string",
+ "description": "The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.\n"
+ }
+ }
+ },
"types": {
"talos:client/getConfigurationClientConfiguration:getConfigurationClientConfiguration": {
"properties": {
@@ -84,6 +91,74 @@
"clientKey"
]
},
+ "talos:cluster/KubeconfigClientConfiguration:KubeconfigClientConfiguration": {
+ "properties": {
+ "caCertificate": {
+ "type": "string",
+ "description": "The client CA certificate\n"
+ },
+ "clientCertificate": {
+ "type": "string",
+ "description": "The client certificate\n"
+ },
+ "clientKey": {
+ "type": "string",
+ "description": "The client key\n",
+ "secret": true
+ }
+ },
+ "type": "object",
+ "required": [
+ "caCertificate",
+ "clientCertificate",
+ "clientKey"
+ ]
+ },
+ "talos:cluster/KubeconfigKubernetesClientConfiguration:KubeconfigKubernetesClientConfiguration": {
+ "properties": {
+ "caCertificate": {
+ "type": "string",
+ "description": "The kubernetes CA certificate\n"
+ },
+ "clientCertificate": {
+ "type": "string",
+ "description": "The kubernetes client certificate\n"
+ },
+ "clientKey": {
+ "type": "string",
+ "description": "The kubernetes client key\n",
+ "secret": true
+ },
+ "host": {
+ "type": "string",
+ "description": "The kubernetes host\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "caCertificate",
+ "clientCertificate",
+ "clientKey",
+ "host"
+ ]
+ }
+ }
+ },
+ "talos:cluster/KubeconfigTimeouts:KubeconfigTimeouts": {
+ "properties": {
+ "create": {
+ "type": "string",
+ "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"
+ },
+ "update": {
+ "type": "string",
+ "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"
+ }
+ },
+ "type": "object"
+ },
"talos:cluster/getHealthClientConfiguration:getHealthClientConfiguration": {
"properties": {
"caCertificate": {
@@ -181,6 +256,163 @@
},
"type": "object"
},
+ "talos:imageFactory/getExtensionsVersionsExtensionsInfo:getExtensionsVersionsExtensionsInfo": {
+ "properties": {
+ "author": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string"
+ },
+ "digest": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "ref": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "author",
+ "description",
+ "digest",
+ "name",
+ "ref"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
+ "talos:imageFactory/getExtensionsVersionsFilters:getExtensionsVersionsFilters": {
+ "properties": {
+ "names": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The name of the extension to filter by.\n"
+ }
+ },
+ "type": "object"
+ },
+ "talos:imageFactory/getOverlaysVersionsFilters:getOverlaysVersionsFilters": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the overlay to filter by.\n"
+ }
+ },
+ "type": "object"
+ },
+ "talos:imageFactory/getOverlaysVersionsOverlaysInfo:getOverlaysVersionsOverlaysInfo": {
+ "properties": {
+ "digest": {
+ "type": "string"
+ },
+ "image": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "ref": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "digest",
+ "image",
+ "name",
+ "ref"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
+ "talos:imageFactory/getUrlsUrls:getUrlsUrls": {
+ "properties": {
+ "diskImage": {
+ "type": "string",
+ "description": "The URL for the disk image.\n"
+ },
+ "diskImageSecureboot": {
+ "type": "string",
+ "description": "The URL for the disk image with secure boot.\n"
+ },
+ "initramfs": {
+ "type": "string",
+ "description": "The URL for the initramfs image.\n"
+ },
+ "installer": {
+ "type": "string",
+ "description": "The URL for the installer image.\n"
+ },
+ "installerSecureboot": {
+ "type": "string",
+ "description": "The URL for the installer image with secure boot.\n"
+ },
+ "iso": {
+ "type": "string",
+ "description": "The URL for the ISO image.\n"
+ },
+ "isoSecureboot": {
+ "type": "string",
+ "description": "The URL for the ISO image with secure boot.\n"
+ },
+ "kernel": {
+ "type": "string",
+ "description": "The URL for the kernel image.\n"
+ },
+ "kernelCommandLine": {
+ "type": "string",
+ "description": "The URL for the kernel command line.\n"
+ },
+ "pxe": {
+ "type": "string",
+ "description": "The URL for the PXE image.\n"
+ },
+ "uki": {
+ "type": "string",
+ "description": "The URL for the UKI image.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "diskImage",
+ "diskImageSecureboot",
+ "initramfs",
+ "installer",
+ "installerSecureboot",
+ "iso",
+ "isoSecureboot",
+ "kernel",
+ "kernelCommandLine",
+ "pxe",
+ "uki"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
+ "talos:imageFactory/getVersionsFilters:getVersionsFilters": {
+ "properties": {
+ "stableVersionsOnly": {
+ "type": "boolean",
+ "description": "If set to true, only stable versions will be returned. If set to false, all versions will be returned.\n"
+ }
+ },
+ "type": "object"
+ },
"talos:machine/BootstrapClientConfiguration:BootstrapClientConfiguration": {
"properties": {
"caCertificate": {
@@ -236,6 +468,32 @@
"clientKey"
]
},
+ "talos:machine/ConfigurationApplyOnDestroy:ConfigurationApplyOnDestroy": {
+ "properties": {
+ "graceful": {
+ "type": "boolean",
+ "description": "Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true\n"
+ },
+ "reboot": {
+ "type": "boolean",
+ "description": "Reboot indicates whether node should reboot or halt after resetting. Default false\n"
+ },
+ "reset": {
+ "type": "boolean",
+ "description": "Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "graceful",
+ "reboot",
+ "reset"
+ ]
+ }
+ }
+ },
"talos:machine/SecretsClientConfiguration:SecretsClientConfiguration": {
"properties": {
"caCertificate": {
@@ -508,6 +766,10 @@
"type": "string",
"description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"
},
+ "delete": {
+ "type": "string",
+ "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n"
+ },
"update": {
"type": "string",
"description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"
@@ -1012,9 +1274,148 @@
}
},
"provider": {
- "description": "The provider type for the talos package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n"
+ "description": "The provider type for the talos package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
+ "properties": {
+ "imageFactoryUrl": {
+ "type": "string",
+ "description": "The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.\n"
+ }
+ },
+ "inputProperties": {
+ "imageFactoryUrl": {
+ "type": "string",
+ "description": "The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.\n"
+ }
+ }
},
"resources": {
+ "talos:cluster/kubeconfig:Kubeconfig": {
+ "description": "Retrieves the kubeconfig for a Talos cluster\n\n",
+ "properties": {
+ "clientConfiguration": {
+ "$ref": "#/types/talos:cluster/KubeconfigClientConfiguration:KubeconfigClientConfiguration",
+ "description": "The client configuration data\n"
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "endpoint to use for the talosclient. If not set, the node value will be used\n"
+ },
+ "kubeconfigRaw": {
+ "type": "string",
+ "description": "The raw kubeconfig\n",
+ "secret": true
+ },
+ "kubernetesClientConfiguration": {
+ "$ref": "#/types/talos:cluster/KubeconfigKubernetesClientConfiguration:KubeconfigKubernetesClientConfiguration",
+ "description": "The kubernetes client configuration\n"
+ },
+ "node": {
+ "type": "string",
+ "description": "controlplane node to retrieve the kubeconfig from\n"
+ },
+ "timeouts": {
+ "$ref": "#/types/talos:cluster/KubeconfigTimeouts:KubeconfigTimeouts"
+ }
+ },
+ "required": [
+ "clientConfiguration",
+ "endpoint",
+ "kubeconfigRaw",
+ "kubernetesClientConfiguration",
+ "node"
+ ],
+ "inputProperties": {
+ "clientConfiguration": {
+ "$ref": "#/types/talos:cluster/KubeconfigClientConfiguration:KubeconfigClientConfiguration",
+ "description": "The client configuration data\n"
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "endpoint to use for the talosclient. If not set, the node value will be used\n"
+ },
+ "node": {
+ "type": "string",
+ "description": "controlplane node to retrieve the kubeconfig from\n"
+ },
+ "timeouts": {
+ "$ref": "#/types/talos:cluster/KubeconfigTimeouts:KubeconfigTimeouts"
+ }
+ },
+ "requiredInputs": [
+ "clientConfiguration",
+ "node"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering Kubeconfig resources.\n",
+ "properties": {
+ "clientConfiguration": {
+ "$ref": "#/types/talos:cluster/KubeconfigClientConfiguration:KubeconfigClientConfiguration",
+ "description": "The client configuration data\n"
+ },
+ "endpoint": {
+ "type": "string",
+ "description": "endpoint to use for the talosclient. If not set, the node value will be used\n"
+ },
+ "kubeconfigRaw": {
+ "type": "string",
+ "description": "The raw kubeconfig\n",
+ "secret": true
+ },
+ "kubernetesClientConfiguration": {
+ "$ref": "#/types/talos:cluster/KubeconfigKubernetesClientConfiguration:KubeconfigKubernetesClientConfiguration",
+ "description": "The kubernetes client configuration\n"
+ },
+ "node": {
+ "type": "string",
+ "description": "controlplane node to retrieve the kubeconfig from\n"
+ },
+ "timeouts": {
+ "$ref": "#/types/talos:cluster/KubeconfigTimeouts:KubeconfigTimeouts"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "talos:imageFactory/schematic:Schematic": {
+ "description": "The image factory schematic resource allows you to create a schematic for a Talos image.\n\n",
+ "properties": {
+ "schematic": {
+ "type": "string",
+ "description": "The schematic yaml respresentation to generate the image.\n",
+ "language": {
+ "csharp": {
+ "name": "SchematicData"
+ }
+ }
+ }
+ },
+ "inputProperties": {
+ "schematic": {
+ "type": "string",
+ "description": "The schematic yaml respresentation to generate the image.\n",
+ "language": {
+ "csharp": {
+ "name": "SchematicData"
+ }
+ }
+ }
+ },
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering Schematic resources.\n",
+ "properties": {
+ "schematic": {
+ "type": "string",
+ "description": "The schematic yaml respresentation to generate the image.\n",
+ "language": {
+ "csharp": {
+ "name": "SchematicData"
+ }
+ }
+ }
+ },
+ "type": "object"
+ }
+ },
"talos:machine/bootstrap:Bootstrap": {
"description": "The machine bootstrap resource allows you to bootstrap a Talos node.\n\n## Import\n\nterraform\n\nmachine bootstrap can be imported to let terraform know that the machine is already bootstrapped\n\n```sh\n$ pulumi import talos:machine/bootstrap:Bootstrap this \u003cany id\u003e\n```\n\n",
"properties": {
@@ -1118,6 +1519,10 @@
"type": "string",
"description": "The name of the node to bootstrap\n"
},
+ "onDestroy": {
+ "$ref": "#/types/talos:machine/ConfigurationApplyOnDestroy:ConfigurationApplyOnDestroy",
+ "description": "Actions to be taken on destroy, if *reset* is not set this is a no-op.\n"
+ },
"timeouts": {
"$ref": "#/types/talos:machine/Timeout:Timeout"
}
@@ -1159,6 +1564,10 @@
"type": "string",
"description": "The name of the node to bootstrap\n"
},
+ "onDestroy": {
+ "$ref": "#/types/talos:machine/ConfigurationApplyOnDestroy:ConfigurationApplyOnDestroy",
+ "description": "Actions to be taken on destroy, if *reset* is not set this is a no-op.\n"
+ },
"timeouts": {
"$ref": "#/types/talos:machine/Timeout:Timeout"
}
@@ -1204,6 +1613,10 @@
"type": "string",
"description": "The name of the node to bootstrap\n"
},
+ "onDestroy": {
+ "$ref": "#/types/talos:machine/ConfigurationApplyOnDestroy:ConfigurationApplyOnDestroy",
+ "description": "Actions to be taken on destroy, if *reset* is not set this is a no-op.\n"
+ },
"timeouts": {
"$ref": "#/types/talos:machine/Timeout:Timeout"
}
@@ -1338,7 +1751,7 @@
}
},
"talos:cluster/getHealth:getHealth": {
- "description": "Checks the health of a Talos cluster\n",
+ "description": "Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.\n",
"inputs": {
"description": "A collection of arguments for invoking getHealth.\n",
"properties": {
@@ -1360,6 +1773,10 @@
},
"description": "endpoints to use for the health check client. Use at least one control plane endpoint.\n"
},
+ "skipKubernetesChecks": {
+ "type": "boolean",
+ "description": "Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.\n"
+ },
"timeouts": {
"$ref": "#/types/talos:cluster/getHealthTimeouts:getHealthTimeouts"
},
@@ -1403,6 +1820,10 @@
"description": "The ID of this resource.\n",
"type": "string"
},
+ "skipKubernetesChecks": {
+ "description": "Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.\n",
+ "type": "boolean"
+ },
"timeouts": {
"$ref": "#/types/talos:cluster/getHealthTimeouts:getHealthTimeouts"
},
@@ -1503,6 +1924,206 @@
"type": "object"
}
},
+ "talos:imageFactory/getExtensionsVersions:getExtensionsVersions": {
+ "description": "The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as talos from \"@pulumi/talos\";\n\nconst this = talos.imageFactory.getExtensionsVersions({\n talosVersion: \"v1.7.5\",\n filters: {\n names: [\n \"amdgpu\",\n \"tailscale\",\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_talos as talos\n\nthis = talos.imageFactory.get_extensions_versions(talos_version=\"v1.7.5\",\n filters={\n \"names\": [\n \"amdgpu\",\n \"tailscale\",\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Talos = Pulumi.Talos;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @this = Talos.ImageFactory.GetExtensionsVersions.Invoke(new()\n {\n TalosVersion = \"v1.7.5\",\n Filters = new Talos.ImageFactory.Inputs.GetExtensionsVersionsFiltersInputArgs\n {\n Names = new[]\n {\n \"amdgpu\",\n \"tailscale\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-talos/sdk/go/talos/imageFactory\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imageFactory.GetExtensionsVersions(ctx, \u0026imagefactory.GetExtensionsVersionsArgs{\n\t\t\tTalosVersion: \"v1.7.5\",\n\t\t\tFilters: imagefactory.GetExtensionsVersionsFilters{\n\t\t\t\tNames: []string{\n\t\t\t\t\t\"amdgpu\",\n\t\t\t\t\t\"tailscale\",\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\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.talos.imageFactory.ImageFactoryFunctions;\nimport com.pulumi.talos.imageFactory.inputs.GetExtensionsVersionsArgs;\nimport com.pulumi.talos.imageFactory.inputs.GetExtensionsVersionsFiltersArgs;\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 final var this = ImageFactoryFunctions.getExtensionsVersions(GetExtensionsVersionsArgs.builder()\n .talosVersion(\"v1.7.5\")\n .filters(GetExtensionsVersionsFiltersArgs.builder()\n .names( \n \"amdgpu\",\n \"tailscale\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n this:\n fn::invoke:\n Function: talos:imageFactory:getExtensionsVersions\n Arguments:\n talosVersion: v1.7.5\n filters:\n names:\n - amdgpu\n - tailscale\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
+ "inputs": {
+ "description": "A collection of arguments for invoking getExtensionsVersions.\n",
+ "properties": {
+ "filters": {
+ "$ref": "#/types/talos:imageFactory/getExtensionsVersionsFilters:getExtensionsVersionsFilters",
+ "description": "The filter to apply to the extensions list.\n"
+ },
+ "talosVersion": {
+ "type": "string",
+ "description": "The talos version to get extensions for.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "talosVersion"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getExtensionsVersions.\n",
+ "properties": {
+ "extensionsInfos": {
+ "description": "The list of available extensions for the specified talos version.\n",
+ "items": {
+ "$ref": "#/types/talos:imageFactory/getExtensionsVersionsExtensionsInfo:getExtensionsVersionsExtensionsInfo"
+ },
+ "type": "array"
+ },
+ "filters": {
+ "$ref": "#/types/talos:imageFactory/getExtensionsVersionsFilters:getExtensionsVersionsFilters",
+ "description": "The filter to apply to the extensions list.\n"
+ },
+ "id": {
+ "description": "The ID of this resource.\n",
+ "type": "string"
+ },
+ "talosVersion": {
+ "description": "The talos version to get extensions for.\n",
+ "type": "string"
+ }
+ },
+ "required": [
+ "extensionsInfos",
+ "id",
+ "talosVersion"
+ ],
+ "type": "object"
+ }
+ },
+ "talos:imageFactory/getOverlaysVersions:getOverlaysVersions": {
+ "description": "The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as talos from \"@pulumi/talos\";\n\nconst this = talos.imageFactory.getOverlaysVersions({\n talosVersion: \"v1.7.5\",\n filters: {\n name: \"rock4cplus\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_talos as talos\n\nthis = talos.imageFactory.get_overlays_versions(talos_version=\"v1.7.5\",\n filters={\n \"name\": \"rock4cplus\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Talos = Pulumi.Talos;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @this = Talos.ImageFactory.GetOverlaysVersions.Invoke(new()\n {\n TalosVersion = \"v1.7.5\",\n Filters = new Talos.ImageFactory.Inputs.GetOverlaysVersionsFiltersInputArgs\n {\n Name = \"rock4cplus\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-talos/sdk/go/talos/imageFactory\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imageFactory.GetOverlaysVersions(ctx, \u0026imagefactory.GetOverlaysVersionsArgs{\n\t\t\tTalosVersion: \"v1.7.5\",\n\t\t\tFilters: imagefactory.GetOverlaysVersionsFilters{\n\t\t\t\tName: pulumi.StringRef(\"rock4cplus\"),\n\t\t\t},\n\t\t}, nil)\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.talos.imageFactory.ImageFactoryFunctions;\nimport com.pulumi.talos.imageFactory.inputs.GetOverlaysVersionsArgs;\nimport com.pulumi.talos.imageFactory.inputs.GetOverlaysVersionsFiltersArgs;\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 final var this = ImageFactoryFunctions.getOverlaysVersions(GetOverlaysVersionsArgs.builder()\n .talosVersion(\"v1.7.5\")\n .filters(GetOverlaysVersionsFiltersArgs.builder()\n .name(\"rock4cplus\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n this:\n fn::invoke:\n Function: talos:imageFactory:getOverlaysVersions\n Arguments:\n talosVersion: v1.7.5\n filters:\n name: rock4cplus\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
+ "inputs": {
+ "description": "A collection of arguments for invoking getOverlaysVersions.\n",
+ "properties": {
+ "filters": {
+ "$ref": "#/types/talos:imageFactory/getOverlaysVersionsFilters:getOverlaysVersionsFilters",
+ "description": "The filter to apply to the overlays list.\n"
+ },
+ "talosVersion": {
+ "type": "string",
+ "description": "The talos version to get overlays for.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "talosVersion"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getOverlaysVersions.\n",
+ "properties": {
+ "filters": {
+ "$ref": "#/types/talos:imageFactory/getOverlaysVersionsFilters:getOverlaysVersionsFilters",
+ "description": "The filter to apply to the overlays list.\n"
+ },
+ "id": {
+ "description": "The ID of this resource.\n",
+ "type": "string"
+ },
+ "overlaysInfos": {
+ "description": "The list of available extensions for the specified talos version.\n",
+ "items": {
+ "$ref": "#/types/talos:imageFactory/getOverlaysVersionsOverlaysInfo:getOverlaysVersionsOverlaysInfo"
+ },
+ "type": "array"
+ },
+ "talosVersion": {
+ "description": "The talos version to get overlays for.\n",
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "overlaysInfos",
+ "talosVersion"
+ ],
+ "type": "object"
+ }
+ },
+ "talos:imageFactory/getUrls:getUrls": {
+ "description": "Generates URLs for different assets supported by the Talos image factory.\n\n",
+ "inputs": {
+ "description": "A collection of arguments for invoking getUrls.\n",
+ "properties": {
+ "architecture": {
+ "type": "string"
+ },
+ "platform": {
+ "type": "string"
+ },
+ "sbc": {
+ "type": "string"
+ },
+ "schematicId": {
+ "type": "string"
+ },
+ "talosVersion": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "schematicId",
+ "talosVersion"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getUrls.\n",
+ "properties": {
+ "architecture": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "platform": {
+ "type": "string"
+ },
+ "sbc": {
+ "type": "string"
+ },
+ "schematicId": {
+ "type": "string"
+ },
+ "talosVersion": {
+ "type": "string"
+ },
+ "urls": {
+ "$ref": "#/types/talos:imageFactory/getUrlsUrls:getUrlsUrls"
+ }
+ },
+ "required": [
+ "architecture",
+ "id",
+ "schematicId",
+ "talosVersion",
+ "urls"
+ ],
+ "type": "object"
+ }
+ },
+ "talos:imageFactory/getVersions:getVersions": {
+ "description": "The image factory versions data source provides a list of available talos versions from the image factory.\n\n",
+ "inputs": {
+ "description": "A collection of arguments for invoking getVersions.\n",
+ "properties": {
+ "filters": {
+ "$ref": "#/types/talos:imageFactory/getVersionsFilters:getVersionsFilters",
+ "description": "The filter to apply to the overlays list.\n"
+ }
+ },
+ "type": "object"
+ },
+ "outputs": {
+ "description": "A collection of values returned by getVersions.\n",
+ "properties": {
+ "filters": {
+ "$ref": "#/types/talos:imageFactory/getVersionsFilters:getVersionsFilters",
+ "description": "The filter to apply to the overlays list.\n"
+ },
+ "id": {
+ "description": "The ID of this resource.\n",
+ "type": "string"
+ },
+ "talosVersions": {
+ "description": "The list of available talos versions.\n",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "id",
+ "talosVersions"
+ ],
+ "type": "object"
+ }
+ },
"talos:machine/getConfiguration:getConfiguration": {
"description": "Generate a machine configuration for a node type\n\n\u003e **Note:** It is recommended to set the optional `talos_version` attribute. Otherwise when using a new version of the provider with a new major version of the Talos SDK, new machineconfig features will be enabled by default which could cause unexpected behavior.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as talos from \"@pulumi/talos\";\nimport * as talos from \"@pulumiverse/talos\";\n\nconst thisSecrets = new talos.machine.Secrets(\"this\", {});\nconst this = talos.machine.getConfigurationOutput({\n clusterName: \"example-cluster\",\n machineType: \"controlplane\",\n clusterEndpoint: \"https://cluster.local:6443\",\n machineSecrets: thisSecrets.machineSecrets,\n});\n```\n```python\nimport pulumi\nimport pulumi_talos as talos\nimport pulumiverse_talos as talos\n\nthis_secrets = talos.machine.Secrets(\"this\")\nthis = talos.machine.get_configuration_output(cluster_name=\"example-cluster\",\n machine_type=\"controlplane\",\n cluster_endpoint=\"https://cluster.local:6443\",\n machine_secrets=this_secrets.machine_secrets)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Talos = Pulumi.Talos;\nusing Talos = Pulumiverse.Talos;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var thisSecrets = new Talos.Machine.Secrets(\"this\");\n\n var @this = Talos.Machine.GetConfiguration.Invoke(new()\n {\n ClusterName = \"example-cluster\",\n MachineType = \"controlplane\",\n ClusterEndpoint = \"https://cluster.local:6443\",\n MachineSecrets = thisSecrets.MachineSecrets,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-talos/sdk/go/talos/machine\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisSecrets, err := machine.NewSecrets(ctx, \"this\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = machine.GetConfigurationOutput(ctx, machine.GetConfigurationOutputArgs{\n\t\t\tClusterName: pulumi.String(\"example-cluster\"),\n\t\t\tMachineType: pulumi.String(\"controlplane\"),\n\t\t\tClusterEndpoint: pulumi.String(\"https://cluster.local:6443\"),\n\t\t\tMachineSecrets: thisSecrets.MachineSecrets,\n\t\t}, nil)\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.talos.machine.Secrets;\nimport com.pulumi.talos.machine.MachineFunctions;\nimport com.pulumi.talos.machine.inputs.GetConfigurationArgs;\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 thisSecrets = new Secrets(\"thisSecrets\");\n\n final var this = MachineFunctions.getConfiguration(GetConfigurationArgs.builder()\n .clusterName(\"example-cluster\")\n .machineType(\"controlplane\")\n .clusterEndpoint(\"https://cluster.local:6443\")\n .machineSecrets(thisSecrets.machineSecrets())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n thisSecrets:\n type: talos:machine:Secrets\n name: this\nvariables:\n this:\n fn::invoke:\n Function: talos:machine:getConfiguration\n Arguments:\n clusterName: example-cluster\n machineType: controlplane\n clusterEndpoint: https://cluster.local:6443\n machineSecrets: ${thisSecrets.machineSecrets}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
"inputs": {
@@ -1525,11 +2146,11 @@
},
"docs": {
"type": "boolean",
- "description": "Whether to generate documentation for the generated configuration\n"
+ "description": "Whether to generate documentation for the generated configuration. Defaults to false\n"
},
"examples": {
"type": "boolean",
- "description": "Whether to generate examples for the generated configuration\n"
+ "description": "Whether to generate examples for the generated configuration. Defaults to false\n"
},
"kubernetesVersion": {
"type": "string",
@@ -1575,11 +2196,11 @@
"type": "array"
},
"docs": {
- "description": "Whether to generate documentation for the generated configuration\n",
+ "description": "Whether to generate documentation for the generated configuration. Defaults to false\n",
"type": "boolean"
},
"examples": {
- "description": "Whether to generate examples for the generated configuration\n",
+ "description": "Whether to generate examples for the generated configuration. Defaults to false\n",
"type": "boolean"
},
"id": {
diff --git a/provider/go.mod b/provider/go.mod
index 0c23547a..d5f3a7e6 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -1,6 +1,6 @@
module github.com/pulumiverse/pulumi-talos/provider
-go 1.22.2
+go 1.23.1
toolchain go1.23.2
@@ -10,32 +10,36 @@ require (
github.com/pulumi/pulumi-terraform-bridge/pf v0.47.0
github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0
github.com/pulumi/pulumi/pkg/v3 v3.137.0
- github.com/siderolabs/terraform-provider-talos v0.5.0
+ github.com/siderolabs/terraform-provider-talos v0.6.0
)
require (
- cloud.google.com/go v0.112.1 // indirect
+ cloud.google.com/go v0.115.0 // indirect
+ cloud.google.com/go/auth v0.7.3 // indirect
+ cloud.google.com/go/auth/oauth2adapt v0.2.3 // indirect
cloud.google.com/go/compute/metadata v0.5.0 // indirect
- cloud.google.com/go/iam v1.1.6 // indirect
- cloud.google.com/go/storage v1.39.1 // indirect
+ cloud.google.com/go/iam v1.1.12 // indirect
+ cloud.google.com/go/storage v1.41.0 // indirect
dario.cat/mergo v1.0.0 // indirect
- github.com/BurntSushi/toml v1.2.1 // indirect
+ github.com/BurntSushi/toml v1.3.2 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
- github.com/Masterminds/semver/v3 v3.2.0 // indirect
+ github.com/Masterminds/semver/v3 v3.2.1 // indirect
github.com/Masterminds/sprig/v3 v3.2.3 // indirect
- github.com/Microsoft/go-winio v0.6.1 // indirect
- github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect
+ github.com/Microsoft/go-winio v0.6.2 // indirect
+ github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e // indirect
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f // indirect
github.com/ProtonMail/gopenpgp/v2 v2.7.5 // indirect
- github.com/adrg/xdg v0.4.0 // indirect
+ github.com/adrg/xdg v0.5.0 // indirect
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
github.com/agext/levenshtein v1.2.3 // indirect
+ github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/apparentlymart/go-cidr v1.1.0 // indirect
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
github.com/armon/go-radix v1.0.0 // indirect
+ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
- github.com/aws/aws-sdk-go v1.50.36 // indirect
+ github.com/aws/aws-sdk-go v1.55.5 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
github.com/bgentry/speakeasy v0.1.0 // indirect
@@ -45,41 +49,69 @@ require (
github.com/charmbracelet/bubbletea v0.25.0 // indirect
github.com/charmbracelet/lipgloss v0.7.1 // indirect
github.com/cheggaaa/pb v1.0.29 // indirect
- github.com/cloudflare/circl v1.3.7 // indirect
+ github.com/cloudflare/circl v1.3.9 // indirect
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
- github.com/containerd/go-cni v1.1.9 // indirect
- github.com/containernetworking/cni v1.1.2 // indirect
- github.com/cosi-project/runtime v0.4.1 // indirect
+ github.com/containerd/go-cni v1.1.10 // indirect
+ github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
+ github.com/containernetworking/cni v1.2.3 // indirect
+ github.com/cosi-project/runtime v0.5.5 // indirect
+ github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46 // indirect
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
- github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/deckarep/golang-set/v2 v2.5.0 // indirect
+ github.com/digitorus/pkcs7 v0.0.0-20230818184609-3a137a874352 // indirect
+ github.com/digitorus/timestamp v0.0.0-20231217203849-220c5c2851b7 // indirect
+ github.com/distribution/reference v0.6.0 // indirect
github.com/djherbis/times v1.5.0 // indirect
+ github.com/docker/cli v27.1.1+incompatible // indirect
+ github.com/docker/distribution v2.8.3+incompatible // indirect
+ github.com/docker/docker-credential-helpers v0.8.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/edsrzf/mmap-go v1.1.0 // indirect
+ github.com/emicklei/go-restful/v3 v3.12.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/ettle/strcase v0.1.1 // indirect
github.com/evanphx/json-patch v5.9.0+incompatible // indirect
- github.com/fatih/color v1.16.0 // indirect
+ github.com/fatih/color v1.17.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
+ github.com/fsnotify/fsnotify v1.7.0 // indirect
+ github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/gertd/go-pluralize v0.2.1 // indirect
github.com/ghodss/yaml v1.0.0 // indirect
+ github.com/go-chi/chi v4.1.2+incompatible // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.12.0 // indirect
- github.com/go-logr/logr v1.4.1 // indirect
+ github.com/go-jose/go-jose/v4 v4.0.2 // indirect
+ github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
+ github.com/go-openapi/analysis v0.23.0 // indirect
+ github.com/go-openapi/errors v0.22.0 // indirect
+ github.com/go-openapi/jsonpointer v0.21.0 // indirect
+ github.com/go-openapi/jsonreference v0.21.0 // indirect
+ github.com/go-openapi/loads v0.22.0 // indirect
+ github.com/go-openapi/runtime v0.28.0 // indirect
+ github.com/go-openapi/spec v0.21.0 // indirect
+ github.com/go-openapi/strfmt v0.23.0 // indirect
+ github.com/go-openapi/swag v0.23.0 // indirect
+ github.com/go-openapi/validate v0.24.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/glog v1.2.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
+ github.com/golang/snappy v0.0.4 // indirect
+ github.com/google/cel-go v0.21.0 // indirect
+ github.com/google/certificate-transparency-go v1.2.1 // indirect
+ github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect
github.com/google/go-cmp v0.6.0 // indirect
+ github.com/google/go-containerregistry v0.20.2 // indirect
github.com/google/gofuzz v1.2.0 // indirect
- github.com/google/s2a-go v0.1.7 // indirect
+ github.com/google/s2a-go v0.1.8 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
- github.com/googleapis/gax-go/v2 v2.12.2 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 // indirect
+ github.com/googleapis/gax-go/v2 v2.13.0 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
@@ -90,31 +122,37 @@ require (
github.com/hashicorp/go-plugin v1.6.2 // indirect
github.com/hashicorp/go-safetemp v1.0.0 // indirect
github.com/hashicorp/go-uuid v1.0.3 // indirect
- github.com/hashicorp/go-version v1.6.0 // indirect
- github.com/hashicorp/hcl v1.0.0 // indirect
- github.com/hashicorp/hcl/v2 v2.20.0 // indirect
+ github.com/hashicorp/go-version v1.7.0 // indirect
+ github.com/hashicorp/hcl v1.0.1-vault-5 // indirect
+ github.com/hashicorp/hcl/v2 v2.21.0 // indirect
github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect
github.com/hashicorp/terraform-plugin-framework v1.13.0 // indirect
github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect
- github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect
+ github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect
github.com/hashicorp/terraform-plugin-go v0.25.0 // indirect
github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect
- github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 // indirect
+ github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 // indirect
github.com/hashicorp/terraform-registry-address v0.2.3 // indirect
github.com/hashicorp/terraform-svchost v0.1.1 // indirect
github.com/hashicorp/yamux v0.1.1 // indirect
github.com/huandu/xstrings v1.3.3 // indirect
github.com/iancoleman/strcase v0.2.0 // indirect
- github.com/imdario/mergo v0.3.15 // indirect
+ github.com/imdario/mergo v0.3.16 // indirect
+ github.com/in-toto/in-toto-golang v0.9.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
+ github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
+ github.com/josharian/intern v1.0.0 // indirect
github.com/josharian/native v1.1.0 // indirect
- github.com/jsimonetti/rtnetlink v1.4.1 // indirect
+ github.com/jsimonetti/rtnetlink/v2 v2.0.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
- github.com/klauspost/compress v1.17.7 // indirect
+ github.com/klauspost/compress v1.17.9 // indirect
+ github.com/letsencrypt/boulder v0.0.0-20240620165639-de9c06129bec // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
+ github.com/magiconair/properties v1.8.7 // indirect
+ github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-localereader v0.0.1 // indirect
@@ -138,11 +176,17 @@ require (
github.com/muesli/cancelreader v0.2.2 // indirect
github.com/muesli/reflow v0.3.0 // indirect
github.com/muesli/termenv v0.15.2 // indirect
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/natefinch/atomic v1.0.1 // indirect
+ github.com/nozzle/throttler v0.0.0-20180817012639-2ea982251481 // indirect
github.com/oklog/run v1.1.0 // indirect
+ github.com/oklog/ulid v1.3.1 // indirect
+ github.com/opencontainers/go-digest v1.0.0 // indirect
+ github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/opencontainers/runtime-spec v1.2.0 // indirect
github.com/opentracing/basictracer-go v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
+ github.com/pelletier/go-toml/v2 v2.2.3 // indirect
github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
@@ -158,75 +202,107 @@ require (
github.com/pulumi/pulumi-yaml v1.11.1 // indirect
github.com/pulumi/pulumi/sdk/v3 v3.137.0 // indirect
github.com/pulumi/schema-tools v0.1.2 // indirect
- github.com/rivo/uniseg v0.4.4 // indirect
+ github.com/rivo/uniseg v0.4.7 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/ryanuber/go-glob v1.0.0 // indirect
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
+ github.com/sagikazarmark/locafero v0.4.0 // indirect
+ github.com/sagikazarmark/slog-shim v0.1.0 // indirect
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect
+ github.com/sassoftware/relic v7.2.1+incompatible // indirect
+ github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
github.com/segmentio/asm v1.1.3 // indirect
github.com/segmentio/encoding v0.3.5 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
+ github.com/shibumi/go-pathspec v1.3.0 // indirect
github.com/shopspring/decimal v1.3.1 // indirect
github.com/siderolabs/crypto v0.4.4 // indirect
- github.com/siderolabs/gen v0.4.8 // indirect
- github.com/siderolabs/go-api-signature v0.3.2 // indirect
+ github.com/siderolabs/gen v0.5.0 // indirect
+ github.com/siderolabs/go-api-signature v0.3.6 // indirect
github.com/siderolabs/go-blockdevice v0.4.7 // indirect
+ github.com/siderolabs/go-blockdevice/v2 v2.0.2 // indirect
+ github.com/siderolabs/go-circular v0.2.0 // indirect
+ github.com/siderolabs/go-kubernetes v0.2.12 // indirect
github.com/siderolabs/go-pointer v1.0.0 // indirect
+ github.com/siderolabs/go-procfs v0.1.2 // indirect
+ github.com/siderolabs/go-retry v0.3.3 // indirect
+ github.com/siderolabs/image-factory v0.5.0 // indirect
github.com/siderolabs/net v0.4.0 // indirect
github.com/siderolabs/protoenc v0.2.1 // indirect
- github.com/siderolabs/talos/pkg/machinery v1.7.0 // indirect
+ github.com/siderolabs/talos v1.8.0 // indirect
+ github.com/siderolabs/talos/pkg/machinery v1.8.0 // indirect
+ github.com/sigstore/cosign/v2 v2.4.0 // indirect
+ github.com/sigstore/protobuf-specs v0.3.2 // indirect
+ github.com/sigstore/rekor v1.3.6 // indirect
+ github.com/sigstore/sigstore v1.8.8 // indirect
+ github.com/sigstore/timestamp-authority v1.2.2 // indirect
+ github.com/sirupsen/logrus v1.9.3 // indirect
github.com/skeema/knownhosts v1.2.2 // indirect
- github.com/spf13/afero v1.9.5 // indirect
- github.com/spf13/cast v1.5.0 // indirect
- github.com/spf13/cobra v1.8.0 // indirect
+ github.com/sourcegraph/conc v0.3.0 // indirect
+ github.com/spf13/afero v1.11.0 // indirect
+ github.com/spf13/cast v1.6.0 // indirect
+ github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
+ github.com/spf13/viper v1.19.0 // indirect
+ github.com/stoewer/go-strcase v1.3.0 // indirect
+ github.com/subosito/gotenv v1.6.0 // indirect
+ github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
github.com/teekennedy/goldmark-markdown v0.3.0 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
+ github.com/theupdateframework/go-tuf v0.7.0 // indirect
+ github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 // indirect
+ github.com/transparency-dev/merkle v0.0.2 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
- github.com/ulikunitz/xz v0.5.10 // indirect
+ github.com/ulikunitz/xz v0.5.12 // indirect
+ github.com/vbatts/tar-split v0.11.5 // indirect
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
+ github.com/x448/float16 v0.8.4 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/yuin/goldmark v1.7.4 // indirect
- github.com/zclconf/go-cty v1.14.4 // indirect
+ github.com/zclconf/go-cty v1.15.0 // indirect
+ go.mongodb.org/mongo-driver v1.14.0 // indirect
go.opencensus.io v0.24.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
- go.opentelemetry.io/otel v1.24.0 // indirect
- go.opentelemetry.io/otel/metric v1.24.0 // indirect
- go.opentelemetry.io/otel/trace v1.24.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect
+ go.opentelemetry.io/otel v1.28.0 // indirect
+ go.opentelemetry.io/otel/metric v1.28.0 // indirect
+ go.opentelemetry.io/otel/trace v1.28.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
- golang.org/x/crypto v0.26.0 // indirect
+ golang.org/x/crypto v0.27.0 // indirect
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect
- golang.org/x/mod v0.18.0 // indirect
- golang.org/x/net v0.28.0 // indirect
- golang.org/x/oauth2 v0.22.0 // indirect
+ golang.org/x/mod v0.21.0 // indirect
+ golang.org/x/net v0.29.0 // indirect
+ golang.org/x/oauth2 v0.23.0 // indirect
golang.org/x/sync v0.8.0 // indirect
- golang.org/x/sys v0.24.0 // indirect
- golang.org/x/term v0.23.0 // indirect
- golang.org/x/text v0.17.0 // indirect
- golang.org/x/time v0.5.0 // indirect
- golang.org/x/tools v0.22.0 // indirect
- google.golang.org/api v0.169.0 // indirect
- google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
+ golang.org/x/sys v0.25.0 // indirect
+ golang.org/x/term v0.24.0 // indirect
+ golang.org/x/text v0.18.0 // indirect
+ golang.org/x/time v0.6.0 // indirect
+ golang.org/x/tools v0.24.0 // indirect
+ google.golang.org/api v0.190.0 // indirect
+ google.golang.org/genproto v0.0.0-20240730163845-b1a4ccb954bf // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/grpc v1.67.1 // indirect
google.golang.org/protobuf v1.35.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
+ gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/apimachinery v0.29.3 // indirect
- k8s.io/client-go v0.29.3 // indirect
- k8s.io/klog/v2 v2.110.1 // indirect
- k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
+ k8s.io/api v0.31.1 // indirect
+ k8s.io/apimachinery v0.31.1 // indirect
+ k8s.io/client-go v0.31.1 // indirect
+ k8s.io/klog/v2 v2.130.1 // indirect
+ k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f // indirect
+ k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
lukechampine.com/frand v1.4.2 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
- sigs.k8s.io/yaml v1.3.0 // indirect
+ sigs.k8s.io/yaml v1.4.0 // indirect
)
diff --git a/provider/go.sum b/provider/go.sum
index eafb4b1f..d6945d73 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -3,7 +3,6 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
-cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
@@ -16,7 +15,6 @@ cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOY
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
-cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
@@ -32,8 +30,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9
cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc=
cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU=
cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA=
-cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM=
-cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4=
+cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14=
+cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU=
cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw=
cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY=
cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI=
@@ -48,6 +46,10 @@ cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjby
cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY=
cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw=
cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI=
+cloud.google.com/go/auth v0.7.3 h1:98Vr+5jMaCZ5NZk6e/uBgf60phTk/XN84r8QEWB9yjY=
+cloud.google.com/go/auth v0.7.3/go.mod h1:HJtWUx1P5eqjy/f6Iq5KeytNpbAcGolPhOgyop2LlzA=
+cloud.google.com/go/auth/oauth2adapt v0.2.3 h1:MlxF+Pd3OmSudg/b1yZ5lJwoXCEaeedAguodky1PcKI=
+cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX5cuhwU+ffUuXRJE8I=
cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0=
cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
@@ -109,18 +111,18 @@ cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y97
cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc=
cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY=
cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc=
-cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc=
-cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI=
-cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM=
-cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI=
+cloud.google.com/go/iam v1.1.12 h1:JixGLimRrNGcxvJEQ8+clfLxPlbeZA6MuRJ+qJNQ5Xw=
+cloud.google.com/go/iam v1.1.12/go.mod h1:9LDX8J7dN5YRyzVHxwQzrQs9opFFqn0Mxs9nAeB+Hhg=
+cloud.google.com/go/kms v1.18.4 h1:dYN3OCsQ6wJLLtOnI8DGUwQ5shMusXsWCCC+s09ATsk=
+cloud.google.com/go/kms v1.18.4/go.mod h1:SG1bgQ3UWW6/KdPo9uuJnzELXY5YTTMJtDYvajiQ22g=
cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic=
cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI=
cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8=
cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08=
-cloud.google.com/go/logging v1.9.0 h1:iEIOXFO9EmSiTjDmfpbRjOxECO7R8C7b8IXUGOj7xZw=
-cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE=
-cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg=
-cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s=
+cloud.google.com/go/logging v1.11.0 h1:v3ktVzXMV7CwHq1MBF65wcqLMA7i+z3YxbUsoK7mOKs=
+cloud.google.com/go/logging v1.11.0/go.mod h1:5LDiJC/RxTt+fHc1LAt20R9TKiUTReDg6RuuFOZ67+A=
+cloud.google.com/go/longrunning v0.5.11 h1:Havn1kGjz3whCfoD8dxMLP73Ph5w+ODyZB9RUsDxtGk=
+cloud.google.com/go/longrunning v0.5.11/go.mod h1:rDn7//lmlfWV1Dx6IB4RatCPenTwwmqXuiP0/RgoEO4=
cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4=
cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w=
cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE=
@@ -174,12 +176,11 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
-cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y=
cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc=
cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s=
-cloud.google.com/go/storage v1.39.1 h1:MvraqHKhogCOTXTlct/9C3K3+Uy2jBmFYb3/Sp6dVtY=
-cloud.google.com/go/storage v1.39.1/go.mod h1:xK6xZmxZmo+fyP7+DEF6FhNc24/JAe95OLyOHCXFH1o=
+cloud.google.com/go/storage v1.41.0 h1:RusiwatSu6lHeEXe3kglxakAmAbfV+rhtPqA6i8RBx0=
+cloud.google.com/go/storage v1.41.0/go.mod h1:J1WCa/Z2FcgdEDuPUY8DxT5I+d9mFKsCepp5vR6Sq80=
cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw=
cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g=
cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU=
@@ -191,24 +192,56 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX
cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
+cuelabs.dev/go/oci/ociregistry v0.0.0-20240404174027-a39bec0462d2 h1:BnG6pr9TTr6CYlrJznYUDj6V7xldD1W+1iXPum0wT/w=
+cuelabs.dev/go/oci/ociregistry v0.0.0-20240404174027-a39bec0462d2/go.mod h1:pK23AUVXuNzzTpfMCA06sxZGeVQ/75FdVtW249de9Uo=
+cuelang.org/go v0.9.2 h1:pfNiry2PdRBr02G/aKm5k2vhzmqbAOoaB4WurmEbWvs=
+cuelang.org/go v0.9.2/go.mod h1:qpAYsLOf7gTM1YdEg6cxh553uZ4q9ZDWlPbtZr9q1Wk=
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM=
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo=
+filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
+filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
+github.com/AdamKorcz/go-fuzz-headers-1 v0.0.0-20230919221257-8b5d3ce2d11d h1:zjqpY4C7H15HjRPEenkS4SAn3Jy2eRRjkjZbGR30TOg=
+github.com/AdamKorcz/go-fuzz-headers-1 v0.0.0-20230919221257-8b5d3ce2d11d/go.mod h1:XNqJ7hv2kY++g8XEHREpi+JqZo3+0l+CH2egBVN4yqM=
+github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper v0.2.0 h1:8+4G8JaejP8Xa6W46PzJEwisNgBXMvFcz78N6zG/ARw=
+github.com/AliyunContainerService/ack-ram-tool/pkg/credentials/alibabacloudsdkgo/helper v0.2.0/go.mod h1:GgeIE+1be8Ivm7Sh4RgwI42aTtC9qrcj+Y9Y6CjJhJs=
+github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
+github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc=
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg=
-github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 h1:jBQA3cKT4L2rWMpgE7Yt3Hwh2aUj8KXjIGLxjHeYNNo=
-github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0/go.mod h1:4OG6tQ9EOP/MT0NMjDlRzWoVFxfu9rN9B2X+tlSVktg=
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY=
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY=
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 h1:m/sWOGCREuSBqg2htVQTBY8nOZpyajYztF0vUvSZTuM=
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0/go.mod h1:Pu5Zksi2KrU7LPbZbNINx6fuVrUp/ffvpxdDj+i8LeE=
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 h1:FbH3BbSb4bvGluTesZZ+ttN/MDsnMmQP36OSnDuSXqw=
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1/go.mod h1:9V2j0jn9jDEkCkv8w/bKTNppX/d0FVA1ud77xCIP4KA=
+github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0 h1:DRiANoJTiW6obBQe3SqZizkuV1PEgfiiGivmVocDy64=
+github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.1.0/go.mod h1:qLIye2hwb/ZouqhpSD9Zn3SJipvpEnz1Ywl3VUk9Y0s=
+github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80=
+github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI=
+github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
+github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
+github.com/Azure/go-autorest/autorest v0.11.29 h1:I4+HL/JDvErx2LjyzaVxllw2lRDB5/BT2Bm4g20iqYw=
+github.com/Azure/go-autorest/autorest v0.11.29/go.mod h1:ZtEzC4Jy2JDrZLxvWs8LrBWEBycl1hbT1eknI8MtfAs=
+github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8=
+github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c=
+github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 h1:wkAZRgT/pn8HhFyzfe9UnqOjJYqlembgCTi72Bm/xKk=
+github.com/Azure/go-autorest/autorest/azure/auth v0.5.12/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg=
+github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 h1:w77/uPk80ZET2F+AfQExZyEWtn+0Rk/uw17m9fv5Ajc=
+github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0=
+github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw=
+github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74=
+github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg=
+github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
+github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
+github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU=
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=
-github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8=
+github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
@@ -217,35 +250,66 @@ github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy86
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
-github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g=
github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
+github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0=
+github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk=
github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA=
github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM=
github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY=
-github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
-github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
+github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
+github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
+github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8=
+github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
-github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg=
-github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
+github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e h1:O1cSHAcGcbGEO66Qi2AIJeYmXO8iP4L/PNrbdN+RjJA=
+github.com/ProtonMail/go-crypto v1.1.0-alpha.5.0.20240827111422-b5837fa4476e/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f h1:tCbYj7/299ekTTXpdwKYF8eBlsYsDVoggDAuAjoK66k=
github.com/ProtonMail/go-mime v0.0.0-20230322103455-7d82a3887f2f/go.mod h1:gcr0kNtGBqin9zDW9GOHcVntrwnjrK+qdJ06mWYBybw=
github.com/ProtonMail/gopenpgp/v2 v2.7.5 h1:STOY3vgES59gNgoOt2w0nyHBjKViB/qSg7NjbQWPJkA=
github.com/ProtonMail/gopenpgp/v2 v2.7.5/go.mod h1:IhkNEDaxec6NyzSI0PlxapinnwPVIESk8/76da3Ct3g=
-github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls=
-github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E=
+github.com/ThalesIgnite/crypto11 v1.2.5 h1:1IiIIEqYmBvUYFeMnHqRft4bwf/O36jryEUpY+9ef8E=
+github.com/ThalesIgnite/crypto11 v1.2.5/go.mod h1:ILDKtnCKiQ7zRoNxcp36Y1ZR8LBPmR2E23+wTQe/MlE=
+github.com/adrg/xdg v0.5.0 h1:dDaZvhMXatArP1NPHhnfaQUqWBLBsmx1h1HXQdMoFCY=
+github.com/adrg/xdg v0.5.0/go.mod h1:dDdY4M4DF9Rjy4kHPeNL+ilVF+p2lK8IdM9/rTSGcI4=
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY=
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA=
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
+github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8=
+github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo=
+github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0=
+github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30=
+github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4 h1:iC9YFYKDGEy3n/FtqJnOkZsene9olVspKmkX5A2YBEo=
+github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc=
+github.com/alibabacloud-go/cr-20160607 v1.0.1 h1:WEnP1iPFKJU74ryUKh/YDPHoxMZawqlPajOymyNAkts=
+github.com/alibabacloud-go/cr-20160607 v1.0.1/go.mod h1:QHeKZtZ3F3FOE+/uIXCBAp8POwnUYekpLwr1dtQa5r0=
+github.com/alibabacloud-go/cr-20181201 v1.0.10 h1:B60f6S1imsgn2fgC6X6FrVNrONDrbCT0NwYhsJ0C9/c=
+github.com/alibabacloud-go/cr-20181201 v1.0.10/go.mod h1:VN9orB/w5G20FjytoSpZROqu9ZqxwycASmGqYUJSoDc=
+github.com/alibabacloud-go/darabonba-openapi v0.2.1 h1:WyzxxKvhdVDlwpAMOHgAiCJ+NXa6g5ZWPFEzaK/ewwY=
+github.com/alibabacloud-go/darabonba-openapi v0.2.1/go.mod h1:zXOqLbpIqq543oioL9IuuZYOQgHQ5B8/n5OPrnko8aY=
+github.com/alibabacloud-go/debug v1.0.0 h1:3eIEQWfay1fB24PQIEzXAswlVJtdQok8f3EVN5VrBnA=
+github.com/alibabacloud-go/debug v1.0.0/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
+github.com/alibabacloud-go/endpoint-util v1.1.1 h1:ZkBv2/jnghxtU0p+upSU0GGzW1VL9GQdZO3mcSUTUy8=
+github.com/alibabacloud-go/endpoint-util v1.1.1/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
+github.com/alibabacloud-go/openapi-util v0.1.0 h1:0z75cIULkDrdEhkLWgi9tnLe+KhAFE/r5Pb3312/eAY=
+github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
+github.com/alibabacloud-go/tea v1.2.1 h1:rFF1LnrAdhaiPmKwH5xwYOKlMh66CqRwPUTzIK74ask=
+github.com/alibabacloud-go/tea v1.2.1/go.mod h1:qbzof29bM/IFhLMtJPrgTGK3eauV5J2wSyEUo4OEmnA=
+github.com/alibabacloud-go/tea-utils v1.4.5 h1:h0/6Xd2f3bPE4XHTvkpjwxowIwRCJAJOqY6Eq8f3zfA=
+github.com/alibabacloud-go/tea-utils v1.4.5/go.mod h1:KNcT0oXlZZxOXINnZBs6YvgOd5aYp9U67G+E3R8fcQw=
+github.com/alibabacloud-go/tea-xml v1.1.3 h1:7LYnm+JbOq2B+T/B0fHC4Ies4/FofC4zHzYtqw7dgt0=
+github.com/alibabacloud-go/tea-xml v1.1.3/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
+github.com/aliyun/credentials-go v1.3.1 h1:uq/0v7kWrxmoLGpqjx7vtQ/s03f0zR//0br/xWDTE28=
+github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTsBEN04dgcAcYz0=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
+github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
+github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU=
github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc=
-github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0 h1:MzVXffFUye+ZcSR6opIgz9Co7WcDx6ZcY+RjfFHoA0I=
-github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=
github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec=
github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
@@ -254,41 +318,51 @@ github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
+github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
+github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
-github.com/aws/aws-sdk-go v1.50.36 h1:PjWXHwZPuTLMR1NIb8nEjLucZBMzmf84TLoLbD8BZqk=
-github.com/aws/aws-sdk-go v1.50.36/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
-github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA=
-github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
-github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA=
-github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs=
-github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
-github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk=
-github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 h1:SBn4I0fJXF9FYOVRSVMWuhvEKoAHDikjGpS3wlmw5DE=
-github.com/aws/aws-sdk-go-v2/service/kms v1.30.1/go.mod h1:2snWQJQUKsbN66vAawJuOGX7dr37pfOq9hb0tZDGIqQ=
-github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w=
-github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak=
-github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU=
-github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw=
-github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
-github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
+github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU=
+github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
+github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g=
+github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0=
+github.com/aws/aws-sdk-go-v2/config v1.27.33 h1:Nof9o/MsmH4oa0s2q9a0k7tMz5x/Yj5k06lDODWz3BU=
+github.com/aws/aws-sdk-go-v2/config v1.27.33/go.mod h1:kEqdYzRb8dd8Sy2pOdEbExTTF5v7ozEXX0McgPE7xks=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.32 h1:7Cxhp/BnT2RcGy4VisJ9miUPecY+lyE9I8JvcZofn9I=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.32/go.mod h1:P5/QMF3/DCHbXGEGkdbilXHsyTBX5D3HSwcrSc9p20I=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0GH87JOwSxPV2rzm8Zsb74=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
+github.com/aws/aws-sdk-go-v2/service/ecr v1.20.2 h1:y6LX9GUoEA3mO0qpFl1ZQHj1rFyPWVphlzebiSt2tKE=
+github.com/aws/aws-sdk-go-v2/service/ecr v1.20.2/go.mod h1:Q0LcmaN/Qr8+4aSBrdrXXePqoX0eOuYpJLbYpilmWnA=
+github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.18.2 h1:PpbXaecV3sLAS6rjQiaKw4/jyq3Z8gNzmoJupHAoBp0=
+github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.18.2/go.mod h1:fUHpGXr4DrXkEDpGAjClPsviWf+Bszeb0daKE0blxv8=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE=
+github.com/aws/aws-sdk-go-v2/service/kms v1.35.7 h1:v0D1LeMkA/X+JHAZWERrr+sUGOt8KrCZKnJA6KszkcE=
+github.com/aws/aws-sdk-go-v2/service/kms v1.35.7/go.mod h1:K9lwD0Rsx9+NSaJKsdAdlDK4b2G4KKOEve9PzHxPoMI=
+github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 h1:pIaGg+08llrP7Q5aiz9ICWbY8cqhTkyy+0SHvfzQpTc=
+github.com/aws/aws-sdk-go-v2/service/sso v1.22.7/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7 h1:/Cfdu0XV3mONYKaOt1Gr0k1KvQzkzPyiKUdlWJqy+J4=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.7/go.mod h1:bCbAxKDqNvkHxRaIMnyVPXPo+OaPRwvmgzMxbz1VKSA=
+github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 h1:NKTa1eqZYw8tiHSRGpP0VtTdub/8KNk8sDkNPFaOKDE=
+github.com/aws/aws-sdk-go-v2/service/sts v1.30.7/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o=
+github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4=
+github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
+github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20231024185945-8841054dbdb8 h1:SoFYaT9UyGkR0+nogNyD/Lj+bsixB+SNuAS4ABlEs6M=
+github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20231024185945-8841054dbdb8/go.mod h1:2JF49jcDOrLStIXN/j/K1EKRq8a8R2qRnlZA6/o/c7c=
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
+github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas=
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4=
github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=
@@ -299,14 +373,25 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
github.com/brianvoe/gofakeit/v6 v6.24.0 h1:74yq7RRz/noddscZHRS2T84oHZisW9muwbb8sRnU52A=
github.com/brianvoe/gofakeit/v6 v6.24.0/go.mod h1:Ow6qC71xtwm79anlwKRlWZW6zVq9D2XHE4QSSMP/rU8=
-github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA=
-github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8=
+github.com/bufbuild/protocompile v0.10.0 h1:+jW/wnLMLxaCEG8AX9lD0bQ5v9h1RUiMKOBOT5ll9dM=
+github.com/bufbuild/protocompile v0.10.0/go.mod h1:G9qQIQo0xZ6Uyj6CMNz0saGmx2so+KONo8/KrELABiY=
+github.com/buildkite/agent/v3 v3.76.2 h1:SweFq3e0N20RikWsVeOXzTjfr0AoOskxm9c0bcNyI0E=
+github.com/buildkite/agent/v3 v3.76.2/go.mod h1:9ffbmJD7d7C/nOcElj6Qm+uIj1QoYh3NNvka4rkKkss=
+github.com/buildkite/go-pipeline v0.10.0 h1:EDffu+LfMY2k5u+iEdo6Jn3obGKsrL5wicc1O/yFeRs=
+github.com/buildkite/go-pipeline v0.10.0/go.mod h1:eMH1kiav5VeiTiu0Mk2/M7nZhKyFeL4iGj7Y7rj4f3w=
+github.com/buildkite/interpolate v0.1.3 h1:OFEhqji1rNTRg0u9DsSodg63sjJQEb1uWbENq9fUOBM=
+github.com/buildkite/interpolate v0.1.3/go.mod h1:UNVe6A+UfiBNKbhAySrBbZFZFxQ+DXr9nWen6WVt/A8=
+github.com/buildkite/roko v1.2.0 h1:hbNURz//dQqNl6Eo9awjQOVOZwSDJ8VEbBDxSfT9rGQ=
+github.com/buildkite/roko v1.2.0/go.mod h1:23R9e6nHxgedznkwwfmqZ6+0VJZJZ2Sg/uVcp2cP46I=
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M=
github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charmbracelet/bubbles v0.16.1 h1:6uzpAAaT9ZqKssntbvZMlksWHruQLNxg49H5WdeuYSY=
github.com/charmbracelet/bubbles v0.16.1/go.mod h1:2QCp9LFlEsBQMvIYERr7Ww2H2bA7xen1idUDIzm/+Xc=
github.com/charmbracelet/bubbletea v0.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM=
@@ -316,15 +401,19 @@ github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNW
github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s=
github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo=
github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30=
+github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 h1:krfRl01rzPzxSxyLyrChD+U+MzsBXbm0OwYYB67uF+4=
+github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589/go.mod h1:OuDyvmLnMCwa2ep4Jkm6nyA0ocJuZlGyk2gGseVzERM=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/cilium/ebpf v0.12.3 h1:8ht6F9MquybnY97at+VDZb3eQQr8ev79RueWeVaEcG4=
github.com/cilium/ebpf v0.12.3/go.mod h1:TctK1ivibvI3znr66ljgi4hqOT8EYQjz1KWBfb1UVgM=
+github.com/clbanning/mxj/v2 v2.7.0 h1:WA/La7UGCanFe5NpHF0Q3DNtnCsVoxbPKuyBNHWRyME=
+github.com/clbanning/mxj/v2 v2.7.0/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
-github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
-github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
+github.com/cloudflare/circl v1.3.9 h1:QFrlgFYf2Qpi8bSpVPK1HBvWpx16v/1TZivyo7pGuBE=
+github.com/cloudflare/circl v1.3.9/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -334,32 +423,64 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEaIwg=
+github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc=
+github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE=
+github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4=
+github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be h1:J5BL2kskAlV9ckgEsNQXscjIaLiOYiZ75d4e94E6dcQ=
+github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be/go.mod h1:mk5IQ+Y0ZeO87b858TlA645sVcEcbiX6YqP98kt+7+w=
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
-github.com/containerd/go-cni v1.1.9 h1:ORi7P1dYzCwVM6XPN4n3CbkuOx/NZ2DOqy+SHRdo9rU=
-github.com/containerd/go-cni v1.1.9/go.mod h1:XYrZJ1d5W6E2VOvjffL3IZq0Dz6bsVlERHbekNK90PM=
-github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ=
-github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw=
-github.com/cosi-project/runtime v0.4.1 h1:9lJWw5cl3Lz1qP32bl2vxAsJs6LM8KdUGLCc9t/EGqw=
-github.com/cosi-project/runtime v0.4.1/go.mod h1:eXVAHf9QzzSVblLUtHHPFOZ7JBuz+GypHbao1vw+SdQ=
-github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/containerd/go-cni v1.1.10 h1:c2U73nld7spSWfiJwSh/8W9DK+/qQwYM2rngIhCyhyg=
+github.com/containerd/go-cni v1.1.10/go.mod h1:/Y/sL8yqYQn1ZG1om1OncJB1W4zN3YmjfP/ShCzG/OY=
+github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k=
+github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o=
+github.com/containernetworking/cni v1.2.3 h1:hhOcjNVUQTnzdRJ6alC5XF+wd9mfGIUaj8FuJbEslXM=
+github.com/containernetworking/cni v1.2.3/go.mod h1:DuLgF+aPd3DzcTQTtp/Nvl1Kim23oFKdm2okJzBQA5M=
+github.com/coreos/go-oidc/v3 v3.11.0 h1:Ia3MxdwpSw702YW0xgfmP1GVCMA9aEFWu12XUZ3/OtI=
+github.com/coreos/go-oidc/v3 v3.11.0/go.mod h1:gE3LgjOgFoHi9a4ce4/tJczr0Ai2/BoDhf0r5lltWI0=
+github.com/cosi-project/runtime v0.5.5 h1:GFoHnngpg4QVZluAUDwUbCe/sYOYBXKULxL/6DD99pU=
+github.com/cosi-project/runtime v0.5.5/go.mod h1:m+bkfUzKYeUyoqYAQBxdce3bfgncG8BsqcbfKRbvJKs=
+github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46 h1:2Dx4IHfC1yHWI12AxQDJM1QbRCDfk6M+blLzlZCXdrc=
+github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46/go.mod h1:uzvlm1mxhHkdfqitSA92i7Se+S9ksOn3a3qmv/kyOCw=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
+github.com/danieljoos/wincred v1.2.0 h1:ozqKHaLK0W/ii4KVbbvluM91W2H3Sh0BncbUNPS7jLE=
+github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/deckarep/golang-set/v2 v2.5.0 h1:hn6cEZtQ0h3J8kFrHR/NrzyOoTnjgW1+FmNJzQ7y/sA=
github.com/deckarep/golang-set/v2 v2.5.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
+github.com/digitorus/pkcs7 v0.0.0-20230713084857-e76b763bdc49/go.mod h1:SKVExuS+vpu2l9IoOc0RwqE7NYnb0JlcFHFnEJkVDzc=
+github.com/digitorus/pkcs7 v0.0.0-20230818184609-3a137a874352 h1:ge14PCmCvPjpMQMIAH7uKg0lrtNSOdpYsRXlwk3QbaE=
+github.com/digitorus/pkcs7 v0.0.0-20230818184609-3a137a874352/go.mod h1:SKVExuS+vpu2l9IoOc0RwqE7NYnb0JlcFHFnEJkVDzc=
+github.com/digitorus/timestamp v0.0.0-20231217203849-220c5c2851b7 h1:lxmTCgmHE1GUYL7P0MlNa00M67axePTq+9nBSGddR8I=
+github.com/digitorus/timestamp v0.0.0-20231217203849-220c5c2851b7/go.mod h1:GvWntX9qiTlOud0WkQ6ewFm0LPy5JUR1Xo0Ngbd1w6Y=
+github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U=
+github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE=
+github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
+github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU=
github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0=
+github.com/docker/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE=
+github.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
+github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
+github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8=
+github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q=
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
-github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
-github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk=
+github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/emicklei/proto v1.12.1 h1:6n/Z2pZAnBwuhU66Gs8160B8rrrYKo7h2F2sCOnNceE=
+github.com/emicklei/proto v1.12.1/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -379,20 +500,27 @@ github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLi
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
-github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
-github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
+github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
+github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
-github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
-github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
+github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
+github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
+github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
+github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/gertd/go-pluralize v0.2.1 h1:M3uASbVjMnTsPb0PNqg+E/24Vwigyo/tvyMTtAlLgiA=
github.com/gertd/go-pluralize v0.2.1/go.mod h1:rbYaKDbsXxmRfr8uygAEKhOWsjyrrqrkHVpZvoOp8zk=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE=
github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8=
+github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec=
+github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
@@ -404,30 +532,56 @@ github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXY
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
+github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k=
github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ=
+github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk=
+github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
-github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
-github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
-github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
-github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
-github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
-github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
-github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU=
+github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo=
+github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w=
+github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE=
+github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
+github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
+github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
+github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
+github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco=
+github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs=
+github.com/go-openapi/runtime v0.28.0 h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ=
+github.com/go-openapi/runtime v0.28.0/go.mod h1:QN7OzcS+XuYmkQLw05akXk0jRH/eZ3kb18+1KwW9gyc=
+github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY=
+github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk=
+github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c=
+github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4=
+github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
+github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
+github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58=
+github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ=
+github.com/go-piv/piv-go v1.11.0 h1:5vAaCdRTFSIW4PeqMbnsDlUZ7odMYWnHBDGdmtU/Zhg=
+github.com/go-piv/piv-go v1.11.0/go.mod h1:NZ2zmjVkfFaL/CF8cVQ/pXdXtuj110zEKGdJM6fJZZM=
+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
-github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
-github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
-github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
-github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
+github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
+github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
+github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U=
+github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=
+github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
+github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
+github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
+github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofrs/uuid v4.2.0+incompatible h1:yyYWMnhkhrKwwr8gAOcOCYxOOscHgDS9yZgBrnJfGa0=
github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
+github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
@@ -468,10 +622,16 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
+github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
-github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
+github.com/google/cel-go v0.21.0 h1:cl6uW/gxN+Hy50tNYvI691+sXxioCnstFzLp2WO4GCI=
+github.com/google/cel-go v0.21.0/go.mod h1:rHUlWCcBKgyEk+eV03RPdZUekPp6YcJwV0FxuUksYxc=
+github.com/google/certificate-transparency-go v1.2.1 h1:4iW/NwzqOqYEEoCBEFP+jPbBXbLqMpq3CifMyOnDUME=
+github.com/google/certificate-transparency-go v1.2.1/go.mod h1:bvn/ytAccv+I6+DGkqpvSsEdiVGramgaSC6RD3tEmeE=
+github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU=
+github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -489,6 +649,10 @@ github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-containerregistry v0.20.2 h1:B1wPJ1SN/S7pB+ZAimcciVD+r+yV/l/DSArMxlbwseo=
+github.com/google/go-containerregistry v0.20.2/go.mod h1:z38EKdKh4h7IP2gSfUUqEvalZBqs6AoLeWfUy34nQC8=
+github.com/google/go-github/v55 v55.0.0 h1:4pp/1tNMB9X/LuAhs5i0KQAE40NmiR/y6prLNb9x9cg=
+github.com/google/go-github/v55 v55.0.0/go.mod h1:JLahOTA1DnXzhxEymmFF5PP2tSS9JVNj68mSZNDwskA=
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -499,8 +663,8 @@ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXi
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
-github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw=
-github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
+github.com/google/martian/v3 v3.3.3 h1:DIhPTQrbPkgs2yJYdXU/eNACCG5DVQjySNRNlflZ9Fc=
+github.com/google/martian/v3 v3.3.3/go.mod h1:iEPrYcgCF7jA9OtScMFQyAlZZ4YXTKEtJ1E6RWzmBA0=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
@@ -510,20 +674,23 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f h1:f00RU+zOX+B3rLAmMMkzHUF2h1z4DeYR9tTCvEq2REY=
-github.com/google/pprof v0.0.0-20240402174815-29b9bb013b0f/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
+github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM=
+github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
-github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
+github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM=
+github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
+github.com/google/tink/go v1.7.0 h1:6Eox8zONGebBFcCBqkVmt60LaWZa6xg1cl/DwAh/J1w=
+github.com/google/tink/go v1.7.0/go.mod h1:GAUOd+QE3pgj9q8VKIGTCP33c/B7eb4NhxLcgTJZStM=
+github.com/google/trillian v1.6.0 h1:jMBeDBIkINFvS2n6oV5maDqfRlxREAc6CW9QYWQ0qT4=
+github.com/google/trillian v1.6.0/go.mod h1:Yu3nIMITzNhhMJEHjAtp6xKiu+H/iHu2Oq5FjV2mCWI=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -545,15 +712,14 @@ github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99
github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c=
github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo=
github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY=
-github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA=
-github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc=
+github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s=
+github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A=
github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4=
-github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
-github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
+github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
+github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1 h1:/c3QmbOGMGTOumP2iT/rCwB7b0QDGLKzqOmktBjT+Is=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1/go.mod h1:5SN9VR2LTsRFsrEC6FHgRbTWrTHu6tqPeKxEQv15giM=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -588,44 +754,45 @@ github.com/hashicorp/go-sockaddr v1.0.6 h1:RSG8rKU28VTUTvEKghe5gIhIQpv8evvNpnDEy
github.com/hashicorp/go-sockaddr v1.0.6/go.mod h1:uoUUmtwU7n9Dv3O4SNLeFvg0SxQ3lyjsj6+CCykpaxI=
github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8=
github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=
github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
+github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=
+github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/hc-install v0.6.4 h1:QLqlM56/+SIIGvGcfFiwMY3z5WGXT066suo/v9Km8e0=
-github.com/hashicorp/hc-install v0.6.4/go.mod h1:05LWLy8TD842OtgcfBbOT0WMoInBMUSHjmDx10zuBIA=
-github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
-github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hashicorp/hcl/v2 v2.20.0 h1:l++cRs/5jQOiKVvqXZm/P1ZEfVXJmvLS9WSVxkaeTb4=
-github.com/hashicorp/hcl/v2 v2.20.0/go.mod h1:WmcD/Ym72MDOOx5F62Ly+leloeu6H7m0pG7VBiU6pQk=
+github.com/hashicorp/hc-install v0.8.0 h1:LdpZeXkZYMQhoKPCecJHlKvUkQFixN/nvyR1CdfOLjI=
+github.com/hashicorp/hc-install v0.8.0/go.mod h1:+MwJYjDfCruSD/udvBmRB22Nlkwwkwf5sAB6uTIhSaU=
+github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM=
+github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM=
+github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14=
+github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+XK3tAql24P4uTGUMIn1/92WsQQ=
github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=
github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
-github.com/hashicorp/terraform-exec v0.20.0 h1:DIZnPsqzPGuUnq6cH8jWcPunBfY+C+M8JyYF3vpnuEo=
-github.com/hashicorp/terraform-exec v0.20.0/go.mod h1:ckKGkJWbsNqFKV1itgMnE0hY9IYf1HoiekpuN0eWoDw=
-github.com/hashicorp/terraform-json v0.21.0 h1:9NQxbLNqPbEMze+S6+YluEdXgJmhQykRyRNd+zTI05U=
-github.com/hashicorp/terraform-json v0.21.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk=
+github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVWkd/RG0D2XQ=
+github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg=
+github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec=
+github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A=
github.com/hashicorp/terraform-plugin-framework v1.13.0 h1:8OTG4+oZUfKgnfTdPTJwZ532Bh2BobF4H+yBiYJ/scw=
github.com/hashicorp/terraform-plugin-framework v1.13.0/go.mod h1:j64rwMGpgM3NYXTKuxrCnyubQb/4VKldEKlcG8cvmjU=
github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaKFhm4h2TgvMUlNzFAtUqlcOWnWPm+9E=
github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1/go.mod h1:MsjL1sQ9L7wGwzJ5RjcI6FzEMdyoBnw+XK8ZnOvQOLY=
-github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc=
-github.com/hashicorp/terraform-plugin-framework-validators v0.12.0/go.mod h1:jfHGE/gzjxYz6XoUwi/aYiiKrJDeutQNUtGQXkaHklg=
+github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E=
+github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo=
github.com/hashicorp/terraform-plugin-go v0.25.0 h1:oi13cx7xXA6QciMcpcFi/rwA974rdTxjqEhXJjbAyks=
github.com/hashicorp/terraform-plugin-go v0.25.0/go.mod h1:+SYagMYadJP86Kvn+TGeV+ofr/R3g4/If0O5sO96MVw=
github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0=
github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow=
github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0=
github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY=
-github.com/hashicorp/terraform-plugin-testing v1.7.0 h1:I6aeCyZ30z4NiI3tzyDoO6fS7YxP5xSL1ceOon3gTe8=
-github.com/hashicorp/terraform-plugin-testing v1.7.0/go.mod h1:sbAreCleJNOCz+y5vVHV8EJkIWZKi/t4ndKiUjM9vao=
+github.com/hashicorp/terraform-plugin-testing v1.10.0 h1:2+tmRNhvnfE4Bs8rB6v58S/VpqzGC6RCh9Y8ujdn+aw=
+github.com/hashicorp/terraform-plugin-testing v1.10.0/go.mod h1:iWRW3+loP33WMch2P/TEyCxxct/ZEcCGMquSLSCVsrc=
github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI=
github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM=
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=
github.com/hashicorp/terraform-svchost v0.1.1/go.mod h1:mNsjQfZyf/Jhz35v6/0LWcv26+X7JPS+buii2c9/ctc=
-github.com/hashicorp/vault/api v1.12.0 h1:meCpJSesvzQyao8FCOgk2fGdoADAnbDu2WPJN1lDLJ4=
-github.com/hashicorp/vault/api v1.12.0/go.mod h1:si+lJCYO7oGkIoNPAN8j3azBLTn9SjMGS+jFaHd1Cck=
+github.com/hashicorp/vault/api v1.14.0 h1:Ah3CFLixD5jmjusOgm8grfN9M0d+Y8fVR2SW0K6pJLU=
+github.com/hashicorp/vault/api v1.14.0/go.mod h1:pV9YLxBGSz+cItFDd8Ii4G17waWOQ32zVjMWHe/cOqk=
github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
github.com/hexops/autogold v1.3.0 h1:IEtGNPxBeBu8RMn8eKWh/Ll9dVNgSnJ7bp/qHgMQ14o=
@@ -636,6 +803,8 @@ github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUq
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
github.com/hexops/valast v1.4.4 h1:rETyycw+/L2ZVJHHNxEBgh8KUn+87WugH9MxcEv9PGs=
github.com/hexops/valast v1.4.4/go.mod h1:Jcy1pNH7LNraVaAZDLyv21hHg2WBv9Nf9FL6fGxU7o4=
+github.com/howeyc/gopass v0.0.0-20210920133722-c8aef6fb66ef h1:A9HsByNhogrvm9cWb28sjiS3i7tcKCkflWFEkHfuAgM=
+github.com/howeyc/gopass v0.0.0-20210920133722-c8aef6fb66ef/go.mod h1:lADxMC39cJJqL93Duh1xhAs4I2Zs8mKS89XWXFGp9cs=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
@@ -646,24 +815,32 @@ github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
-github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM=
-github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
+github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
+github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
+github.com/in-toto/in-toto-golang v0.9.0 h1:tHny7ac4KgtsfrG6ybU8gVOZux2H8jN05AXJ9EBM1XU=
+github.com/in-toto/in-toto-golang v0.9.0/go.mod h1:xsBVrVsHNsB61++S6Dy2vWosKhuA3lUTQd+eF9HdeMo=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
-github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c=
-github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo=
+github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267 h1:TMtDYDHKYY15rFihtRfck/bfFqNfvcabqvXAFQfAUpY=
+github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267/go.mod h1:h1nSAbGFqGVzn6Jyl1R/iCcBUHN4g+gW1u9CoBTrb9E=
+github.com/jellydator/ttlcache/v3 v3.2.0 h1:6lqVJ8X3ZaUwvzENqPAobDsXNExfUJd61u++uW8a3LE=
+github.com/jellydator/ttlcache/v3 v3.2.0/go.mod h1:hi7MGFdMAwZna5n2tuvh63DvFLzVKySzCVW6+0gA2n4=
+github.com/jhump/protoreflect v1.16.0 h1:54fZg+49widqXYQ0b+usAFHbMkBGR4PpXrsHc8+TBDg=
+github.com/jhump/protoreflect v1.16.0/go.mod h1:oYPd7nPvcBw/5wlDfm/AVmU9zH9BgqGCI469pGxfj/8=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+github.com/jmhodges/clock v1.2.0 h1:eq4kys+NI0PLngzaHEe7AmPT90XMGIEySD1JfV1PDIs=
+github.com/jmhodges/clock v1.2.0/go.mod h1:qKjhA7x7u/lQpPB1XAqX1b1lCI/w3/fNuYpI/ZjLynI=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA=
github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
-github.com/jsimonetti/rtnetlink v1.4.1 h1:JfD4jthWBqZMEffc5RjgmlzpYttAVw1sdnmiNaPO3hE=
-github.com/jsimonetti/rtnetlink v1.4.1/go.mod h1:xJjT7t59UIZ62GLZbv6PLLo8VFrostJMPBAheR6OM8w=
+github.com/jsimonetti/rtnetlink/v2 v2.0.2 h1:ZKlbCujrIpp4/u3V2Ka0oxlf4BCkt6ojkvpy3nZoCBY=
+github.com/jsimonetti/rtnetlink/v2 v2.0.2/go.mod h1:7MoNYNbb3UaDHtF8udiJo/RH6VsTKP1pqKLUTVCvToE=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
@@ -674,9 +851,8 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
-github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg=
-github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
-github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
+github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
+github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -686,8 +862,12 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
+github.com/letsencrypt/boulder v0.0.0-20240620165639-de9c06129bec h1:2tTW6cDth2TSgRbAhD7yjZzTQmcN25sDRPEeinR51yQ=
+github.com/letsencrypt/boulder v0.0.0-20240620165639-de9c06129bec/go.mod h1:TmwEoGCwIti7BCeJ9hescZgRtatxRE+A72pCoPfmcfk=
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
+github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
+github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
@@ -719,6 +899,8 @@ github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/
github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw=
github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos=
github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ=
+github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU=
+github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs=
github.com/mitchellh/cli v1.1.5 h1:OxRIeJXpAMztws/XHlN2vu6imG5Dpq+j61AzAX5fLng=
github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4=
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
@@ -745,6 +927,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+github.com/mozillazg/docker-credential-acr-helper v0.3.0 h1:DVWFZ3/O8BP6Ue3iS/Olw+G07u1hCq1EOVCDZZjCIBI=
+github.com/mozillazg/docker-credential-acr-helper v0.3.0/go.mod h1:cZlu3tof523ujmLuiNUb6JsjtHcNA70u1jitrrdnuyA=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo=
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
@@ -759,22 +943,38 @@ github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0
github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM=
github.com/nightlyone/lockfile v1.0.0 h1:RHep2cFKK4PonZJDdEl4GmkabuhbsRMgk/k3uAmxBiA=
github.com/nightlyone/lockfile v1.0.0/go.mod h1:rywoIealpdNse2r832aiD9jRk8ErCatROs6LzC841CI=
+github.com/nozzle/throttler v0.0.0-20180817012639-2ea982251481 h1:Up6+btDp321ZG5/zdSLo48H9Iaq0UQGthrhWC6pCxzE=
+github.com/nozzle/throttler v0.0.0-20180817012639-2ea982251481/go.mod h1:yKZQO8QE2bHlgozqWDiRVqTFlLQSj30K/6SAK8EeYFw=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
+github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY=
+github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc=
github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
+github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
+github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
+github.com/oleiade/reflections v1.0.1 h1:D1XO3LVEYroYskEsoSiGItp9RUxG6jWnCVvrqH0HHQM=
+github.com/oleiade/reflections v1.0.1/go.mod h1:rdFxbxq4QXVZWj0F+e9jqjDkc7dbp97vkRixKo2JR60=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
+github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
+github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
-github.com/onsi/ginkgo/v2 v2.17.1 h1:V++EzdbhI4ZV4ev0UTIj0PzhzOcReJFyJaLjtSF55M8=
-github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs=
+github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
+github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
-github.com/onsi/gomega v1.32.0 h1:JRYU78fJ1LPxlckP6Txi/EYqJvjtMrDC04/MM5XRHPk=
-github.com/onsi/gomega v1.32.0/go.mod h1:a4x4gW6Pz2yK1MAmvluYme5lvYTn61afQ2ETw/8n4Lg=
+github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
+github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
+github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
+github.com/open-policy-agent/opa v0.67.0 h1:FOdsO9yNhfmrh+72oVK7ImWmzruG+VSpfbr5IBqEWVs=
+github.com/open-policy-agent/opa v0.67.0/go.mod h1:aqKlHc8E2VAAylYE9x09zJYr/fYzGX+JKne89UGqFzk=
+github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
+github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
+github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
+github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk=
github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/opentracing/basictracer-go v1.1.0 h1:Oa1fTSBvAl8pa3U+IJYqrKm0NALwH9OsgwOqDv4xJW0=
@@ -782,6 +982,10 @@ github.com/opentracing/basictracer-go v1.1.0/go.mod h1:V2HZueSJEp879yv285Aap1BS6
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
+github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw=
+github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
+github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
+github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU=
github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M=
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 h1:LoCV5cscNVWyK5ChN/uCoIFJz8jZD63VQiGJIRgr6uo=
@@ -792,17 +996,27 @@ github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmd
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw=
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo=
github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s=
+github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg=
+github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
+github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
+github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
+github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
+github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
+github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
+github.com/protocolbuffers/txtpbfmt v0.0.0-20231025115547-084445ff1adf h1:014O62zIzQwvoD7Ekj3ePDF5bv9Xxy0w6AZk0qYbjUk=
+github.com/protocolbuffers/txtpbfmt v0.0.0-20231025115547-084445ff1adf/go.mod h1:jgxiZysxFPM+iWKwQwPR+y+Jvo54ARd4EisXxKYpB5c=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435cARxCW6q9gc0S/Yxz7Mkd38pOb0=
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE=
@@ -829,12 +1043,14 @@ github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abq
github.com/pulumi/terraform-diff-reader v0.0.2/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ=
github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10 h1:M6Ceq1o6gGeEKxTZgJ2CKLye3p67ZZjnsAwxr5VC32A=
github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10/go.mod h1:H+8tjs9TjV2w57QFVSMBQacf8k/E1XwLXGCARgViC6A=
+github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM=
+github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rhysd/go-fakeio v1.0.0 h1:+TjiKCOs32dONY7DaoVz/VPOdvRkPfBkEyUDIpM8FQY=
github.com/rhysd/go-fakeio v1.0.0/go.mod h1:joYxF906trVwp2JLrE4jlN7A0z6wrz8O6o1UjarbFzE=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
-github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
-github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
+github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
+github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
@@ -845,50 +1061,110 @@ github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkB
github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc=
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs=
+github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
+github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
+github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
+github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
+github.com/sassoftware/relic v7.2.1+incompatible h1:Pwyh1F3I0r4clFJXkSI8bOyJINGqpgjJU3DYAZeI05A=
+github.com/sassoftware/relic v7.2.1+incompatible/go.mod h1:CWfAxv73/iLZ17rbyhIEq3K9hs5w6FpNMdUT//qR+zk=
+github.com/sassoftware/relic/v7 v7.6.2 h1:rS44Lbv9G9eXsukknS4mSjIAuuX+lMq/FnStgmZlUv4=
+github.com/sassoftware/relic/v7 v7.6.2/go.mod h1:kjmP0IBVkJZ6gXeAu35/KCEfca//+PKM6vTAsyDPY+k=
+github.com/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA=
+github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU=
github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc=
github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg=
github.com/segmentio/encoding v0.3.5 h1:UZEiaZ55nlXGDL92scoVuw00RmiRCazIEmvPSbSvt8Y=
github.com/segmentio/encoding v0.3.5/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM=
+github.com/segmentio/ksuid v1.0.4 h1:sBo2BdShXjmcugAMwjugoGUdUV0pcxY5mW4xKRn3v4c=
+github.com/segmentio/ksuid v1.0.4/go.mod h1:/XUiZBD3kVx5SmUOl55voK5yeAbBNNIed+2O73XgrPE=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
+github.com/shibumi/go-pathspec v1.3.0 h1:QUyMZhFo0Md5B8zV8x2tesohbb5kfbpTi9rBnKh5dkI=
+github.com/shibumi/go-pathspec v1.3.0/go.mod h1:Xutfslp817l2I1cZvgcfeMQJG5QnU2lh5tVaaMCl3jE=
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
github.com/siderolabs/crypto v0.4.4 h1:Q6EDBMR2Ub2oAZW5Xl8lrKB27bM3Sn8Gkfw3rngco5U=
github.com/siderolabs/crypto v0.4.4/go.mod h1:hsR3tJ3aaeuhCChsLF4dBd9vlJVPvmhg4vvx2ez4aD4=
-github.com/siderolabs/gen v0.4.8 h1:VNpbmDLhkXp7qcSEkKk1Ee7vU2afs3xvHrWLGR2UuiY=
-github.com/siderolabs/gen v0.4.8/go.mod h1:7ROKVHHB68R3Amrd4a1ZXz/oMrXWF3Mg3lSEgnkJY5c=
-github.com/siderolabs/go-api-signature v0.3.2 h1:blqrZF1GM7TWgq7mY7CsR+yQ93u6az0Kf0mfsw+hvf0=
-github.com/siderolabs/go-api-signature v0.3.2/go.mod h1:punhUOaXa7LELYBRCUhfgUGH6ieVz68GrP98apCKXj8=
+github.com/siderolabs/gen v0.5.0 h1:Afdjx+zuZDf53eH5DB+E+T2JeCwBXGinV66A6osLgQI=
+github.com/siderolabs/gen v0.5.0/go.mod h1:1GUMBNliW98Xeq8GPQeVMYqQE09LFItE8enR3wgMh3Q=
+github.com/siderolabs/go-api-signature v0.3.6 h1:wDIsXbpl7Oa/FXvxB6uz4VL9INA9fmr3EbmjEZYFJrU=
+github.com/siderolabs/go-api-signature v0.3.6/go.mod h1:hoH13AfunHflxbXfh+NoploqV13ZTDfQ1mQJWNVSW9U=
github.com/siderolabs/go-blockdevice v0.4.7 h1:2bk4WpEEflGxjrNwp57ye24Pr+cYgAiAeNMWiQOuWbQ=
github.com/siderolabs/go-blockdevice v0.4.7/go.mod h1:4PeOuk71pReJj1JQEXDE7kIIQJPVe8a+HZQa+qjxSEA=
+github.com/siderolabs/go-blockdevice/v2 v2.0.2 h1:GIdOBrCLQ7X9jbr0P/+7paw5SIfp/LL+dx9mTOzmw8w=
+github.com/siderolabs/go-blockdevice/v2 v2.0.2/go.mod h1:74htzCV913UzaLZ4H+NBXkwWlYnBJIq5m/379ZEcu8w=
+github.com/siderolabs/go-circular v0.2.0 h1:Xca8zrjF/YsujLbwDSojkKzJe7ngetnpuIJn8N78DJI=
+github.com/siderolabs/go-circular v0.2.0/go.mod h1:rrYCwHLYWmxqrmZP+LjYtwB2a55lxzQi0Ztu1VpWZSc=
+github.com/siderolabs/go-kubernetes v0.2.12 h1:YaTpKfEynJKBLZeZHJ4Uas4ARVkklOADdkFsKAmh3fc=
+github.com/siderolabs/go-kubernetes v0.2.12/go.mod h1:EjCijMrQy7S/P8TWfDISicaLHy9ZY5IgHdsPsjSxW54=
github.com/siderolabs/go-pointer v1.0.0 h1:6TshPKep2doDQJAAtHUuHWXbca8ZfyRySjSBT/4GsMU=
github.com/siderolabs/go-pointer v1.0.0/go.mod h1:HTRFUNYa3R+k0FFKNv11zgkaCLzEkWVzoYZ433P3kHc=
+github.com/siderolabs/go-procfs v0.1.2 h1:bDs9hHyYGE2HO1frpmUsD60yg80VIEDrx31fkbi4C8M=
+github.com/siderolabs/go-procfs v0.1.2/go.mod h1:dBzQXobsM7+TWRRI3DS9X7vAuj8Nkfgu3Z/U9iY3ZTY=
github.com/siderolabs/go-retry v0.3.3 h1:zKV+S1vumtO72E6sYsLlmIdV/G/GcYSBLiEx/c9oCEg=
github.com/siderolabs/go-retry v0.3.3/go.mod h1:Ff/VGc7v7un4uQg3DybgrmOWHEmJ8BzZds/XNn/BqMI=
+github.com/siderolabs/image-factory v0.5.0 h1:v1FXZLCcV6xu+6QpgvhDEICxVF7o2VxMjfU0MutkFbo=
+github.com/siderolabs/image-factory v0.5.0/go.mod h1:npJwHOBsI+h+gKdezCyrs7ZHDmkgRnrAK2Cjk1nzv8A=
github.com/siderolabs/net v0.4.0 h1:1bOgVay/ijPkJz4qct98nHsiB/ysLQU0KLoBC4qLm7I=
github.com/siderolabs/net v0.4.0/go.mod h1:/ibG+Hm9HU27agp5r9Q3eZicEfjquzNzQNux5uEk0kM=
github.com/siderolabs/protoenc v0.2.1 h1:BqxEmeWQeMpNP3R6WrPqDatX8sM/r4t97OP8mFmg6GA=
github.com/siderolabs/protoenc v0.2.1/go.mod h1:StTHxjet1g11GpNAWiATgc8K0HMKiFSEVVFOa/H0otc=
-github.com/siderolabs/talos/pkg/machinery v1.7.0 h1:fZiqXwdraM0lfN6/MtBO6sSkeUCaKBtGfP7VUBpOXao=
-github.com/siderolabs/talos/pkg/machinery v1.7.0/go.mod h1:YBl9KDCD45Uc7N0rXBY1JqovUn1n46ekUPSNbEVZzQU=
-github.com/siderolabs/terraform-provider-talos v0.5.0 h1:ppeU9GQ493FDpCDfDNhDqqVsWEPIv59HI0bYdNLVZtc=
-github.com/siderolabs/terraform-provider-talos v0.5.0/go.mod h1:u40oJyP8laPiJTlUjnVdmluCeIftpYEa3JzC1vBtlMk=
+github.com/siderolabs/talos v1.8.0 h1:ResbmaS5J4kJw8zJKqfm/p1QYX46oKaC1y9z3K20a00=
+github.com/siderolabs/talos v1.8.0/go.mod h1:tuTjvoH+10LFp5i3hRgodG54QmawjMDbrMxXdE+4gas=
+github.com/siderolabs/talos/pkg/machinery v1.8.0 h1:azhBj+Nm9oTgaFgcNaHU8TPS9Oi5OdV1ELNgFAVder8=
+github.com/siderolabs/talos/pkg/machinery v1.8.0/go.mod h1:kkrPF7yyhNSg8yJx4RJnk21Hi3APAHm3HQm2M3zfwKI=
+github.com/siderolabs/terraform-provider-talos v0.6.0 h1:qZDe9cie7+LdyUnxkKZ9zPWUHX9VqfRPlEi2NvfOnIk=
+github.com/siderolabs/terraform-provider-talos v0.6.0/go.mod h1:vLJ0TCxZWLoiXaVn9qWEnQOVKKkvlhEGOkEQZ4qzJF8=
+github.com/sigstore/cosign/v2 v2.4.0 h1:2NdidNgClg+oXr/fDIr37E/BE6j00gqgUhSiBK2kjSQ=
+github.com/sigstore/cosign/v2 v2.4.0/go.mod h1:j+fH1DCUkcn92qp6ezDj4JbGMri6eG1nLJC+hs64rvc=
+github.com/sigstore/fulcio v1.5.1 h1:Iasy1zfNjaq8BV4S8o6pXspLDU28PQC2z07GmOu9zpM=
+github.com/sigstore/fulcio v1.5.1/go.mod h1:W1A/UHrTopy1IBZPMtHmxg7GPYAu+vt5dRXM3W6yjPo=
+github.com/sigstore/protobuf-specs v0.3.2 h1:nCVARCN+fHjlNCk3ThNXwrZRqIommIeNKWwQvORuRQo=
+github.com/sigstore/protobuf-specs v0.3.2/go.mod h1:RZ0uOdJR4OB3tLQeAyWoJFbNCBFrPQdcokntde4zRBA=
+github.com/sigstore/rekor v1.3.6 h1:QvpMMJVWAp69a3CHzdrLelqEqpTM3ByQRt5B5Kspbi8=
+github.com/sigstore/rekor v1.3.6/go.mod h1:JDTSNNMdQ/PxdsS49DJkJ+pRJCO/83nbR5p3aZQteXc=
+github.com/sigstore/sigstore v1.8.8 h1:B6ZQPBKK7Z7tO3bjLNnlCMG+H66tO4E/+qAphX8T/hg=
+github.com/sigstore/sigstore v1.8.8/go.mod h1:GW0GgJSCTBJY3fUOuGDHeFWcD++c4G8Y9K015pwcpDI=
+github.com/sigstore/sigstore-go v0.5.1 h1:5IhKvtjlQBeLnjKkzMELNG4tIBf+xXQkDzhLV77+/8Y=
+github.com/sigstore/sigstore-go v0.5.1/go.mod h1:TuOfV7THHqiDaUHuJ5+QN23RP/YoKmsbwJpY+aaYPN0=
+github.com/sigstore/sigstore/pkg/signature/kms/aws v1.8.8 h1:2zHmUvaYCwV6LVeTo+OAkTm8ykOGzA9uFlAjwDPAUWM=
+github.com/sigstore/sigstore/pkg/signature/kms/aws v1.8.8/go.mod h1:OEhheBplZinUsm7W9BupafztVZV3ldkAxEHbpAeC0Pk=
+github.com/sigstore/sigstore/pkg/signature/kms/azure v1.8.8 h1:RKk4Z+qMaLORUdT7zntwMqKiYAej1VQlCswg0S7xNSY=
+github.com/sigstore/sigstore/pkg/signature/kms/azure v1.8.8/go.mod h1:dMJdlBWKHMu2xf0wIKpbo7+QfG+RzVkBB3nHP8EMM5o=
+github.com/sigstore/sigstore/pkg/signature/kms/gcp v1.8.8 h1:89Xtxj8oqZt3UlSpCP4wApFvnQ2Z/dgowW5QOVhQigI=
+github.com/sigstore/sigstore/pkg/signature/kms/gcp v1.8.8/go.mod h1:Wa4xn/H3pU/yW/6tHiMXTpObBtBSGC5q29KYFEPKN6o=
+github.com/sigstore/sigstore/pkg/signature/kms/hashivault v1.8.8 h1:Zte3Oogkd8m+nu2oK3yHtGmN++TZWh2Lm6q2iSprT1M=
+github.com/sigstore/sigstore/pkg/signature/kms/hashivault v1.8.8/go.mod h1:j00crVw6ki4/WViXflw0zWgNALrAzZT+GbIK8v7Xlz4=
+github.com/sigstore/timestamp-authority v1.2.2 h1:X4qyutnCQqJ0apMewFyx+3t7Tws00JQ/JonBiu3QvLE=
+github.com/sigstore/timestamp-authority v1.2.2/go.mod h1:nEah4Eq4wpliDjlY342rXclGSO7Kb9hoRrl9tqLW13A=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A=
github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
+github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 h1:JIAuq3EEf9cgbU6AtGPK4CTG3Zf6CKMNqf0MHTggAUA=
+github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog=
+github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
+github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
-github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
+github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
+github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
-github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
-github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
-github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
+github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
+github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
+github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
+github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
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.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI=
+github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg=
+github.com/spiffe/go-spiffe/v2 v2.3.0 h1:g2jYNb/PDMB8I7mBGL2Zuq/Ur6hUhoroxGQFyD6tTj8=
+github.com/spiffe/go-spiffe/v2 v2.3.0/go.mod h1:Oxsaio7DBgSNqhAO9i/9tLClaVlfRok7zvJnTV8ZyIY=
+github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs=
+github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
@@ -906,16 +1182,39 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
+github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
+github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs=
+github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48=
+github.com/tchap/go-patricia/v2 v2.3.1 h1:6rQp39lgIYZ+MHmdEq4xzuk1t7OdC35z/xm0BGhTkes=
+github.com/tchap/go-patricia/v2 v2.3.1/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k=
github.com/teekennedy/goldmark-markdown v0.3.0 h1:ik9/biVGCwGWFg8dQ3KVm2pQ/wiiG0whYiUcz9xH0W8=
github.com/teekennedy/goldmark-markdown v0.3.0/go.mod h1:kMhDz8La77A9UHvJGsxejd0QUflN9sS+QXCqnhmxmNo=
github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U=
github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8=
+github.com/thales-e-security/pool v0.0.2 h1:RAPs4q2EbWsTit6tpzuvTFlgFRJ3S8Evf5gtvVDbmPg=
+github.com/thales-e-security/pool v0.0.2/go.mod h1:qtpMm2+thHtqhLzTwgDBj/OuNnMpupY8mv0Phz0gjhU=
+github.com/theupdateframework/go-tuf v0.7.0 h1:CqbQFrWo1ae3/I0UCblSbczevCCbS31Qvs5LdxRWqRI=
+github.com/theupdateframework/go-tuf v0.7.0/go.mod h1:uEB7WSY+7ZIugK6R1hiBMBjQftaFzn7ZCDJcp1tCUug=
+github.com/theupdateframework/go-tuf/v2 v2.0.0 h1:rD8d9RotYBprZVgC+9oyTZ5MmawepnTSTqoDuxjWgbs=
+github.com/theupdateframework/go-tuf/v2 v2.0.0/go.mod h1:baB22nBHeHBCeuGZcIlctNq4P61PcOdyARlplg5xmLA=
+github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399 h1:e/5i7d4oYZ+C1wj2THlRK+oAhjeS/TRQwMfkIuet3w0=
+github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399/go.mod h1:LdwHTNJT99C5fTAzDz0ud328OgXz+gierycbcIx2fRs=
+github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
+github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
+github.com/transparency-dev/merkle v0.0.2 h1:Q9nBoQcZcgPamMkGn7ghV8XiTZ/kRxn1yCG81+twTK4=
+github.com/transparency-dev/merkle v0.0.2/go.mod h1:pqSy+OXefQ1EDUVmAJ8MUhHB9TXGuzVAT58PqBoHz1A=
github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o=
github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg=
github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
-github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8=
github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
+github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
+github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
+github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts=
+github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk=
+github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8=
+github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI=
github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
@@ -923,14 +1222,20 @@ github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IU
github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok=
github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
+github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
+github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
+github.com/xanzy/go-gitlab v0.107.0 h1:P2CT9Uy9yN9lJo3FLxpMZ4xj6uWcpnigXsjvqJ6nd2Y=
+github.com/xanzy/go-gitlab v0.107.0/go.mod h1:wKNKh3GkYDMOsGmnfuX+ITCmDuSDWFO0G+C4AygL9RY=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
-github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c=
-github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
+github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
+github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74=
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
+github.com/yashtewari/glob-intersection v0.2.0 h1:8iuHdN88yYuCzCdjt0gDe+6bAhUwBeEWqThExu54RFg=
+github.com/yashtewari/glob-intersection v0.2.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -939,12 +1244,18 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/goldmark v1.7.4 h1:BDXOHExt+A7gwPCJgPIIq7ENvceR7we7rOS9TNoLZeg=
github.com/yuin/goldmark v1.7.4/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
-github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8=
-github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
-github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI=
-github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8=
+github.com/zalando/go-keyring v0.2.3 h1:v9CUu9phlABObO4LPWycf+zwMG7nlbb3t/B5wa97yms=
+github.com/zalando/go-keyring v0.2.3/go.mod h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk=
+github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ=
+github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
+github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo=
+github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM=
github.com/zclconf/go-cty-yaml v1.0.1 h1:up11wlgAaDvlAGENcFDnZgkn0qUJurso7k6EpURKNF8=
github.com/zclconf/go-cty-yaml v1.0.1/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0=
+github.com/zeebo/errs v1.3.0 h1:hmiaKqgYZzcVgRL1Vkc1Mn2914BbzB0IBxs+ebeutGs=
+github.com/zeebo/errs v1.3.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
+go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80=
+go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -954,19 +1265,21 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw=
-go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo=
-go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo=
-go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI=
-go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco=
-go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw=
-go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc=
-go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI=
-go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg=
+go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo=
+go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4=
+go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q=
+go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s=
+go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE=
+go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg=
+go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g=
+go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
+go.step.sm/crypto v0.51.1 h1:ktUg/2hetEMiBAqgz502ktZDGoDoGrcHFg3XpkmkvvA=
+go.step.sm/crypto v0.51.1/go.mod h1:PdrhttNU/tG9/YsVd4fdlysBN+UV503p0o2irFZQlAw=
go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -986,15 +1299,13 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
-golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
-golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
+golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
+golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -1034,8 +1345,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
-golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0=
+golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1069,7 +1380,6 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
@@ -1092,8 +1402,8 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
-golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
-golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
+golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
+golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1119,8 +1429,8 @@ golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri
golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A=
-golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA=
-golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=
+golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1181,13 +1491,11 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1198,7 +1506,6 @@ golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1223,16 +1530,16 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
-golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
+golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
-golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU=
-golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk=
+golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
+golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1245,13 +1552,13 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
-golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
+golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
+golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
+golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -1301,7 +1608,6 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
@@ -1310,8 +1616,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
-golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
+golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
+golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1370,8 +1676,8 @@ google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ
google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70=
-google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY=
-google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg=
+google.golang.org/api v0.190.0 h1:ASM+IhLY1zljNdLu19W1jTmU6A+gMk6M46Wlur61s+Q=
+google.golang.org/api v0.190.0/go.mod h1:QIr6I9iedBLnfqoD6L6Vze1UvS5Hzj5r2aUBOaZnLHo=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -1416,9 +1722,7 @@ google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
@@ -1484,12 +1788,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw
google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
-google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 h1:ImUcDPHjTrAqNhlOkSocDLfG9rrNHH7w7uoKWPaWZ8s=
-google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7/go.mod h1:/3XmxOjePkvmKrHuBy4zNFw7IzxJXtAgdpXi8Ll990U=
-google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8=
-google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
+google.golang.org/genproto v0.0.0-20240730163845-b1a4ccb954bf h1:OqdXDEakZCVtDiZTjcxfwbHPCT11ycCEsTKesBVKvyY=
+google.golang.org/genproto v0.0.0-20240730163845-b1a4ccb954bf/go.mod h1:mCr1K1c8kX+1iSBREvU3Juo11CB+QOEWxbRS01wWl5M=
+google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
+google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -1555,6 +1859,9 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
+gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
+gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
@@ -1578,18 +1885,18 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-k8s.io/api v0.29.3 h1:2ORfZ7+bGC3YJqGpV0KSDDEVf8hdGQ6A03/50vj8pmw=
-k8s.io/api v0.29.3/go.mod h1:y2yg2NTyHUUkIoTC+phinTnEa3KFM6RZ3szxt014a80=
-k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU=
-k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU=
-k8s.io/client-go v0.29.3 h1:R/zaZbEAxqComZ9FHeQwOh3Y1ZUs7FaHKZdQtIc2WZg=
-k8s.io/client-go v0.29.3/go.mod h1:tkDisCvgPfiRpxGnOORfkljmS+UrW+WtXAy2fTvXJB0=
-k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0=
-k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo=
-k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=
-k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
-k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
-k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU=
+k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI=
+k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U=
+k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
+k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0=
+k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg=
+k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
+k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
+k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f h1:2sXuKesAYbRHxL3aE2PN6zX/gcJr22cjrsej+W784Tc=
+k8s.io/kube-openapi v0.0.0-20240709000822-3c01b740850f/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc=
+k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
+k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
lukechampine.com/frand v1.4.2 h1:RzFIpOvkMXuPMBb9maa4ND4wjBn71E1Jpf8BzJHMaVw=
lukechampine.com/frand v1.4.2/go.mod h1:4S/TM2ZgrKejMcKMbeLjISpJMO+/eZ1zu3vYX9dtj3s=
mvdan.cc/gofumpt v0.5.0 h1:0EQ+Z56k8tXjj/6TQD25BFNKQXpCvT0rnansIc7Ug5E=
@@ -1601,7 +1908,11 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
+sigs.k8s.io/release-utils v0.8.4 h1:4QVr3UgbyY/d9p74LBhg0njSVQofUsAZqYOzVZBhdBw=
+sigs.k8s.io/release-utils v0.8.4/go.mod h1:m1bHfscTemQp+z+pLCZnkXih9n0+WukIUU70n6nFnU0=
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
-sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
-sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
+sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
+sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
+software.sslmate.com/src/go-pkcs12 v0.4.0 h1:H2g08FrTvSFKUj+D309j1DPfk5APnIdAQAB8aEykJ5k=
+software.sslmate.com/src/go-pkcs12 v0.4.0/go.mod h1:Qiz0EyvDRJjjxGyUQa2cCNZn/wMyzrRJ/qcDXOQazLI=
diff --git a/provider/resources.go b/provider/resources.go
index 3a8fb5cd..b2e63079 100644
--- a/provider/resources.go
+++ b/provider/resources.go
@@ -24,11 +24,12 @@ import (
// all of the talos token components used below.
const (
- talosPkg = "talos"
- talosMod = "index"
- clientMod = "client" // the client module
- clusterMod = "cluster" // the talos module
- machineMod = "machine" // the talos module
+ talosPkg = "talos"
+ talosMod = "index"
+ clientMod = "client" // the client module
+ clusterMod = "cluster" // the cluster module
+ machineMod = "machine" // the machine module
+ imageFactoryMod = "image_factory" // the image factory module
)
//go:embed cmd/pulumi-resource-talos/bridge-metadata.json
@@ -254,6 +255,13 @@ func Provider() tfbridge.ProviderInfo {
},
},
Resources: map[string]*tfbridge.ResourceInfo{
+ "talos_image_factory_schematic": {
+ Fields: map[string]*tfbridge.SchemaInfo{
+ "schematic": {
+ CSharpName: "SchematicData",
+ },
+ },
+ },
"talos_machine_bootstrap": {
Fields: map[string]*tfbridge.SchemaInfo{
"client_configuration": {
@@ -351,6 +359,7 @@ func Provider() tfbridge.ProviderInfo {
clientMod,
clusterMod,
machineMod,
+ imageFactoryMod,
},
tks.MakeStandard(talosPkg),
),
diff --git a/sdk/dotnet/Cluster/GetHealth.cs b/sdk/dotnet/Cluster/GetHealth.cs
index ccbb23dd..578dfb3a 100644
--- a/sdk/dotnet/Cluster/GetHealth.cs
+++ b/sdk/dotnet/Cluster/GetHealth.cs
@@ -13,13 +13,13 @@ namespace Pulumiverse.Talos.Cluster
public static class GetHealth
{
///
- /// Checks the health of a Talos cluster
+ /// Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.
///
public static Task InvokeAsync(GetHealthArgs args, InvokeOptions? options = null)
=> global::Pulumi.Deployment.Instance.InvokeAsync("talos:cluster/getHealth:getHealth", args ?? new GetHealthArgs(), options.WithDefaults());
///
- /// Checks the health of a Talos cluster
+ /// Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.
///
public static Output Invoke(GetHealthInvokeArgs args, InvokeOptions? options = null)
=> global::Pulumi.Deployment.Instance.Invoke("talos:cluster/getHealth:getHealth", args ?? new GetHealthInvokeArgs(), options.WithDefaults());
@@ -58,6 +58,12 @@ public List Endpoints
set => _endpoints = value;
}
+ ///
+ /// Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ ///
+ [Input("skipKubernetesChecks")]
+ public bool? SkipKubernetesChecks { get; set; }
+
[Input("timeouts")]
public Inputs.GetHealthTimeoutsArgs? Timeouts { get; set; }
@@ -111,6 +117,12 @@ public InputList Endpoints
set => _endpoints = value;
}
+ ///
+ /// Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ ///
+ [Input("skipKubernetesChecks")]
+ public Input? SkipKubernetesChecks { get; set; }
+
[Input("timeouts")]
public Input? Timeouts { get; set; }
@@ -152,6 +164,10 @@ public sealed class GetHealthResult
/// The ID of this resource.
///
public readonly string Id;
+ ///
+ /// Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ ///
+ public readonly bool? SkipKubernetesChecks;
public readonly Outputs.GetHealthTimeoutsResult? Timeouts;
///
/// List of worker nodes to check for health.
@@ -168,6 +184,8 @@ private GetHealthResult(
string id,
+ bool? skipKubernetesChecks,
+
Outputs.GetHealthTimeoutsResult? timeouts,
ImmutableArray workerNodes)
@@ -176,6 +194,7 @@ private GetHealthResult(
ControlPlaneNodes = controlPlaneNodes;
Endpoints = endpoints;
Id = id;
+ SkipKubernetesChecks = skipKubernetesChecks;
Timeouts = timeouts;
WorkerNodes = workerNodes;
}
diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationArgs.cs
new file mode 100644
index 00000000..71ce506c
--- /dev/null
+++ b/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationArgs.cs
@@ -0,0 +1,49 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Inputs
+{
+
+ public sealed class KubeconfigClientConfigurationArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The client CA certificate
+ ///
+ [Input("caCertificate", required: true)]
+ public Input CaCertificate { get; set; } = null!;
+
+ ///
+ /// The client certificate
+ ///
+ [Input("clientCertificate", required: true)]
+ public Input ClientCertificate { get; set; } = null!;
+
+ [Input("clientKey", required: true)]
+ private Input? _clientKey;
+
+ ///
+ /// The client key
+ ///
+ public Input? ClientKey
+ {
+ get => _clientKey;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _clientKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ public KubeconfigClientConfigurationArgs()
+ {
+ }
+ public static new KubeconfigClientConfigurationArgs Empty => new KubeconfigClientConfigurationArgs();
+ }
+}
diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationGetArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationGetArgs.cs
new file mode 100644
index 00000000..7f835fe2
--- /dev/null
+++ b/sdk/dotnet/Cluster/Inputs/KubeconfigClientConfigurationGetArgs.cs
@@ -0,0 +1,49 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Inputs
+{
+
+ public sealed class KubeconfigClientConfigurationGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The client CA certificate
+ ///
+ [Input("caCertificate", required: true)]
+ public Input CaCertificate { get; set; } = null!;
+
+ ///
+ /// The client certificate
+ ///
+ [Input("clientCertificate", required: true)]
+ public Input ClientCertificate { get; set; } = null!;
+
+ [Input("clientKey", required: true)]
+ private Input? _clientKey;
+
+ ///
+ /// The client key
+ ///
+ public Input? ClientKey
+ {
+ get => _clientKey;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _clientKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ public KubeconfigClientConfigurationGetArgs()
+ {
+ }
+ public static new KubeconfigClientConfigurationGetArgs Empty => new KubeconfigClientConfigurationGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationArgs.cs
new file mode 100644
index 00000000..e4767779
--- /dev/null
+++ b/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationArgs.cs
@@ -0,0 +1,55 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Inputs
+{
+
+ public sealed class KubeconfigKubernetesClientConfigurationArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The kubernetes CA certificate
+ ///
+ [Input("caCertificate")]
+ public Input? CaCertificate { get; set; }
+
+ ///
+ /// The kubernetes client certificate
+ ///
+ [Input("clientCertificate")]
+ public Input? ClientCertificate { get; set; }
+
+ [Input("clientKey")]
+ private Input? _clientKey;
+
+ ///
+ /// The kubernetes client key
+ ///
+ public Input? ClientKey
+ {
+ get => _clientKey;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _clientKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ ///
+ /// The kubernetes host
+ ///
+ [Input("host")]
+ public Input? Host { get; set; }
+
+ public KubeconfigKubernetesClientConfigurationArgs()
+ {
+ }
+ public static new KubeconfigKubernetesClientConfigurationArgs Empty => new KubeconfigKubernetesClientConfigurationArgs();
+ }
+}
diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationGetArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationGetArgs.cs
new file mode 100644
index 00000000..910444d5
--- /dev/null
+++ b/sdk/dotnet/Cluster/Inputs/KubeconfigKubernetesClientConfigurationGetArgs.cs
@@ -0,0 +1,55 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Inputs
+{
+
+ public sealed class KubeconfigKubernetesClientConfigurationGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The kubernetes CA certificate
+ ///
+ [Input("caCertificate")]
+ public Input? CaCertificate { get; set; }
+
+ ///
+ /// The kubernetes client certificate
+ ///
+ [Input("clientCertificate")]
+ public Input? ClientCertificate { get; set; }
+
+ [Input("clientKey")]
+ private Input? _clientKey;
+
+ ///
+ /// The kubernetes client key
+ ///
+ public Input? ClientKey
+ {
+ get => _clientKey;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _clientKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ ///
+ /// The kubernetes host
+ ///
+ [Input("host")]
+ public Input? Host { get; set; }
+
+ public KubeconfigKubernetesClientConfigurationGetArgs()
+ {
+ }
+ public static new KubeconfigKubernetesClientConfigurationGetArgs Empty => new KubeconfigKubernetesClientConfigurationGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsArgs.cs
new file mode 100644
index 00000000..e72dfc03
--- /dev/null
+++ b/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsArgs.cs
@@ -0,0 +1,33 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Inputs
+{
+
+ public sealed class KubeconfigTimeoutsArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ ///
+ [Input("create")]
+ public Input? Create { get; set; }
+
+ ///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ ///
+ [Input("update")]
+ public Input? Update { get; set; }
+
+ public KubeconfigTimeoutsArgs()
+ {
+ }
+ public static new KubeconfigTimeoutsArgs Empty => new KubeconfigTimeoutsArgs();
+ }
+}
diff --git a/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsGetArgs.cs b/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsGetArgs.cs
new file mode 100644
index 00000000..5119ef65
--- /dev/null
+++ b/sdk/dotnet/Cluster/Inputs/KubeconfigTimeoutsGetArgs.cs
@@ -0,0 +1,33 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Inputs
+{
+
+ public sealed class KubeconfigTimeoutsGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ ///
+ [Input("create")]
+ public Input? Create { get; set; }
+
+ ///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ ///
+ [Input("update")]
+ public Input? Update { get; set; }
+
+ public KubeconfigTimeoutsGetArgs()
+ {
+ }
+ public static new KubeconfigTimeoutsGetArgs Empty => new KubeconfigTimeoutsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Cluster/Kubeconfig.cs b/sdk/dotnet/Cluster/Kubeconfig.cs
new file mode 100644
index 00000000..aeea48b9
--- /dev/null
+++ b/sdk/dotnet/Cluster/Kubeconfig.cs
@@ -0,0 +1,180 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster
+{
+ ///
+ /// Retrieves the kubeconfig for a Talos cluster
+ ///
+ [TalosResourceType("talos:cluster/kubeconfig:Kubeconfig")]
+ public partial class Kubeconfig : global::Pulumi.CustomResource
+ {
+ ///
+ /// The client configuration data
+ ///
+ [Output("clientConfiguration")]
+ public Output ClientConfiguration { get; private set; } = null!;
+
+ ///
+ /// endpoint to use for the talosclient. If not set, the node value will be used
+ ///
+ [Output("endpoint")]
+ public Output Endpoint { get; private set; } = null!;
+
+ ///
+ /// The raw kubeconfig
+ ///
+ [Output("kubeconfigRaw")]
+ public Output KubeconfigRaw { get; private set; } = null!;
+
+ ///
+ /// The kubernetes client configuration
+ ///
+ [Output("kubernetesClientConfiguration")]
+ public Output KubernetesClientConfiguration { get; private set; } = null!;
+
+ ///
+ /// controlplane node to retrieve the kubeconfig from
+ ///
+ [Output("node")]
+ public Output Node { get; private set; } = null!;
+
+ [Output("timeouts")]
+ public Output Timeouts { get; private set; } = null!;
+
+
+ ///
+ /// Create a Kubeconfig resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public Kubeconfig(string name, KubeconfigArgs args, CustomResourceOptions? options = null)
+ : base("talos:cluster/kubeconfig:Kubeconfig", name, args ?? new KubeconfigArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private Kubeconfig(string name, Input id, KubeconfigState? state = null, CustomResourceOptions? options = null)
+ : base("talos:cluster/kubeconfig:Kubeconfig", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ AdditionalSecretOutputs =
+ {
+ "kubeconfigRaw",
+ },
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing Kubeconfig resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static Kubeconfig Get(string name, Input id, KubeconfigState? state = null, CustomResourceOptions? options = null)
+ {
+ return new Kubeconfig(name, id, state, options);
+ }
+ }
+
+ public sealed class KubeconfigArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The client configuration data
+ ///
+ [Input("clientConfiguration", required: true)]
+ public Input ClientConfiguration { get; set; } = null!;
+
+ ///
+ /// endpoint to use for the talosclient. If not set, the node value will be used
+ ///
+ [Input("endpoint")]
+ public Input? Endpoint { get; set; }
+
+ ///
+ /// controlplane node to retrieve the kubeconfig from
+ ///
+ [Input("node", required: true)]
+ public Input Node { get; set; } = null!;
+
+ [Input("timeouts")]
+ public Input? Timeouts { get; set; }
+
+ public KubeconfigArgs()
+ {
+ }
+ public static new KubeconfigArgs Empty => new KubeconfigArgs();
+ }
+
+ public sealed class KubeconfigState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The client configuration data
+ ///
+ [Input("clientConfiguration")]
+ public Input? ClientConfiguration { get; set; }
+
+ ///
+ /// endpoint to use for the talosclient. If not set, the node value will be used
+ ///
+ [Input("endpoint")]
+ public Input? Endpoint { get; set; }
+
+ [Input("kubeconfigRaw")]
+ private Input? _kubeconfigRaw;
+
+ ///
+ /// The raw kubeconfig
+ ///
+ public Input? KubeconfigRaw
+ {
+ get => _kubeconfigRaw;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _kubeconfigRaw = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ ///
+ /// The kubernetes client configuration
+ ///
+ [Input("kubernetesClientConfiguration")]
+ public Input? KubernetesClientConfiguration { get; set; }
+
+ ///
+ /// controlplane node to retrieve the kubeconfig from
+ ///
+ [Input("node")]
+ public Input? Node { get; set; }
+
+ [Input("timeouts")]
+ public Input? Timeouts { get; set; }
+
+ public KubeconfigState()
+ {
+ }
+ public static new KubeconfigState Empty => new KubeconfigState();
+ }
+}
diff --git a/sdk/dotnet/Cluster/Outputs/KubeconfigClientConfiguration.cs b/sdk/dotnet/Cluster/Outputs/KubeconfigClientConfiguration.cs
new file mode 100644
index 00000000..ebca0469
--- /dev/null
+++ b/sdk/dotnet/Cluster/Outputs/KubeconfigClientConfiguration.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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Outputs
+{
+
+ [OutputType]
+ public sealed class KubeconfigClientConfiguration
+ {
+ ///
+ /// The client CA certificate
+ ///
+ public readonly string CaCertificate;
+ ///
+ /// The client certificate
+ ///
+ public readonly string ClientCertificate;
+ ///
+ /// The client key
+ ///
+ public readonly string ClientKey;
+
+ [OutputConstructor]
+ private KubeconfigClientConfiguration(
+ string caCertificate,
+
+ string clientCertificate,
+
+ string clientKey)
+ {
+ CaCertificate = caCertificate;
+ ClientCertificate = clientCertificate;
+ ClientKey = clientKey;
+ }
+ }
+}
diff --git a/sdk/dotnet/Cluster/Outputs/KubeconfigKubernetesClientConfiguration.cs b/sdk/dotnet/Cluster/Outputs/KubeconfigKubernetesClientConfiguration.cs
new file mode 100644
index 00000000..f7b01906
--- /dev/null
+++ b/sdk/dotnet/Cluster/Outputs/KubeconfigKubernetesClientConfiguration.cs
@@ -0,0 +1,50 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Outputs
+{
+
+ [OutputType]
+ public sealed class KubeconfigKubernetesClientConfiguration
+ {
+ ///
+ /// The kubernetes CA certificate
+ ///
+ public readonly string? CaCertificate;
+ ///
+ /// The kubernetes client certificate
+ ///
+ public readonly string? ClientCertificate;
+ ///
+ /// The kubernetes client key
+ ///
+ public readonly string? ClientKey;
+ ///
+ /// The kubernetes host
+ ///
+ public readonly string? Host;
+
+ [OutputConstructor]
+ private KubeconfigKubernetesClientConfiguration(
+ string? caCertificate,
+
+ string? clientCertificate,
+
+ string? clientKey,
+
+ string? host)
+ {
+ CaCertificate = caCertificate;
+ ClientCertificate = clientCertificate;
+ ClientKey = clientKey;
+ Host = host;
+ }
+ }
+}
diff --git a/sdk/dotnet/Cluster/Outputs/KubeconfigTimeouts.cs b/sdk/dotnet/Cluster/Outputs/KubeconfigTimeouts.cs
new file mode 100644
index 00000000..edb73d4d
--- /dev/null
+++ b/sdk/dotnet/Cluster/Outputs/KubeconfigTimeouts.cs
@@ -0,0 +1,36 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Cluster.Outputs
+{
+
+ [OutputType]
+ public sealed class KubeconfigTimeouts
+ {
+ ///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ ///
+ public readonly string? Create;
+ ///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ ///
+ public readonly string? Update;
+
+ [OutputConstructor]
+ private KubeconfigTimeouts(
+ string? create,
+
+ string? update)
+ {
+ Create = create;
+ Update = update;
+ }
+ }
+}
diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs
new file mode 100644
index 00000000..2c1d0160
--- /dev/null
+++ b/sdk/dotnet/Config/Config.cs
@@ -0,0 +1,46 @@
+// *** 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.Immutable;
+
+namespace Pulumiverse.Talos
+{
+ public static class Config
+ {
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "IDE1006", Justification =
+ "Double underscore prefix used to avoid conflicts with variable names.")]
+ private sealed class __Value
+ {
+ private readonly Func _getter;
+ private T _value = default!;
+ private bool _set;
+
+ public __Value(Func getter)
+ {
+ _getter = getter;
+ }
+
+ public T Get() => _set ? _value : _getter();
+
+ public void Set(T value)
+ {
+ _value = value;
+ _set = true;
+ }
+ }
+
+ private static readonly global::Pulumi.Config __config = new global::Pulumi.Config("talos");
+
+ private static readonly __Value _imageFactoryUrl = new __Value(() => __config.Get("imageFactoryUrl"));
+ ///
+ /// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ ///
+ public static string? ImageFactoryUrl
+ {
+ get => _imageFactoryUrl.Get();
+ set => _imageFactoryUrl.Set(value);
+ }
+
+ }
+}
diff --git a/sdk/dotnet/Config/README.md b/sdk/dotnet/Config/README.md
new file mode 100644
index 00000000..f5312397
--- /dev/null
+++ b/sdk/dotnet/Config/README.md
@@ -0,0 +1 @@
+A Pulumi package for creating and managing Talos Linux machines and clusters.
diff --git a/sdk/dotnet/ImageFactory/GetExtensionsVersions.cs b/sdk/dotnet/ImageFactory/GetExtensionsVersions.cs
new file mode 100644
index 00000000..f6f6fb96
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/GetExtensionsVersions.cs
@@ -0,0 +1,158 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory
+{
+ public static class GetExtensionsVersions
+ {
+ ///
+ /// The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Talos = Pulumi.Talos;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var @this = Talos.ImageFactory.GetExtensionsVersions.Invoke(new()
+ /// {
+ /// TalosVersion = "v1.7.5",
+ /// Filters = new Talos.ImageFactory.Inputs.GetExtensionsVersionsFiltersInputArgs
+ /// {
+ /// Names = new[]
+ /// {
+ /// "amdgpu",
+ /// "tailscale",
+ /// },
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ public static Task InvokeAsync(GetExtensionsVersionsArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", args ?? new GetExtensionsVersionsArgs(), options.WithDefaults());
+
+ ///
+ /// The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Talos = Pulumi.Talos;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var @this = Talos.ImageFactory.GetExtensionsVersions.Invoke(new()
+ /// {
+ /// TalosVersion = "v1.7.5",
+ /// Filters = new Talos.ImageFactory.Inputs.GetExtensionsVersionsFiltersInputArgs
+ /// {
+ /// Names = new[]
+ /// {
+ /// "amdgpu",
+ /// "tailscale",
+ /// },
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ public static Output Invoke(GetExtensionsVersionsInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", args ?? new GetExtensionsVersionsInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetExtensionsVersionsArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The filter to apply to the extensions list.
+ ///
+ [Input("filters")]
+ public Inputs.GetExtensionsVersionsFiltersArgs? Filters { get; set; }
+
+ ///
+ /// The talos version to get extensions for.
+ ///
+ [Input("talosVersion", required: true)]
+ public string TalosVersion { get; set; } = null!;
+
+ public GetExtensionsVersionsArgs()
+ {
+ }
+ public static new GetExtensionsVersionsArgs Empty => new GetExtensionsVersionsArgs();
+ }
+
+ public sealed class GetExtensionsVersionsInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The filter to apply to the extensions list.
+ ///
+ [Input("filters")]
+ public Input? Filters { get; set; }
+
+ ///
+ /// The talos version to get extensions for.
+ ///
+ [Input("talosVersion", required: true)]
+ public Input TalosVersion { get; set; } = null!;
+
+ public GetExtensionsVersionsInvokeArgs()
+ {
+ }
+ public static new GetExtensionsVersionsInvokeArgs Empty => new GetExtensionsVersionsInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetExtensionsVersionsResult
+ {
+ ///
+ /// The list of available extensions for the specified talos version.
+ ///
+ public readonly ImmutableArray ExtensionsInfos;
+ ///
+ /// The filter to apply to the extensions list.
+ ///
+ public readonly Outputs.GetExtensionsVersionsFiltersResult? Filters;
+ ///
+ /// The ID of this resource.
+ ///
+ public readonly string Id;
+ ///
+ /// The talos version to get extensions for.
+ ///
+ public readonly string TalosVersion;
+
+ [OutputConstructor]
+ private GetExtensionsVersionsResult(
+ ImmutableArray extensionsInfos,
+
+ Outputs.GetExtensionsVersionsFiltersResult? filters,
+
+ string id,
+
+ string talosVersion)
+ {
+ ExtensionsInfos = extensionsInfos;
+ Filters = filters;
+ Id = id;
+ TalosVersion = talosVersion;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/GetOverlaysVersions.cs b/sdk/dotnet/ImageFactory/GetOverlaysVersions.cs
new file mode 100644
index 00000000..c41bd527
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/GetOverlaysVersions.cs
@@ -0,0 +1,150 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory
+{
+ public static class GetOverlaysVersions
+ {
+ ///
+ /// The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Talos = Pulumi.Talos;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var @this = Talos.ImageFactory.GetOverlaysVersions.Invoke(new()
+ /// {
+ /// TalosVersion = "v1.7.5",
+ /// Filters = new Talos.ImageFactory.Inputs.GetOverlaysVersionsFiltersInputArgs
+ /// {
+ /// Name = "rock4cplus",
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ public static Task InvokeAsync(GetOverlaysVersionsArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", args ?? new GetOverlaysVersionsArgs(), options.WithDefaults());
+
+ ///
+ /// The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Talos = Pulumi.Talos;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var @this = Talos.ImageFactory.GetOverlaysVersions.Invoke(new()
+ /// {
+ /// TalosVersion = "v1.7.5",
+ /// Filters = new Talos.ImageFactory.Inputs.GetOverlaysVersionsFiltersInputArgs
+ /// {
+ /// Name = "rock4cplus",
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ public static Output Invoke(GetOverlaysVersionsInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", args ?? new GetOverlaysVersionsInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetOverlaysVersionsArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The filter to apply to the overlays list.
+ ///
+ [Input("filters")]
+ public Inputs.GetOverlaysVersionsFiltersArgs? Filters { get; set; }
+
+ ///
+ /// The talos version to get overlays for.
+ ///
+ [Input("talosVersion", required: true)]
+ public string TalosVersion { get; set; } = null!;
+
+ public GetOverlaysVersionsArgs()
+ {
+ }
+ public static new GetOverlaysVersionsArgs Empty => new GetOverlaysVersionsArgs();
+ }
+
+ public sealed class GetOverlaysVersionsInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The filter to apply to the overlays list.
+ ///
+ [Input("filters")]
+ public Input? Filters { get; set; }
+
+ ///
+ /// The talos version to get overlays for.
+ ///
+ [Input("talosVersion", required: true)]
+ public Input TalosVersion { get; set; } = null!;
+
+ public GetOverlaysVersionsInvokeArgs()
+ {
+ }
+ public static new GetOverlaysVersionsInvokeArgs Empty => new GetOverlaysVersionsInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetOverlaysVersionsResult
+ {
+ ///
+ /// The filter to apply to the overlays list.
+ ///
+ public readonly Outputs.GetOverlaysVersionsFiltersResult? Filters;
+ ///
+ /// The ID of this resource.
+ ///
+ public readonly string Id;
+ ///
+ /// The list of available extensions for the specified talos version.
+ ///
+ public readonly ImmutableArray OverlaysInfos;
+ ///
+ /// The talos version to get overlays for.
+ ///
+ public readonly string TalosVersion;
+
+ [OutputConstructor]
+ private GetOverlaysVersionsResult(
+ Outputs.GetOverlaysVersionsFiltersResult? filters,
+
+ string id,
+
+ ImmutableArray overlaysInfos,
+
+ string talosVersion)
+ {
+ Filters = filters;
+ Id = id;
+ OverlaysInfos = overlaysInfos;
+ TalosVersion = talosVersion;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/GetUrls.cs b/sdk/dotnet/ImageFactory/GetUrls.cs
new file mode 100644
index 00000000..7d473809
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/GetUrls.cs
@@ -0,0 +1,112 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory
+{
+ public static class GetUrls
+ {
+ ///
+ /// Generates URLs for different assets supported by the Talos image factory.
+ ///
+ public static Task InvokeAsync(GetUrlsArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("talos:imageFactory/getUrls:getUrls", args ?? new GetUrlsArgs(), options.WithDefaults());
+
+ ///
+ /// Generates URLs for different assets supported by the Talos image factory.
+ ///
+ public static Output Invoke(GetUrlsInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("talos:imageFactory/getUrls:getUrls", args ?? new GetUrlsInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetUrlsArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("architecture")]
+ public string? Architecture { get; set; }
+
+ [Input("platform")]
+ public string? Platform { get; set; }
+
+ [Input("sbc")]
+ public string? Sbc { get; set; }
+
+ [Input("schematicId", required: true)]
+ public string SchematicId { get; set; } = null!;
+
+ [Input("talosVersion", required: true)]
+ public string TalosVersion { get; set; } = null!;
+
+ public GetUrlsArgs()
+ {
+ }
+ public static new GetUrlsArgs Empty => new GetUrlsArgs();
+ }
+
+ public sealed class GetUrlsInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("architecture")]
+ public Input? Architecture { get; set; }
+
+ [Input("platform")]
+ public Input? Platform { get; set; }
+
+ [Input("sbc")]
+ public Input? Sbc { get; set; }
+
+ [Input("schematicId", required: true)]
+ public Input SchematicId { get; set; } = null!;
+
+ [Input("talosVersion", required: true)]
+ public Input TalosVersion { get; set; } = null!;
+
+ public GetUrlsInvokeArgs()
+ {
+ }
+ public static new GetUrlsInvokeArgs Empty => new GetUrlsInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetUrlsResult
+ {
+ public readonly string Architecture;
+ public readonly string Id;
+ public readonly string? Platform;
+ public readonly string? Sbc;
+ public readonly string SchematicId;
+ public readonly string TalosVersion;
+ public readonly Outputs.GetUrlsUrlsResult Urls;
+
+ [OutputConstructor]
+ private GetUrlsResult(
+ string architecture,
+
+ string id,
+
+ string? platform,
+
+ string? sbc,
+
+ string schematicId,
+
+ string talosVersion,
+
+ Outputs.GetUrlsUrlsResult urls)
+ {
+ Architecture = architecture;
+ Id = id;
+ Platform = platform;
+ Sbc = sbc;
+ SchematicId = schematicId;
+ TalosVersion = talosVersion;
+ Urls = urls;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/GetVersions.cs b/sdk/dotnet/ImageFactory/GetVersions.cs
new file mode 100644
index 00000000..7bc3e8da
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/GetVersions.cs
@@ -0,0 +1,87 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory
+{
+ public static class GetVersions
+ {
+ ///
+ /// The image factory versions data source provides a list of available talos versions from the image factory.
+ ///
+ public static Task InvokeAsync(GetVersionsArgs? args = null, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("talos:imageFactory/getVersions:getVersions", args ?? new GetVersionsArgs(), options.WithDefaults());
+
+ ///
+ /// The image factory versions data source provides a list of available talos versions from the image factory.
+ ///
+ public static Output Invoke(GetVersionsInvokeArgs? args = null, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("talos:imageFactory/getVersions:getVersions", args ?? new GetVersionsInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetVersionsArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The filter to apply to the overlays list.
+ ///
+ [Input("filters")]
+ public Inputs.GetVersionsFiltersArgs? Filters { get; set; }
+
+ public GetVersionsArgs()
+ {
+ }
+ public static new GetVersionsArgs Empty => new GetVersionsArgs();
+ }
+
+ public sealed class GetVersionsInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The filter to apply to the overlays list.
+ ///
+ [Input("filters")]
+ public Input? Filters { get; set; }
+
+ public GetVersionsInvokeArgs()
+ {
+ }
+ public static new GetVersionsInvokeArgs Empty => new GetVersionsInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetVersionsResult
+ {
+ ///
+ /// The filter to apply to the overlays list.
+ ///
+ public readonly Outputs.GetVersionsFiltersResult? Filters;
+ ///
+ /// The ID of this resource.
+ ///
+ public readonly string Id;
+ ///
+ /// The list of available talos versions.
+ ///
+ public readonly ImmutableArray TalosVersions;
+
+ [OutputConstructor]
+ private GetVersionsResult(
+ Outputs.GetVersionsFiltersResult? filters,
+
+ string id,
+
+ ImmutableArray talosVersions)
+ {
+ Filters = filters;
+ Id = id;
+ TalosVersions = talosVersions;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFilters.cs b/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFilters.cs
new file mode 100644
index 00000000..c6045eb1
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFilters.cs
@@ -0,0 +1,33 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Inputs
+{
+
+ public sealed class GetExtensionsVersionsFiltersArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("names")]
+ private List? _names;
+
+ ///
+ /// The name of the extension to filter by.
+ ///
+ public List Names
+ {
+ get => _names ?? (_names = new List());
+ set => _names = value;
+ }
+
+ public GetExtensionsVersionsFiltersArgs()
+ {
+ }
+ public static new GetExtensionsVersionsFiltersArgs Empty => new GetExtensionsVersionsFiltersArgs();
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFiltersArgs.cs b/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFiltersArgs.cs
new file mode 100644
index 00000000..d655c32a
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Inputs/GetExtensionsVersionsFiltersArgs.cs
@@ -0,0 +1,33 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Inputs
+{
+
+ public sealed class GetExtensionsVersionsFiltersInputArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("names")]
+ private InputList? _names;
+
+ ///
+ /// The name of the extension to filter by.
+ ///
+ public InputList Names
+ {
+ get => _names ?? (_names = new InputList());
+ set => _names = value;
+ }
+
+ public GetExtensionsVersionsFiltersInputArgs()
+ {
+ }
+ public static new GetExtensionsVersionsFiltersInputArgs Empty => new GetExtensionsVersionsFiltersInputArgs();
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFilters.cs b/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFilters.cs
new file mode 100644
index 00000000..bf930012
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFilters.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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Inputs
+{
+
+ public sealed class GetOverlaysVersionsFiltersArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The name of the overlay to filter by.
+ ///
+ [Input("name")]
+ public string? Name { get; set; }
+
+ public GetOverlaysVersionsFiltersArgs()
+ {
+ }
+ public static new GetOverlaysVersionsFiltersArgs Empty => new GetOverlaysVersionsFiltersArgs();
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFiltersArgs.cs b/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFiltersArgs.cs
new file mode 100644
index 00000000..5051ba24
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Inputs/GetOverlaysVersionsFiltersArgs.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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Inputs
+{
+
+ public sealed class GetOverlaysVersionsFiltersInputArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The name of the overlay to filter by.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ public GetOverlaysVersionsFiltersInputArgs()
+ {
+ }
+ public static new GetOverlaysVersionsFiltersInputArgs Empty => new GetOverlaysVersionsFiltersInputArgs();
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Inputs/GetVersionsFilters.cs b/sdk/dotnet/ImageFactory/Inputs/GetVersionsFilters.cs
new file mode 100644
index 00000000..052d4d15
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Inputs/GetVersionsFilters.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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Inputs
+{
+
+ public sealed class GetVersionsFiltersArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ ///
+ [Input("stableVersionsOnly")]
+ public bool? StableVersionsOnly { get; set; }
+
+ public GetVersionsFiltersArgs()
+ {
+ }
+ public static new GetVersionsFiltersArgs Empty => new GetVersionsFiltersArgs();
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Inputs/GetVersionsFiltersArgs.cs b/sdk/dotnet/ImageFactory/Inputs/GetVersionsFiltersArgs.cs
new file mode 100644
index 00000000..9f3594d4
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Inputs/GetVersionsFiltersArgs.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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Inputs
+{
+
+ public sealed class GetVersionsFiltersInputArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ ///
+ [Input("stableVersionsOnly")]
+ public Input? StableVersionsOnly { get; set; }
+
+ public GetVersionsFiltersInputArgs()
+ {
+ }
+ public static new GetVersionsFiltersInputArgs Empty => new GetVersionsFiltersInputArgs();
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsExtensionsInfoResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsExtensionsInfoResult.cs
new file mode 100644
index 00000000..ee89f7b0
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsExtensionsInfoResult.cs
@@ -0,0 +1,42 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Outputs
+{
+
+ [OutputType]
+ public sealed class GetExtensionsVersionsExtensionsInfoResult
+ {
+ public readonly string Author;
+ public readonly string Description;
+ public readonly string Digest;
+ public readonly string Name;
+ public readonly string Ref;
+
+ [OutputConstructor]
+ private GetExtensionsVersionsExtensionsInfoResult(
+ string author,
+
+ string description,
+
+ string digest,
+
+ string name,
+
+ string @ref)
+ {
+ Author = author;
+ Description = description;
+ Digest = digest;
+ Name = name;
+ Ref = @ref;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsFiltersResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsFiltersResult.cs
new file mode 100644
index 00000000..581da7fe
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Outputs/GetExtensionsVersionsFiltersResult.cs
@@ -0,0 +1,28 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Outputs
+{
+
+ [OutputType]
+ public sealed class GetExtensionsVersionsFiltersResult
+ {
+ ///
+ /// The name of the extension to filter by.
+ ///
+ public readonly ImmutableArray Names;
+
+ [OutputConstructor]
+ private GetExtensionsVersionsFiltersResult(ImmutableArray names)
+ {
+ Names = names;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsFiltersResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsFiltersResult.cs
new file mode 100644
index 00000000..1ae04f9a
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsFiltersResult.cs
@@ -0,0 +1,28 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Outputs
+{
+
+ [OutputType]
+ public sealed class GetOverlaysVersionsFiltersResult
+ {
+ ///
+ /// The name of the overlay to filter by.
+ ///
+ public readonly string? Name;
+
+ [OutputConstructor]
+ private GetOverlaysVersionsFiltersResult(string? name)
+ {
+ Name = name;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsOverlaysInfoResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsOverlaysInfoResult.cs
new file mode 100644
index 00000000..63531b38
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Outputs/GetOverlaysVersionsOverlaysInfoResult.cs
@@ -0,0 +1,38 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Outputs
+{
+
+ [OutputType]
+ public sealed class GetOverlaysVersionsOverlaysInfoResult
+ {
+ public readonly string Digest;
+ public readonly string Image;
+ public readonly string Name;
+ public readonly string Ref;
+
+ [OutputConstructor]
+ private GetOverlaysVersionsOverlaysInfoResult(
+ string digest,
+
+ string image,
+
+ string name,
+
+ string @ref)
+ {
+ Digest = digest;
+ Image = image;
+ Name = name;
+ Ref = @ref;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Outputs/GetUrlsUrlsResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetUrlsUrlsResult.cs
new file mode 100644
index 00000000..dbdbbde6
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Outputs/GetUrlsUrlsResult.cs
@@ -0,0 +1,99 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Outputs
+{
+
+ [OutputType]
+ public sealed class GetUrlsUrlsResult
+ {
+ ///
+ /// The URL for the disk image.
+ ///
+ public readonly string DiskImage;
+ ///
+ /// The URL for the disk image with secure boot.
+ ///
+ public readonly string DiskImageSecureboot;
+ ///
+ /// The URL for the initramfs image.
+ ///
+ public readonly string Initramfs;
+ ///
+ /// The URL for the installer image.
+ ///
+ public readonly string Installer;
+ ///
+ /// The URL for the installer image with secure boot.
+ ///
+ public readonly string InstallerSecureboot;
+ ///
+ /// The URL for the ISO image.
+ ///
+ public readonly string Iso;
+ ///
+ /// The URL for the ISO image with secure boot.
+ ///
+ public readonly string IsoSecureboot;
+ ///
+ /// The URL for the kernel image.
+ ///
+ public readonly string Kernel;
+ ///
+ /// The URL for the kernel command line.
+ ///
+ public readonly string KernelCommandLine;
+ ///
+ /// The URL for the PXE image.
+ ///
+ public readonly string Pxe;
+ ///
+ /// The URL for the UKI image.
+ ///
+ public readonly string Uki;
+
+ [OutputConstructor]
+ private GetUrlsUrlsResult(
+ string diskImage,
+
+ string diskImageSecureboot,
+
+ string initramfs,
+
+ string installer,
+
+ string installerSecureboot,
+
+ string iso,
+
+ string isoSecureboot,
+
+ string kernel,
+
+ string kernelCommandLine,
+
+ string pxe,
+
+ string uki)
+ {
+ DiskImage = diskImage;
+ DiskImageSecureboot = diskImageSecureboot;
+ Initramfs = initramfs;
+ Installer = installer;
+ InstallerSecureboot = installerSecureboot;
+ Iso = iso;
+ IsoSecureboot = isoSecureboot;
+ Kernel = kernel;
+ KernelCommandLine = kernelCommandLine;
+ Pxe = pxe;
+ Uki = uki;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/Outputs/GetVersionsFiltersResult.cs b/sdk/dotnet/ImageFactory/Outputs/GetVersionsFiltersResult.cs
new file mode 100644
index 00000000..87a2aac0
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Outputs/GetVersionsFiltersResult.cs
@@ -0,0 +1,28 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory.Outputs
+{
+
+ [OutputType]
+ public sealed class GetVersionsFiltersResult
+ {
+ ///
+ /// If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ ///
+ public readonly bool? StableVersionsOnly;
+
+ [OutputConstructor]
+ private GetVersionsFiltersResult(bool? stableVersionsOnly)
+ {
+ StableVersionsOnly = stableVersionsOnly;
+ }
+ }
+}
diff --git a/sdk/dotnet/ImageFactory/README.md b/sdk/dotnet/ImageFactory/README.md
new file mode 100644
index 00000000..f5312397
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/README.md
@@ -0,0 +1 @@
+A Pulumi package for creating and managing Talos Linux machines and clusters.
diff --git a/sdk/dotnet/ImageFactory/Schematic.cs b/sdk/dotnet/ImageFactory/Schematic.cs
new file mode 100644
index 00000000..fbb192af
--- /dev/null
+++ b/sdk/dotnet/ImageFactory/Schematic.cs
@@ -0,0 +1,97 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.ImageFactory
+{
+ ///
+ /// The image factory schematic resource allows you to create a schematic for a Talos image.
+ ///
+ [TalosResourceType("talos:imageFactory/schematic:Schematic")]
+ public partial class Schematic : global::Pulumi.CustomResource
+ {
+ ///
+ /// The schematic yaml respresentation to generate the image.
+ ///
+ [Output("schematic")]
+ public Output SchematicData { get; private set; } = null!;
+
+
+ ///
+ /// Create a Schematic resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public Schematic(string name, SchematicArgs? args = null, CustomResourceOptions? options = null)
+ : base("talos:imageFactory/schematic:Schematic", name, args ?? new SchematicArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private Schematic(string name, Input id, SchematicState? state = null, CustomResourceOptions? options = null)
+ : base("talos:imageFactory/schematic:Schematic", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing Schematic resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static Schematic Get(string name, Input id, SchematicState? state = null, CustomResourceOptions? options = null)
+ {
+ return new Schematic(name, id, state, options);
+ }
+ }
+
+ public sealed class SchematicArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The schematic yaml respresentation to generate the image.
+ ///
+ [Input("schematic")]
+ public Input? SchematicData { get; set; }
+
+ public SchematicArgs()
+ {
+ }
+ public static new SchematicArgs Empty => new SchematicArgs();
+ }
+
+ public sealed class SchematicState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The schematic yaml respresentation to generate the image.
+ ///
+ [Input("schematic")]
+ public Input? SchematicData { get; set; }
+
+ public SchematicState()
+ {
+ }
+ public static new SchematicState Empty => new SchematicState();
+ }
+}
diff --git a/sdk/dotnet/Machine/ConfigurationApply.cs b/sdk/dotnet/Machine/ConfigurationApply.cs
index e62236ca..8b37b2a7 100644
--- a/sdk/dotnet/Machine/ConfigurationApply.cs
+++ b/sdk/dotnet/Machine/ConfigurationApply.cs
@@ -58,6 +58,12 @@ public partial class ConfigurationApply : global::Pulumi.CustomResource
[Output("node")]
public Output Node { get; private set; } = null!;
+ ///
+ /// Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ ///
+ [Output("onDestroy")]
+ public Output OnDestroy { get; private set; } = null!;
+
[Output("timeouts")]
public Output Timeouts { get; private set; } = null!;
@@ -165,6 +171,12 @@ public Input? MachineConfigurationInput
[Input("node", required: true)]
public Input Node { get; set; } = null!;
+ ///
+ /// Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ ///
+ [Input("onDestroy")]
+ public Input? OnDestroy { get; set; }
+
[Input("timeouts")]
public Input? Timeouts { get; set; }
@@ -244,6 +256,12 @@ public Input? MachineConfigurationInput
[Input("node")]
public Input? Node { get; set; }
+ ///
+ /// Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ ///
+ [Input("onDestroy")]
+ public Input? OnDestroy { get; set; }
+
[Input("timeouts")]
public Input? Timeouts { get; set; }
diff --git a/sdk/dotnet/Machine/GetConfiguration.cs b/sdk/dotnet/Machine/GetConfiguration.cs
index ef5d3450..84cd0fb7 100644
--- a/sdk/dotnet/Machine/GetConfiguration.cs
+++ b/sdk/dotnet/Machine/GetConfiguration.cs
@@ -105,13 +105,13 @@ public List ConfigPatches
}
///
- /// Whether to generate documentation for the generated configuration
+ /// Whether to generate documentation for the generated configuration. Defaults to false
///
[Input("docs")]
public bool? Docs { get; set; }
///
- /// Whether to generate examples for the generated configuration
+ /// Whether to generate examples for the generated configuration. Defaults to false
///
[Input("examples")]
public bool? Examples { get; set; }
@@ -173,13 +173,13 @@ public InputList ConfigPatches
}
///
- /// Whether to generate documentation for the generated configuration
+ /// Whether to generate documentation for the generated configuration. Defaults to false
///
[Input("docs")]
public Input? Docs { get; set; }
///
- /// Whether to generate examples for the generated configuration
+ /// Whether to generate examples for the generated configuration. Defaults to false
///
[Input("examples")]
public Input? Examples { get; set; }
@@ -231,11 +231,11 @@ public sealed class GetConfigurationResult
///
public readonly ImmutableArray ConfigPatches;
///
- /// Whether to generate documentation for the generated configuration
+ /// Whether to generate documentation for the generated configuration. Defaults to false
///
public readonly bool? Docs;
///
- /// Whether to generate examples for the generated configuration
+ /// Whether to generate examples for the generated configuration. Defaults to false
///
public readonly bool? Examples;
///
diff --git a/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyArgs.cs b/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyArgs.cs
new file mode 100644
index 00000000..4afff7d9
--- /dev/null
+++ b/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyArgs.cs
@@ -0,0 +1,39 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Machine.Inputs
+{
+
+ public sealed class ConfigurationApplyOnDestroyArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ ///
+ [Input("graceful")]
+ public Input? Graceful { get; set; }
+
+ ///
+ /// Reboot indicates whether node should reboot or halt after resetting. Default false
+ ///
+ [Input("reboot")]
+ public Input? Reboot { get; set; }
+
+ ///
+ /// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ ///
+ [Input("reset")]
+ public Input? Reset { get; set; }
+
+ public ConfigurationApplyOnDestroyArgs()
+ {
+ }
+ public static new ConfigurationApplyOnDestroyArgs Empty => new ConfigurationApplyOnDestroyArgs();
+ }
+}
diff --git a/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyGetArgs.cs b/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyGetArgs.cs
new file mode 100644
index 00000000..853a87b3
--- /dev/null
+++ b/sdk/dotnet/Machine/Inputs/ConfigurationApplyOnDestroyGetArgs.cs
@@ -0,0 +1,39 @@
+// *** 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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Machine.Inputs
+{
+
+ public sealed class ConfigurationApplyOnDestroyGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ ///
+ [Input("graceful")]
+ public Input? Graceful { get; set; }
+
+ ///
+ /// Reboot indicates whether node should reboot or halt after resetting. Default false
+ ///
+ [Input("reboot")]
+ public Input? Reboot { get; set; }
+
+ ///
+ /// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ ///
+ [Input("reset")]
+ public Input? Reset { get; set; }
+
+ public ConfigurationApplyOnDestroyGetArgs()
+ {
+ }
+ public static new ConfigurationApplyOnDestroyGetArgs Empty => new ConfigurationApplyOnDestroyGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Machine/Inputs/TimeoutArgs.cs b/sdk/dotnet/Machine/Inputs/TimeoutArgs.cs
index 3517d5ce..3071ecb8 100644
--- a/sdk/dotnet/Machine/Inputs/TimeoutArgs.cs
+++ b/sdk/dotnet/Machine/Inputs/TimeoutArgs.cs
@@ -19,6 +19,12 @@ public sealed class TimeoutArgs : global::Pulumi.ResourceArgs
[Input("create")]
public Input? Create { get; set; }
+ ///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ ///
+ [Input("delete")]
+ public Input? Delete { get; set; }
+
///
/// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
///
diff --git a/sdk/dotnet/Machine/Inputs/TimeoutGetArgs.cs b/sdk/dotnet/Machine/Inputs/TimeoutGetArgs.cs
index 5f169615..ccf9b17e 100644
--- a/sdk/dotnet/Machine/Inputs/TimeoutGetArgs.cs
+++ b/sdk/dotnet/Machine/Inputs/TimeoutGetArgs.cs
@@ -19,6 +19,12 @@ public sealed class TimeoutGetArgs : global::Pulumi.ResourceArgs
[Input("create")]
public Input? Create { get; set; }
+ ///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ ///
+ [Input("delete")]
+ public Input? Delete { get; set; }
+
///
/// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
///
diff --git a/sdk/dotnet/Machine/Outputs/ConfigurationApplyOnDestroy.cs b/sdk/dotnet/Machine/Outputs/ConfigurationApplyOnDestroy.cs
new file mode 100644
index 00000000..49186697
--- /dev/null
+++ b/sdk/dotnet/Machine/Outputs/ConfigurationApplyOnDestroy.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;
+using Pulumi;
+
+namespace Pulumiverse.Talos.Machine.Outputs
+{
+
+ [OutputType]
+ public sealed class ConfigurationApplyOnDestroy
+ {
+ ///
+ /// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ ///
+ public readonly bool? Graceful;
+ ///
+ /// Reboot indicates whether node should reboot or halt after resetting. Default false
+ ///
+ public readonly bool? Reboot;
+ ///
+ /// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ ///
+ public readonly bool? Reset;
+
+ [OutputConstructor]
+ private ConfigurationApplyOnDestroy(
+ bool? graceful,
+
+ bool? reboot,
+
+ bool? reset)
+ {
+ Graceful = graceful;
+ Reboot = reboot;
+ Reset = reset;
+ }
+ }
+}
diff --git a/sdk/dotnet/Machine/Outputs/Timeout.cs b/sdk/dotnet/Machine/Outputs/Timeout.cs
index 9ddb31bd..5a615e4e 100644
--- a/sdk/dotnet/Machine/Outputs/Timeout.cs
+++ b/sdk/dotnet/Machine/Outputs/Timeout.cs
@@ -19,6 +19,10 @@ public sealed class Timeout
///
public readonly string? Create;
///
+ /// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ ///
+ public readonly string? Delete;
+ ///
/// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
///
public readonly string? Update;
@@ -27,9 +31,12 @@ public sealed class Timeout
private Timeout(
string? create,
+ string? delete,
+
string? update)
{
Create = create;
+ Delete = delete;
Update = update;
}
}
diff --git a/sdk/dotnet/Provider.cs b/sdk/dotnet/Provider.cs
index f4a09825..cba175e7 100644
--- a/sdk/dotnet/Provider.cs
+++ b/sdk/dotnet/Provider.cs
@@ -19,6 +19,13 @@ namespace Pulumiverse.Talos
[TalosResourceType("pulumi:providers:talos")]
public partial class Provider : global::Pulumi.ProviderResource
{
+ ///
+ /// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ ///
+ [Output("imageFactoryUrl")]
+ public Output ImageFactoryUrl { get; private set; } = null!;
+
+
///
/// Create a Provider resource with the given unique name, arguments, and options.
///
@@ -47,6 +54,12 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions?
public sealed class ProviderArgs : global::Pulumi.ResourceArgs
{
+ ///
+ /// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ ///
+ [Input("imageFactoryUrl")]
+ public Input? ImageFactoryUrl { get; set; }
+
public ProviderArgs()
{
}
diff --git a/sdk/go.mod b/sdk/go.mod
index 23a21878..b6be3aee 100644
--- a/sdk/go.mod
+++ b/sdk/go.mod
@@ -64,6 +64,7 @@ require (
github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/skeema/knownhosts v1.2.2 // indirect
+ github.com/spf13/cast v1.4.1 // indirect
github.com/spf13/cobra v1.7.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
diff --git a/sdk/go.sum b/sdk/go.sum
index 99ae7b56..53d1012c 100644
--- a/sdk/go.sum
+++ b/sdk/go.sum
@@ -168,6 +168,8 @@ github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A=
github.com/skeema/knownhosts v1.2.2/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo=
+github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=
+github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
diff --git a/sdk/go/talos/cluster/getHealth.go b/sdk/go/talos/cluster/getHealth.go
index 79fb2484..499c766a 100644
--- a/sdk/go/talos/cluster/getHealth.go
+++ b/sdk/go/talos/cluster/getHealth.go
@@ -11,7 +11,7 @@ import (
"github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
)
-// Checks the health of a Talos cluster
+// Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.
func GetHealth(ctx *pulumi.Context, args *GetHealthArgs, opts ...pulumi.InvokeOption) (*GetHealthResult, error) {
opts = internal.PkgInvokeDefaultOpts(opts)
var rv GetHealthResult
@@ -29,8 +29,10 @@ type GetHealthArgs struct {
// List of control plane nodes to check for health.
ControlPlaneNodes []string `pulumi:"controlPlaneNodes"`
// endpoints to use for the health check client. Use at least one control plane endpoint.
- Endpoints []string `pulumi:"endpoints"`
- Timeouts *GetHealthTimeouts `pulumi:"timeouts"`
+ Endpoints []string `pulumi:"endpoints"`
+ // Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ SkipKubernetesChecks *bool `pulumi:"skipKubernetesChecks"`
+ Timeouts *GetHealthTimeouts `pulumi:"timeouts"`
// List of worker nodes to check for health.
WorkerNodes []string `pulumi:"workerNodes"`
}
@@ -44,8 +46,10 @@ type GetHealthResult struct {
// endpoints to use for the health check client. Use at least one control plane endpoint.
Endpoints []string `pulumi:"endpoints"`
// The ID of this resource.
- Id string `pulumi:"id"`
- Timeouts *GetHealthTimeouts `pulumi:"timeouts"`
+ Id string `pulumi:"id"`
+ // Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ SkipKubernetesChecks *bool `pulumi:"skipKubernetesChecks"`
+ Timeouts *GetHealthTimeouts `pulumi:"timeouts"`
// List of worker nodes to check for health.
WorkerNodes []string `pulumi:"workerNodes"`
}
@@ -76,8 +80,10 @@ type GetHealthOutputArgs struct {
// List of control plane nodes to check for health.
ControlPlaneNodes pulumi.StringArrayInput `pulumi:"controlPlaneNodes"`
// endpoints to use for the health check client. Use at least one control plane endpoint.
- Endpoints pulumi.StringArrayInput `pulumi:"endpoints"`
- Timeouts GetHealthTimeoutsPtrInput `pulumi:"timeouts"`
+ Endpoints pulumi.StringArrayInput `pulumi:"endpoints"`
+ // Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ SkipKubernetesChecks pulumi.BoolPtrInput `pulumi:"skipKubernetesChecks"`
+ Timeouts GetHealthTimeoutsPtrInput `pulumi:"timeouts"`
// List of worker nodes to check for health.
WorkerNodes pulumi.StringArrayInput `pulumi:"workerNodes"`
}
@@ -121,6 +127,11 @@ func (o GetHealthResultOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v GetHealthResult) string { return v.Id }).(pulumi.StringOutput)
}
+// Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+func (o GetHealthResultOutput) SkipKubernetesChecks() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v GetHealthResult) *bool { return v.SkipKubernetesChecks }).(pulumi.BoolPtrOutput)
+}
+
func (o GetHealthResultOutput) Timeouts() GetHealthTimeoutsPtrOutput {
return o.ApplyT(func(v GetHealthResult) *GetHealthTimeouts { return v.Timeouts }).(GetHealthTimeoutsPtrOutput)
}
diff --git a/sdk/go/talos/cluster/getKubeconfig.go b/sdk/go/talos/cluster/getKubeconfig.go
index 415db714..2425e062 100644
--- a/sdk/go/talos/cluster/getKubeconfig.go
+++ b/sdk/go/talos/cluster/getKubeconfig.go
@@ -12,9 +12,9 @@ import (
)
// Retrieves the kubeconfig for a Talos cluster
-func GetKubeconfig(ctx *pulumi.Context, args *GetKubeconfigArgs, opts ...pulumi.InvokeOption) (*GetKubeconfigResult, error) {
+func LookupKubeconfig(ctx *pulumi.Context, args *LookupKubeconfigArgs, opts ...pulumi.InvokeOption) (*LookupKubeconfigResult, error) {
opts = internal.PkgInvokeDefaultOpts(opts)
- var rv GetKubeconfigResult
+ var rv LookupKubeconfigResult
err := ctx.Invoke("talos:cluster/getKubeconfig:getKubeconfig", args, &rv, opts...)
if err != nil {
return nil, err
@@ -23,7 +23,7 @@ func GetKubeconfig(ctx *pulumi.Context, args *GetKubeconfigArgs, opts ...pulumi.
}
// A collection of arguments for invoking getKubeconfig.
-type GetKubeconfigArgs struct {
+type LookupKubeconfigArgs struct {
// The client configuration data
ClientConfiguration GetKubeconfigClientConfiguration `pulumi:"clientConfiguration"`
// endpoint to use for the talosclient. If not set, the node value will be used
@@ -38,7 +38,7 @@ type GetKubeconfigArgs struct {
}
// A collection of values returned by getKubeconfig.
-type GetKubeconfigResult struct {
+type LookupKubeconfigResult struct {
// The client configuration data
ClientConfiguration GetKubeconfigClientConfiguration `pulumi:"clientConfiguration"`
// endpoint to use for the talosclient. If not set, the node value will be used
@@ -58,27 +58,27 @@ type GetKubeconfigResult struct {
Wait *bool `pulumi:"wait"`
}
-func GetKubeconfigOutput(ctx *pulumi.Context, args GetKubeconfigOutputArgs, opts ...pulumi.InvokeOption) GetKubeconfigResultOutput {
+func LookupKubeconfigOutput(ctx *pulumi.Context, args LookupKubeconfigOutputArgs, opts ...pulumi.InvokeOption) LookupKubeconfigResultOutput {
return pulumi.ToOutputWithContext(context.Background(), args).
- ApplyT(func(v interface{}) (GetKubeconfigResultOutput, error) {
- args := v.(GetKubeconfigArgs)
+ ApplyT(func(v interface{}) (LookupKubeconfigResultOutput, error) {
+ args := v.(LookupKubeconfigArgs)
opts = internal.PkgInvokeDefaultOpts(opts)
- var rv GetKubeconfigResult
+ var rv LookupKubeconfigResult
secret, err := ctx.InvokePackageRaw("talos:cluster/getKubeconfig:getKubeconfig", args, &rv, "", opts...)
if err != nil {
- return GetKubeconfigResultOutput{}, err
+ return LookupKubeconfigResultOutput{}, err
}
- output := pulumi.ToOutput(rv).(GetKubeconfigResultOutput)
+ output := pulumi.ToOutput(rv).(LookupKubeconfigResultOutput)
if secret {
- return pulumi.ToSecret(output).(GetKubeconfigResultOutput), nil
+ return pulumi.ToSecret(output).(LookupKubeconfigResultOutput), nil
}
return output, nil
- }).(GetKubeconfigResultOutput)
+ }).(LookupKubeconfigResultOutput)
}
// A collection of arguments for invoking getKubeconfig.
-type GetKubeconfigOutputArgs struct {
+type LookupKubeconfigOutputArgs struct {
// The client configuration data
ClientConfiguration GetKubeconfigClientConfigurationInput `pulumi:"clientConfiguration"`
// endpoint to use for the talosclient. If not set, the node value will be used
@@ -92,68 +92,68 @@ type GetKubeconfigOutputArgs struct {
Wait pulumi.BoolPtrInput `pulumi:"wait"`
}
-func (GetKubeconfigOutputArgs) ElementType() reflect.Type {
- return reflect.TypeOf((*GetKubeconfigArgs)(nil)).Elem()
+func (LookupKubeconfigOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupKubeconfigArgs)(nil)).Elem()
}
// A collection of values returned by getKubeconfig.
-type GetKubeconfigResultOutput struct{ *pulumi.OutputState }
+type LookupKubeconfigResultOutput struct{ *pulumi.OutputState }
-func (GetKubeconfigResultOutput) ElementType() reflect.Type {
- return reflect.TypeOf((*GetKubeconfigResult)(nil)).Elem()
+func (LookupKubeconfigResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupKubeconfigResult)(nil)).Elem()
}
-func (o GetKubeconfigResultOutput) ToGetKubeconfigResultOutput() GetKubeconfigResultOutput {
+func (o LookupKubeconfigResultOutput) ToLookupKubeconfigResultOutput() LookupKubeconfigResultOutput {
return o
}
-func (o GetKubeconfigResultOutput) ToGetKubeconfigResultOutputWithContext(ctx context.Context) GetKubeconfigResultOutput {
+func (o LookupKubeconfigResultOutput) ToLookupKubeconfigResultOutputWithContext(ctx context.Context) LookupKubeconfigResultOutput {
return o
}
// The client configuration data
-func (o GetKubeconfigResultOutput) ClientConfiguration() GetKubeconfigClientConfigurationOutput {
- return o.ApplyT(func(v GetKubeconfigResult) GetKubeconfigClientConfiguration { return v.ClientConfiguration }).(GetKubeconfigClientConfigurationOutput)
+func (o LookupKubeconfigResultOutput) ClientConfiguration() GetKubeconfigClientConfigurationOutput {
+ return o.ApplyT(func(v LookupKubeconfigResult) GetKubeconfigClientConfiguration { return v.ClientConfiguration }).(GetKubeconfigClientConfigurationOutput)
}
// endpoint to use for the talosclient. If not set, the node value will be used
-func (o GetKubeconfigResultOutput) Endpoint() pulumi.StringOutput {
- return o.ApplyT(func(v GetKubeconfigResult) string { return v.Endpoint }).(pulumi.StringOutput)
+func (o LookupKubeconfigResultOutput) Endpoint() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupKubeconfigResult) string { return v.Endpoint }).(pulumi.StringOutput)
}
// The ID of this resource.
-func (o GetKubeconfigResultOutput) Id() pulumi.StringOutput {
- return o.ApplyT(func(v GetKubeconfigResult) string { return v.Id }).(pulumi.StringOutput)
+func (o LookupKubeconfigResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupKubeconfigResult) string { return v.Id }).(pulumi.StringOutput)
}
// The raw kubeconfig
-func (o GetKubeconfigResultOutput) KubeconfigRaw() pulumi.StringOutput {
- return o.ApplyT(func(v GetKubeconfigResult) string { return v.KubeconfigRaw }).(pulumi.StringOutput)
+func (o LookupKubeconfigResultOutput) KubeconfigRaw() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupKubeconfigResult) string { return v.KubeconfigRaw }).(pulumi.StringOutput)
}
// The kubernetes client configuration
-func (o GetKubeconfigResultOutput) KubernetesClientConfiguration() GetKubeconfigKubernetesClientConfigurationOutput {
- return o.ApplyT(func(v GetKubeconfigResult) GetKubeconfigKubernetesClientConfiguration {
+func (o LookupKubeconfigResultOutput) KubernetesClientConfiguration() GetKubeconfigKubernetesClientConfigurationOutput {
+ return o.ApplyT(func(v LookupKubeconfigResult) GetKubeconfigKubernetesClientConfiguration {
return v.KubernetesClientConfiguration
}).(GetKubeconfigKubernetesClientConfigurationOutput)
}
// controlplane node to retrieve the kubeconfig from
-func (o GetKubeconfigResultOutput) Node() pulumi.StringOutput {
- return o.ApplyT(func(v GetKubeconfigResult) string { return v.Node }).(pulumi.StringOutput)
+func (o LookupKubeconfigResultOutput) Node() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupKubeconfigResult) string { return v.Node }).(pulumi.StringOutput)
}
-func (o GetKubeconfigResultOutput) Timeouts() GetKubeconfigTimeoutsPtrOutput {
- return o.ApplyT(func(v GetKubeconfigResult) *GetKubeconfigTimeouts { return v.Timeouts }).(GetKubeconfigTimeoutsPtrOutput)
+func (o LookupKubeconfigResultOutput) Timeouts() GetKubeconfigTimeoutsPtrOutput {
+ return o.ApplyT(func(v LookupKubeconfigResult) *GetKubeconfigTimeouts { return v.Timeouts }).(GetKubeconfigTimeoutsPtrOutput)
}
// Wait for the kubernetes api to be available
//
// Deprecated: This attribute is deprecated and no-op. Will be removed in a future version. Use cluster.getHealth instead.
-func (o GetKubeconfigResultOutput) Wait() pulumi.BoolPtrOutput {
- return o.ApplyT(func(v GetKubeconfigResult) *bool { return v.Wait }).(pulumi.BoolPtrOutput)
+func (o LookupKubeconfigResultOutput) Wait() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v LookupKubeconfigResult) *bool { return v.Wait }).(pulumi.BoolPtrOutput)
}
func init() {
- pulumi.RegisterOutputType(GetKubeconfigResultOutput{})
+ pulumi.RegisterOutputType(LookupKubeconfigResultOutput{})
}
diff --git a/sdk/go/talos/cluster/init.go b/sdk/go/talos/cluster/init.go
new file mode 100644
index 00000000..ff00f2f2
--- /dev/null
+++ b/sdk/go/talos/cluster/init.go
@@ -0,0 +1,44 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package cluster
+
+import (
+ "fmt"
+
+ "github.com/blang/semver"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+type module struct {
+ version semver.Version
+}
+
+func (m *module) Version() semver.Version {
+ return m.version
+}
+
+func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) {
+ switch typ {
+ case "talos:cluster/kubeconfig:Kubeconfig":
+ r = &Kubeconfig{}
+ default:
+ return nil, fmt.Errorf("unknown resource type: %s", typ)
+ }
+
+ err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn))
+ return
+}
+
+func init() {
+ version, err := internal.PkgVersion()
+ if err != nil {
+ version = semver.Version{Major: 1}
+ }
+ pulumi.RegisterResourceModule(
+ "talos",
+ "cluster/kubeconfig",
+ &module{version},
+ )
+}
diff --git a/sdk/go/talos/cluster/kubeconfig.go b/sdk/go/talos/cluster/kubeconfig.go
new file mode 100644
index 00000000..1ffc1f3c
--- /dev/null
+++ b/sdk/go/talos/cluster/kubeconfig.go
@@ -0,0 +1,289 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package cluster
+
+import (
+ "context"
+ "reflect"
+
+ "errors"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+// Retrieves the kubeconfig for a Talos cluster
+type Kubeconfig struct {
+ pulumi.CustomResourceState
+
+ // The client configuration data
+ ClientConfiguration KubeconfigClientConfigurationOutput `pulumi:"clientConfiguration"`
+ // endpoint to use for the talosclient. If not set, the node value will be used
+ Endpoint pulumi.StringOutput `pulumi:"endpoint"`
+ // The raw kubeconfig
+ KubeconfigRaw pulumi.StringOutput `pulumi:"kubeconfigRaw"`
+ // The kubernetes client configuration
+ KubernetesClientConfiguration KubeconfigKubernetesClientConfigurationOutput `pulumi:"kubernetesClientConfiguration"`
+ // controlplane node to retrieve the kubeconfig from
+ Node pulumi.StringOutput `pulumi:"node"`
+ Timeouts KubeconfigTimeoutsPtrOutput `pulumi:"timeouts"`
+}
+
+// NewKubeconfig registers a new resource with the given unique name, arguments, and options.
+func NewKubeconfig(ctx *pulumi.Context,
+ name string, args *KubeconfigArgs, opts ...pulumi.ResourceOption) (*Kubeconfig, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.ClientConfiguration == nil {
+ return nil, errors.New("invalid value for required argument 'ClientConfiguration'")
+ }
+ if args.Node == nil {
+ return nil, errors.New("invalid value for required argument 'Node'")
+ }
+ secrets := pulumi.AdditionalSecretOutputs([]string{
+ "kubeconfigRaw",
+ })
+ opts = append(opts, secrets)
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource Kubeconfig
+ err := ctx.RegisterResource("talos:cluster/kubeconfig:Kubeconfig", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetKubeconfig gets an existing Kubeconfig resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetKubeconfig(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *KubeconfigState, opts ...pulumi.ResourceOption) (*Kubeconfig, error) {
+ var resource Kubeconfig
+ err := ctx.ReadResource("talos:cluster/kubeconfig:Kubeconfig", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering Kubeconfig resources.
+type kubeconfigState struct {
+ // The client configuration data
+ ClientConfiguration *KubeconfigClientConfiguration `pulumi:"clientConfiguration"`
+ // endpoint to use for the talosclient. If not set, the node value will be used
+ Endpoint *string `pulumi:"endpoint"`
+ // The raw kubeconfig
+ KubeconfigRaw *string `pulumi:"kubeconfigRaw"`
+ // The kubernetes client configuration
+ KubernetesClientConfiguration *KubeconfigKubernetesClientConfiguration `pulumi:"kubernetesClientConfiguration"`
+ // controlplane node to retrieve the kubeconfig from
+ Node *string `pulumi:"node"`
+ Timeouts *KubeconfigTimeouts `pulumi:"timeouts"`
+}
+
+type KubeconfigState struct {
+ // The client configuration data
+ ClientConfiguration KubeconfigClientConfigurationPtrInput
+ // endpoint to use for the talosclient. If not set, the node value will be used
+ Endpoint pulumi.StringPtrInput
+ // The raw kubeconfig
+ KubeconfigRaw pulumi.StringPtrInput
+ // The kubernetes client configuration
+ KubernetesClientConfiguration KubeconfigKubernetesClientConfigurationPtrInput
+ // controlplane node to retrieve the kubeconfig from
+ Node pulumi.StringPtrInput
+ Timeouts KubeconfigTimeoutsPtrInput
+}
+
+func (KubeconfigState) ElementType() reflect.Type {
+ return reflect.TypeOf((*kubeconfigState)(nil)).Elem()
+}
+
+type kubeconfigArgs struct {
+ // The client configuration data
+ ClientConfiguration KubeconfigClientConfiguration `pulumi:"clientConfiguration"`
+ // endpoint to use for the talosclient. If not set, the node value will be used
+ Endpoint *string `pulumi:"endpoint"`
+ // controlplane node to retrieve the kubeconfig from
+ Node string `pulumi:"node"`
+ Timeouts *KubeconfigTimeouts `pulumi:"timeouts"`
+}
+
+// The set of arguments for constructing a Kubeconfig resource.
+type KubeconfigArgs struct {
+ // The client configuration data
+ ClientConfiguration KubeconfigClientConfigurationInput
+ // endpoint to use for the talosclient. If not set, the node value will be used
+ Endpoint pulumi.StringPtrInput
+ // controlplane node to retrieve the kubeconfig from
+ Node pulumi.StringInput
+ Timeouts KubeconfigTimeoutsPtrInput
+}
+
+func (KubeconfigArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*kubeconfigArgs)(nil)).Elem()
+}
+
+type KubeconfigInput interface {
+ pulumi.Input
+
+ ToKubeconfigOutput() KubeconfigOutput
+ ToKubeconfigOutputWithContext(ctx context.Context) KubeconfigOutput
+}
+
+func (*Kubeconfig) ElementType() reflect.Type {
+ return reflect.TypeOf((**Kubeconfig)(nil)).Elem()
+}
+
+func (i *Kubeconfig) ToKubeconfigOutput() KubeconfigOutput {
+ return i.ToKubeconfigOutputWithContext(context.Background())
+}
+
+func (i *Kubeconfig) ToKubeconfigOutputWithContext(ctx context.Context) KubeconfigOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigOutput)
+}
+
+// KubeconfigArrayInput is an input type that accepts KubeconfigArray and KubeconfigArrayOutput values.
+// You can construct a concrete instance of `KubeconfigArrayInput` via:
+//
+// KubeconfigArray{ KubeconfigArgs{...} }
+type KubeconfigArrayInput interface {
+ pulumi.Input
+
+ ToKubeconfigArrayOutput() KubeconfigArrayOutput
+ ToKubeconfigArrayOutputWithContext(context.Context) KubeconfigArrayOutput
+}
+
+type KubeconfigArray []KubeconfigInput
+
+func (KubeconfigArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*Kubeconfig)(nil)).Elem()
+}
+
+func (i KubeconfigArray) ToKubeconfigArrayOutput() KubeconfigArrayOutput {
+ return i.ToKubeconfigArrayOutputWithContext(context.Background())
+}
+
+func (i KubeconfigArray) ToKubeconfigArrayOutputWithContext(ctx context.Context) KubeconfigArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigArrayOutput)
+}
+
+// KubeconfigMapInput is an input type that accepts KubeconfigMap and KubeconfigMapOutput values.
+// You can construct a concrete instance of `KubeconfigMapInput` via:
+//
+// KubeconfigMap{ "key": KubeconfigArgs{...} }
+type KubeconfigMapInput interface {
+ pulumi.Input
+
+ ToKubeconfigMapOutput() KubeconfigMapOutput
+ ToKubeconfigMapOutputWithContext(context.Context) KubeconfigMapOutput
+}
+
+type KubeconfigMap map[string]KubeconfigInput
+
+func (KubeconfigMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*Kubeconfig)(nil)).Elem()
+}
+
+func (i KubeconfigMap) ToKubeconfigMapOutput() KubeconfigMapOutput {
+ return i.ToKubeconfigMapOutputWithContext(context.Background())
+}
+
+func (i KubeconfigMap) ToKubeconfigMapOutputWithContext(ctx context.Context) KubeconfigMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigMapOutput)
+}
+
+type KubeconfigOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**Kubeconfig)(nil)).Elem()
+}
+
+func (o KubeconfigOutput) ToKubeconfigOutput() KubeconfigOutput {
+ return o
+}
+
+func (o KubeconfigOutput) ToKubeconfigOutputWithContext(ctx context.Context) KubeconfigOutput {
+ return o
+}
+
+// The client configuration data
+func (o KubeconfigOutput) ClientConfiguration() KubeconfigClientConfigurationOutput {
+ return o.ApplyT(func(v *Kubeconfig) KubeconfigClientConfigurationOutput { return v.ClientConfiguration }).(KubeconfigClientConfigurationOutput)
+}
+
+// endpoint to use for the talosclient. If not set, the node value will be used
+func (o KubeconfigOutput) Endpoint() pulumi.StringOutput {
+ return o.ApplyT(func(v *Kubeconfig) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
+}
+
+// The raw kubeconfig
+func (o KubeconfigOutput) KubeconfigRaw() pulumi.StringOutput {
+ return o.ApplyT(func(v *Kubeconfig) pulumi.StringOutput { return v.KubeconfigRaw }).(pulumi.StringOutput)
+}
+
+// The kubernetes client configuration
+func (o KubeconfigOutput) KubernetesClientConfiguration() KubeconfigKubernetesClientConfigurationOutput {
+ return o.ApplyT(func(v *Kubeconfig) KubeconfigKubernetesClientConfigurationOutput {
+ return v.KubernetesClientConfiguration
+ }).(KubeconfigKubernetesClientConfigurationOutput)
+}
+
+// controlplane node to retrieve the kubeconfig from
+func (o KubeconfigOutput) Node() pulumi.StringOutput {
+ return o.ApplyT(func(v *Kubeconfig) pulumi.StringOutput { return v.Node }).(pulumi.StringOutput)
+}
+
+func (o KubeconfigOutput) Timeouts() KubeconfigTimeoutsPtrOutput {
+ return o.ApplyT(func(v *Kubeconfig) KubeconfigTimeoutsPtrOutput { return v.Timeouts }).(KubeconfigTimeoutsPtrOutput)
+}
+
+type KubeconfigArrayOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*Kubeconfig)(nil)).Elem()
+}
+
+func (o KubeconfigArrayOutput) ToKubeconfigArrayOutput() KubeconfigArrayOutput {
+ return o
+}
+
+func (o KubeconfigArrayOutput) ToKubeconfigArrayOutputWithContext(ctx context.Context) KubeconfigArrayOutput {
+ return o
+}
+
+func (o KubeconfigArrayOutput) Index(i pulumi.IntInput) KubeconfigOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Kubeconfig {
+ return vs[0].([]*Kubeconfig)[vs[1].(int)]
+ }).(KubeconfigOutput)
+}
+
+type KubeconfigMapOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*Kubeconfig)(nil)).Elem()
+}
+
+func (o KubeconfigMapOutput) ToKubeconfigMapOutput() KubeconfigMapOutput {
+ return o
+}
+
+func (o KubeconfigMapOutput) ToKubeconfigMapOutputWithContext(ctx context.Context) KubeconfigMapOutput {
+ return o
+}
+
+func (o KubeconfigMapOutput) MapIndex(k pulumi.StringInput) KubeconfigOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Kubeconfig {
+ return vs[0].(map[string]*Kubeconfig)[vs[1].(string)]
+ }).(KubeconfigOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigInput)(nil)).Elem(), &Kubeconfig{})
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigArrayInput)(nil)).Elem(), KubeconfigArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigMapInput)(nil)).Elem(), KubeconfigMap{})
+ pulumi.RegisterOutputType(KubeconfigOutput{})
+ pulumi.RegisterOutputType(KubeconfigArrayOutput{})
+ pulumi.RegisterOutputType(KubeconfigMapOutput{})
+}
diff --git a/sdk/go/talos/cluster/pulumiTypes.go b/sdk/go/talos/cluster/pulumiTypes.go
index 93d3ff8a..26bc8a11 100644
--- a/sdk/go/talos/cluster/pulumiTypes.go
+++ b/sdk/go/talos/cluster/pulumiTypes.go
@@ -13,6 +13,531 @@ import (
var _ = internal.GetEnvOrDefault
+type KubeconfigClientConfiguration struct {
+ // The client CA certificate
+ CaCertificate string `pulumi:"caCertificate"`
+ // The client certificate
+ ClientCertificate string `pulumi:"clientCertificate"`
+ // The client key
+ ClientKey string `pulumi:"clientKey"`
+}
+
+// KubeconfigClientConfigurationInput is an input type that accepts KubeconfigClientConfigurationArgs and KubeconfigClientConfigurationOutput values.
+// You can construct a concrete instance of `KubeconfigClientConfigurationInput` via:
+//
+// KubeconfigClientConfigurationArgs{...}
+type KubeconfigClientConfigurationInput interface {
+ pulumi.Input
+
+ ToKubeconfigClientConfigurationOutput() KubeconfigClientConfigurationOutput
+ ToKubeconfigClientConfigurationOutputWithContext(context.Context) KubeconfigClientConfigurationOutput
+}
+
+type KubeconfigClientConfigurationArgs struct {
+ // The client CA certificate
+ CaCertificate pulumi.StringInput `pulumi:"caCertificate"`
+ // The client certificate
+ ClientCertificate pulumi.StringInput `pulumi:"clientCertificate"`
+ // The client key
+ ClientKey pulumi.StringInput `pulumi:"clientKey"`
+}
+
+func (KubeconfigClientConfigurationArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*KubeconfigClientConfiguration)(nil)).Elem()
+}
+
+func (i KubeconfigClientConfigurationArgs) ToKubeconfigClientConfigurationOutput() KubeconfigClientConfigurationOutput {
+ return i.ToKubeconfigClientConfigurationOutputWithContext(context.Background())
+}
+
+func (i KubeconfigClientConfigurationArgs) ToKubeconfigClientConfigurationOutputWithContext(ctx context.Context) KubeconfigClientConfigurationOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigClientConfigurationOutput)
+}
+
+func (i KubeconfigClientConfigurationArgs) ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput {
+ return i.ToKubeconfigClientConfigurationPtrOutputWithContext(context.Background())
+}
+
+func (i KubeconfigClientConfigurationArgs) ToKubeconfigClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigClientConfigurationPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigClientConfigurationOutput).ToKubeconfigClientConfigurationPtrOutputWithContext(ctx)
+}
+
+// KubeconfigClientConfigurationPtrInput is an input type that accepts KubeconfigClientConfigurationArgs, KubeconfigClientConfigurationPtr and KubeconfigClientConfigurationPtrOutput values.
+// You can construct a concrete instance of `KubeconfigClientConfigurationPtrInput` via:
+//
+// KubeconfigClientConfigurationArgs{...}
+//
+// or:
+//
+// nil
+type KubeconfigClientConfigurationPtrInput interface {
+ pulumi.Input
+
+ ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput
+ ToKubeconfigClientConfigurationPtrOutputWithContext(context.Context) KubeconfigClientConfigurationPtrOutput
+}
+
+type kubeconfigClientConfigurationPtrType KubeconfigClientConfigurationArgs
+
+func KubeconfigClientConfigurationPtr(v *KubeconfigClientConfigurationArgs) KubeconfigClientConfigurationPtrInput {
+ return (*kubeconfigClientConfigurationPtrType)(v)
+}
+
+func (*kubeconfigClientConfigurationPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**KubeconfigClientConfiguration)(nil)).Elem()
+}
+
+func (i *kubeconfigClientConfigurationPtrType) ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput {
+ return i.ToKubeconfigClientConfigurationPtrOutputWithContext(context.Background())
+}
+
+func (i *kubeconfigClientConfigurationPtrType) ToKubeconfigClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigClientConfigurationPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigClientConfigurationPtrOutput)
+}
+
+type KubeconfigClientConfigurationOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigClientConfigurationOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*KubeconfigClientConfiguration)(nil)).Elem()
+}
+
+func (o KubeconfigClientConfigurationOutput) ToKubeconfigClientConfigurationOutput() KubeconfigClientConfigurationOutput {
+ return o
+}
+
+func (o KubeconfigClientConfigurationOutput) ToKubeconfigClientConfigurationOutputWithContext(ctx context.Context) KubeconfigClientConfigurationOutput {
+ return o
+}
+
+func (o KubeconfigClientConfigurationOutput) ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput {
+ return o.ToKubeconfigClientConfigurationPtrOutputWithContext(context.Background())
+}
+
+func (o KubeconfigClientConfigurationOutput) ToKubeconfigClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigClientConfigurationPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v KubeconfigClientConfiguration) *KubeconfigClientConfiguration {
+ return &v
+ }).(KubeconfigClientConfigurationPtrOutput)
+}
+
+// The client CA certificate
+func (o KubeconfigClientConfigurationOutput) CaCertificate() pulumi.StringOutput {
+ return o.ApplyT(func(v KubeconfigClientConfiguration) string { return v.CaCertificate }).(pulumi.StringOutput)
+}
+
+// The client certificate
+func (o KubeconfigClientConfigurationOutput) ClientCertificate() pulumi.StringOutput {
+ return o.ApplyT(func(v KubeconfigClientConfiguration) string { return v.ClientCertificate }).(pulumi.StringOutput)
+}
+
+// The client key
+func (o KubeconfigClientConfigurationOutput) ClientKey() pulumi.StringOutput {
+ return o.ApplyT(func(v KubeconfigClientConfiguration) string { return v.ClientKey }).(pulumi.StringOutput)
+}
+
+type KubeconfigClientConfigurationPtrOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigClientConfigurationPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**KubeconfigClientConfiguration)(nil)).Elem()
+}
+
+func (o KubeconfigClientConfigurationPtrOutput) ToKubeconfigClientConfigurationPtrOutput() KubeconfigClientConfigurationPtrOutput {
+ return o
+}
+
+func (o KubeconfigClientConfigurationPtrOutput) ToKubeconfigClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigClientConfigurationPtrOutput {
+ return o
+}
+
+func (o KubeconfigClientConfigurationPtrOutput) Elem() KubeconfigClientConfigurationOutput {
+ return o.ApplyT(func(v *KubeconfigClientConfiguration) KubeconfigClientConfiguration {
+ if v != nil {
+ return *v
+ }
+ var ret KubeconfigClientConfiguration
+ return ret
+ }).(KubeconfigClientConfigurationOutput)
+}
+
+// The client CA certificate
+func (o KubeconfigClientConfigurationPtrOutput) CaCertificate() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigClientConfiguration) *string {
+ if v == nil {
+ return nil
+ }
+ return &v.CaCertificate
+ }).(pulumi.StringPtrOutput)
+}
+
+// The client certificate
+func (o KubeconfigClientConfigurationPtrOutput) ClientCertificate() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigClientConfiguration) *string {
+ if v == nil {
+ return nil
+ }
+ return &v.ClientCertificate
+ }).(pulumi.StringPtrOutput)
+}
+
+// The client key
+func (o KubeconfigClientConfigurationPtrOutput) ClientKey() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigClientConfiguration) *string {
+ if v == nil {
+ return nil
+ }
+ return &v.ClientKey
+ }).(pulumi.StringPtrOutput)
+}
+
+type KubeconfigKubernetesClientConfiguration struct {
+ // The kubernetes CA certificate
+ CaCertificate *string `pulumi:"caCertificate"`
+ // The kubernetes client certificate
+ ClientCertificate *string `pulumi:"clientCertificate"`
+ // The kubernetes client key
+ ClientKey *string `pulumi:"clientKey"`
+ // The kubernetes host
+ Host *string `pulumi:"host"`
+}
+
+// KubeconfigKubernetesClientConfigurationInput is an input type that accepts KubeconfigKubernetesClientConfigurationArgs and KubeconfigKubernetesClientConfigurationOutput values.
+// You can construct a concrete instance of `KubeconfigKubernetesClientConfigurationInput` via:
+//
+// KubeconfigKubernetesClientConfigurationArgs{...}
+type KubeconfigKubernetesClientConfigurationInput interface {
+ pulumi.Input
+
+ ToKubeconfigKubernetesClientConfigurationOutput() KubeconfigKubernetesClientConfigurationOutput
+ ToKubeconfigKubernetesClientConfigurationOutputWithContext(context.Context) KubeconfigKubernetesClientConfigurationOutput
+}
+
+type KubeconfigKubernetesClientConfigurationArgs struct {
+ // The kubernetes CA certificate
+ CaCertificate pulumi.StringPtrInput `pulumi:"caCertificate"`
+ // The kubernetes client certificate
+ ClientCertificate pulumi.StringPtrInput `pulumi:"clientCertificate"`
+ // The kubernetes client key
+ ClientKey pulumi.StringPtrInput `pulumi:"clientKey"`
+ // The kubernetes host
+ Host pulumi.StringPtrInput `pulumi:"host"`
+}
+
+func (KubeconfigKubernetesClientConfigurationArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*KubeconfigKubernetesClientConfiguration)(nil)).Elem()
+}
+
+func (i KubeconfigKubernetesClientConfigurationArgs) ToKubeconfigKubernetesClientConfigurationOutput() KubeconfigKubernetesClientConfigurationOutput {
+ return i.ToKubeconfigKubernetesClientConfigurationOutputWithContext(context.Background())
+}
+
+func (i KubeconfigKubernetesClientConfigurationArgs) ToKubeconfigKubernetesClientConfigurationOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigKubernetesClientConfigurationOutput)
+}
+
+func (i KubeconfigKubernetesClientConfigurationArgs) ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput {
+ return i.ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(context.Background())
+}
+
+func (i KubeconfigKubernetesClientConfigurationArgs) ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigKubernetesClientConfigurationOutput).ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx)
+}
+
+// KubeconfigKubernetesClientConfigurationPtrInput is an input type that accepts KubeconfigKubernetesClientConfigurationArgs, KubeconfigKubernetesClientConfigurationPtr and KubeconfigKubernetesClientConfigurationPtrOutput values.
+// You can construct a concrete instance of `KubeconfigKubernetesClientConfigurationPtrInput` via:
+//
+// KubeconfigKubernetesClientConfigurationArgs{...}
+//
+// or:
+//
+// nil
+type KubeconfigKubernetesClientConfigurationPtrInput interface {
+ pulumi.Input
+
+ ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput
+ ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(context.Context) KubeconfigKubernetesClientConfigurationPtrOutput
+}
+
+type kubeconfigKubernetesClientConfigurationPtrType KubeconfigKubernetesClientConfigurationArgs
+
+func KubeconfigKubernetesClientConfigurationPtr(v *KubeconfigKubernetesClientConfigurationArgs) KubeconfigKubernetesClientConfigurationPtrInput {
+ return (*kubeconfigKubernetesClientConfigurationPtrType)(v)
+}
+
+func (*kubeconfigKubernetesClientConfigurationPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**KubeconfigKubernetesClientConfiguration)(nil)).Elem()
+}
+
+func (i *kubeconfigKubernetesClientConfigurationPtrType) ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput {
+ return i.ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(context.Background())
+}
+
+func (i *kubeconfigKubernetesClientConfigurationPtrType) ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigKubernetesClientConfigurationPtrOutput)
+}
+
+type KubeconfigKubernetesClientConfigurationOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigKubernetesClientConfigurationOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*KubeconfigKubernetesClientConfiguration)(nil)).Elem()
+}
+
+func (o KubeconfigKubernetesClientConfigurationOutput) ToKubeconfigKubernetesClientConfigurationOutput() KubeconfigKubernetesClientConfigurationOutput {
+ return o
+}
+
+func (o KubeconfigKubernetesClientConfigurationOutput) ToKubeconfigKubernetesClientConfigurationOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationOutput {
+ return o
+}
+
+func (o KubeconfigKubernetesClientConfigurationOutput) ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput {
+ return o.ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(context.Background())
+}
+
+func (o KubeconfigKubernetesClientConfigurationOutput) ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v KubeconfigKubernetesClientConfiguration) *KubeconfigKubernetesClientConfiguration {
+ return &v
+ }).(KubeconfigKubernetesClientConfigurationPtrOutput)
+}
+
+// The kubernetes CA certificate
+func (o KubeconfigKubernetesClientConfigurationOutput) CaCertificate() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v KubeconfigKubernetesClientConfiguration) *string { return v.CaCertificate }).(pulumi.StringPtrOutput)
+}
+
+// The kubernetes client certificate
+func (o KubeconfigKubernetesClientConfigurationOutput) ClientCertificate() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v KubeconfigKubernetesClientConfiguration) *string { return v.ClientCertificate }).(pulumi.StringPtrOutput)
+}
+
+// The kubernetes client key
+func (o KubeconfigKubernetesClientConfigurationOutput) ClientKey() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v KubeconfigKubernetesClientConfiguration) *string { return v.ClientKey }).(pulumi.StringPtrOutput)
+}
+
+// The kubernetes host
+func (o KubeconfigKubernetesClientConfigurationOutput) Host() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v KubeconfigKubernetesClientConfiguration) *string { return v.Host }).(pulumi.StringPtrOutput)
+}
+
+type KubeconfigKubernetesClientConfigurationPtrOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigKubernetesClientConfigurationPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**KubeconfigKubernetesClientConfiguration)(nil)).Elem()
+}
+
+func (o KubeconfigKubernetesClientConfigurationPtrOutput) ToKubeconfigKubernetesClientConfigurationPtrOutput() KubeconfigKubernetesClientConfigurationPtrOutput {
+ return o
+}
+
+func (o KubeconfigKubernetesClientConfigurationPtrOutput) ToKubeconfigKubernetesClientConfigurationPtrOutputWithContext(ctx context.Context) KubeconfigKubernetesClientConfigurationPtrOutput {
+ return o
+}
+
+func (o KubeconfigKubernetesClientConfigurationPtrOutput) Elem() KubeconfigKubernetesClientConfigurationOutput {
+ return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) KubeconfigKubernetesClientConfiguration {
+ if v != nil {
+ return *v
+ }
+ var ret KubeconfigKubernetesClientConfiguration
+ return ret
+ }).(KubeconfigKubernetesClientConfigurationOutput)
+}
+
+// The kubernetes CA certificate
+func (o KubeconfigKubernetesClientConfigurationPtrOutput) CaCertificate() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) *string {
+ if v == nil {
+ return nil
+ }
+ return v.CaCertificate
+ }).(pulumi.StringPtrOutput)
+}
+
+// The kubernetes client certificate
+func (o KubeconfigKubernetesClientConfigurationPtrOutput) ClientCertificate() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) *string {
+ if v == nil {
+ return nil
+ }
+ return v.ClientCertificate
+ }).(pulumi.StringPtrOutput)
+}
+
+// The kubernetes client key
+func (o KubeconfigKubernetesClientConfigurationPtrOutput) ClientKey() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) *string {
+ if v == nil {
+ return nil
+ }
+ return v.ClientKey
+ }).(pulumi.StringPtrOutput)
+}
+
+// The kubernetes host
+func (o KubeconfigKubernetesClientConfigurationPtrOutput) Host() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigKubernetesClientConfiguration) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Host
+ }).(pulumi.StringPtrOutput)
+}
+
+type KubeconfigTimeouts struct {
+ // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ Create *string `pulumi:"create"`
+ // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ Update *string `pulumi:"update"`
+}
+
+// KubeconfigTimeoutsInput is an input type that accepts KubeconfigTimeoutsArgs and KubeconfigTimeoutsOutput values.
+// You can construct a concrete instance of `KubeconfigTimeoutsInput` via:
+//
+// KubeconfigTimeoutsArgs{...}
+type KubeconfigTimeoutsInput interface {
+ pulumi.Input
+
+ ToKubeconfigTimeoutsOutput() KubeconfigTimeoutsOutput
+ ToKubeconfigTimeoutsOutputWithContext(context.Context) KubeconfigTimeoutsOutput
+}
+
+type KubeconfigTimeoutsArgs struct {
+ // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ Create pulumi.StringPtrInput `pulumi:"create"`
+ // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ Update pulumi.StringPtrInput `pulumi:"update"`
+}
+
+func (KubeconfigTimeoutsArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*KubeconfigTimeouts)(nil)).Elem()
+}
+
+func (i KubeconfigTimeoutsArgs) ToKubeconfigTimeoutsOutput() KubeconfigTimeoutsOutput {
+ return i.ToKubeconfigTimeoutsOutputWithContext(context.Background())
+}
+
+func (i KubeconfigTimeoutsArgs) ToKubeconfigTimeoutsOutputWithContext(ctx context.Context) KubeconfigTimeoutsOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigTimeoutsOutput)
+}
+
+func (i KubeconfigTimeoutsArgs) ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput {
+ return i.ToKubeconfigTimeoutsPtrOutputWithContext(context.Background())
+}
+
+func (i KubeconfigTimeoutsArgs) ToKubeconfigTimeoutsPtrOutputWithContext(ctx context.Context) KubeconfigTimeoutsPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigTimeoutsOutput).ToKubeconfigTimeoutsPtrOutputWithContext(ctx)
+}
+
+// KubeconfigTimeoutsPtrInput is an input type that accepts KubeconfigTimeoutsArgs, KubeconfigTimeoutsPtr and KubeconfigTimeoutsPtrOutput values.
+// You can construct a concrete instance of `KubeconfigTimeoutsPtrInput` via:
+//
+// KubeconfigTimeoutsArgs{...}
+//
+// or:
+//
+// nil
+type KubeconfigTimeoutsPtrInput interface {
+ pulumi.Input
+
+ ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput
+ ToKubeconfigTimeoutsPtrOutputWithContext(context.Context) KubeconfigTimeoutsPtrOutput
+}
+
+type kubeconfigTimeoutsPtrType KubeconfigTimeoutsArgs
+
+func KubeconfigTimeoutsPtr(v *KubeconfigTimeoutsArgs) KubeconfigTimeoutsPtrInput {
+ return (*kubeconfigTimeoutsPtrType)(v)
+}
+
+func (*kubeconfigTimeoutsPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**KubeconfigTimeouts)(nil)).Elem()
+}
+
+func (i *kubeconfigTimeoutsPtrType) ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput {
+ return i.ToKubeconfigTimeoutsPtrOutputWithContext(context.Background())
+}
+
+func (i *kubeconfigTimeoutsPtrType) ToKubeconfigTimeoutsPtrOutputWithContext(ctx context.Context) KubeconfigTimeoutsPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(KubeconfigTimeoutsPtrOutput)
+}
+
+type KubeconfigTimeoutsOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigTimeoutsOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*KubeconfigTimeouts)(nil)).Elem()
+}
+
+func (o KubeconfigTimeoutsOutput) ToKubeconfigTimeoutsOutput() KubeconfigTimeoutsOutput {
+ return o
+}
+
+func (o KubeconfigTimeoutsOutput) ToKubeconfigTimeoutsOutputWithContext(ctx context.Context) KubeconfigTimeoutsOutput {
+ return o
+}
+
+func (o KubeconfigTimeoutsOutput) ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput {
+ return o.ToKubeconfigTimeoutsPtrOutputWithContext(context.Background())
+}
+
+func (o KubeconfigTimeoutsOutput) ToKubeconfigTimeoutsPtrOutputWithContext(ctx context.Context) KubeconfigTimeoutsPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v KubeconfigTimeouts) *KubeconfigTimeouts {
+ return &v
+ }).(KubeconfigTimeoutsPtrOutput)
+}
+
+// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+func (o KubeconfigTimeoutsOutput) Create() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v KubeconfigTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput)
+}
+
+// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+func (o KubeconfigTimeoutsOutput) Update() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v KubeconfigTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput)
+}
+
+type KubeconfigTimeoutsPtrOutput struct{ *pulumi.OutputState }
+
+func (KubeconfigTimeoutsPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**KubeconfigTimeouts)(nil)).Elem()
+}
+
+func (o KubeconfigTimeoutsPtrOutput) ToKubeconfigTimeoutsPtrOutput() KubeconfigTimeoutsPtrOutput {
+ return o
+}
+
+func (o KubeconfigTimeoutsPtrOutput) ToKubeconfigTimeoutsPtrOutputWithContext(ctx context.Context) KubeconfigTimeoutsPtrOutput {
+ return o
+}
+
+func (o KubeconfigTimeoutsPtrOutput) Elem() KubeconfigTimeoutsOutput {
+ return o.ApplyT(func(v *KubeconfigTimeouts) KubeconfigTimeouts {
+ if v != nil {
+ return *v
+ }
+ var ret KubeconfigTimeouts
+ return ret
+ }).(KubeconfigTimeoutsOutput)
+}
+
+// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+func (o KubeconfigTimeoutsPtrOutput) Create() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigTimeouts) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Create
+ }).(pulumi.StringPtrOutput)
+}
+
+// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+func (o KubeconfigTimeoutsPtrOutput) Update() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *KubeconfigTimeouts) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Update
+ }).(pulumi.StringPtrOutput)
+}
+
type GetHealthClientConfiguration struct {
// The client CA certificate
CaCertificate string `pulumi:"caCertificate"`
@@ -507,6 +1032,12 @@ func (o GetKubeconfigTimeoutsPtrOutput) Read() pulumi.StringPtrOutput {
}
func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigClientConfigurationInput)(nil)).Elem(), KubeconfigClientConfigurationArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigClientConfigurationPtrInput)(nil)).Elem(), KubeconfigClientConfigurationArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigKubernetesClientConfigurationInput)(nil)).Elem(), KubeconfigKubernetesClientConfigurationArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigKubernetesClientConfigurationPtrInput)(nil)).Elem(), KubeconfigKubernetesClientConfigurationArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigTimeoutsInput)(nil)).Elem(), KubeconfigTimeoutsArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*KubeconfigTimeoutsPtrInput)(nil)).Elem(), KubeconfigTimeoutsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetHealthClientConfigurationInput)(nil)).Elem(), GetHealthClientConfigurationArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetHealthTimeoutsInput)(nil)).Elem(), GetHealthTimeoutsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetHealthTimeoutsPtrInput)(nil)).Elem(), GetHealthTimeoutsArgs{})
@@ -514,6 +1045,12 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*GetKubeconfigKubernetesClientConfigurationInput)(nil)).Elem(), GetKubeconfigKubernetesClientConfigurationArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetKubeconfigTimeoutsInput)(nil)).Elem(), GetKubeconfigTimeoutsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetKubeconfigTimeoutsPtrInput)(nil)).Elem(), GetKubeconfigTimeoutsArgs{})
+ pulumi.RegisterOutputType(KubeconfigClientConfigurationOutput{})
+ pulumi.RegisterOutputType(KubeconfigClientConfigurationPtrOutput{})
+ pulumi.RegisterOutputType(KubeconfigKubernetesClientConfigurationOutput{})
+ pulumi.RegisterOutputType(KubeconfigKubernetesClientConfigurationPtrOutput{})
+ pulumi.RegisterOutputType(KubeconfigTimeoutsOutput{})
+ pulumi.RegisterOutputType(KubeconfigTimeoutsPtrOutput{})
pulumi.RegisterOutputType(GetHealthClientConfigurationOutput{})
pulumi.RegisterOutputType(GetHealthTimeoutsOutput{})
pulumi.RegisterOutputType(GetHealthTimeoutsPtrOutput{})
diff --git a/sdk/go/talos/config/config.go b/sdk/go/talos/config/config.go
new file mode 100644
index 00000000..061dabe6
--- /dev/null
+++ b/sdk/go/talos/config/config.go
@@ -0,0 +1,17 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package config
+
+import (
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+var _ = internal.GetEnvOrDefault
+
+// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+func GetImageFactoryUrl(ctx *pulumi.Context) string {
+ return config.Get(ctx, "talos:imageFactoryUrl")
+}
diff --git a/sdk/go/talos/imagefactory/getExtensionsVersions.go b/sdk/go/talos/imagefactory/getExtensionsVersions.go
new file mode 100644
index 00000000..e94e6072
--- /dev/null
+++ b/sdk/go/talos/imagefactory/getExtensionsVersions.go
@@ -0,0 +1,145 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package imagefactory
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+// The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.
+//
+// ## Example Usage
+//
+// ```go
+// package main
+//
+// import (
+//
+// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+// "github.com/pulumiverse/pulumi-talos/sdk/go/talos/imageFactory"
+//
+// )
+//
+// func main() {
+// pulumi.Run(func(ctx *pulumi.Context) error {
+// _, err := imageFactory.GetExtensionsVersions(ctx, &imagefactory.GetExtensionsVersionsArgs{
+// TalosVersion: "v1.7.5",
+// Filters: imagefactory.GetExtensionsVersionsFilters{
+// Names: []string{
+// "amdgpu",
+// "tailscale",
+// },
+// },
+// }, nil)
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+func GetExtensionsVersions(ctx *pulumi.Context, args *GetExtensionsVersionsArgs, opts ...pulumi.InvokeOption) (*GetExtensionsVersionsResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv GetExtensionsVersionsResult
+ err := ctx.Invoke("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getExtensionsVersions.
+type GetExtensionsVersionsArgs struct {
+ // The filter to apply to the extensions list.
+ Filters *GetExtensionsVersionsFilters `pulumi:"filters"`
+ // The talos version to get extensions for.
+ TalosVersion string `pulumi:"talosVersion"`
+}
+
+// A collection of values returned by getExtensionsVersions.
+type GetExtensionsVersionsResult struct {
+ // The list of available extensions for the specified talos version.
+ ExtensionsInfos []GetExtensionsVersionsExtensionsInfo `pulumi:"extensionsInfos"`
+ // The filter to apply to the extensions list.
+ Filters *GetExtensionsVersionsFilters `pulumi:"filters"`
+ // The ID of this resource.
+ Id string `pulumi:"id"`
+ // The talos version to get extensions for.
+ TalosVersion string `pulumi:"talosVersion"`
+}
+
+func GetExtensionsVersionsOutput(ctx *pulumi.Context, args GetExtensionsVersionsOutputArgs, opts ...pulumi.InvokeOption) GetExtensionsVersionsResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (GetExtensionsVersionsResultOutput, error) {
+ args := v.(GetExtensionsVersionsArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv GetExtensionsVersionsResult
+ secret, err := ctx.InvokePackageRaw("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", args, &rv, "", opts...)
+ if err != nil {
+ return GetExtensionsVersionsResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(GetExtensionsVersionsResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(GetExtensionsVersionsResultOutput), nil
+ }
+ return output, nil
+ }).(GetExtensionsVersionsResultOutput)
+}
+
+// A collection of arguments for invoking getExtensionsVersions.
+type GetExtensionsVersionsOutputArgs struct {
+ // The filter to apply to the extensions list.
+ Filters GetExtensionsVersionsFiltersPtrInput `pulumi:"filters"`
+ // The talos version to get extensions for.
+ TalosVersion pulumi.StringInput `pulumi:"talosVersion"`
+}
+
+func (GetExtensionsVersionsOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetExtensionsVersionsArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getExtensionsVersions.
+type GetExtensionsVersionsResultOutput struct{ *pulumi.OutputState }
+
+func (GetExtensionsVersionsResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetExtensionsVersionsResult)(nil)).Elem()
+}
+
+func (o GetExtensionsVersionsResultOutput) ToGetExtensionsVersionsResultOutput() GetExtensionsVersionsResultOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsResultOutput) ToGetExtensionsVersionsResultOutputWithContext(ctx context.Context) GetExtensionsVersionsResultOutput {
+ return o
+}
+
+// The list of available extensions for the specified talos version.
+func (o GetExtensionsVersionsResultOutput) ExtensionsInfos() GetExtensionsVersionsExtensionsInfoArrayOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsResult) []GetExtensionsVersionsExtensionsInfo { return v.ExtensionsInfos }).(GetExtensionsVersionsExtensionsInfoArrayOutput)
+}
+
+// The filter to apply to the extensions list.
+func (o GetExtensionsVersionsResultOutput) Filters() GetExtensionsVersionsFiltersPtrOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsResult) *GetExtensionsVersionsFilters { return v.Filters }).(GetExtensionsVersionsFiltersPtrOutput)
+}
+
+// The ID of this resource.
+func (o GetExtensionsVersionsResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+// The talos version to get extensions for.
+func (o GetExtensionsVersionsResultOutput) TalosVersion() pulumi.StringOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsResult) string { return v.TalosVersion }).(pulumi.StringOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(GetExtensionsVersionsResultOutput{})
+}
diff --git a/sdk/go/talos/imagefactory/getOverlaysVersions.go b/sdk/go/talos/imagefactory/getOverlaysVersions.go
new file mode 100644
index 00000000..3d098615
--- /dev/null
+++ b/sdk/go/talos/imagefactory/getOverlaysVersions.go
@@ -0,0 +1,142 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package imagefactory
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+// The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.
+//
+// ## Example Usage
+//
+// ```go
+// package main
+//
+// import (
+//
+// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+// "github.com/pulumiverse/pulumi-talos/sdk/go/talos/imageFactory"
+//
+// )
+//
+// func main() {
+// pulumi.Run(func(ctx *pulumi.Context) error {
+// _, err := imageFactory.GetOverlaysVersions(ctx, &imagefactory.GetOverlaysVersionsArgs{
+// TalosVersion: "v1.7.5",
+// Filters: imagefactory.GetOverlaysVersionsFilters{
+// Name: pulumi.StringRef("rock4cplus"),
+// },
+// }, nil)
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+func GetOverlaysVersions(ctx *pulumi.Context, args *GetOverlaysVersionsArgs, opts ...pulumi.InvokeOption) (*GetOverlaysVersionsResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv GetOverlaysVersionsResult
+ err := ctx.Invoke("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getOverlaysVersions.
+type GetOverlaysVersionsArgs struct {
+ // The filter to apply to the overlays list.
+ Filters *GetOverlaysVersionsFilters `pulumi:"filters"`
+ // The talos version to get overlays for.
+ TalosVersion string `pulumi:"talosVersion"`
+}
+
+// A collection of values returned by getOverlaysVersions.
+type GetOverlaysVersionsResult struct {
+ // The filter to apply to the overlays list.
+ Filters *GetOverlaysVersionsFilters `pulumi:"filters"`
+ // The ID of this resource.
+ Id string `pulumi:"id"`
+ // The list of available extensions for the specified talos version.
+ OverlaysInfos []GetOverlaysVersionsOverlaysInfo `pulumi:"overlaysInfos"`
+ // The talos version to get overlays for.
+ TalosVersion string `pulumi:"talosVersion"`
+}
+
+func GetOverlaysVersionsOutput(ctx *pulumi.Context, args GetOverlaysVersionsOutputArgs, opts ...pulumi.InvokeOption) GetOverlaysVersionsResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (GetOverlaysVersionsResultOutput, error) {
+ args := v.(GetOverlaysVersionsArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv GetOverlaysVersionsResult
+ secret, err := ctx.InvokePackageRaw("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", args, &rv, "", opts...)
+ if err != nil {
+ return GetOverlaysVersionsResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(GetOverlaysVersionsResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(GetOverlaysVersionsResultOutput), nil
+ }
+ return output, nil
+ }).(GetOverlaysVersionsResultOutput)
+}
+
+// A collection of arguments for invoking getOverlaysVersions.
+type GetOverlaysVersionsOutputArgs struct {
+ // The filter to apply to the overlays list.
+ Filters GetOverlaysVersionsFiltersPtrInput `pulumi:"filters"`
+ // The talos version to get overlays for.
+ TalosVersion pulumi.StringInput `pulumi:"talosVersion"`
+}
+
+func (GetOverlaysVersionsOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetOverlaysVersionsArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getOverlaysVersions.
+type GetOverlaysVersionsResultOutput struct{ *pulumi.OutputState }
+
+func (GetOverlaysVersionsResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetOverlaysVersionsResult)(nil)).Elem()
+}
+
+func (o GetOverlaysVersionsResultOutput) ToGetOverlaysVersionsResultOutput() GetOverlaysVersionsResultOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsResultOutput) ToGetOverlaysVersionsResultOutputWithContext(ctx context.Context) GetOverlaysVersionsResultOutput {
+ return o
+}
+
+// The filter to apply to the overlays list.
+func (o GetOverlaysVersionsResultOutput) Filters() GetOverlaysVersionsFiltersPtrOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsResult) *GetOverlaysVersionsFilters { return v.Filters }).(GetOverlaysVersionsFiltersPtrOutput)
+}
+
+// The ID of this resource.
+func (o GetOverlaysVersionsResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+// The list of available extensions for the specified talos version.
+func (o GetOverlaysVersionsResultOutput) OverlaysInfos() GetOverlaysVersionsOverlaysInfoArrayOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsResult) []GetOverlaysVersionsOverlaysInfo { return v.OverlaysInfos }).(GetOverlaysVersionsOverlaysInfoArrayOutput)
+}
+
+// The talos version to get overlays for.
+func (o GetOverlaysVersionsResultOutput) TalosVersion() pulumi.StringOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsResult) string { return v.TalosVersion }).(pulumi.StringOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(GetOverlaysVersionsResultOutput{})
+}
diff --git a/sdk/go/talos/imagefactory/getUrls.go b/sdk/go/talos/imagefactory/getUrls.go
new file mode 100644
index 00000000..f2f8b634
--- /dev/null
+++ b/sdk/go/talos/imagefactory/getUrls.go
@@ -0,0 +1,122 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package imagefactory
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+// Generates URLs for different assets supported by the Talos image factory.
+func GetUrls(ctx *pulumi.Context, args *GetUrlsArgs, opts ...pulumi.InvokeOption) (*GetUrlsResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv GetUrlsResult
+ err := ctx.Invoke("talos:imageFactory/getUrls:getUrls", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getUrls.
+type GetUrlsArgs struct {
+ Architecture *string `pulumi:"architecture"`
+ Platform *string `pulumi:"platform"`
+ Sbc *string `pulumi:"sbc"`
+ SchematicId string `pulumi:"schematicId"`
+ TalosVersion string `pulumi:"talosVersion"`
+}
+
+// A collection of values returned by getUrls.
+type GetUrlsResult struct {
+ Architecture string `pulumi:"architecture"`
+ Id string `pulumi:"id"`
+ Platform *string `pulumi:"platform"`
+ Sbc *string `pulumi:"sbc"`
+ SchematicId string `pulumi:"schematicId"`
+ TalosVersion string `pulumi:"talosVersion"`
+ Urls GetUrlsUrls `pulumi:"urls"`
+}
+
+func GetUrlsOutput(ctx *pulumi.Context, args GetUrlsOutputArgs, opts ...pulumi.InvokeOption) GetUrlsResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (GetUrlsResultOutput, error) {
+ args := v.(GetUrlsArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv GetUrlsResult
+ secret, err := ctx.InvokePackageRaw("talos:imageFactory/getUrls:getUrls", args, &rv, "", opts...)
+ if err != nil {
+ return GetUrlsResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(GetUrlsResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(GetUrlsResultOutput), nil
+ }
+ return output, nil
+ }).(GetUrlsResultOutput)
+}
+
+// A collection of arguments for invoking getUrls.
+type GetUrlsOutputArgs struct {
+ Architecture pulumi.StringPtrInput `pulumi:"architecture"`
+ Platform pulumi.StringPtrInput `pulumi:"platform"`
+ Sbc pulumi.StringPtrInput `pulumi:"sbc"`
+ SchematicId pulumi.StringInput `pulumi:"schematicId"`
+ TalosVersion pulumi.StringInput `pulumi:"talosVersion"`
+}
+
+func (GetUrlsOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetUrlsArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getUrls.
+type GetUrlsResultOutput struct{ *pulumi.OutputState }
+
+func (GetUrlsResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetUrlsResult)(nil)).Elem()
+}
+
+func (o GetUrlsResultOutput) ToGetUrlsResultOutput() GetUrlsResultOutput {
+ return o
+}
+
+func (o GetUrlsResultOutput) ToGetUrlsResultOutputWithContext(ctx context.Context) GetUrlsResultOutput {
+ return o
+}
+
+func (o GetUrlsResultOutput) Architecture() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsResult) string { return v.Architecture }).(pulumi.StringOutput)
+}
+
+func (o GetUrlsResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+func (o GetUrlsResultOutput) Platform() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v GetUrlsResult) *string { return v.Platform }).(pulumi.StringPtrOutput)
+}
+
+func (o GetUrlsResultOutput) Sbc() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v GetUrlsResult) *string { return v.Sbc }).(pulumi.StringPtrOutput)
+}
+
+func (o GetUrlsResultOutput) SchematicId() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsResult) string { return v.SchematicId }).(pulumi.StringOutput)
+}
+
+func (o GetUrlsResultOutput) TalosVersion() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsResult) string { return v.TalosVersion }).(pulumi.StringOutput)
+}
+
+func (o GetUrlsResultOutput) Urls() GetUrlsUrlsOutput {
+ return o.ApplyT(func(v GetUrlsResult) GetUrlsUrls { return v.Urls }).(GetUrlsUrlsOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(GetUrlsResultOutput{})
+}
diff --git a/sdk/go/talos/imagefactory/getVersions.go b/sdk/go/talos/imagefactory/getVersions.go
new file mode 100644
index 00000000..50940418
--- /dev/null
+++ b/sdk/go/talos/imagefactory/getVersions.go
@@ -0,0 +1,102 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package imagefactory
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+// The image factory versions data source provides a list of available talos versions from the image factory.
+func GetVersions(ctx *pulumi.Context, args *GetVersionsArgs, opts ...pulumi.InvokeOption) (*GetVersionsResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv GetVersionsResult
+ err := ctx.Invoke("talos:imageFactory/getVersions:getVersions", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getVersions.
+type GetVersionsArgs struct {
+ // The filter to apply to the overlays list.
+ Filters *GetVersionsFilters `pulumi:"filters"`
+}
+
+// A collection of values returned by getVersions.
+type GetVersionsResult struct {
+ // The filter to apply to the overlays list.
+ Filters *GetVersionsFilters `pulumi:"filters"`
+ // The ID of this resource.
+ Id string `pulumi:"id"`
+ // The list of available talos versions.
+ TalosVersions []string `pulumi:"talosVersions"`
+}
+
+func GetVersionsOutput(ctx *pulumi.Context, args GetVersionsOutputArgs, opts ...pulumi.InvokeOption) GetVersionsResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (GetVersionsResultOutput, error) {
+ args := v.(GetVersionsArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv GetVersionsResult
+ secret, err := ctx.InvokePackageRaw("talos:imageFactory/getVersions:getVersions", args, &rv, "", opts...)
+ if err != nil {
+ return GetVersionsResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(GetVersionsResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(GetVersionsResultOutput), nil
+ }
+ return output, nil
+ }).(GetVersionsResultOutput)
+}
+
+// A collection of arguments for invoking getVersions.
+type GetVersionsOutputArgs struct {
+ // The filter to apply to the overlays list.
+ Filters GetVersionsFiltersPtrInput `pulumi:"filters"`
+}
+
+func (GetVersionsOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetVersionsArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getVersions.
+type GetVersionsResultOutput struct{ *pulumi.OutputState }
+
+func (GetVersionsResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetVersionsResult)(nil)).Elem()
+}
+
+func (o GetVersionsResultOutput) ToGetVersionsResultOutput() GetVersionsResultOutput {
+ return o
+}
+
+func (o GetVersionsResultOutput) ToGetVersionsResultOutputWithContext(ctx context.Context) GetVersionsResultOutput {
+ return o
+}
+
+// The filter to apply to the overlays list.
+func (o GetVersionsResultOutput) Filters() GetVersionsFiltersPtrOutput {
+ return o.ApplyT(func(v GetVersionsResult) *GetVersionsFilters { return v.Filters }).(GetVersionsFiltersPtrOutput)
+}
+
+// The ID of this resource.
+func (o GetVersionsResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v GetVersionsResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+// The list of available talos versions.
+func (o GetVersionsResultOutput) TalosVersions() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v GetVersionsResult) []string { return v.TalosVersions }).(pulumi.StringArrayOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(GetVersionsResultOutput{})
+}
diff --git a/sdk/go/talos/imagefactory/init.go b/sdk/go/talos/imagefactory/init.go
new file mode 100644
index 00000000..ae913ea2
--- /dev/null
+++ b/sdk/go/talos/imagefactory/init.go
@@ -0,0 +1,44 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package imagefactory
+
+import (
+ "fmt"
+
+ "github.com/blang/semver"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+type module struct {
+ version semver.Version
+}
+
+func (m *module) Version() semver.Version {
+ return m.version
+}
+
+func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) {
+ switch typ {
+ case "talos:imageFactory/schematic:Schematic":
+ r = &Schematic{}
+ default:
+ return nil, fmt.Errorf("unknown resource type: %s", typ)
+ }
+
+ err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn))
+ return
+}
+
+func init() {
+ version, err := internal.PkgVersion()
+ if err != nil {
+ version = semver.Version{Major: 1}
+ }
+ pulumi.RegisterResourceModule(
+ "talos",
+ "imageFactory/schematic",
+ &module{version},
+ )
+}
diff --git a/sdk/go/talos/imagefactory/pulumiTypes.go b/sdk/go/talos/imagefactory/pulumiTypes.go
new file mode 100644
index 00000000..e5fe5b95
--- /dev/null
+++ b/sdk/go/talos/imagefactory/pulumiTypes.go
@@ -0,0 +1,822 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package imagefactory
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+var _ = internal.GetEnvOrDefault
+
+type GetExtensionsVersionsExtensionsInfo struct {
+ Author string `pulumi:"author"`
+ Description string `pulumi:"description"`
+ Digest string `pulumi:"digest"`
+ Name string `pulumi:"name"`
+ Ref string `pulumi:"ref"`
+}
+
+// GetExtensionsVersionsExtensionsInfoInput is an input type that accepts GetExtensionsVersionsExtensionsInfoArgs and GetExtensionsVersionsExtensionsInfoOutput values.
+// You can construct a concrete instance of `GetExtensionsVersionsExtensionsInfoInput` via:
+//
+// GetExtensionsVersionsExtensionsInfoArgs{...}
+type GetExtensionsVersionsExtensionsInfoInput interface {
+ pulumi.Input
+
+ ToGetExtensionsVersionsExtensionsInfoOutput() GetExtensionsVersionsExtensionsInfoOutput
+ ToGetExtensionsVersionsExtensionsInfoOutputWithContext(context.Context) GetExtensionsVersionsExtensionsInfoOutput
+}
+
+type GetExtensionsVersionsExtensionsInfoArgs struct {
+ Author pulumi.StringInput `pulumi:"author"`
+ Description pulumi.StringInput `pulumi:"description"`
+ Digest pulumi.StringInput `pulumi:"digest"`
+ Name pulumi.StringInput `pulumi:"name"`
+ Ref pulumi.StringInput `pulumi:"ref"`
+}
+
+func (GetExtensionsVersionsExtensionsInfoArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetExtensionsVersionsExtensionsInfo)(nil)).Elem()
+}
+
+func (i GetExtensionsVersionsExtensionsInfoArgs) ToGetExtensionsVersionsExtensionsInfoOutput() GetExtensionsVersionsExtensionsInfoOutput {
+ return i.ToGetExtensionsVersionsExtensionsInfoOutputWithContext(context.Background())
+}
+
+func (i GetExtensionsVersionsExtensionsInfoArgs) ToGetExtensionsVersionsExtensionsInfoOutputWithContext(ctx context.Context) GetExtensionsVersionsExtensionsInfoOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsExtensionsInfoOutput)
+}
+
+// GetExtensionsVersionsExtensionsInfoArrayInput is an input type that accepts GetExtensionsVersionsExtensionsInfoArray and GetExtensionsVersionsExtensionsInfoArrayOutput values.
+// You can construct a concrete instance of `GetExtensionsVersionsExtensionsInfoArrayInput` via:
+//
+// GetExtensionsVersionsExtensionsInfoArray{ GetExtensionsVersionsExtensionsInfoArgs{...} }
+type GetExtensionsVersionsExtensionsInfoArrayInput interface {
+ pulumi.Input
+
+ ToGetExtensionsVersionsExtensionsInfoArrayOutput() GetExtensionsVersionsExtensionsInfoArrayOutput
+ ToGetExtensionsVersionsExtensionsInfoArrayOutputWithContext(context.Context) GetExtensionsVersionsExtensionsInfoArrayOutput
+}
+
+type GetExtensionsVersionsExtensionsInfoArray []GetExtensionsVersionsExtensionsInfoInput
+
+func (GetExtensionsVersionsExtensionsInfoArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetExtensionsVersionsExtensionsInfo)(nil)).Elem()
+}
+
+func (i GetExtensionsVersionsExtensionsInfoArray) ToGetExtensionsVersionsExtensionsInfoArrayOutput() GetExtensionsVersionsExtensionsInfoArrayOutput {
+ return i.ToGetExtensionsVersionsExtensionsInfoArrayOutputWithContext(context.Background())
+}
+
+func (i GetExtensionsVersionsExtensionsInfoArray) ToGetExtensionsVersionsExtensionsInfoArrayOutputWithContext(ctx context.Context) GetExtensionsVersionsExtensionsInfoArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsExtensionsInfoArrayOutput)
+}
+
+type GetExtensionsVersionsExtensionsInfoOutput struct{ *pulumi.OutputState }
+
+func (GetExtensionsVersionsExtensionsInfoOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetExtensionsVersionsExtensionsInfo)(nil)).Elem()
+}
+
+func (o GetExtensionsVersionsExtensionsInfoOutput) ToGetExtensionsVersionsExtensionsInfoOutput() GetExtensionsVersionsExtensionsInfoOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsExtensionsInfoOutput) ToGetExtensionsVersionsExtensionsInfoOutputWithContext(ctx context.Context) GetExtensionsVersionsExtensionsInfoOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsExtensionsInfoOutput) Author() pulumi.StringOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Author }).(pulumi.StringOutput)
+}
+
+func (o GetExtensionsVersionsExtensionsInfoOutput) Description() pulumi.StringOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Description }).(pulumi.StringOutput)
+}
+
+func (o GetExtensionsVersionsExtensionsInfoOutput) Digest() pulumi.StringOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Digest }).(pulumi.StringOutput)
+}
+
+func (o GetExtensionsVersionsExtensionsInfoOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Name }).(pulumi.StringOutput)
+}
+
+func (o GetExtensionsVersionsExtensionsInfoOutput) Ref() pulumi.StringOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsExtensionsInfo) string { return v.Ref }).(pulumi.StringOutput)
+}
+
+type GetExtensionsVersionsExtensionsInfoArrayOutput struct{ *pulumi.OutputState }
+
+func (GetExtensionsVersionsExtensionsInfoArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetExtensionsVersionsExtensionsInfo)(nil)).Elem()
+}
+
+func (o GetExtensionsVersionsExtensionsInfoArrayOutput) ToGetExtensionsVersionsExtensionsInfoArrayOutput() GetExtensionsVersionsExtensionsInfoArrayOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsExtensionsInfoArrayOutput) ToGetExtensionsVersionsExtensionsInfoArrayOutputWithContext(ctx context.Context) GetExtensionsVersionsExtensionsInfoArrayOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsExtensionsInfoArrayOutput) Index(i pulumi.IntInput) GetExtensionsVersionsExtensionsInfoOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetExtensionsVersionsExtensionsInfo {
+ return vs[0].([]GetExtensionsVersionsExtensionsInfo)[vs[1].(int)]
+ }).(GetExtensionsVersionsExtensionsInfoOutput)
+}
+
+type GetExtensionsVersionsFilters struct {
+ // The name of the extension to filter by.
+ Names []string `pulumi:"names"`
+}
+
+// GetExtensionsVersionsFiltersInput is an input type that accepts GetExtensionsVersionsFiltersArgs and GetExtensionsVersionsFiltersOutput values.
+// You can construct a concrete instance of `GetExtensionsVersionsFiltersInput` via:
+//
+// GetExtensionsVersionsFiltersArgs{...}
+type GetExtensionsVersionsFiltersInput interface {
+ pulumi.Input
+
+ ToGetExtensionsVersionsFiltersOutput() GetExtensionsVersionsFiltersOutput
+ ToGetExtensionsVersionsFiltersOutputWithContext(context.Context) GetExtensionsVersionsFiltersOutput
+}
+
+type GetExtensionsVersionsFiltersArgs struct {
+ // The name of the extension to filter by.
+ Names pulumi.StringArrayInput `pulumi:"names"`
+}
+
+func (GetExtensionsVersionsFiltersArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetExtensionsVersionsFilters)(nil)).Elem()
+}
+
+func (i GetExtensionsVersionsFiltersArgs) ToGetExtensionsVersionsFiltersOutput() GetExtensionsVersionsFiltersOutput {
+ return i.ToGetExtensionsVersionsFiltersOutputWithContext(context.Background())
+}
+
+func (i GetExtensionsVersionsFiltersArgs) ToGetExtensionsVersionsFiltersOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsFiltersOutput)
+}
+
+func (i GetExtensionsVersionsFiltersArgs) ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput {
+ return i.ToGetExtensionsVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (i GetExtensionsVersionsFiltersArgs) ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsFiltersOutput).ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx)
+}
+
+// GetExtensionsVersionsFiltersPtrInput is an input type that accepts GetExtensionsVersionsFiltersArgs, GetExtensionsVersionsFiltersPtr and GetExtensionsVersionsFiltersPtrOutput values.
+// You can construct a concrete instance of `GetExtensionsVersionsFiltersPtrInput` via:
+//
+// GetExtensionsVersionsFiltersArgs{...}
+//
+// or:
+//
+// nil
+type GetExtensionsVersionsFiltersPtrInput interface {
+ pulumi.Input
+
+ ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput
+ ToGetExtensionsVersionsFiltersPtrOutputWithContext(context.Context) GetExtensionsVersionsFiltersPtrOutput
+}
+
+type getExtensionsVersionsFiltersPtrType GetExtensionsVersionsFiltersArgs
+
+func GetExtensionsVersionsFiltersPtr(v *GetExtensionsVersionsFiltersArgs) GetExtensionsVersionsFiltersPtrInput {
+ return (*getExtensionsVersionsFiltersPtrType)(v)
+}
+
+func (*getExtensionsVersionsFiltersPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**GetExtensionsVersionsFilters)(nil)).Elem()
+}
+
+func (i *getExtensionsVersionsFiltersPtrType) ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput {
+ return i.ToGetExtensionsVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (i *getExtensionsVersionsFiltersPtrType) ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetExtensionsVersionsFiltersPtrOutput)
+}
+
+type GetExtensionsVersionsFiltersOutput struct{ *pulumi.OutputState }
+
+func (GetExtensionsVersionsFiltersOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetExtensionsVersionsFilters)(nil)).Elem()
+}
+
+func (o GetExtensionsVersionsFiltersOutput) ToGetExtensionsVersionsFiltersOutput() GetExtensionsVersionsFiltersOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsFiltersOutput) ToGetExtensionsVersionsFiltersOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsFiltersOutput) ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput {
+ return o.ToGetExtensionsVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (o GetExtensionsVersionsFiltersOutput) ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v GetExtensionsVersionsFilters) *GetExtensionsVersionsFilters {
+ return &v
+ }).(GetExtensionsVersionsFiltersPtrOutput)
+}
+
+// The name of the extension to filter by.
+func (o GetExtensionsVersionsFiltersOutput) Names() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v GetExtensionsVersionsFilters) []string { return v.Names }).(pulumi.StringArrayOutput)
+}
+
+type GetExtensionsVersionsFiltersPtrOutput struct{ *pulumi.OutputState }
+
+func (GetExtensionsVersionsFiltersPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**GetExtensionsVersionsFilters)(nil)).Elem()
+}
+
+func (o GetExtensionsVersionsFiltersPtrOutput) ToGetExtensionsVersionsFiltersPtrOutput() GetExtensionsVersionsFiltersPtrOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsFiltersPtrOutput) ToGetExtensionsVersionsFiltersPtrOutputWithContext(ctx context.Context) GetExtensionsVersionsFiltersPtrOutput {
+ return o
+}
+
+func (o GetExtensionsVersionsFiltersPtrOutput) Elem() GetExtensionsVersionsFiltersOutput {
+ return o.ApplyT(func(v *GetExtensionsVersionsFilters) GetExtensionsVersionsFilters {
+ if v != nil {
+ return *v
+ }
+ var ret GetExtensionsVersionsFilters
+ return ret
+ }).(GetExtensionsVersionsFiltersOutput)
+}
+
+// The name of the extension to filter by.
+func (o GetExtensionsVersionsFiltersPtrOutput) Names() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v *GetExtensionsVersionsFilters) []string {
+ if v == nil {
+ return nil
+ }
+ return v.Names
+ }).(pulumi.StringArrayOutput)
+}
+
+type GetOverlaysVersionsFilters struct {
+ // The name of the overlay to filter by.
+ Name *string `pulumi:"name"`
+}
+
+// GetOverlaysVersionsFiltersInput is an input type that accepts GetOverlaysVersionsFiltersArgs and GetOverlaysVersionsFiltersOutput values.
+// You can construct a concrete instance of `GetOverlaysVersionsFiltersInput` via:
+//
+// GetOverlaysVersionsFiltersArgs{...}
+type GetOverlaysVersionsFiltersInput interface {
+ pulumi.Input
+
+ ToGetOverlaysVersionsFiltersOutput() GetOverlaysVersionsFiltersOutput
+ ToGetOverlaysVersionsFiltersOutputWithContext(context.Context) GetOverlaysVersionsFiltersOutput
+}
+
+type GetOverlaysVersionsFiltersArgs struct {
+ // The name of the overlay to filter by.
+ Name pulumi.StringPtrInput `pulumi:"name"`
+}
+
+func (GetOverlaysVersionsFiltersArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetOverlaysVersionsFilters)(nil)).Elem()
+}
+
+func (i GetOverlaysVersionsFiltersArgs) ToGetOverlaysVersionsFiltersOutput() GetOverlaysVersionsFiltersOutput {
+ return i.ToGetOverlaysVersionsFiltersOutputWithContext(context.Background())
+}
+
+func (i GetOverlaysVersionsFiltersArgs) ToGetOverlaysVersionsFiltersOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsFiltersOutput)
+}
+
+func (i GetOverlaysVersionsFiltersArgs) ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput {
+ return i.ToGetOverlaysVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (i GetOverlaysVersionsFiltersArgs) ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsFiltersOutput).ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx)
+}
+
+// GetOverlaysVersionsFiltersPtrInput is an input type that accepts GetOverlaysVersionsFiltersArgs, GetOverlaysVersionsFiltersPtr and GetOverlaysVersionsFiltersPtrOutput values.
+// You can construct a concrete instance of `GetOverlaysVersionsFiltersPtrInput` via:
+//
+// GetOverlaysVersionsFiltersArgs{...}
+//
+// or:
+//
+// nil
+type GetOverlaysVersionsFiltersPtrInput interface {
+ pulumi.Input
+
+ ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput
+ ToGetOverlaysVersionsFiltersPtrOutputWithContext(context.Context) GetOverlaysVersionsFiltersPtrOutput
+}
+
+type getOverlaysVersionsFiltersPtrType GetOverlaysVersionsFiltersArgs
+
+func GetOverlaysVersionsFiltersPtr(v *GetOverlaysVersionsFiltersArgs) GetOverlaysVersionsFiltersPtrInput {
+ return (*getOverlaysVersionsFiltersPtrType)(v)
+}
+
+func (*getOverlaysVersionsFiltersPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**GetOverlaysVersionsFilters)(nil)).Elem()
+}
+
+func (i *getOverlaysVersionsFiltersPtrType) ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput {
+ return i.ToGetOverlaysVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (i *getOverlaysVersionsFiltersPtrType) ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsFiltersPtrOutput)
+}
+
+type GetOverlaysVersionsFiltersOutput struct{ *pulumi.OutputState }
+
+func (GetOverlaysVersionsFiltersOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetOverlaysVersionsFilters)(nil)).Elem()
+}
+
+func (o GetOverlaysVersionsFiltersOutput) ToGetOverlaysVersionsFiltersOutput() GetOverlaysVersionsFiltersOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsFiltersOutput) ToGetOverlaysVersionsFiltersOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsFiltersOutput) ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput {
+ return o.ToGetOverlaysVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (o GetOverlaysVersionsFiltersOutput) ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v GetOverlaysVersionsFilters) *GetOverlaysVersionsFilters {
+ return &v
+ }).(GetOverlaysVersionsFiltersPtrOutput)
+}
+
+// The name of the overlay to filter by.
+func (o GetOverlaysVersionsFiltersOutput) Name() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsFilters) *string { return v.Name }).(pulumi.StringPtrOutput)
+}
+
+type GetOverlaysVersionsFiltersPtrOutput struct{ *pulumi.OutputState }
+
+func (GetOverlaysVersionsFiltersPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**GetOverlaysVersionsFilters)(nil)).Elem()
+}
+
+func (o GetOverlaysVersionsFiltersPtrOutput) ToGetOverlaysVersionsFiltersPtrOutput() GetOverlaysVersionsFiltersPtrOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsFiltersPtrOutput) ToGetOverlaysVersionsFiltersPtrOutputWithContext(ctx context.Context) GetOverlaysVersionsFiltersPtrOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsFiltersPtrOutput) Elem() GetOverlaysVersionsFiltersOutput {
+ return o.ApplyT(func(v *GetOverlaysVersionsFilters) GetOverlaysVersionsFilters {
+ if v != nil {
+ return *v
+ }
+ var ret GetOverlaysVersionsFilters
+ return ret
+ }).(GetOverlaysVersionsFiltersOutput)
+}
+
+// The name of the overlay to filter by.
+func (o GetOverlaysVersionsFiltersPtrOutput) Name() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *GetOverlaysVersionsFilters) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Name
+ }).(pulumi.StringPtrOutput)
+}
+
+type GetOverlaysVersionsOverlaysInfo struct {
+ Digest string `pulumi:"digest"`
+ Image string `pulumi:"image"`
+ Name string `pulumi:"name"`
+ Ref string `pulumi:"ref"`
+}
+
+// GetOverlaysVersionsOverlaysInfoInput is an input type that accepts GetOverlaysVersionsOverlaysInfoArgs and GetOverlaysVersionsOverlaysInfoOutput values.
+// You can construct a concrete instance of `GetOverlaysVersionsOverlaysInfoInput` via:
+//
+// GetOverlaysVersionsOverlaysInfoArgs{...}
+type GetOverlaysVersionsOverlaysInfoInput interface {
+ pulumi.Input
+
+ ToGetOverlaysVersionsOverlaysInfoOutput() GetOverlaysVersionsOverlaysInfoOutput
+ ToGetOverlaysVersionsOverlaysInfoOutputWithContext(context.Context) GetOverlaysVersionsOverlaysInfoOutput
+}
+
+type GetOverlaysVersionsOverlaysInfoArgs struct {
+ Digest pulumi.StringInput `pulumi:"digest"`
+ Image pulumi.StringInput `pulumi:"image"`
+ Name pulumi.StringInput `pulumi:"name"`
+ Ref pulumi.StringInput `pulumi:"ref"`
+}
+
+func (GetOverlaysVersionsOverlaysInfoArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetOverlaysVersionsOverlaysInfo)(nil)).Elem()
+}
+
+func (i GetOverlaysVersionsOverlaysInfoArgs) ToGetOverlaysVersionsOverlaysInfoOutput() GetOverlaysVersionsOverlaysInfoOutput {
+ return i.ToGetOverlaysVersionsOverlaysInfoOutputWithContext(context.Background())
+}
+
+func (i GetOverlaysVersionsOverlaysInfoArgs) ToGetOverlaysVersionsOverlaysInfoOutputWithContext(ctx context.Context) GetOverlaysVersionsOverlaysInfoOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsOverlaysInfoOutput)
+}
+
+// GetOverlaysVersionsOverlaysInfoArrayInput is an input type that accepts GetOverlaysVersionsOverlaysInfoArray and GetOverlaysVersionsOverlaysInfoArrayOutput values.
+// You can construct a concrete instance of `GetOverlaysVersionsOverlaysInfoArrayInput` via:
+//
+// GetOverlaysVersionsOverlaysInfoArray{ GetOverlaysVersionsOverlaysInfoArgs{...} }
+type GetOverlaysVersionsOverlaysInfoArrayInput interface {
+ pulumi.Input
+
+ ToGetOverlaysVersionsOverlaysInfoArrayOutput() GetOverlaysVersionsOverlaysInfoArrayOutput
+ ToGetOverlaysVersionsOverlaysInfoArrayOutputWithContext(context.Context) GetOverlaysVersionsOverlaysInfoArrayOutput
+}
+
+type GetOverlaysVersionsOverlaysInfoArray []GetOverlaysVersionsOverlaysInfoInput
+
+func (GetOverlaysVersionsOverlaysInfoArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetOverlaysVersionsOverlaysInfo)(nil)).Elem()
+}
+
+func (i GetOverlaysVersionsOverlaysInfoArray) ToGetOverlaysVersionsOverlaysInfoArrayOutput() GetOverlaysVersionsOverlaysInfoArrayOutput {
+ return i.ToGetOverlaysVersionsOverlaysInfoArrayOutputWithContext(context.Background())
+}
+
+func (i GetOverlaysVersionsOverlaysInfoArray) ToGetOverlaysVersionsOverlaysInfoArrayOutputWithContext(ctx context.Context) GetOverlaysVersionsOverlaysInfoArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetOverlaysVersionsOverlaysInfoArrayOutput)
+}
+
+type GetOverlaysVersionsOverlaysInfoOutput struct{ *pulumi.OutputState }
+
+func (GetOverlaysVersionsOverlaysInfoOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetOverlaysVersionsOverlaysInfo)(nil)).Elem()
+}
+
+func (o GetOverlaysVersionsOverlaysInfoOutput) ToGetOverlaysVersionsOverlaysInfoOutput() GetOverlaysVersionsOverlaysInfoOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsOverlaysInfoOutput) ToGetOverlaysVersionsOverlaysInfoOutputWithContext(ctx context.Context) GetOverlaysVersionsOverlaysInfoOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsOverlaysInfoOutput) Digest() pulumi.StringOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsOverlaysInfo) string { return v.Digest }).(pulumi.StringOutput)
+}
+
+func (o GetOverlaysVersionsOverlaysInfoOutput) Image() pulumi.StringOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsOverlaysInfo) string { return v.Image }).(pulumi.StringOutput)
+}
+
+func (o GetOverlaysVersionsOverlaysInfoOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsOverlaysInfo) string { return v.Name }).(pulumi.StringOutput)
+}
+
+func (o GetOverlaysVersionsOverlaysInfoOutput) Ref() pulumi.StringOutput {
+ return o.ApplyT(func(v GetOverlaysVersionsOverlaysInfo) string { return v.Ref }).(pulumi.StringOutput)
+}
+
+type GetOverlaysVersionsOverlaysInfoArrayOutput struct{ *pulumi.OutputState }
+
+func (GetOverlaysVersionsOverlaysInfoArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetOverlaysVersionsOverlaysInfo)(nil)).Elem()
+}
+
+func (o GetOverlaysVersionsOverlaysInfoArrayOutput) ToGetOverlaysVersionsOverlaysInfoArrayOutput() GetOverlaysVersionsOverlaysInfoArrayOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsOverlaysInfoArrayOutput) ToGetOverlaysVersionsOverlaysInfoArrayOutputWithContext(ctx context.Context) GetOverlaysVersionsOverlaysInfoArrayOutput {
+ return o
+}
+
+func (o GetOverlaysVersionsOverlaysInfoArrayOutput) Index(i pulumi.IntInput) GetOverlaysVersionsOverlaysInfoOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetOverlaysVersionsOverlaysInfo {
+ return vs[0].([]GetOverlaysVersionsOverlaysInfo)[vs[1].(int)]
+ }).(GetOverlaysVersionsOverlaysInfoOutput)
+}
+
+type GetUrlsUrls struct {
+ // The URL for the disk image.
+ DiskImage string `pulumi:"diskImage"`
+ // The URL for the disk image with secure boot.
+ DiskImageSecureboot string `pulumi:"diskImageSecureboot"`
+ // The URL for the initramfs image.
+ Initramfs string `pulumi:"initramfs"`
+ // The URL for the installer image.
+ Installer string `pulumi:"installer"`
+ // The URL for the installer image with secure boot.
+ InstallerSecureboot string `pulumi:"installerSecureboot"`
+ // The URL for the ISO image.
+ Iso string `pulumi:"iso"`
+ // The URL for the ISO image with secure boot.
+ IsoSecureboot string `pulumi:"isoSecureboot"`
+ // The URL for the kernel image.
+ Kernel string `pulumi:"kernel"`
+ // The URL for the kernel command line.
+ KernelCommandLine string `pulumi:"kernelCommandLine"`
+ // The URL for the PXE image.
+ Pxe string `pulumi:"pxe"`
+ // The URL for the UKI image.
+ Uki string `pulumi:"uki"`
+}
+
+// GetUrlsUrlsInput is an input type that accepts GetUrlsUrlsArgs and GetUrlsUrlsOutput values.
+// You can construct a concrete instance of `GetUrlsUrlsInput` via:
+//
+// GetUrlsUrlsArgs{...}
+type GetUrlsUrlsInput interface {
+ pulumi.Input
+
+ ToGetUrlsUrlsOutput() GetUrlsUrlsOutput
+ ToGetUrlsUrlsOutputWithContext(context.Context) GetUrlsUrlsOutput
+}
+
+type GetUrlsUrlsArgs struct {
+ // The URL for the disk image.
+ DiskImage pulumi.StringInput `pulumi:"diskImage"`
+ // The URL for the disk image with secure boot.
+ DiskImageSecureboot pulumi.StringInput `pulumi:"diskImageSecureboot"`
+ // The URL for the initramfs image.
+ Initramfs pulumi.StringInput `pulumi:"initramfs"`
+ // The URL for the installer image.
+ Installer pulumi.StringInput `pulumi:"installer"`
+ // The URL for the installer image with secure boot.
+ InstallerSecureboot pulumi.StringInput `pulumi:"installerSecureboot"`
+ // The URL for the ISO image.
+ Iso pulumi.StringInput `pulumi:"iso"`
+ // The URL for the ISO image with secure boot.
+ IsoSecureboot pulumi.StringInput `pulumi:"isoSecureboot"`
+ // The URL for the kernel image.
+ Kernel pulumi.StringInput `pulumi:"kernel"`
+ // The URL for the kernel command line.
+ KernelCommandLine pulumi.StringInput `pulumi:"kernelCommandLine"`
+ // The URL for the PXE image.
+ Pxe pulumi.StringInput `pulumi:"pxe"`
+ // The URL for the UKI image.
+ Uki pulumi.StringInput `pulumi:"uki"`
+}
+
+func (GetUrlsUrlsArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetUrlsUrls)(nil)).Elem()
+}
+
+func (i GetUrlsUrlsArgs) ToGetUrlsUrlsOutput() GetUrlsUrlsOutput {
+ return i.ToGetUrlsUrlsOutputWithContext(context.Background())
+}
+
+func (i GetUrlsUrlsArgs) ToGetUrlsUrlsOutputWithContext(ctx context.Context) GetUrlsUrlsOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetUrlsUrlsOutput)
+}
+
+type GetUrlsUrlsOutput struct{ *pulumi.OutputState }
+
+func (GetUrlsUrlsOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetUrlsUrls)(nil)).Elem()
+}
+
+func (o GetUrlsUrlsOutput) ToGetUrlsUrlsOutput() GetUrlsUrlsOutput {
+ return o
+}
+
+func (o GetUrlsUrlsOutput) ToGetUrlsUrlsOutputWithContext(ctx context.Context) GetUrlsUrlsOutput {
+ return o
+}
+
+// The URL for the disk image.
+func (o GetUrlsUrlsOutput) DiskImage() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.DiskImage }).(pulumi.StringOutput)
+}
+
+// The URL for the disk image with secure boot.
+func (o GetUrlsUrlsOutput) DiskImageSecureboot() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.DiskImageSecureboot }).(pulumi.StringOutput)
+}
+
+// The URL for the initramfs image.
+func (o GetUrlsUrlsOutput) Initramfs() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.Initramfs }).(pulumi.StringOutput)
+}
+
+// The URL for the installer image.
+func (o GetUrlsUrlsOutput) Installer() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.Installer }).(pulumi.StringOutput)
+}
+
+// The URL for the installer image with secure boot.
+func (o GetUrlsUrlsOutput) InstallerSecureboot() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.InstallerSecureboot }).(pulumi.StringOutput)
+}
+
+// The URL for the ISO image.
+func (o GetUrlsUrlsOutput) Iso() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.Iso }).(pulumi.StringOutput)
+}
+
+// The URL for the ISO image with secure boot.
+func (o GetUrlsUrlsOutput) IsoSecureboot() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.IsoSecureboot }).(pulumi.StringOutput)
+}
+
+// The URL for the kernel image.
+func (o GetUrlsUrlsOutput) Kernel() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.Kernel }).(pulumi.StringOutput)
+}
+
+// The URL for the kernel command line.
+func (o GetUrlsUrlsOutput) KernelCommandLine() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.KernelCommandLine }).(pulumi.StringOutput)
+}
+
+// The URL for the PXE image.
+func (o GetUrlsUrlsOutput) Pxe() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.Pxe }).(pulumi.StringOutput)
+}
+
+// The URL for the UKI image.
+func (o GetUrlsUrlsOutput) Uki() pulumi.StringOutput {
+ return o.ApplyT(func(v GetUrlsUrls) string { return v.Uki }).(pulumi.StringOutput)
+}
+
+type GetVersionsFilters struct {
+ // If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ StableVersionsOnly *bool `pulumi:"stableVersionsOnly"`
+}
+
+// GetVersionsFiltersInput is an input type that accepts GetVersionsFiltersArgs and GetVersionsFiltersOutput values.
+// You can construct a concrete instance of `GetVersionsFiltersInput` via:
+//
+// GetVersionsFiltersArgs{...}
+type GetVersionsFiltersInput interface {
+ pulumi.Input
+
+ ToGetVersionsFiltersOutput() GetVersionsFiltersOutput
+ ToGetVersionsFiltersOutputWithContext(context.Context) GetVersionsFiltersOutput
+}
+
+type GetVersionsFiltersArgs struct {
+ // If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ StableVersionsOnly pulumi.BoolPtrInput `pulumi:"stableVersionsOnly"`
+}
+
+func (GetVersionsFiltersArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetVersionsFilters)(nil)).Elem()
+}
+
+func (i GetVersionsFiltersArgs) ToGetVersionsFiltersOutput() GetVersionsFiltersOutput {
+ return i.ToGetVersionsFiltersOutputWithContext(context.Background())
+}
+
+func (i GetVersionsFiltersArgs) ToGetVersionsFiltersOutputWithContext(ctx context.Context) GetVersionsFiltersOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetVersionsFiltersOutput)
+}
+
+func (i GetVersionsFiltersArgs) ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput {
+ return i.ToGetVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (i GetVersionsFiltersArgs) ToGetVersionsFiltersPtrOutputWithContext(ctx context.Context) GetVersionsFiltersPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetVersionsFiltersOutput).ToGetVersionsFiltersPtrOutputWithContext(ctx)
+}
+
+// GetVersionsFiltersPtrInput is an input type that accepts GetVersionsFiltersArgs, GetVersionsFiltersPtr and GetVersionsFiltersPtrOutput values.
+// You can construct a concrete instance of `GetVersionsFiltersPtrInput` via:
+//
+// GetVersionsFiltersArgs{...}
+//
+// or:
+//
+// nil
+type GetVersionsFiltersPtrInput interface {
+ pulumi.Input
+
+ ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput
+ ToGetVersionsFiltersPtrOutputWithContext(context.Context) GetVersionsFiltersPtrOutput
+}
+
+type getVersionsFiltersPtrType GetVersionsFiltersArgs
+
+func GetVersionsFiltersPtr(v *GetVersionsFiltersArgs) GetVersionsFiltersPtrInput {
+ return (*getVersionsFiltersPtrType)(v)
+}
+
+func (*getVersionsFiltersPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**GetVersionsFilters)(nil)).Elem()
+}
+
+func (i *getVersionsFiltersPtrType) ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput {
+ return i.ToGetVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (i *getVersionsFiltersPtrType) ToGetVersionsFiltersPtrOutputWithContext(ctx context.Context) GetVersionsFiltersPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetVersionsFiltersPtrOutput)
+}
+
+type GetVersionsFiltersOutput struct{ *pulumi.OutputState }
+
+func (GetVersionsFiltersOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetVersionsFilters)(nil)).Elem()
+}
+
+func (o GetVersionsFiltersOutput) ToGetVersionsFiltersOutput() GetVersionsFiltersOutput {
+ return o
+}
+
+func (o GetVersionsFiltersOutput) ToGetVersionsFiltersOutputWithContext(ctx context.Context) GetVersionsFiltersOutput {
+ return o
+}
+
+func (o GetVersionsFiltersOutput) ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput {
+ return o.ToGetVersionsFiltersPtrOutputWithContext(context.Background())
+}
+
+func (o GetVersionsFiltersOutput) ToGetVersionsFiltersPtrOutputWithContext(ctx context.Context) GetVersionsFiltersPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v GetVersionsFilters) *GetVersionsFilters {
+ return &v
+ }).(GetVersionsFiltersPtrOutput)
+}
+
+// If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+func (o GetVersionsFiltersOutput) StableVersionsOnly() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v GetVersionsFilters) *bool { return v.StableVersionsOnly }).(pulumi.BoolPtrOutput)
+}
+
+type GetVersionsFiltersPtrOutput struct{ *pulumi.OutputState }
+
+func (GetVersionsFiltersPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**GetVersionsFilters)(nil)).Elem()
+}
+
+func (o GetVersionsFiltersPtrOutput) ToGetVersionsFiltersPtrOutput() GetVersionsFiltersPtrOutput {
+ return o
+}
+
+func (o GetVersionsFiltersPtrOutput) ToGetVersionsFiltersPtrOutputWithContext(ctx context.Context) GetVersionsFiltersPtrOutput {
+ return o
+}
+
+func (o GetVersionsFiltersPtrOutput) Elem() GetVersionsFiltersOutput {
+ return o.ApplyT(func(v *GetVersionsFilters) GetVersionsFilters {
+ if v != nil {
+ return *v
+ }
+ var ret GetVersionsFilters
+ return ret
+ }).(GetVersionsFiltersOutput)
+}
+
+// If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+func (o GetVersionsFiltersPtrOutput) StableVersionsOnly() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *GetVersionsFilters) *bool {
+ if v == nil {
+ return nil
+ }
+ return v.StableVersionsOnly
+ }).(pulumi.BoolPtrOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*GetExtensionsVersionsExtensionsInfoInput)(nil)).Elem(), GetExtensionsVersionsExtensionsInfoArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetExtensionsVersionsExtensionsInfoArrayInput)(nil)).Elem(), GetExtensionsVersionsExtensionsInfoArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetExtensionsVersionsFiltersInput)(nil)).Elem(), GetExtensionsVersionsFiltersArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetExtensionsVersionsFiltersPtrInput)(nil)).Elem(), GetExtensionsVersionsFiltersArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetOverlaysVersionsFiltersInput)(nil)).Elem(), GetOverlaysVersionsFiltersArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetOverlaysVersionsFiltersPtrInput)(nil)).Elem(), GetOverlaysVersionsFiltersArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetOverlaysVersionsOverlaysInfoInput)(nil)).Elem(), GetOverlaysVersionsOverlaysInfoArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetOverlaysVersionsOverlaysInfoArrayInput)(nil)).Elem(), GetOverlaysVersionsOverlaysInfoArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetUrlsUrlsInput)(nil)).Elem(), GetUrlsUrlsArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetVersionsFiltersInput)(nil)).Elem(), GetVersionsFiltersArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetVersionsFiltersPtrInput)(nil)).Elem(), GetVersionsFiltersArgs{})
+ pulumi.RegisterOutputType(GetExtensionsVersionsExtensionsInfoOutput{})
+ pulumi.RegisterOutputType(GetExtensionsVersionsExtensionsInfoArrayOutput{})
+ pulumi.RegisterOutputType(GetExtensionsVersionsFiltersOutput{})
+ pulumi.RegisterOutputType(GetExtensionsVersionsFiltersPtrOutput{})
+ pulumi.RegisterOutputType(GetOverlaysVersionsFiltersOutput{})
+ pulumi.RegisterOutputType(GetOverlaysVersionsFiltersPtrOutput{})
+ pulumi.RegisterOutputType(GetOverlaysVersionsOverlaysInfoOutput{})
+ pulumi.RegisterOutputType(GetOverlaysVersionsOverlaysInfoArrayOutput{})
+ pulumi.RegisterOutputType(GetUrlsUrlsOutput{})
+ pulumi.RegisterOutputType(GetVersionsFiltersOutput{})
+ pulumi.RegisterOutputType(GetVersionsFiltersPtrOutput{})
+}
diff --git a/sdk/go/talos/imagefactory/schematic.go b/sdk/go/talos/imagefactory/schematic.go
new file mode 100644
index 00000000..0956086f
--- /dev/null
+++ b/sdk/go/talos/imagefactory/schematic.go
@@ -0,0 +1,215 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package imagefactory
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-talos/sdk/go/talos/internal"
+)
+
+// The image factory schematic resource allows you to create a schematic for a Talos image.
+type Schematic struct {
+ pulumi.CustomResourceState
+
+ // The schematic yaml respresentation to generate the image.
+ Schematic pulumi.StringPtrOutput `pulumi:"schematic"`
+}
+
+// NewSchematic registers a new resource with the given unique name, arguments, and options.
+func NewSchematic(ctx *pulumi.Context,
+ name string, args *SchematicArgs, opts ...pulumi.ResourceOption) (*Schematic, error) {
+ if args == nil {
+ args = &SchematicArgs{}
+ }
+
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource Schematic
+ err := ctx.RegisterResource("talos:imageFactory/schematic:Schematic", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetSchematic gets an existing Schematic resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetSchematic(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *SchematicState, opts ...pulumi.ResourceOption) (*Schematic, error) {
+ var resource Schematic
+ err := ctx.ReadResource("talos:imageFactory/schematic:Schematic", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering Schematic resources.
+type schematicState struct {
+ // The schematic yaml respresentation to generate the image.
+ Schematic *string `pulumi:"schematic"`
+}
+
+type SchematicState struct {
+ // The schematic yaml respresentation to generate the image.
+ Schematic pulumi.StringPtrInput
+}
+
+func (SchematicState) ElementType() reflect.Type {
+ return reflect.TypeOf((*schematicState)(nil)).Elem()
+}
+
+type schematicArgs struct {
+ // The schematic yaml respresentation to generate the image.
+ Schematic *string `pulumi:"schematic"`
+}
+
+// The set of arguments for constructing a Schematic resource.
+type SchematicArgs struct {
+ // The schematic yaml respresentation to generate the image.
+ Schematic pulumi.StringPtrInput
+}
+
+func (SchematicArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*schematicArgs)(nil)).Elem()
+}
+
+type SchematicInput interface {
+ pulumi.Input
+
+ ToSchematicOutput() SchematicOutput
+ ToSchematicOutputWithContext(ctx context.Context) SchematicOutput
+}
+
+func (*Schematic) ElementType() reflect.Type {
+ return reflect.TypeOf((**Schematic)(nil)).Elem()
+}
+
+func (i *Schematic) ToSchematicOutput() SchematicOutput {
+ return i.ToSchematicOutputWithContext(context.Background())
+}
+
+func (i *Schematic) ToSchematicOutputWithContext(ctx context.Context) SchematicOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(SchematicOutput)
+}
+
+// SchematicArrayInput is an input type that accepts SchematicArray and SchematicArrayOutput values.
+// You can construct a concrete instance of `SchematicArrayInput` via:
+//
+// SchematicArray{ SchematicArgs{...} }
+type SchematicArrayInput interface {
+ pulumi.Input
+
+ ToSchematicArrayOutput() SchematicArrayOutput
+ ToSchematicArrayOutputWithContext(context.Context) SchematicArrayOutput
+}
+
+type SchematicArray []SchematicInput
+
+func (SchematicArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*Schematic)(nil)).Elem()
+}
+
+func (i SchematicArray) ToSchematicArrayOutput() SchematicArrayOutput {
+ return i.ToSchematicArrayOutputWithContext(context.Background())
+}
+
+func (i SchematicArray) ToSchematicArrayOutputWithContext(ctx context.Context) SchematicArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(SchematicArrayOutput)
+}
+
+// SchematicMapInput is an input type that accepts SchematicMap and SchematicMapOutput values.
+// You can construct a concrete instance of `SchematicMapInput` via:
+//
+// SchematicMap{ "key": SchematicArgs{...} }
+type SchematicMapInput interface {
+ pulumi.Input
+
+ ToSchematicMapOutput() SchematicMapOutput
+ ToSchematicMapOutputWithContext(context.Context) SchematicMapOutput
+}
+
+type SchematicMap map[string]SchematicInput
+
+func (SchematicMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*Schematic)(nil)).Elem()
+}
+
+func (i SchematicMap) ToSchematicMapOutput() SchematicMapOutput {
+ return i.ToSchematicMapOutputWithContext(context.Background())
+}
+
+func (i SchematicMap) ToSchematicMapOutputWithContext(ctx context.Context) SchematicMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(SchematicMapOutput)
+}
+
+type SchematicOutput struct{ *pulumi.OutputState }
+
+func (SchematicOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**Schematic)(nil)).Elem()
+}
+
+func (o SchematicOutput) ToSchematicOutput() SchematicOutput {
+ return o
+}
+
+func (o SchematicOutput) ToSchematicOutputWithContext(ctx context.Context) SchematicOutput {
+ return o
+}
+
+// The schematic yaml respresentation to generate the image.
+func (o SchematicOutput) Schematic() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *Schematic) pulumi.StringPtrOutput { return v.Schematic }).(pulumi.StringPtrOutput)
+}
+
+type SchematicArrayOutput struct{ *pulumi.OutputState }
+
+func (SchematicArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*Schematic)(nil)).Elem()
+}
+
+func (o SchematicArrayOutput) ToSchematicArrayOutput() SchematicArrayOutput {
+ return o
+}
+
+func (o SchematicArrayOutput) ToSchematicArrayOutputWithContext(ctx context.Context) SchematicArrayOutput {
+ return o
+}
+
+func (o SchematicArrayOutput) Index(i pulumi.IntInput) SchematicOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Schematic {
+ return vs[0].([]*Schematic)[vs[1].(int)]
+ }).(SchematicOutput)
+}
+
+type SchematicMapOutput struct{ *pulumi.OutputState }
+
+func (SchematicMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*Schematic)(nil)).Elem()
+}
+
+func (o SchematicMapOutput) ToSchematicMapOutput() SchematicMapOutput {
+ return o
+}
+
+func (o SchematicMapOutput) ToSchematicMapOutputWithContext(ctx context.Context) SchematicMapOutput {
+ return o
+}
+
+func (o SchematicMapOutput) MapIndex(k pulumi.StringInput) SchematicOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Schematic {
+ return vs[0].(map[string]*Schematic)[vs[1].(string)]
+ }).(SchematicOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*SchematicInput)(nil)).Elem(), &Schematic{})
+ pulumi.RegisterInputType(reflect.TypeOf((*SchematicArrayInput)(nil)).Elem(), SchematicArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*SchematicMapInput)(nil)).Elem(), SchematicMap{})
+ pulumi.RegisterOutputType(SchematicOutput{})
+ pulumi.RegisterOutputType(SchematicArrayOutput{})
+ pulumi.RegisterOutputType(SchematicMapOutput{})
+}
diff --git a/sdk/go/talos/machine/configurationApply.go b/sdk/go/talos/machine/configurationApply.go
index 8c616f13..a6083c9d 100644
--- a/sdk/go/talos/machine/configurationApply.go
+++ b/sdk/go/talos/machine/configurationApply.go
@@ -29,8 +29,10 @@ type ConfigurationApply struct {
// The machine configuration to apply
MachineConfigurationInput pulumi.StringOutput `pulumi:"machineConfigurationInput"`
// The name of the node to bootstrap
- Node pulumi.StringOutput `pulumi:"node"`
- Timeouts TimeoutPtrOutput `pulumi:"timeouts"`
+ Node pulumi.StringOutput `pulumi:"node"`
+ // Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ OnDestroy ConfigurationApplyOnDestroyPtrOutput `pulumi:"onDestroy"`
+ Timeouts TimeoutPtrOutput `pulumi:"timeouts"`
}
// NewConfigurationApply registers a new resource with the given unique name, arguments, and options.
@@ -93,8 +95,10 @@ type configurationApplyState struct {
// The machine configuration to apply
MachineConfigurationInput *string `pulumi:"machineConfigurationInput"`
// The name of the node to bootstrap
- Node *string `pulumi:"node"`
- Timeouts *Timeout `pulumi:"timeouts"`
+ Node *string `pulumi:"node"`
+ // Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ OnDestroy *ConfigurationApplyOnDestroy `pulumi:"onDestroy"`
+ Timeouts *Timeout `pulumi:"timeouts"`
}
type ConfigurationApplyState struct {
@@ -111,8 +115,10 @@ type ConfigurationApplyState struct {
// The machine configuration to apply
MachineConfigurationInput pulumi.StringPtrInput
// The name of the node to bootstrap
- Node pulumi.StringPtrInput
- Timeouts TimeoutPtrInput
+ Node pulumi.StringPtrInput
+ // Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ OnDestroy ConfigurationApplyOnDestroyPtrInput
+ Timeouts TimeoutPtrInput
}
func (ConfigurationApplyState) ElementType() reflect.Type {
@@ -131,8 +137,10 @@ type configurationApplyArgs struct {
// The machine configuration to apply
MachineConfigurationInput string `pulumi:"machineConfigurationInput"`
// The name of the node to bootstrap
- Node string `pulumi:"node"`
- Timeouts *Timeout `pulumi:"timeouts"`
+ Node string `pulumi:"node"`
+ // Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ OnDestroy *ConfigurationApplyOnDestroy `pulumi:"onDestroy"`
+ Timeouts *Timeout `pulumi:"timeouts"`
}
// The set of arguments for constructing a ConfigurationApply resource.
@@ -148,8 +156,10 @@ type ConfigurationApplyArgs struct {
// The machine configuration to apply
MachineConfigurationInput pulumi.StringInput
// The name of the node to bootstrap
- Node pulumi.StringInput
- Timeouts TimeoutPtrInput
+ Node pulumi.StringInput
+ // Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ OnDestroy ConfigurationApplyOnDestroyPtrInput
+ Timeouts TimeoutPtrInput
}
func (ConfigurationApplyArgs) ElementType() reflect.Type {
@@ -274,6 +284,11 @@ func (o ConfigurationApplyOutput) Node() pulumi.StringOutput {
return o.ApplyT(func(v *ConfigurationApply) pulumi.StringOutput { return v.Node }).(pulumi.StringOutput)
}
+// Actions to be taken on destroy, if *reset* is not set this is a no-op.
+func (o ConfigurationApplyOutput) OnDestroy() ConfigurationApplyOnDestroyPtrOutput {
+ return o.ApplyT(func(v *ConfigurationApply) ConfigurationApplyOnDestroyPtrOutput { return v.OnDestroy }).(ConfigurationApplyOnDestroyPtrOutput)
+}
+
func (o ConfigurationApplyOutput) Timeouts() TimeoutPtrOutput {
return o.ApplyT(func(v *ConfigurationApply) TimeoutPtrOutput { return v.Timeouts }).(TimeoutPtrOutput)
}
diff --git a/sdk/go/talos/machine/getConfiguration.go b/sdk/go/talos/machine/getConfiguration.go
index 394df28a..22285684 100644
--- a/sdk/go/talos/machine/getConfiguration.go
+++ b/sdk/go/talos/machine/getConfiguration.go
@@ -62,9 +62,9 @@ type GetConfigurationArgs struct {
ClusterName string `pulumi:"clusterName"`
// The list of config patches to apply to the generated configuration
ConfigPatches []string `pulumi:"configPatches"`
- // Whether to generate documentation for the generated configuration
+ // Whether to generate documentation for the generated configuration. Defaults to false
Docs *bool `pulumi:"docs"`
- // Whether to generate examples for the generated configuration
+ // Whether to generate examples for the generated configuration. Defaults to false
Examples *bool `pulumi:"examples"`
// The version of kubernetes to use
KubernetesVersion *string `pulumi:"kubernetesVersion"`
@@ -84,9 +84,9 @@ type GetConfigurationResult struct {
ClusterName string `pulumi:"clusterName"`
// The list of config patches to apply to the generated configuration
ConfigPatches []string `pulumi:"configPatches"`
- // Whether to generate documentation for the generated configuration
+ // Whether to generate documentation for the generated configuration. Defaults to false
Docs *bool `pulumi:"docs"`
- // Whether to generate examples for the generated configuration
+ // Whether to generate examples for the generated configuration. Defaults to false
Examples *bool `pulumi:"examples"`
// The ID of this resource.
Id string `pulumi:"id"`
@@ -129,9 +129,9 @@ type GetConfigurationOutputArgs struct {
ClusterName pulumi.StringInput `pulumi:"clusterName"`
// The list of config patches to apply to the generated configuration
ConfigPatches pulumi.StringArrayInput `pulumi:"configPatches"`
- // Whether to generate documentation for the generated configuration
+ // Whether to generate documentation for the generated configuration. Defaults to false
Docs pulumi.BoolPtrInput `pulumi:"docs"`
- // Whether to generate examples for the generated configuration
+ // Whether to generate examples for the generated configuration. Defaults to false
Examples pulumi.BoolPtrInput `pulumi:"examples"`
// The version of kubernetes to use
KubernetesVersion pulumi.StringPtrInput `pulumi:"kubernetesVersion"`
@@ -177,12 +177,12 @@ func (o GetConfigurationResultOutput) ConfigPatches() pulumi.StringArrayOutput {
return o.ApplyT(func(v GetConfigurationResult) []string { return v.ConfigPatches }).(pulumi.StringArrayOutput)
}
-// Whether to generate documentation for the generated configuration
+// Whether to generate documentation for the generated configuration. Defaults to false
func (o GetConfigurationResultOutput) Docs() pulumi.BoolPtrOutput {
return o.ApplyT(func(v GetConfigurationResult) *bool { return v.Docs }).(pulumi.BoolPtrOutput)
}
-// Whether to generate examples for the generated configuration
+// Whether to generate examples for the generated configuration. Defaults to false
func (o GetConfigurationResultOutput) Examples() pulumi.BoolPtrOutput {
return o.ApplyT(func(v GetConfigurationResult) *bool { return v.Examples }).(pulumi.BoolPtrOutput)
}
diff --git a/sdk/go/talos/machine/pulumiTypes.go b/sdk/go/talos/machine/pulumiTypes.go
index 36d60680..284c2303 100644
--- a/sdk/go/talos/machine/pulumiTypes.go
+++ b/sdk/go/talos/machine/pulumiTypes.go
@@ -290,6 +290,181 @@ func (o ConfigurationApplyClientConfigurationOutput) ClientKey() pulumi.StringOu
return o.ApplyT(func(v ConfigurationApplyClientConfiguration) string { return v.ClientKey }).(pulumi.StringOutput)
}
+type ConfigurationApplyOnDestroy struct {
+ // Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ Graceful *bool `pulumi:"graceful"`
+ // Reboot indicates whether node should reboot or halt after resetting. Default false
+ Reboot *bool `pulumi:"reboot"`
+ // Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ Reset *bool `pulumi:"reset"`
+}
+
+// ConfigurationApplyOnDestroyInput is an input type that accepts ConfigurationApplyOnDestroyArgs and ConfigurationApplyOnDestroyOutput values.
+// You can construct a concrete instance of `ConfigurationApplyOnDestroyInput` via:
+//
+// ConfigurationApplyOnDestroyArgs{...}
+type ConfigurationApplyOnDestroyInput interface {
+ pulumi.Input
+
+ ToConfigurationApplyOnDestroyOutput() ConfigurationApplyOnDestroyOutput
+ ToConfigurationApplyOnDestroyOutputWithContext(context.Context) ConfigurationApplyOnDestroyOutput
+}
+
+type ConfigurationApplyOnDestroyArgs struct {
+ // Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ Graceful pulumi.BoolPtrInput `pulumi:"graceful"`
+ // Reboot indicates whether node should reboot or halt after resetting. Default false
+ Reboot pulumi.BoolPtrInput `pulumi:"reboot"`
+ // Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ Reset pulumi.BoolPtrInput `pulumi:"reset"`
+}
+
+func (ConfigurationApplyOnDestroyArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*ConfigurationApplyOnDestroy)(nil)).Elem()
+}
+
+func (i ConfigurationApplyOnDestroyArgs) ToConfigurationApplyOnDestroyOutput() ConfigurationApplyOnDestroyOutput {
+ return i.ToConfigurationApplyOnDestroyOutputWithContext(context.Background())
+}
+
+func (i ConfigurationApplyOnDestroyArgs) ToConfigurationApplyOnDestroyOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ConfigurationApplyOnDestroyOutput)
+}
+
+func (i ConfigurationApplyOnDestroyArgs) ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput {
+ return i.ToConfigurationApplyOnDestroyPtrOutputWithContext(context.Background())
+}
+
+func (i ConfigurationApplyOnDestroyArgs) ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ConfigurationApplyOnDestroyOutput).ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx)
+}
+
+// ConfigurationApplyOnDestroyPtrInput is an input type that accepts ConfigurationApplyOnDestroyArgs, ConfigurationApplyOnDestroyPtr and ConfigurationApplyOnDestroyPtrOutput values.
+// You can construct a concrete instance of `ConfigurationApplyOnDestroyPtrInput` via:
+//
+// ConfigurationApplyOnDestroyArgs{...}
+//
+// or:
+//
+// nil
+type ConfigurationApplyOnDestroyPtrInput interface {
+ pulumi.Input
+
+ ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput
+ ToConfigurationApplyOnDestroyPtrOutputWithContext(context.Context) ConfigurationApplyOnDestroyPtrOutput
+}
+
+type configurationApplyOnDestroyPtrType ConfigurationApplyOnDestroyArgs
+
+func ConfigurationApplyOnDestroyPtr(v *ConfigurationApplyOnDestroyArgs) ConfigurationApplyOnDestroyPtrInput {
+ return (*configurationApplyOnDestroyPtrType)(v)
+}
+
+func (*configurationApplyOnDestroyPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**ConfigurationApplyOnDestroy)(nil)).Elem()
+}
+
+func (i *configurationApplyOnDestroyPtrType) ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput {
+ return i.ToConfigurationApplyOnDestroyPtrOutputWithContext(context.Background())
+}
+
+func (i *configurationApplyOnDestroyPtrType) ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ConfigurationApplyOnDestroyPtrOutput)
+}
+
+type ConfigurationApplyOnDestroyOutput struct{ *pulumi.OutputState }
+
+func (ConfigurationApplyOnDestroyOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*ConfigurationApplyOnDestroy)(nil)).Elem()
+}
+
+func (o ConfigurationApplyOnDestroyOutput) ToConfigurationApplyOnDestroyOutput() ConfigurationApplyOnDestroyOutput {
+ return o
+}
+
+func (o ConfigurationApplyOnDestroyOutput) ToConfigurationApplyOnDestroyOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyOutput {
+ return o
+}
+
+func (o ConfigurationApplyOnDestroyOutput) ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput {
+ return o.ToConfigurationApplyOnDestroyPtrOutputWithContext(context.Background())
+}
+
+func (o ConfigurationApplyOnDestroyOutput) ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v ConfigurationApplyOnDestroy) *ConfigurationApplyOnDestroy {
+ return &v
+ }).(ConfigurationApplyOnDestroyPtrOutput)
+}
+
+// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+func (o ConfigurationApplyOnDestroyOutput) Graceful() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v ConfigurationApplyOnDestroy) *bool { return v.Graceful }).(pulumi.BoolPtrOutput)
+}
+
+// Reboot indicates whether node should reboot or halt after resetting. Default false
+func (o ConfigurationApplyOnDestroyOutput) Reboot() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v ConfigurationApplyOnDestroy) *bool { return v.Reboot }).(pulumi.BoolPtrOutput)
+}
+
+// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+func (o ConfigurationApplyOnDestroyOutput) Reset() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v ConfigurationApplyOnDestroy) *bool { return v.Reset }).(pulumi.BoolPtrOutput)
+}
+
+type ConfigurationApplyOnDestroyPtrOutput struct{ *pulumi.OutputState }
+
+func (ConfigurationApplyOnDestroyPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**ConfigurationApplyOnDestroy)(nil)).Elem()
+}
+
+func (o ConfigurationApplyOnDestroyPtrOutput) ToConfigurationApplyOnDestroyPtrOutput() ConfigurationApplyOnDestroyPtrOutput {
+ return o
+}
+
+func (o ConfigurationApplyOnDestroyPtrOutput) ToConfigurationApplyOnDestroyPtrOutputWithContext(ctx context.Context) ConfigurationApplyOnDestroyPtrOutput {
+ return o
+}
+
+func (o ConfigurationApplyOnDestroyPtrOutput) Elem() ConfigurationApplyOnDestroyOutput {
+ return o.ApplyT(func(v *ConfigurationApplyOnDestroy) ConfigurationApplyOnDestroy {
+ if v != nil {
+ return *v
+ }
+ var ret ConfigurationApplyOnDestroy
+ return ret
+ }).(ConfigurationApplyOnDestroyOutput)
+}
+
+// Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+func (o ConfigurationApplyOnDestroyPtrOutput) Graceful() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *ConfigurationApplyOnDestroy) *bool {
+ if v == nil {
+ return nil
+ }
+ return v.Graceful
+ }).(pulumi.BoolPtrOutput)
+}
+
+// Reboot indicates whether node should reboot or halt after resetting. Default false
+func (o ConfigurationApplyOnDestroyPtrOutput) Reboot() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *ConfigurationApplyOnDestroy) *bool {
+ if v == nil {
+ return nil
+ }
+ return v.Reboot
+ }).(pulumi.BoolPtrOutput)
+}
+
+// Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+func (o ConfigurationApplyOnDestroyPtrOutput) Reset() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *ConfigurationApplyOnDestroy) *bool {
+ if v == nil {
+ return nil
+ }
+ return v.Reset
+ }).(pulumi.BoolPtrOutput)
+}
+
type SecretsClientConfiguration struct {
// The client CA certificate
CaCertificate *string `pulumi:"caCertificate"`
@@ -1883,6 +2058,8 @@ func (o SecretsMachineSecretsTrustdinfoPtrOutput) Token() pulumi.StringPtrOutput
type Timeout struct {
// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Create *string `pulumi:"create"`
+ // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ Delete *string `pulumi:"delete"`
// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Update *string `pulumi:"update"`
}
@@ -1901,6 +2078,8 @@ type TimeoutInput interface {
type TimeoutArgs struct {
// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Create pulumi.StringPtrInput `pulumi:"create"`
+ // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ Delete pulumi.StringPtrInput `pulumi:"delete"`
// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
Update pulumi.StringPtrInput `pulumi:"update"`
}
@@ -1987,6 +2166,11 @@ func (o TimeoutOutput) Create() pulumi.StringPtrOutput {
return o.ApplyT(func(v Timeout) *string { return v.Create }).(pulumi.StringPtrOutput)
}
+// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+func (o TimeoutOutput) Delete() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v Timeout) *string { return v.Delete }).(pulumi.StringPtrOutput)
+}
+
// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
func (o TimeoutOutput) Update() pulumi.StringPtrOutput {
return o.ApplyT(func(v Timeout) *string { return v.Update }).(pulumi.StringPtrOutput)
@@ -2026,6 +2210,16 @@ func (o TimeoutPtrOutput) Create() pulumi.StringPtrOutput {
}).(pulumi.StringPtrOutput)
}
+// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+func (o TimeoutPtrOutput) Delete() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *Timeout) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Delete
+ }).(pulumi.StringPtrOutput)
+}
+
// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
func (o TimeoutPtrOutput) Update() pulumi.StringPtrOutput {
return o.ApplyT(func(v *Timeout) *string {
@@ -4684,6 +4878,8 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*BootstrapTimeoutsInput)(nil)).Elem(), BootstrapTimeoutsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*BootstrapTimeoutsPtrInput)(nil)).Elem(), BootstrapTimeoutsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationApplyClientConfigurationInput)(nil)).Elem(), ConfigurationApplyClientConfigurationArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationApplyOnDestroyInput)(nil)).Elem(), ConfigurationApplyOnDestroyArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*ConfigurationApplyOnDestroyPtrInput)(nil)).Elem(), ConfigurationApplyOnDestroyArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*SecretsClientConfigurationInput)(nil)).Elem(), SecretsClientConfigurationArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*SecretsMachineSecretsInput)(nil)).Elem(), SecretsMachineSecretsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*SecretsMachineSecretsCertsInput)(nil)).Elem(), SecretsMachineSecretsCertsArgs{})
@@ -4743,6 +4939,8 @@ func init() {
pulumi.RegisterOutputType(BootstrapTimeoutsOutput{})
pulumi.RegisterOutputType(BootstrapTimeoutsPtrOutput{})
pulumi.RegisterOutputType(ConfigurationApplyClientConfigurationOutput{})
+ pulumi.RegisterOutputType(ConfigurationApplyOnDestroyOutput{})
+ pulumi.RegisterOutputType(ConfigurationApplyOnDestroyPtrOutput{})
pulumi.RegisterOutputType(SecretsClientConfigurationOutput{})
pulumi.RegisterOutputType(SecretsMachineSecretsOutput{})
pulumi.RegisterOutputType(SecretsMachineSecretsCertsOutput{})
diff --git a/sdk/go/talos/provider.go b/sdk/go/talos/provider.go
index 53a56682..a568be48 100644
--- a/sdk/go/talos/provider.go
+++ b/sdk/go/talos/provider.go
@@ -17,6 +17,9 @@ import (
// [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
type Provider struct {
pulumi.ProviderResourceState
+
+ // The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ ImageFactoryUrl pulumi.StringPtrOutput `pulumi:"imageFactoryUrl"`
}
// NewProvider registers a new resource with the given unique name, arguments, and options.
@@ -36,10 +39,14 @@ func NewProvider(ctx *pulumi.Context,
}
type providerArgs struct {
+ // The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ ImageFactoryUrl *string `pulumi:"imageFactoryUrl"`
}
// The set of arguments for constructing a Provider resource.
type ProviderArgs struct {
+ // The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ ImageFactoryUrl pulumi.StringPtrInput
}
func (ProviderArgs) ElementType() reflect.Type {
@@ -79,6 +86,11 @@ func (o ProviderOutput) ToProviderOutputWithContext(ctx context.Context) Provide
return o
}
+// The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+func (o ProviderOutput) ImageFactoryUrl() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *Provider) pulumi.StringPtrOutput { return v.ImageFactoryUrl }).(pulumi.StringPtrOutput)
+}
+
func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ProviderInput)(nil)).Elem(), &Provider{})
pulumi.RegisterOutputType(ProviderOutput{})
diff --git a/sdk/nodejs/cluster/getHealth.ts b/sdk/nodejs/cluster/getHealth.ts
index dad8cb12..df993d0c 100644
--- a/sdk/nodejs/cluster/getHealth.ts
+++ b/sdk/nodejs/cluster/getHealth.ts
@@ -7,7 +7,7 @@ import * as outputs from "../types/output";
import * as utilities from "../utilities";
/**
- * Checks the health of a Talos cluster
+ * Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.
*/
export function getHealth(args: GetHealthArgs, opts?: pulumi.InvokeOptions): Promise {
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
@@ -15,6 +15,7 @@ export function getHealth(args: GetHealthArgs, opts?: pulumi.InvokeOptions): Pro
"clientConfiguration": args.clientConfiguration,
"controlPlaneNodes": args.controlPlaneNodes,
"endpoints": args.endpoints,
+ "skipKubernetesChecks": args.skipKubernetesChecks,
"timeouts": args.timeouts,
"workerNodes": args.workerNodes,
}, opts);
@@ -36,6 +37,10 @@ export interface GetHealthArgs {
* endpoints to use for the health check client. Use at least one control plane endpoint.
*/
endpoints: string[];
+ /**
+ * Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ */
+ skipKubernetesChecks?: boolean;
timeouts?: inputs.cluster.GetHealthTimeouts;
/**
* List of worker nodes to check for health.
@@ -63,6 +68,10 @@ export interface GetHealthResult {
* The ID of this resource.
*/
readonly id: string;
+ /**
+ * Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ */
+ readonly skipKubernetesChecks?: boolean;
readonly timeouts?: outputs.cluster.GetHealthTimeouts;
/**
* List of worker nodes to check for health.
@@ -70,7 +79,7 @@ export interface GetHealthResult {
readonly workerNodes?: string[];
}
/**
- * Checks the health of a Talos cluster
+ * Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.
*/
export function getHealthOutput(args: GetHealthOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output {
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
@@ -78,6 +87,7 @@ export function getHealthOutput(args: GetHealthOutputArgs, opts?: pulumi.InvokeO
"clientConfiguration": args.clientConfiguration,
"controlPlaneNodes": args.controlPlaneNodes,
"endpoints": args.endpoints,
+ "skipKubernetesChecks": args.skipKubernetesChecks,
"timeouts": args.timeouts,
"workerNodes": args.workerNodes,
}, opts);
@@ -99,6 +109,10 @@ export interface GetHealthOutputArgs {
* endpoints to use for the health check client. Use at least one control plane endpoint.
*/
endpoints: pulumi.Input[]>;
+ /**
+ * Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ */
+ skipKubernetesChecks?: pulumi.Input;
timeouts?: pulumi.Input;
/**
* List of worker nodes to check for health.
diff --git a/sdk/nodejs/cluster/index.ts b/sdk/nodejs/cluster/index.ts
index edc62242..d69b2c2f 100644
--- a/sdk/nodejs/cluster/index.ts
+++ b/sdk/nodejs/cluster/index.ts
@@ -1,6 +1,7 @@
// *** 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! ***
+import * as pulumi from "@pulumi/pulumi";
import * as utilities from "../utilities";
// Export members:
@@ -14,3 +15,21 @@ export const getKubeconfig: typeof import("./getKubeconfig").getKubeconfig = nul
export const getKubeconfigOutput: typeof import("./getKubeconfig").getKubeconfigOutput = null as any;
utilities.lazyLoad(exports, ["getKubeconfig","getKubeconfigOutput"], () => require("./getKubeconfig"));
+export { KubeconfigArgs, KubeconfigState } from "./kubeconfig";
+export type Kubeconfig = import("./kubeconfig").Kubeconfig;
+export const Kubeconfig: typeof import("./kubeconfig").Kubeconfig = null as any;
+utilities.lazyLoad(exports, ["Kubeconfig"], () => require("./kubeconfig"));
+
+
+const _module = {
+ version: utilities.getVersion(),
+ construct: (name: string, type: string, urn: string): pulumi.Resource => {
+ switch (type) {
+ case "talos:cluster/kubeconfig:Kubeconfig":
+ return new Kubeconfig(name, undefined, { urn })
+ default:
+ throw new Error(`unknown resource type ${type}`);
+ }
+ },
+};
+pulumi.runtime.registerResourceModule("talos", "cluster/kubeconfig", _module)
diff --git a/sdk/nodejs/cluster/kubeconfig.ts b/sdk/nodejs/cluster/kubeconfig.ts
new file mode 100644
index 00000000..96ffa85c
--- /dev/null
+++ b/sdk/nodejs/cluster/kubeconfig.ts
@@ -0,0 +1,147 @@
+// *** 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! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as inputs from "../types/input";
+import * as outputs from "../types/output";
+import * as utilities from "../utilities";
+
+/**
+ * Retrieves the kubeconfig for a Talos cluster
+ */
+export class Kubeconfig extends pulumi.CustomResource {
+ /**
+ * Get an existing Kubeconfig resource's state with the given name, ID, and optional extra
+ * properties used to qualify the lookup.
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param id The _unique_ provider ID of the resource to lookup.
+ * @param state Any extra arguments used during the lookup.
+ * @param opts Optional settings to control the behavior of the CustomResource.
+ */
+ public static get(name: string, id: pulumi.Input, state?: KubeconfigState, opts?: pulumi.CustomResourceOptions): Kubeconfig {
+ return new Kubeconfig(name, state, { ...opts, id: id });
+ }
+
+ /** @internal */
+ public static readonly __pulumiType = 'talos:cluster/kubeconfig:Kubeconfig';
+
+ /**
+ * Returns true if the given object is an instance of Kubeconfig. This is designed to work even
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
+ */
+ public static isInstance(obj: any): obj is Kubeconfig {
+ if (obj === undefined || obj === null) {
+ return false;
+ }
+ return obj['__pulumiType'] === Kubeconfig.__pulumiType;
+ }
+
+ /**
+ * The client configuration data
+ */
+ public readonly clientConfiguration!: pulumi.Output;
+ /**
+ * endpoint to use for the talosclient. If not set, the node value will be used
+ */
+ public readonly endpoint!: pulumi.Output;
+ /**
+ * The raw kubeconfig
+ */
+ public /*out*/ readonly kubeconfigRaw!: pulumi.Output;
+ /**
+ * The kubernetes client configuration
+ */
+ public /*out*/ readonly kubernetesClientConfiguration!: pulumi.Output;
+ /**
+ * controlplane node to retrieve the kubeconfig from
+ */
+ public readonly node!: pulumi.Output;
+ public readonly timeouts!: pulumi.Output;
+
+ /**
+ * Create a Kubeconfig resource with the given unique name, arguments, and options.
+ *
+ * @param name The _unique_ name of the resource.
+ * @param args The arguments to use to populate this resource's properties.
+ * @param opts A bag of options that control this resource's behavior.
+ */
+ constructor(name: string, args: KubeconfigArgs, opts?: pulumi.CustomResourceOptions)
+ constructor(name: string, argsOrState?: KubeconfigArgs | KubeconfigState, opts?: pulumi.CustomResourceOptions) {
+ let resourceInputs: pulumi.Inputs = {};
+ opts = opts || {};
+ if (opts.id) {
+ const state = argsOrState as KubeconfigState | undefined;
+ resourceInputs["clientConfiguration"] = state ? state.clientConfiguration : undefined;
+ resourceInputs["endpoint"] = state ? state.endpoint : undefined;
+ resourceInputs["kubeconfigRaw"] = state ? state.kubeconfigRaw : undefined;
+ resourceInputs["kubernetesClientConfiguration"] = state ? state.kubernetesClientConfiguration : undefined;
+ resourceInputs["node"] = state ? state.node : undefined;
+ resourceInputs["timeouts"] = state ? state.timeouts : undefined;
+ } else {
+ const args = argsOrState as KubeconfigArgs | undefined;
+ if ((!args || args.clientConfiguration === undefined) && !opts.urn) {
+ throw new Error("Missing required property 'clientConfiguration'");
+ }
+ if ((!args || args.node === undefined) && !opts.urn) {
+ throw new Error("Missing required property 'node'");
+ }
+ resourceInputs["clientConfiguration"] = args ? args.clientConfiguration : undefined;
+ resourceInputs["endpoint"] = args ? args.endpoint : undefined;
+ resourceInputs["node"] = args ? args.node : undefined;
+ resourceInputs["timeouts"] = args ? args.timeouts : undefined;
+ resourceInputs["kubeconfigRaw"] = undefined /*out*/;
+ resourceInputs["kubernetesClientConfiguration"] = undefined /*out*/;
+ }
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
+ const secretOpts = { additionalSecretOutputs: ["kubeconfigRaw"] };
+ opts = pulumi.mergeOptions(opts, secretOpts);
+ super(Kubeconfig.__pulumiType, name, resourceInputs, opts);
+ }
+}
+
+/**
+ * Input properties used for looking up and filtering Kubeconfig resources.
+ */
+export interface KubeconfigState {
+ /**
+ * The client configuration data
+ */
+ clientConfiguration?: pulumi.Input;
+ /**
+ * endpoint to use for the talosclient. If not set, the node value will be used
+ */
+ endpoint?: pulumi.Input;
+ /**
+ * The raw kubeconfig
+ */
+ kubeconfigRaw?: pulumi.Input;
+ /**
+ * The kubernetes client configuration
+ */
+ kubernetesClientConfiguration?: pulumi.Input;
+ /**
+ * controlplane node to retrieve the kubeconfig from
+ */
+ node?: pulumi.Input;
+ timeouts?: pulumi.Input;
+}
+
+/**
+ * The set of arguments for constructing a Kubeconfig resource.
+ */
+export interface KubeconfigArgs {
+ /**
+ * The client configuration data
+ */
+ clientConfiguration: pulumi.Input;
+ /**
+ * endpoint to use for the talosclient. If not set, the node value will be used
+ */
+ endpoint?: pulumi.Input;
+ /**
+ * controlplane node to retrieve the kubeconfig from
+ */
+ node: pulumi.Input;
+ timeouts?: pulumi.Input;
+}
diff --git a/sdk/nodejs/config/index.ts b/sdk/nodejs/config/index.ts
new file mode 100644
index 00000000..ed497ed0
--- /dev/null
+++ b/sdk/nodejs/config/index.ts
@@ -0,0 +1,5 @@
+// *** 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! ***
+
+// Export members:
+export * from "./vars";
diff --git a/sdk/nodejs/config/vars.ts b/sdk/nodejs/config/vars.ts
new file mode 100644
index 00000000..cef79460
--- /dev/null
+++ b/sdk/nodejs/config/vars.ts
@@ -0,0 +1,20 @@
+// *** 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! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as utilities from "../utilities";
+
+declare var exports: any;
+const __config = new pulumi.Config("talos");
+
+/**
+ * The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ */
+export declare const imageFactoryUrl: string | undefined;
+Object.defineProperty(exports, "imageFactoryUrl", {
+ get() {
+ return __config.get("imageFactoryUrl");
+ },
+ enumerable: true,
+});
+
diff --git a/sdk/nodejs/imagefactory/getExtensionsVersions.ts b/sdk/nodejs/imagefactory/getExtensionsVersions.ts
new file mode 100644
index 00000000..b18d57ea
--- /dev/null
+++ b/sdk/nodejs/imagefactory/getExtensionsVersions.ts
@@ -0,0 +1,112 @@
+// *** 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! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as inputs from "../types/input";
+import * as outputs from "../types/output";
+import * as utilities from "../utilities";
+
+/**
+ * The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.
+ *
+ * ## Example Usage
+ *
+ * ```typescript
+ * import * as pulumi from "@pulumi/pulumi";
+ * import * as talos from "@pulumi/talos";
+ *
+ * const this = talos.imageFactory.getExtensionsVersions({
+ * talosVersion: "v1.7.5",
+ * filters: {
+ * names: [
+ * "amdgpu",
+ * "tailscale",
+ * ],
+ * },
+ * });
+ * ```
+ */
+export function getExtensionsVersions(args: GetExtensionsVersionsArgs, opts?: pulumi.InvokeOptions): Promise {
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invoke("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", {
+ "filters": args.filters,
+ "talosVersion": args.talosVersion,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getExtensionsVersions.
+ */
+export interface GetExtensionsVersionsArgs {
+ /**
+ * The filter to apply to the extensions list.
+ */
+ filters?: inputs.imageFactory.GetExtensionsVersionsFilters;
+ /**
+ * The talos version to get extensions for.
+ */
+ talosVersion: string;
+}
+
+/**
+ * A collection of values returned by getExtensionsVersions.
+ */
+export interface GetExtensionsVersionsResult {
+ /**
+ * The list of available extensions for the specified talos version.
+ */
+ readonly extensionsInfos: outputs.imageFactory.GetExtensionsVersionsExtensionsInfo[];
+ /**
+ * The filter to apply to the extensions list.
+ */
+ readonly filters?: outputs.imageFactory.GetExtensionsVersionsFilters;
+ /**
+ * The ID of this resource.
+ */
+ readonly id: string;
+ /**
+ * The talos version to get extensions for.
+ */
+ readonly talosVersion: string;
+}
+/**
+ * The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.
+ *
+ * ## Example Usage
+ *
+ * ```typescript
+ * import * as pulumi from "@pulumi/pulumi";
+ * import * as talos from "@pulumi/talos";
+ *
+ * const this = talos.imageFactory.getExtensionsVersions({
+ * talosVersion: "v1.7.5",
+ * filters: {
+ * names: [
+ * "amdgpu",
+ * "tailscale",
+ * ],
+ * },
+ * });
+ * ```
+ */
+export function getExtensionsVersionsOutput(args: GetExtensionsVersionsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output {
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invokeOutput("talos:imageFactory/getExtensionsVersions:getExtensionsVersions", {
+ "filters": args.filters,
+ "talosVersion": args.talosVersion,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getExtensionsVersions.
+ */
+export interface GetExtensionsVersionsOutputArgs {
+ /**
+ * The filter to apply to the extensions list.
+ */
+ filters?: pulumi.Input;
+ /**
+ * The talos version to get extensions for.
+ */
+ talosVersion: pulumi.Input;
+}
diff --git a/sdk/nodejs/imagefactory/getOverlaysVersions.ts b/sdk/nodejs/imagefactory/getOverlaysVersions.ts
new file mode 100644
index 00000000..8085e1f1
--- /dev/null
+++ b/sdk/nodejs/imagefactory/getOverlaysVersions.ts
@@ -0,0 +1,106 @@
+// *** 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! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as inputs from "../types/input";
+import * as outputs from "../types/output";
+import * as utilities from "../utilities";
+
+/**
+ * The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.
+ *
+ * ## Example Usage
+ *
+ * ```typescript
+ * import * as pulumi from "@pulumi/pulumi";
+ * import * as talos from "@pulumi/talos";
+ *
+ * const this = talos.imageFactory.getOverlaysVersions({
+ * talosVersion: "v1.7.5",
+ * filters: {
+ * name: "rock4cplus",
+ * },
+ * });
+ * ```
+ */
+export function getOverlaysVersions(args: GetOverlaysVersionsArgs, opts?: pulumi.InvokeOptions): Promise {
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invoke("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", {
+ "filters": args.filters,
+ "talosVersion": args.talosVersion,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getOverlaysVersions.
+ */
+export interface GetOverlaysVersionsArgs {
+ /**
+ * The filter to apply to the overlays list.
+ */
+ filters?: inputs.imageFactory.GetOverlaysVersionsFilters;
+ /**
+ * The talos version to get overlays for.
+ */
+ talosVersion: string;
+}
+
+/**
+ * A collection of values returned by getOverlaysVersions.
+ */
+export interface GetOverlaysVersionsResult {
+ /**
+ * The filter to apply to the overlays list.
+ */
+ readonly filters?: outputs.imageFactory.GetOverlaysVersionsFilters;
+ /**
+ * The ID of this resource.
+ */
+ readonly id: string;
+ /**
+ * The list of available extensions for the specified talos version.
+ */
+ readonly overlaysInfos: outputs.imageFactory.GetOverlaysVersionsOverlaysInfo[];
+ /**
+ * The talos version to get overlays for.
+ */
+ readonly talosVersion: string;
+}
+/**
+ * The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.
+ *
+ * ## Example Usage
+ *
+ * ```typescript
+ * import * as pulumi from "@pulumi/pulumi";
+ * import * as talos from "@pulumi/talos";
+ *
+ * const this = talos.imageFactory.getOverlaysVersions({
+ * talosVersion: "v1.7.5",
+ * filters: {
+ * name: "rock4cplus",
+ * },
+ * });
+ * ```
+ */
+export function getOverlaysVersionsOutput(args: GetOverlaysVersionsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output {
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invokeOutput("talos:imageFactory/getOverlaysVersions:getOverlaysVersions", {
+ "filters": args.filters,
+ "talosVersion": args.talosVersion,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getOverlaysVersions.
+ */
+export interface GetOverlaysVersionsOutputArgs {
+ /**
+ * The filter to apply to the overlays list.
+ */
+ filters?: pulumi.Input;
+ /**
+ * The talos version to get overlays for.
+ */
+ talosVersion: pulumi.Input;
+}
diff --git a/sdk/nodejs/imagefactory/getUrls.ts b/sdk/nodejs/imagefactory/getUrls.ts
new file mode 100644
index 00000000..c3454e7a
--- /dev/null
+++ b/sdk/nodejs/imagefactory/getUrls.ts
@@ -0,0 +1,69 @@
+// *** 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! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as inputs from "../types/input";
+import * as outputs from "../types/output";
+import * as utilities from "../utilities";
+
+/**
+ * Generates URLs for different assets supported by the Talos image factory.
+ */
+export function getUrls(args: GetUrlsArgs, opts?: pulumi.InvokeOptions): Promise {
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invoke("talos:imageFactory/getUrls:getUrls", {
+ "architecture": args.architecture,
+ "platform": args.platform,
+ "sbc": args.sbc,
+ "schematicId": args.schematicId,
+ "talosVersion": args.talosVersion,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getUrls.
+ */
+export interface GetUrlsArgs {
+ architecture?: string;
+ platform?: string;
+ sbc?: string;
+ schematicId: string;
+ talosVersion: string;
+}
+
+/**
+ * A collection of values returned by getUrls.
+ */
+export interface GetUrlsResult {
+ readonly architecture: string;
+ readonly id: string;
+ readonly platform?: string;
+ readonly sbc?: string;
+ readonly schematicId: string;
+ readonly talosVersion: string;
+ readonly urls: outputs.imageFactory.GetUrlsUrls;
+}
+/**
+ * Generates URLs for different assets supported by the Talos image factory.
+ */
+export function getUrlsOutput(args: GetUrlsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output {
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invokeOutput("talos:imageFactory/getUrls:getUrls", {
+ "architecture": args.architecture,
+ "platform": args.platform,
+ "sbc": args.sbc,
+ "schematicId": args.schematicId,
+ "talosVersion": args.talosVersion,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getUrls.
+ */
+export interface GetUrlsOutputArgs {
+ architecture?: pulumi.Input;
+ platform?: pulumi.Input;
+ sbc?: pulumi.Input;
+ schematicId: pulumi.Input;
+ talosVersion: pulumi.Input;
+}
diff --git a/sdk/nodejs/imagefactory/getVersions.ts b/sdk/nodejs/imagefactory/getVersions.ts
new file mode 100644
index 00000000..c8c919fb
--- /dev/null
+++ b/sdk/nodejs/imagefactory/getVersions.ts
@@ -0,0 +1,66 @@
+// *** 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! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as inputs from "../types/input";
+import * as outputs from "../types/output";
+import * as utilities from "../utilities";
+
+/**
+ * The image factory versions data source provides a list of available talos versions from the image factory.
+ */
+export function getVersions(args?: GetVersionsArgs, opts?: pulumi.InvokeOptions): Promise {
+ args = args || {};
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invoke("talos:imageFactory/getVersions:getVersions", {
+ "filters": args.filters,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getVersions.
+ */
+export interface GetVersionsArgs {
+ /**
+ * The filter to apply to the overlays list.
+ */
+ filters?: inputs.imageFactory.GetVersionsFilters;
+}
+
+/**
+ * A collection of values returned by getVersions.
+ */
+export interface GetVersionsResult {
+ /**
+ * The filter to apply to the overlays list.
+ */
+ readonly filters?: outputs.imageFactory.GetVersionsFilters;
+ /**
+ * The ID of this resource.
+ */
+ readonly id: string;
+ /**
+ * The list of available talos versions.
+ */
+ readonly talosVersions: string[];
+}
+/**
+ * The image factory versions data source provides a list of available talos versions from the image factory.
+ */
+export function getVersionsOutput(args?: GetVersionsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output {
+ args = args || {};
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invokeOutput("talos:imageFactory/getVersions:getVersions", {
+ "filters": args.filters,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getVersions.
+ */
+export interface GetVersionsOutputArgs {
+ /**
+ * The filter to apply to the overlays list.
+ */
+ filters?: pulumi.Input;
+}
diff --git a/sdk/nodejs/imagefactory/index.ts b/sdk/nodejs/imagefactory/index.ts
new file mode 100644
index 00000000..67c1be05
--- /dev/null
+++ b/sdk/nodejs/imagefactory/index.ts
@@ -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! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as utilities from "../utilities";
+
+// Export members:
+export { GetExtensionsVersionsArgs, GetExtensionsVersionsResult, GetExtensionsVersionsOutputArgs } from "./getExtensionsVersions";
+export const getExtensionsVersions: typeof import("./getExtensionsVersions").getExtensionsVersions = null as any;
+export const getExtensionsVersionsOutput: typeof import("./getExtensionsVersions").getExtensionsVersionsOutput = null as any;
+utilities.lazyLoad(exports, ["getExtensionsVersions","getExtensionsVersionsOutput"], () => require("./getExtensionsVersions"));
+
+export { GetOverlaysVersionsArgs, GetOverlaysVersionsResult, GetOverlaysVersionsOutputArgs } from "./getOverlaysVersions";
+export const getOverlaysVersions: typeof import("./getOverlaysVersions").getOverlaysVersions = null as any;
+export const getOverlaysVersionsOutput: typeof import("./getOverlaysVersions").getOverlaysVersionsOutput = null as any;
+utilities.lazyLoad(exports, ["getOverlaysVersions","getOverlaysVersionsOutput"], () => require("./getOverlaysVersions"));
+
+export { GetUrlsArgs, GetUrlsResult, GetUrlsOutputArgs } from "./getUrls";
+export const getUrls: typeof import("./getUrls").getUrls = null as any;
+export const getUrlsOutput: typeof import("./getUrls").getUrlsOutput = null as any;
+utilities.lazyLoad(exports, ["getUrls","getUrlsOutput"], () => require("./getUrls"));
+
+export { GetVersionsArgs, GetVersionsResult, GetVersionsOutputArgs } from "./getVersions";
+export const getVersions: typeof import("./getVersions").getVersions = null as any;
+export const getVersionsOutput: typeof import("./getVersions").getVersionsOutput = null as any;
+utilities.lazyLoad(exports, ["getVersions","getVersionsOutput"], () => require("./getVersions"));
+
+export { SchematicArgs, SchematicState } from "./schematic";
+export type Schematic = import("./schematic").Schematic;
+export const Schematic: typeof import("./schematic").Schematic = null as any;
+utilities.lazyLoad(exports, ["Schematic"], () => require("./schematic"));
+
+
+const _module = {
+ version: utilities.getVersion(),
+ construct: (name: string, type: string, urn: string): pulumi.Resource => {
+ switch (type) {
+ case "talos:imageFactory/schematic:Schematic":
+ return new Schematic(name, undefined, { urn })
+ default:
+ throw new Error(`unknown resource type ${type}`);
+ }
+ },
+};
+pulumi.runtime.registerResourceModule("talos", "imageFactory/schematic", _module)
diff --git a/sdk/nodejs/imagefactory/schematic.ts b/sdk/nodejs/imagefactory/schematic.ts
new file mode 100644
index 00000000..80944af2
--- /dev/null
+++ b/sdk/nodejs/imagefactory/schematic.ts
@@ -0,0 +1,84 @@
+// *** 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! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as utilities from "../utilities";
+
+/**
+ * The image factory schematic resource allows you to create a schematic for a Talos image.
+ */
+export class Schematic extends pulumi.CustomResource {
+ /**
+ * Get an existing Schematic resource's state with the given name, ID, and optional extra
+ * properties used to qualify the lookup.
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param id The _unique_ provider ID of the resource to lookup.
+ * @param state Any extra arguments used during the lookup.
+ * @param opts Optional settings to control the behavior of the CustomResource.
+ */
+ public static get(name: string, id: pulumi.Input, state?: SchematicState, opts?: pulumi.CustomResourceOptions): Schematic {
+ return new Schematic(name, state, { ...opts, id: id });
+ }
+
+ /** @internal */
+ public static readonly __pulumiType = 'talos:imageFactory/schematic:Schematic';
+
+ /**
+ * Returns true if the given object is an instance of Schematic. This is designed to work even
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
+ */
+ public static isInstance(obj: any): obj is Schematic {
+ if (obj === undefined || obj === null) {
+ return false;
+ }
+ return obj['__pulumiType'] === Schematic.__pulumiType;
+ }
+
+ /**
+ * The schematic yaml respresentation to generate the image.
+ */
+ public readonly schematic!: pulumi.Output;
+
+ /**
+ * Create a Schematic resource with the given unique name, arguments, and options.
+ *
+ * @param name The _unique_ name of the resource.
+ * @param args The arguments to use to populate this resource's properties.
+ * @param opts A bag of options that control this resource's behavior.
+ */
+ constructor(name: string, args?: SchematicArgs, opts?: pulumi.CustomResourceOptions)
+ constructor(name: string, argsOrState?: SchematicArgs | SchematicState, opts?: pulumi.CustomResourceOptions) {
+ let resourceInputs: pulumi.Inputs = {};
+ opts = opts || {};
+ if (opts.id) {
+ const state = argsOrState as SchematicState | undefined;
+ resourceInputs["schematic"] = state ? state.schematic : undefined;
+ } else {
+ const args = argsOrState as SchematicArgs | undefined;
+ resourceInputs["schematic"] = args ? args.schematic : undefined;
+ }
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
+ super(Schematic.__pulumiType, name, resourceInputs, opts);
+ }
+}
+
+/**
+ * Input properties used for looking up and filtering Schematic resources.
+ */
+export interface SchematicState {
+ /**
+ * The schematic yaml respresentation to generate the image.
+ */
+ schematic?: pulumi.Input;
+}
+
+/**
+ * The set of arguments for constructing a Schematic resource.
+ */
+export interface SchematicArgs {
+ /**
+ * The schematic yaml respresentation to generate the image.
+ */
+ schematic?: pulumi.Input;
+}
diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts
index 90bef4a6..a6347fe4 100644
--- a/sdk/nodejs/index.ts
+++ b/sdk/nodejs/index.ts
@@ -14,12 +14,16 @@ utilities.lazyLoad(exports, ["Provider"], () => require("./provider"));
// Export sub-modules:
import * as client from "./client";
import * as cluster from "./cluster";
+import * as config from "./config";
+import * as imagefactory from "./imagefactory";
import * as machine from "./machine";
import * as types from "./types";
export {
client,
cluster,
+ config,
+ imagefactory,
machine,
types,
};
diff --git a/sdk/nodejs/machine/configurationApply.ts b/sdk/nodejs/machine/configurationApply.ts
index 50dacb18..4eeb46f3 100644
--- a/sdk/nodejs/machine/configurationApply.ts
+++ b/sdk/nodejs/machine/configurationApply.ts
@@ -65,6 +65,10 @@ export class ConfigurationApply extends pulumi.CustomResource {
* The name of the node to bootstrap
*/
public readonly node!: pulumi.Output;
+ /**
+ * Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ */
+ public readonly onDestroy!: pulumi.Output;
public readonly timeouts!: pulumi.Output;
/**
@@ -87,6 +91,7 @@ export class ConfigurationApply extends pulumi.CustomResource {
resourceInputs["machineConfiguration"] = state ? state.machineConfiguration : undefined;
resourceInputs["machineConfigurationInput"] = state ? state.machineConfigurationInput : undefined;
resourceInputs["node"] = state ? state.node : undefined;
+ resourceInputs["onDestroy"] = state ? state.onDestroy : undefined;
resourceInputs["timeouts"] = state ? state.timeouts : undefined;
} else {
const args = argsOrState as ConfigurationApplyArgs | undefined;
@@ -105,6 +110,7 @@ export class ConfigurationApply extends pulumi.CustomResource {
resourceInputs["endpoint"] = args ? args.endpoint : undefined;
resourceInputs["machineConfigurationInput"] = args?.machineConfigurationInput ? pulumi.secret(args.machineConfigurationInput) : undefined;
resourceInputs["node"] = args ? args.node : undefined;
+ resourceInputs["onDestroy"] = args ? args.onDestroy : undefined;
resourceInputs["timeouts"] = args ? args.timeouts : undefined;
resourceInputs["machineConfiguration"] = undefined /*out*/;
}
@@ -147,6 +153,10 @@ export interface ConfigurationApplyState {
* The name of the node to bootstrap
*/
node?: pulumi.Input;
+ /**
+ * Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ */
+ onDestroy?: pulumi.Input;
timeouts?: pulumi.Input;
}
@@ -178,5 +188,9 @@ export interface ConfigurationApplyArgs {
* The name of the node to bootstrap
*/
node: pulumi.Input;
+ /**
+ * Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ */
+ onDestroy?: pulumi.Input;
timeouts?: pulumi.Input;
}
diff --git a/sdk/nodejs/machine/getConfiguration.ts b/sdk/nodejs/machine/getConfiguration.ts
index 162dc05f..29215427 100644
--- a/sdk/nodejs/machine/getConfiguration.ts
+++ b/sdk/nodejs/machine/getConfiguration.ts
@@ -59,11 +59,11 @@ export interface GetConfigurationArgs {
*/
configPatches?: string[];
/**
- * Whether to generate documentation for the generated configuration
+ * Whether to generate documentation for the generated configuration. Defaults to false
*/
docs?: boolean;
/**
- * Whether to generate examples for the generated configuration
+ * Whether to generate examples for the generated configuration. Defaults to false
*/
examples?: boolean;
/**
@@ -101,11 +101,11 @@ export interface GetConfigurationResult {
*/
readonly configPatches?: string[];
/**
- * Whether to generate documentation for the generated configuration
+ * Whether to generate documentation for the generated configuration. Defaults to false
*/
readonly docs?: boolean;
/**
- * Whether to generate examples for the generated configuration
+ * Whether to generate examples for the generated configuration. Defaults to false
*/
readonly examples?: boolean;
/**
@@ -186,11 +186,11 @@ export interface GetConfigurationOutputArgs {
*/
configPatches?: pulumi.Input[]>;
/**
- * Whether to generate documentation for the generated configuration
+ * Whether to generate documentation for the generated configuration. Defaults to false
*/
docs?: pulumi.Input;
/**
- * Whether to generate examples for the generated configuration
+ * Whether to generate examples for the generated configuration. Defaults to false
*/
examples?: pulumi.Input;
/**
diff --git a/sdk/nodejs/provider.ts b/sdk/nodejs/provider.ts
index 679f5e87..54af5662 100644
--- a/sdk/nodejs/provider.ts
+++ b/sdk/nodejs/provider.ts
@@ -25,6 +25,10 @@ export class Provider extends pulumi.ProviderResource {
return obj['__pulumiType'] === "pulumi:providers:" + Provider.__pulumiType;
}
+ /**
+ * The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ */
+ public readonly imageFactoryUrl!: pulumi.Output;
/**
* Create a Provider resource with the given unique name, arguments, and options.
@@ -37,6 +41,7 @@ export class Provider extends pulumi.ProviderResource {
let resourceInputs: pulumi.Inputs = {};
opts = opts || {};
{
+ resourceInputs["imageFactoryUrl"] = args ? args.imageFactoryUrl : undefined;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(Provider.__pulumiType, name, resourceInputs, opts);
@@ -47,4 +52,8 @@ export class Provider extends pulumi.ProviderResource {
* The set of arguments for constructing a Provider resource.
*/
export interface ProviderArgs {
+ /**
+ * The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ */
+ imageFactoryUrl?: pulumi.Input;
}
diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json
index 1f660d76..622375d5 100644
--- a/sdk/nodejs/tsconfig.json
+++ b/sdk/nodejs/tsconfig.json
@@ -18,6 +18,15 @@
"cluster/getHealth.ts",
"cluster/getKubeconfig.ts",
"cluster/index.ts",
+ "cluster/kubeconfig.ts",
+ "config/index.ts",
+ "config/vars.ts",
+ "imagefactory/getExtensionsVersions.ts",
+ "imagefactory/getOverlaysVersions.ts",
+ "imagefactory/getUrls.ts",
+ "imagefactory/getVersions.ts",
+ "imagefactory/index.ts",
+ "imagefactory/schematic.ts",
"index.ts",
"machine/bootstrap.ts",
"machine/configurationApply.ts",
diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts
index ff366473..b7b3637e 100644
--- a/sdk/nodejs/types/input.ts
+++ b/sdk/nodejs/types/input.ts
@@ -125,6 +125,95 @@ export namespace cluster {
*/
read?: pulumi.Input;
}
+
+ export interface KubeconfigClientConfiguration {
+ /**
+ * The client CA certificate
+ */
+ caCertificate: pulumi.Input;
+ /**
+ * The client certificate
+ */
+ clientCertificate: pulumi.Input;
+ /**
+ * The client key
+ */
+ clientKey: pulumi.Input;
+ }
+
+ export interface KubeconfigKubernetesClientConfiguration {
+ /**
+ * The kubernetes CA certificate
+ */
+ caCertificate?: pulumi.Input;
+ /**
+ * The kubernetes client certificate
+ */
+ clientCertificate?: pulumi.Input;
+ /**
+ * The kubernetes client key
+ */
+ clientKey?: pulumi.Input;
+ /**
+ * The kubernetes host
+ */
+ host?: pulumi.Input;
+ }
+
+ export interface KubeconfigTimeouts {
+ /**
+ * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ */
+ create?: pulumi.Input;
+ /**
+ * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ */
+ update?: pulumi.Input;
+ }
+}
+
+export namespace imageFactory {
+ export interface GetExtensionsVersionsFilters {
+ /**
+ * The name of the extension to filter by.
+ */
+ names?: string[];
+ }
+
+ export interface GetExtensionsVersionsFiltersArgs {
+ /**
+ * The name of the extension to filter by.
+ */
+ names?: pulumi.Input[]>;
+ }
+
+ export interface GetOverlaysVersionsFilters {
+ /**
+ * The name of the overlay to filter by.
+ */
+ name?: string;
+ }
+
+ export interface GetOverlaysVersionsFiltersArgs {
+ /**
+ * The name of the overlay to filter by.
+ */
+ name?: pulumi.Input;
+ }
+
+ export interface GetVersionsFilters {
+ /**
+ * If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ */
+ stableVersionsOnly?: boolean;
+ }
+
+ export interface GetVersionsFiltersArgs {
+ /**
+ * If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ */
+ stableVersionsOnly?: pulumi.Input;
+ }
}
export namespace machine {
@@ -231,6 +320,21 @@ export namespace machine {
secret: pulumi.Input;
}
+ export interface ConfigurationApplyOnDestroy {
+ /**
+ * Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ */
+ graceful?: pulumi.Input;
+ /**
+ * Reboot indicates whether node should reboot or halt after resetting. Default false
+ */
+ reboot?: pulumi.Input;
+ /**
+ * Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ */
+ reset?: pulumi.Input;
+ }
+
export interface GetDisksClientConfiguration {
/**
* The client CA certificate
@@ -434,6 +538,10 @@ export namespace machine {
* A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
*/
create?: pulumi.Input;
+ /**
+ * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ */
+ delete?: pulumi.Input;
/**
* A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
*/
diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts
index 1ed98388..aedc0d12 100644
--- a/sdk/nodejs/types/output.ts
+++ b/sdk/nodejs/types/output.ts
@@ -87,6 +87,137 @@ export namespace cluster {
read?: string;
}
+ export interface KubeconfigClientConfiguration {
+ /**
+ * The client CA certificate
+ */
+ caCertificate: string;
+ /**
+ * The client certificate
+ */
+ clientCertificate: string;
+ /**
+ * The client key
+ */
+ clientKey: string;
+ }
+
+ export interface KubeconfigKubernetesClientConfiguration {
+ /**
+ * The kubernetes CA certificate
+ */
+ caCertificate: string;
+ /**
+ * The kubernetes client certificate
+ */
+ clientCertificate: string;
+ /**
+ * The kubernetes client key
+ */
+ clientKey: string;
+ /**
+ * The kubernetes host
+ */
+ host: string;
+ }
+
+ export interface KubeconfigTimeouts {
+ /**
+ * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ */
+ create?: string;
+ /**
+ * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ */
+ update?: string;
+ }
+
+}
+
+export namespace imageFactory {
+ export interface GetExtensionsVersionsExtensionsInfo {
+ author: string;
+ description: string;
+ digest: string;
+ name: string;
+ ref: string;
+ }
+
+ export interface GetExtensionsVersionsFilters {
+ /**
+ * The name of the extension to filter by.
+ */
+ names?: string[];
+ }
+
+ export interface GetOverlaysVersionsFilters {
+ /**
+ * The name of the overlay to filter by.
+ */
+ name?: string;
+ }
+
+ export interface GetOverlaysVersionsOverlaysInfo {
+ digest: string;
+ image: string;
+ name: string;
+ ref: string;
+ }
+
+ export interface GetUrlsUrls {
+ /**
+ * The URL for the disk image.
+ */
+ diskImage: string;
+ /**
+ * The URL for the disk image with secure boot.
+ */
+ diskImageSecureboot: string;
+ /**
+ * The URL for the initramfs image.
+ */
+ initramfs: string;
+ /**
+ * The URL for the installer image.
+ */
+ installer: string;
+ /**
+ * The URL for the installer image with secure boot.
+ */
+ installerSecureboot: string;
+ /**
+ * The URL for the ISO image.
+ */
+ iso: string;
+ /**
+ * The URL for the ISO image with secure boot.
+ */
+ isoSecureboot: string;
+ /**
+ * The URL for the kernel image.
+ */
+ kernel: string;
+ /**
+ * The URL for the kernel command line.
+ */
+ kernelCommandLine: string;
+ /**
+ * The URL for the PXE image.
+ */
+ pxe: string;
+ /**
+ * The URL for the UKI image.
+ */
+ uki: string;
+ }
+
+ export interface GetVersionsFilters {
+ /**
+ * If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ */
+ stableVersionsOnly?: boolean;
+ }
+
}
export namespace machine {
@@ -154,6 +285,21 @@ export namespace machine {
secret: string;
}
+ export interface ConfigurationApplyOnDestroy {
+ /**
+ * Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ */
+ graceful: boolean;
+ /**
+ * Reboot indicates whether node should reboot or halt after resetting. Default false
+ */
+ reboot: boolean;
+ /**
+ * Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ */
+ reset: boolean;
+ }
+
export interface GetDisksClientConfiguration {
/**
* The client CA certificate
@@ -297,6 +443,10 @@ export namespace machine {
* A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
*/
create?: string;
+ /**
+ * A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ */
+ delete?: string;
/**
* A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
*/
diff --git a/sdk/python/pulumiverse_talos/__init__.py b/sdk/python/pulumiverse_talos/__init__.py
index 9c9adbd0..5ef3b25d 100644
--- a/sdk/python/pulumiverse_talos/__init__.py
+++ b/sdk/python/pulumiverse_talos/__init__.py
@@ -13,16 +13,38 @@
client = __client
import pulumiverse_talos.cluster as __cluster
cluster = __cluster
+ import pulumiverse_talos.config as __config
+ config = __config
+ import pulumiverse_talos.imagefactory as __imagefactory
+ imagefactory = __imagefactory
import pulumiverse_talos.machine as __machine
machine = __machine
else:
client = _utilities.lazy_import('pulumiverse_talos.client')
cluster = _utilities.lazy_import('pulumiverse_talos.cluster')
+ config = _utilities.lazy_import('pulumiverse_talos.config')
+ imagefactory = _utilities.lazy_import('pulumiverse_talos.imagefactory')
machine = _utilities.lazy_import('pulumiverse_talos.machine')
_utilities.register(
resource_modules="""
[
+ {
+ "pkg": "talos",
+ "mod": "cluster/kubeconfig",
+ "fqn": "pulumiverse_talos.cluster",
+ "classes": {
+ "talos:cluster/kubeconfig:Kubeconfig": "Kubeconfig"
+ }
+ },
+ {
+ "pkg": "talos",
+ "mod": "imageFactory/schematic",
+ "fqn": "pulumiverse_talos.imagefactory",
+ "classes": {
+ "talos:imageFactory/schematic:Schematic": "Schematic"
+ }
+ },
{
"pkg": "talos",
"mod": "machine/bootstrap",
diff --git a/sdk/python/pulumiverse_talos/cluster/__init__.py b/sdk/python/pulumiverse_talos/cluster/__init__.py
index f5e82c77..46aab3f4 100644
--- a/sdk/python/pulumiverse_talos/cluster/__init__.py
+++ b/sdk/python/pulumiverse_talos/cluster/__init__.py
@@ -7,5 +7,6 @@
# Export this package's modules as members:
from .get_health import *
from .get_kubeconfig import *
+from .kubeconfig import *
from ._inputs import *
from . import outputs
diff --git a/sdk/python/pulumiverse_talos/cluster/_inputs.py b/sdk/python/pulumiverse_talos/cluster/_inputs.py
index 78041e12..1952d50e 100644
--- a/sdk/python/pulumiverse_talos/cluster/_inputs.py
+++ b/sdk/python/pulumiverse_talos/cluster/_inputs.py
@@ -15,6 +15,12 @@
from .. import _utilities
__all__ = [
+ 'KubeconfigClientConfigurationArgs',
+ 'KubeconfigClientConfigurationArgsDict',
+ 'KubeconfigKubernetesClientConfigurationArgs',
+ 'KubeconfigKubernetesClientConfigurationArgsDict',
+ 'KubeconfigTimeoutsArgs',
+ 'KubeconfigTimeoutsArgsDict',
'GetHealthClientConfigurationArgs',
'GetHealthClientConfigurationArgsDict',
'GetHealthTimeoutsArgs',
@@ -27,6 +33,219 @@
MYPY = False
+if not MYPY:
+ class KubeconfigClientConfigurationArgsDict(TypedDict):
+ ca_certificate: pulumi.Input[str]
+ """
+ The client CA certificate
+ """
+ client_certificate: pulumi.Input[str]
+ """
+ The client certificate
+ """
+ client_key: pulumi.Input[str]
+ """
+ The client key
+ """
+elif False:
+ KubeconfigClientConfigurationArgsDict: TypeAlias = Mapping[str, Any]
+
+@pulumi.input_type
+class KubeconfigClientConfigurationArgs:
+ def __init__(__self__, *,
+ ca_certificate: pulumi.Input[str],
+ client_certificate: pulumi.Input[str],
+ client_key: pulumi.Input[str]):
+ """
+ :param pulumi.Input[str] ca_certificate: The client CA certificate
+ :param pulumi.Input[str] client_certificate: The client certificate
+ :param pulumi.Input[str] client_key: The client key
+ """
+ pulumi.set(__self__, "ca_certificate", ca_certificate)
+ pulumi.set(__self__, "client_certificate", client_certificate)
+ pulumi.set(__self__, "client_key", client_key)
+
+ @property
+ @pulumi.getter(name="caCertificate")
+ def ca_certificate(self) -> pulumi.Input[str]:
+ """
+ The client CA certificate
+ """
+ return pulumi.get(self, "ca_certificate")
+
+ @ca_certificate.setter
+ def ca_certificate(self, value: pulumi.Input[str]):
+ pulumi.set(self, "ca_certificate", value)
+
+ @property
+ @pulumi.getter(name="clientCertificate")
+ def client_certificate(self) -> pulumi.Input[str]:
+ """
+ The client certificate
+ """
+ return pulumi.get(self, "client_certificate")
+
+ @client_certificate.setter
+ def client_certificate(self, value: pulumi.Input[str]):
+ pulumi.set(self, "client_certificate", value)
+
+ @property
+ @pulumi.getter(name="clientKey")
+ def client_key(self) -> pulumi.Input[str]:
+ """
+ The client key
+ """
+ return pulumi.get(self, "client_key")
+
+ @client_key.setter
+ def client_key(self, value: pulumi.Input[str]):
+ pulumi.set(self, "client_key", value)
+
+
+if not MYPY:
+ class KubeconfigKubernetesClientConfigurationArgsDict(TypedDict):
+ ca_certificate: NotRequired[pulumi.Input[str]]
+ """
+ The kubernetes CA certificate
+ """
+ client_certificate: NotRequired[pulumi.Input[str]]
+ """
+ The kubernetes client certificate
+ """
+ client_key: NotRequired[pulumi.Input[str]]
+ """
+ The kubernetes client key
+ """
+ host: NotRequired[pulumi.Input[str]]
+ """
+ The kubernetes host
+ """
+elif False:
+ KubeconfigKubernetesClientConfigurationArgsDict: TypeAlias = Mapping[str, Any]
+
+@pulumi.input_type
+class KubeconfigKubernetesClientConfigurationArgs:
+ def __init__(__self__, *,
+ ca_certificate: Optional[pulumi.Input[str]] = None,
+ client_certificate: Optional[pulumi.Input[str]] = None,
+ client_key: Optional[pulumi.Input[str]] = None,
+ host: Optional[pulumi.Input[str]] = None):
+ """
+ :param pulumi.Input[str] ca_certificate: The kubernetes CA certificate
+ :param pulumi.Input[str] client_certificate: The kubernetes client certificate
+ :param pulumi.Input[str] client_key: The kubernetes client key
+ :param pulumi.Input[str] host: The kubernetes host
+ """
+ if ca_certificate is not None:
+ pulumi.set(__self__, "ca_certificate", ca_certificate)
+ if client_certificate is not None:
+ pulumi.set(__self__, "client_certificate", client_certificate)
+ if client_key is not None:
+ pulumi.set(__self__, "client_key", client_key)
+ if host is not None:
+ pulumi.set(__self__, "host", host)
+
+ @property
+ @pulumi.getter(name="caCertificate")
+ def ca_certificate(self) -> Optional[pulumi.Input[str]]:
+ """
+ The kubernetes CA certificate
+ """
+ return pulumi.get(self, "ca_certificate")
+
+ @ca_certificate.setter
+ def ca_certificate(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "ca_certificate", value)
+
+ @property
+ @pulumi.getter(name="clientCertificate")
+ def client_certificate(self) -> Optional[pulumi.Input[str]]:
+ """
+ The kubernetes client certificate
+ """
+ return pulumi.get(self, "client_certificate")
+
+ @client_certificate.setter
+ def client_certificate(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "client_certificate", value)
+
+ @property
+ @pulumi.getter(name="clientKey")
+ def client_key(self) -> Optional[pulumi.Input[str]]:
+ """
+ The kubernetes client key
+ """
+ return pulumi.get(self, "client_key")
+
+ @client_key.setter
+ def client_key(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "client_key", value)
+
+ @property
+ @pulumi.getter
+ def host(self) -> Optional[pulumi.Input[str]]:
+ """
+ The kubernetes host
+ """
+ return pulumi.get(self, "host")
+
+ @host.setter
+ def host(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "host", value)
+
+
+if not MYPY:
+ class KubeconfigTimeoutsArgsDict(TypedDict):
+ create: NotRequired[pulumi.Input[str]]
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ """
+ update: NotRequired[pulumi.Input[str]]
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ """
+elif False:
+ KubeconfigTimeoutsArgsDict: TypeAlias = Mapping[str, Any]
+
+@pulumi.input_type
+class KubeconfigTimeoutsArgs:
+ def __init__(__self__, *,
+ create: Optional[pulumi.Input[str]] = None,
+ update: Optional[pulumi.Input[str]] = None):
+ """
+ :param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ :param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ """
+ if create is not None:
+ pulumi.set(__self__, "create", create)
+ if update is not None:
+ pulumi.set(__self__, "update", update)
+
+ @property
+ @pulumi.getter
+ def create(self) -> Optional[pulumi.Input[str]]:
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ """
+ return pulumi.get(self, "create")
+
+ @create.setter
+ def create(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "create", value)
+
+ @property
+ @pulumi.getter
+ def update(self) -> Optional[pulumi.Input[str]]:
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ """
+ return pulumi.get(self, "update")
+
+ @update.setter
+ def update(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "update", value)
+
+
if not MYPY:
class GetHealthClientConfigurationArgsDict(TypedDict):
ca_certificate: str
diff --git a/sdk/python/pulumiverse_talos/cluster/get_health.py b/sdk/python/pulumiverse_talos/cluster/get_health.py
index d4d1a99e..8ec3f052 100644
--- a/sdk/python/pulumiverse_talos/cluster/get_health.py
+++ b/sdk/python/pulumiverse_talos/cluster/get_health.py
@@ -28,7 +28,7 @@ class GetHealthResult:
"""
A collection of values returned by getHealth.
"""
- def __init__(__self__, client_configuration=None, control_plane_nodes=None, endpoints=None, id=None, timeouts=None, worker_nodes=None):
+ def __init__(__self__, client_configuration=None, control_plane_nodes=None, endpoints=None, id=None, skip_kubernetes_checks=None, timeouts=None, worker_nodes=None):
if client_configuration and not isinstance(client_configuration, dict):
raise TypeError("Expected argument 'client_configuration' to be a dict")
pulumi.set(__self__, "client_configuration", client_configuration)
@@ -41,6 +41,9 @@ def __init__(__self__, client_configuration=None, control_plane_nodes=None, endp
if id and not isinstance(id, str):
raise TypeError("Expected argument 'id' to be a str")
pulumi.set(__self__, "id", id)
+ if skip_kubernetes_checks and not isinstance(skip_kubernetes_checks, bool):
+ raise TypeError("Expected argument 'skip_kubernetes_checks' to be a bool")
+ pulumi.set(__self__, "skip_kubernetes_checks", skip_kubernetes_checks)
if timeouts and not isinstance(timeouts, dict):
raise TypeError("Expected argument 'timeouts' to be a dict")
pulumi.set(__self__, "timeouts", timeouts)
@@ -80,6 +83,14 @@ def id(self) -> str:
"""
return pulumi.get(self, "id")
+ @property
+ @pulumi.getter(name="skipKubernetesChecks")
+ def skip_kubernetes_checks(self) -> Optional[bool]:
+ """
+ Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
+ """
+ return pulumi.get(self, "skip_kubernetes_checks")
+
@property
@pulumi.getter
def timeouts(self) -> Optional['outputs.GetHealthTimeoutsResult']:
@@ -104,6 +115,7 @@ def __await__(self):
control_plane_nodes=self.control_plane_nodes,
endpoints=self.endpoints,
id=self.id,
+ skip_kubernetes_checks=self.skip_kubernetes_checks,
timeouts=self.timeouts,
worker_nodes=self.worker_nodes)
@@ -111,22 +123,25 @@ def __await__(self):
def get_health(client_configuration: Optional[Union['GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict']] = None,
control_plane_nodes: Optional[Sequence[str]] = None,
endpoints: Optional[Sequence[str]] = None,
+ skip_kubernetes_checks: Optional[bool] = None,
timeouts: Optional[Union['GetHealthTimeoutsArgs', 'GetHealthTimeoutsArgsDict']] = None,
worker_nodes: Optional[Sequence[str]] = None,
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetHealthResult:
"""
- Checks the health of a Talos cluster
+ Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.
:param Union['GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict'] client_configuration: The client configuration data
:param Sequence[str] control_plane_nodes: List of control plane nodes to check for health.
:param Sequence[str] endpoints: endpoints to use for the health check client. Use at least one control plane endpoint.
+ :param bool skip_kubernetes_checks: Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
:param Sequence[str] worker_nodes: List of worker nodes to check for health.
"""
__args__ = dict()
__args__['clientConfiguration'] = client_configuration
__args__['controlPlaneNodes'] = control_plane_nodes
__args__['endpoints'] = endpoints
+ __args__['skipKubernetesChecks'] = skip_kubernetes_checks
__args__['timeouts'] = timeouts
__args__['workerNodes'] = worker_nodes
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
@@ -137,27 +152,31 @@ def get_health(client_configuration: Optional[Union['GetHealthClientConfiguratio
control_plane_nodes=pulumi.get(__ret__, 'control_plane_nodes'),
endpoints=pulumi.get(__ret__, 'endpoints'),
id=pulumi.get(__ret__, 'id'),
+ skip_kubernetes_checks=pulumi.get(__ret__, 'skip_kubernetes_checks'),
timeouts=pulumi.get(__ret__, 'timeouts'),
worker_nodes=pulumi.get(__ret__, 'worker_nodes'))
def get_health_output(client_configuration: Optional[pulumi.Input[Union['GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict']]] = None,
control_plane_nodes: Optional[pulumi.Input[Sequence[str]]] = None,
endpoints: Optional[pulumi.Input[Sequence[str]]] = None,
+ skip_kubernetes_checks: Optional[pulumi.Input[Optional[bool]]] = None,
timeouts: Optional[pulumi.Input[Optional[Union['GetHealthTimeoutsArgs', 'GetHealthTimeoutsArgsDict']]]] = None,
worker_nodes: Optional[pulumi.Input[Optional[Sequence[str]]]] = None,
opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetHealthResult]:
"""
- Checks the health of a Talos cluster
+ Waits for the Talos cluster to be healthy. Can be used as a dependency before running other operations on the cluster.
:param Union['GetHealthClientConfigurationArgs', 'GetHealthClientConfigurationArgsDict'] client_configuration: The client configuration data
:param Sequence[str] control_plane_nodes: List of control plane nodes to check for health.
:param Sequence[str] endpoints: endpoints to use for the health check client. Use at least one control plane endpoint.
+ :param bool skip_kubernetes_checks: Skip Kubernetes component checks, this is useful to check if the nodes has finished booting up and kubelet is running. Default is false.
:param Sequence[str] worker_nodes: List of worker nodes to check for health.
"""
__args__ = dict()
__args__['clientConfiguration'] = client_configuration
__args__['controlPlaneNodes'] = control_plane_nodes
__args__['endpoints'] = endpoints
+ __args__['skipKubernetesChecks'] = skip_kubernetes_checks
__args__['timeouts'] = timeouts
__args__['workerNodes'] = worker_nodes
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
@@ -167,5 +186,6 @@ def get_health_output(client_configuration: Optional[pulumi.Input[Union['GetHeal
control_plane_nodes=pulumi.get(__response__, 'control_plane_nodes'),
endpoints=pulumi.get(__response__, 'endpoints'),
id=pulumi.get(__response__, 'id'),
+ skip_kubernetes_checks=pulumi.get(__response__, 'skip_kubernetes_checks'),
timeouts=pulumi.get(__response__, 'timeouts'),
worker_nodes=pulumi.get(__response__, 'worker_nodes')))
diff --git a/sdk/python/pulumiverse_talos/cluster/kubeconfig.py b/sdk/python/pulumiverse_talos/cluster/kubeconfig.py
new file mode 100644
index 00000000..25706e0d
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/cluster/kubeconfig.py
@@ -0,0 +1,340 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+from . import outputs
+from ._inputs import *
+
+__all__ = ['KubeconfigArgs', 'Kubeconfig']
+
+@pulumi.input_type
+class KubeconfigArgs:
+ def __init__(__self__, *,
+ client_configuration: pulumi.Input['KubeconfigClientConfigurationArgs'],
+ node: pulumi.Input[str],
+ endpoint: Optional[pulumi.Input[str]] = None,
+ timeouts: Optional[pulumi.Input['KubeconfigTimeoutsArgs']] = None):
+ """
+ The set of arguments for constructing a Kubeconfig resource.
+ :param pulumi.Input['KubeconfigClientConfigurationArgs'] client_configuration: The client configuration data
+ :param pulumi.Input[str] node: controlplane node to retrieve the kubeconfig from
+ :param pulumi.Input[str] endpoint: endpoint to use for the talosclient. If not set, the node value will be used
+ """
+ pulumi.set(__self__, "client_configuration", client_configuration)
+ pulumi.set(__self__, "node", node)
+ if endpoint is not None:
+ pulumi.set(__self__, "endpoint", endpoint)
+ if timeouts is not None:
+ pulumi.set(__self__, "timeouts", timeouts)
+
+ @property
+ @pulumi.getter(name="clientConfiguration")
+ def client_configuration(self) -> pulumi.Input['KubeconfigClientConfigurationArgs']:
+ """
+ The client configuration data
+ """
+ return pulumi.get(self, "client_configuration")
+
+ @client_configuration.setter
+ def client_configuration(self, value: pulumi.Input['KubeconfigClientConfigurationArgs']):
+ pulumi.set(self, "client_configuration", value)
+
+ @property
+ @pulumi.getter
+ def node(self) -> pulumi.Input[str]:
+ """
+ controlplane node to retrieve the kubeconfig from
+ """
+ return pulumi.get(self, "node")
+
+ @node.setter
+ def node(self, value: pulumi.Input[str]):
+ pulumi.set(self, "node", value)
+
+ @property
+ @pulumi.getter
+ def endpoint(self) -> Optional[pulumi.Input[str]]:
+ """
+ endpoint to use for the talosclient. If not set, the node value will be used
+ """
+ return pulumi.get(self, "endpoint")
+
+ @endpoint.setter
+ def endpoint(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "endpoint", value)
+
+ @property
+ @pulumi.getter
+ def timeouts(self) -> Optional[pulumi.Input['KubeconfigTimeoutsArgs']]:
+ return pulumi.get(self, "timeouts")
+
+ @timeouts.setter
+ def timeouts(self, value: Optional[pulumi.Input['KubeconfigTimeoutsArgs']]):
+ pulumi.set(self, "timeouts", value)
+
+
+@pulumi.input_type
+class _KubeconfigState:
+ def __init__(__self__, *,
+ client_configuration: Optional[pulumi.Input['KubeconfigClientConfigurationArgs']] = None,
+ endpoint: Optional[pulumi.Input[str]] = None,
+ kubeconfig_raw: Optional[pulumi.Input[str]] = None,
+ kubernetes_client_configuration: Optional[pulumi.Input['KubeconfigKubernetesClientConfigurationArgs']] = None,
+ node: Optional[pulumi.Input[str]] = None,
+ timeouts: Optional[pulumi.Input['KubeconfigTimeoutsArgs']] = None):
+ """
+ Input properties used for looking up and filtering Kubeconfig resources.
+ :param pulumi.Input['KubeconfigClientConfigurationArgs'] client_configuration: The client configuration data
+ :param pulumi.Input[str] endpoint: endpoint to use for the talosclient. If not set, the node value will be used
+ :param pulumi.Input[str] kubeconfig_raw: The raw kubeconfig
+ :param pulumi.Input['KubeconfigKubernetesClientConfigurationArgs'] kubernetes_client_configuration: The kubernetes client configuration
+ :param pulumi.Input[str] node: controlplane node to retrieve the kubeconfig from
+ """
+ if client_configuration is not None:
+ pulumi.set(__self__, "client_configuration", client_configuration)
+ if endpoint is not None:
+ pulumi.set(__self__, "endpoint", endpoint)
+ if kubeconfig_raw is not None:
+ pulumi.set(__self__, "kubeconfig_raw", kubeconfig_raw)
+ if kubernetes_client_configuration is not None:
+ pulumi.set(__self__, "kubernetes_client_configuration", kubernetes_client_configuration)
+ if node is not None:
+ pulumi.set(__self__, "node", node)
+ if timeouts is not None:
+ pulumi.set(__self__, "timeouts", timeouts)
+
+ @property
+ @pulumi.getter(name="clientConfiguration")
+ def client_configuration(self) -> Optional[pulumi.Input['KubeconfigClientConfigurationArgs']]:
+ """
+ The client configuration data
+ """
+ return pulumi.get(self, "client_configuration")
+
+ @client_configuration.setter
+ def client_configuration(self, value: Optional[pulumi.Input['KubeconfigClientConfigurationArgs']]):
+ pulumi.set(self, "client_configuration", value)
+
+ @property
+ @pulumi.getter
+ def endpoint(self) -> Optional[pulumi.Input[str]]:
+ """
+ endpoint to use for the talosclient. If not set, the node value will be used
+ """
+ return pulumi.get(self, "endpoint")
+
+ @endpoint.setter
+ def endpoint(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "endpoint", value)
+
+ @property
+ @pulumi.getter(name="kubeconfigRaw")
+ def kubeconfig_raw(self) -> Optional[pulumi.Input[str]]:
+ """
+ The raw kubeconfig
+ """
+ return pulumi.get(self, "kubeconfig_raw")
+
+ @kubeconfig_raw.setter
+ def kubeconfig_raw(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "kubeconfig_raw", value)
+
+ @property
+ @pulumi.getter(name="kubernetesClientConfiguration")
+ def kubernetes_client_configuration(self) -> Optional[pulumi.Input['KubeconfigKubernetesClientConfigurationArgs']]:
+ """
+ The kubernetes client configuration
+ """
+ return pulumi.get(self, "kubernetes_client_configuration")
+
+ @kubernetes_client_configuration.setter
+ def kubernetes_client_configuration(self, value: Optional[pulumi.Input['KubeconfigKubernetesClientConfigurationArgs']]):
+ pulumi.set(self, "kubernetes_client_configuration", value)
+
+ @property
+ @pulumi.getter
+ def node(self) -> Optional[pulumi.Input[str]]:
+ """
+ controlplane node to retrieve the kubeconfig from
+ """
+ return pulumi.get(self, "node")
+
+ @node.setter
+ def node(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "node", value)
+
+ @property
+ @pulumi.getter
+ def timeouts(self) -> Optional[pulumi.Input['KubeconfigTimeoutsArgs']]:
+ return pulumi.get(self, "timeouts")
+
+ @timeouts.setter
+ def timeouts(self, value: Optional[pulumi.Input['KubeconfigTimeoutsArgs']]):
+ pulumi.set(self, "timeouts", value)
+
+
+class Kubeconfig(pulumi.CustomResource):
+ @overload
+ def __init__(__self__,
+ resource_name: str,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ client_configuration: Optional[pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']]] = None,
+ endpoint: Optional[pulumi.Input[str]] = None,
+ node: Optional[pulumi.Input[str]] = None,
+ timeouts: Optional[pulumi.Input[Union['KubeconfigTimeoutsArgs', 'KubeconfigTimeoutsArgsDict']]] = None,
+ __props__=None):
+ """
+ Retrieves the kubeconfig for a Talos cluster
+
+ :param str resource_name: The name of the resource.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ :param pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']] client_configuration: The client configuration data
+ :param pulumi.Input[str] endpoint: endpoint to use for the talosclient. If not set, the node value will be used
+ :param pulumi.Input[str] node: controlplane node to retrieve the kubeconfig from
+ """
+ ...
+ @overload
+ def __init__(__self__,
+ resource_name: str,
+ args: KubeconfigArgs,
+ opts: Optional[pulumi.ResourceOptions] = None):
+ """
+ Retrieves the kubeconfig for a Talos cluster
+
+ :param str resource_name: The name of the resource.
+ :param KubeconfigArgs args: The arguments to use to populate this resource's properties.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ """
+ ...
+ def __init__(__self__, resource_name: str, *args, **kwargs):
+ resource_args, opts = _utilities.get_resource_args_opts(KubeconfigArgs, pulumi.ResourceOptions, *args, **kwargs)
+ if resource_args is not None:
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
+ else:
+ __self__._internal_init(resource_name, *args, **kwargs)
+
+ def _internal_init(__self__,
+ resource_name: str,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ client_configuration: Optional[pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']]] = None,
+ endpoint: Optional[pulumi.Input[str]] = None,
+ node: Optional[pulumi.Input[str]] = None,
+ timeouts: Optional[pulumi.Input[Union['KubeconfigTimeoutsArgs', 'KubeconfigTimeoutsArgsDict']]] = None,
+ __props__=None):
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
+ if not isinstance(opts, pulumi.ResourceOptions):
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
+ if opts.id is None:
+ if __props__ is not None:
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
+ __props__ = KubeconfigArgs.__new__(KubeconfigArgs)
+
+ if client_configuration is None and not opts.urn:
+ raise TypeError("Missing required property 'client_configuration'")
+ __props__.__dict__["client_configuration"] = client_configuration
+ __props__.__dict__["endpoint"] = endpoint
+ if node is None and not opts.urn:
+ raise TypeError("Missing required property 'node'")
+ __props__.__dict__["node"] = node
+ __props__.__dict__["timeouts"] = timeouts
+ __props__.__dict__["kubeconfig_raw"] = None
+ __props__.__dict__["kubernetes_client_configuration"] = None
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["kubeconfigRaw"])
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
+ super(Kubeconfig, __self__).__init__(
+ 'talos:cluster/kubeconfig:Kubeconfig',
+ resource_name,
+ __props__,
+ opts)
+
+ @staticmethod
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ client_configuration: Optional[pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']]] = None,
+ endpoint: Optional[pulumi.Input[str]] = None,
+ kubeconfig_raw: Optional[pulumi.Input[str]] = None,
+ kubernetes_client_configuration: Optional[pulumi.Input[Union['KubeconfigKubernetesClientConfigurationArgs', 'KubeconfigKubernetesClientConfigurationArgsDict']]] = None,
+ node: Optional[pulumi.Input[str]] = None,
+ timeouts: Optional[pulumi.Input[Union['KubeconfigTimeoutsArgs', 'KubeconfigTimeoutsArgsDict']]] = None) -> 'Kubeconfig':
+ """
+ Get an existing Kubeconfig resource's state with the given name, id, and optional extra
+ properties used to qualify the lookup.
+
+ :param str resource_name: The unique name of the resulting resource.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ :param pulumi.Input[Union['KubeconfigClientConfigurationArgs', 'KubeconfigClientConfigurationArgsDict']] client_configuration: The client configuration data
+ :param pulumi.Input[str] endpoint: endpoint to use for the talosclient. If not set, the node value will be used
+ :param pulumi.Input[str] kubeconfig_raw: The raw kubeconfig
+ :param pulumi.Input[Union['KubeconfigKubernetesClientConfigurationArgs', 'KubeconfigKubernetesClientConfigurationArgsDict']] kubernetes_client_configuration: The kubernetes client configuration
+ :param pulumi.Input[str] node: controlplane node to retrieve the kubeconfig from
+ """
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
+
+ __props__ = _KubeconfigState.__new__(_KubeconfigState)
+
+ __props__.__dict__["client_configuration"] = client_configuration
+ __props__.__dict__["endpoint"] = endpoint
+ __props__.__dict__["kubeconfig_raw"] = kubeconfig_raw
+ __props__.__dict__["kubernetes_client_configuration"] = kubernetes_client_configuration
+ __props__.__dict__["node"] = node
+ __props__.__dict__["timeouts"] = timeouts
+ return Kubeconfig(resource_name, opts=opts, __props__=__props__)
+
+ @property
+ @pulumi.getter(name="clientConfiguration")
+ def client_configuration(self) -> pulumi.Output['outputs.KubeconfigClientConfiguration']:
+ """
+ The client configuration data
+ """
+ return pulumi.get(self, "client_configuration")
+
+ @property
+ @pulumi.getter
+ def endpoint(self) -> pulumi.Output[str]:
+ """
+ endpoint to use for the talosclient. If not set, the node value will be used
+ """
+ return pulumi.get(self, "endpoint")
+
+ @property
+ @pulumi.getter(name="kubeconfigRaw")
+ def kubeconfig_raw(self) -> pulumi.Output[str]:
+ """
+ The raw kubeconfig
+ """
+ return pulumi.get(self, "kubeconfig_raw")
+
+ @property
+ @pulumi.getter(name="kubernetesClientConfiguration")
+ def kubernetes_client_configuration(self) -> pulumi.Output['outputs.KubeconfigKubernetesClientConfiguration']:
+ """
+ The kubernetes client configuration
+ """
+ return pulumi.get(self, "kubernetes_client_configuration")
+
+ @property
+ @pulumi.getter
+ def node(self) -> pulumi.Output[str]:
+ """
+ controlplane node to retrieve the kubeconfig from
+ """
+ return pulumi.get(self, "node")
+
+ @property
+ @pulumi.getter
+ def timeouts(self) -> pulumi.Output[Optional['outputs.KubeconfigTimeouts']]:
+ return pulumi.get(self, "timeouts")
+
diff --git a/sdk/python/pulumiverse_talos/cluster/outputs.py b/sdk/python/pulumiverse_talos/cluster/outputs.py
index 8ee4f3ab..06eb89fe 100644
--- a/sdk/python/pulumiverse_talos/cluster/outputs.py
+++ b/sdk/python/pulumiverse_talos/cluster/outputs.py
@@ -15,6 +15,9 @@
from .. import _utilities
__all__ = [
+ 'KubeconfigClientConfiguration',
+ 'KubeconfigKubernetesClientConfiguration',
+ 'KubeconfigTimeouts',
'GetHealthClientConfigurationResult',
'GetHealthTimeoutsResult',
'GetKubeconfigClientConfigurationResult',
@@ -22,6 +25,174 @@
'GetKubeconfigTimeoutsResult',
]
+@pulumi.output_type
+class KubeconfigClientConfiguration(dict):
+ @staticmethod
+ def __key_warning(key: str):
+ suggest = None
+ if key == "caCertificate":
+ suggest = "ca_certificate"
+ elif key == "clientCertificate":
+ suggest = "client_certificate"
+ elif key == "clientKey":
+ suggest = "client_key"
+
+ if suggest:
+ pulumi.log.warn(f"Key '{key}' not found in KubeconfigClientConfiguration. Access the value via the '{suggest}' property getter instead.")
+
+ def __getitem__(self, key: str) -> Any:
+ KubeconfigClientConfiguration.__key_warning(key)
+ return super().__getitem__(key)
+
+ def get(self, key: str, default = None) -> Any:
+ KubeconfigClientConfiguration.__key_warning(key)
+ return super().get(key, default)
+
+ def __init__(__self__, *,
+ ca_certificate: str,
+ client_certificate: str,
+ client_key: str):
+ """
+ :param str ca_certificate: The client CA certificate
+ :param str client_certificate: The client certificate
+ :param str client_key: The client key
+ """
+ pulumi.set(__self__, "ca_certificate", ca_certificate)
+ pulumi.set(__self__, "client_certificate", client_certificate)
+ pulumi.set(__self__, "client_key", client_key)
+
+ @property
+ @pulumi.getter(name="caCertificate")
+ def ca_certificate(self) -> str:
+ """
+ The client CA certificate
+ """
+ return pulumi.get(self, "ca_certificate")
+
+ @property
+ @pulumi.getter(name="clientCertificate")
+ def client_certificate(self) -> str:
+ """
+ The client certificate
+ """
+ return pulumi.get(self, "client_certificate")
+
+ @property
+ @pulumi.getter(name="clientKey")
+ def client_key(self) -> str:
+ """
+ The client key
+ """
+ return pulumi.get(self, "client_key")
+
+
+@pulumi.output_type
+class KubeconfigKubernetesClientConfiguration(dict):
+ @staticmethod
+ def __key_warning(key: str):
+ suggest = None
+ if key == "caCertificate":
+ suggest = "ca_certificate"
+ elif key == "clientCertificate":
+ suggest = "client_certificate"
+ elif key == "clientKey":
+ suggest = "client_key"
+
+ if suggest:
+ pulumi.log.warn(f"Key '{key}' not found in KubeconfigKubernetesClientConfiguration. Access the value via the '{suggest}' property getter instead.")
+
+ def __getitem__(self, key: str) -> Any:
+ KubeconfigKubernetesClientConfiguration.__key_warning(key)
+ return super().__getitem__(key)
+
+ def get(self, key: str, default = None) -> Any:
+ KubeconfigKubernetesClientConfiguration.__key_warning(key)
+ return super().get(key, default)
+
+ def __init__(__self__, *,
+ ca_certificate: Optional[str] = None,
+ client_certificate: Optional[str] = None,
+ client_key: Optional[str] = None,
+ host: Optional[str] = None):
+ """
+ :param str ca_certificate: The kubernetes CA certificate
+ :param str client_certificate: The kubernetes client certificate
+ :param str client_key: The kubernetes client key
+ :param str host: The kubernetes host
+ """
+ if ca_certificate is not None:
+ pulumi.set(__self__, "ca_certificate", ca_certificate)
+ if client_certificate is not None:
+ pulumi.set(__self__, "client_certificate", client_certificate)
+ if client_key is not None:
+ pulumi.set(__self__, "client_key", client_key)
+ if host is not None:
+ pulumi.set(__self__, "host", host)
+
+ @property
+ @pulumi.getter(name="caCertificate")
+ def ca_certificate(self) -> Optional[str]:
+ """
+ The kubernetes CA certificate
+ """
+ return pulumi.get(self, "ca_certificate")
+
+ @property
+ @pulumi.getter(name="clientCertificate")
+ def client_certificate(self) -> Optional[str]:
+ """
+ The kubernetes client certificate
+ """
+ return pulumi.get(self, "client_certificate")
+
+ @property
+ @pulumi.getter(name="clientKey")
+ def client_key(self) -> Optional[str]:
+ """
+ The kubernetes client key
+ """
+ return pulumi.get(self, "client_key")
+
+ @property
+ @pulumi.getter
+ def host(self) -> Optional[str]:
+ """
+ The kubernetes host
+ """
+ return pulumi.get(self, "host")
+
+
+@pulumi.output_type
+class KubeconfigTimeouts(dict):
+ def __init__(__self__, *,
+ create: Optional[str] = None,
+ update: Optional[str] = None):
+ """
+ :param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ :param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ """
+ if create is not None:
+ pulumi.set(__self__, "create", create)
+ if update is not None:
+ pulumi.set(__self__, "update", update)
+
+ @property
+ @pulumi.getter
+ def create(self) -> Optional[str]:
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ """
+ return pulumi.get(self, "create")
+
+ @property
+ @pulumi.getter
+ def update(self) -> Optional[str]:
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ """
+ return pulumi.get(self, "update")
+
+
@pulumi.output_type
class GetHealthClientConfigurationResult(dict):
def __init__(__self__, *,
diff --git a/sdk/python/pulumiverse_talos/config/__init__.py b/sdk/python/pulumiverse_talos/config/__init__.py
new file mode 100644
index 00000000..18853fcb
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/config/__init__.py
@@ -0,0 +1,8 @@
+# coding=utf-8
+# *** 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! ***
+
+import sys
+from .vars import _ExportableConfig
+
+sys.modules[__name__].__class__ = _ExportableConfig
diff --git a/sdk/python/pulumiverse_talos/config/__init__.pyi b/sdk/python/pulumiverse_talos/config/__init__.pyi
new file mode 100644
index 00000000..3d356743
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/config/__init__.pyi
@@ -0,0 +1,21 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+
+imageFactoryUrl: Optional[str]
+"""
+The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+"""
+
diff --git a/sdk/python/pulumiverse_talos/config/vars.py b/sdk/python/pulumiverse_talos/config/vars.py
new file mode 100644
index 00000000..999c9305
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/config/vars.py
@@ -0,0 +1,29 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+
+import types
+
+__config__ = pulumi.Config('talos')
+
+
+class _ExportableConfig(types.ModuleType):
+ @property
+ def image_factory_url(self) -> Optional[str]:
+ """
+ The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ """
+ return __config__.get('imageFactoryUrl')
+
diff --git a/sdk/python/pulumiverse_talos/imagefactory/__init__.py b/sdk/python/pulumiverse_talos/imagefactory/__init__.py
new file mode 100644
index 00000000..4bd40679
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/imagefactory/__init__.py
@@ -0,0 +1,14 @@
+# coding=utf-8
+# *** 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! ***
+
+from .. import _utilities
+import typing
+# Export this package's modules as members:
+from .get_extensions_versions import *
+from .get_overlays_versions import *
+from .get_urls import *
+from .get_versions import *
+from .schematic import *
+from ._inputs import *
+from . import outputs
diff --git a/sdk/python/pulumiverse_talos/imagefactory/_inputs.py b/sdk/python/pulumiverse_talos/imagefactory/_inputs.py
new file mode 100644
index 00000000..c9299cb1
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/imagefactory/_inputs.py
@@ -0,0 +1,123 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+
+__all__ = [
+ 'GetExtensionsVersionsFiltersArgs',
+ 'GetExtensionsVersionsFiltersArgsDict',
+ 'GetOverlaysVersionsFiltersArgs',
+ 'GetOverlaysVersionsFiltersArgsDict',
+ 'GetVersionsFiltersArgs',
+ 'GetVersionsFiltersArgsDict',
+]
+
+MYPY = False
+
+if not MYPY:
+ class GetExtensionsVersionsFiltersArgsDict(TypedDict):
+ names: NotRequired[Sequence[str]]
+ """
+ The name of the extension to filter by.
+ """
+elif False:
+ GetExtensionsVersionsFiltersArgsDict: TypeAlias = Mapping[str, Any]
+
+@pulumi.input_type
+class GetExtensionsVersionsFiltersArgs:
+ def __init__(__self__, *,
+ names: Optional[Sequence[str]] = None):
+ """
+ :param Sequence[str] names: The name of the extension to filter by.
+ """
+ if names is not None:
+ pulumi.set(__self__, "names", names)
+
+ @property
+ @pulumi.getter
+ def names(self) -> Optional[Sequence[str]]:
+ """
+ The name of the extension to filter by.
+ """
+ return pulumi.get(self, "names")
+
+ @names.setter
+ def names(self, value: Optional[Sequence[str]]):
+ pulumi.set(self, "names", value)
+
+
+if not MYPY:
+ class GetOverlaysVersionsFiltersArgsDict(TypedDict):
+ name: NotRequired[str]
+ """
+ The name of the overlay to filter by.
+ """
+elif False:
+ GetOverlaysVersionsFiltersArgsDict: TypeAlias = Mapping[str, Any]
+
+@pulumi.input_type
+class GetOverlaysVersionsFiltersArgs:
+ def __init__(__self__, *,
+ name: Optional[str] = None):
+ """
+ :param str name: The name of the overlay to filter by.
+ """
+ if name is not None:
+ pulumi.set(__self__, "name", name)
+
+ @property
+ @pulumi.getter
+ def name(self) -> Optional[str]:
+ """
+ The name of the overlay to filter by.
+ """
+ return pulumi.get(self, "name")
+
+ @name.setter
+ def name(self, value: Optional[str]):
+ pulumi.set(self, "name", value)
+
+
+if not MYPY:
+ class GetVersionsFiltersArgsDict(TypedDict):
+ stable_versions_only: NotRequired[bool]
+ """
+ If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ """
+elif False:
+ GetVersionsFiltersArgsDict: TypeAlias = Mapping[str, Any]
+
+@pulumi.input_type
+class GetVersionsFiltersArgs:
+ def __init__(__self__, *,
+ stable_versions_only: Optional[bool] = None):
+ """
+ :param bool stable_versions_only: If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ """
+ if stable_versions_only is not None:
+ pulumi.set(__self__, "stable_versions_only", stable_versions_only)
+
+ @property
+ @pulumi.getter(name="stableVersionsOnly")
+ def stable_versions_only(self) -> Optional[bool]:
+ """
+ If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ """
+ return pulumi.get(self, "stable_versions_only")
+
+ @stable_versions_only.setter
+ def stable_versions_only(self, value: Optional[bool]):
+ pulumi.set(self, "stable_versions_only", value)
+
+
diff --git a/sdk/python/pulumiverse_talos/imagefactory/get_extensions_versions.py b/sdk/python/pulumiverse_talos/imagefactory/get_extensions_versions.py
new file mode 100644
index 00000000..09875e57
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/imagefactory/get_extensions_versions.py
@@ -0,0 +1,160 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+from . import outputs
+from ._inputs import *
+
+__all__ = [
+ 'GetExtensionsVersionsResult',
+ 'AwaitableGetExtensionsVersionsResult',
+ 'get_extensions_versions',
+ 'get_extensions_versions_output',
+]
+
+@pulumi.output_type
+class GetExtensionsVersionsResult:
+ """
+ A collection of values returned by getExtensionsVersions.
+ """
+ def __init__(__self__, extensions_infos=None, filters=None, id=None, talos_version=None):
+ if extensions_infos and not isinstance(extensions_infos, list):
+ raise TypeError("Expected argument 'extensions_infos' to be a list")
+ pulumi.set(__self__, "extensions_infos", extensions_infos)
+ if filters and not isinstance(filters, dict):
+ raise TypeError("Expected argument 'filters' to be a dict")
+ pulumi.set(__self__, "filters", filters)
+ if id and not isinstance(id, str):
+ raise TypeError("Expected argument 'id' to be a str")
+ pulumi.set(__self__, "id", id)
+ if talos_version and not isinstance(talos_version, str):
+ raise TypeError("Expected argument 'talos_version' to be a str")
+ pulumi.set(__self__, "talos_version", talos_version)
+
+ @property
+ @pulumi.getter(name="extensionsInfos")
+ def extensions_infos(self) -> Sequence['outputs.GetExtensionsVersionsExtensionsInfoResult']:
+ """
+ The list of available extensions for the specified talos version.
+ """
+ return pulumi.get(self, "extensions_infos")
+
+ @property
+ @pulumi.getter
+ def filters(self) -> Optional['outputs.GetExtensionsVersionsFiltersResult']:
+ """
+ The filter to apply to the extensions list.
+ """
+ return pulumi.get(self, "filters")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The ID of this resource.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="talosVersion")
+ def talos_version(self) -> str:
+ """
+ The talos version to get extensions for.
+ """
+ return pulumi.get(self, "talos_version")
+
+
+class AwaitableGetExtensionsVersionsResult(GetExtensionsVersionsResult):
+ # pylint: disable=using-constant-test
+ def __await__(self):
+ if False:
+ yield self
+ return GetExtensionsVersionsResult(
+ extensions_infos=self.extensions_infos,
+ filters=self.filters,
+ id=self.id,
+ talos_version=self.talos_version)
+
+
+def get_extensions_versions(filters: Optional[Union['GetExtensionsVersionsFiltersArgs', 'GetExtensionsVersionsFiltersArgsDict']] = None,
+ talos_version: Optional[str] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetExtensionsVersionsResult:
+ """
+ The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.
+
+ ## Example Usage
+
+ ```python
+ import pulumi
+ import pulumi_talos as talos
+
+ this = talos.imageFactory.get_extensions_versions(talos_version="v1.7.5",
+ filters={
+ "names": [
+ "amdgpu",
+ "tailscale",
+ ],
+ })
+ ```
+
+
+ :param Union['GetExtensionsVersionsFiltersArgs', 'GetExtensionsVersionsFiltersArgsDict'] filters: The filter to apply to the extensions list.
+ :param str talos_version: The talos version to get extensions for.
+ """
+ __args__ = dict()
+ __args__['filters'] = filters
+ __args__['talosVersion'] = talos_version
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+ __ret__ = pulumi.runtime.invoke('talos:imageFactory/getExtensionsVersions:getExtensionsVersions', __args__, opts=opts, typ=GetExtensionsVersionsResult).value
+
+ return AwaitableGetExtensionsVersionsResult(
+ extensions_infos=pulumi.get(__ret__, 'extensions_infos'),
+ filters=pulumi.get(__ret__, 'filters'),
+ id=pulumi.get(__ret__, 'id'),
+ talos_version=pulumi.get(__ret__, 'talos_version'))
+def get_extensions_versions_output(filters: Optional[pulumi.Input[Optional[Union['GetExtensionsVersionsFiltersArgs', 'GetExtensionsVersionsFiltersArgsDict']]]] = None,
+ talos_version: Optional[pulumi.Input[str]] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetExtensionsVersionsResult]:
+ """
+ The image factory extensions versions data source provides a list of available extensions for a specific talos version from the image factory.
+
+ ## Example Usage
+
+ ```python
+ import pulumi
+ import pulumi_talos as talos
+
+ this = talos.imageFactory.get_extensions_versions(talos_version="v1.7.5",
+ filters={
+ "names": [
+ "amdgpu",
+ "tailscale",
+ ],
+ })
+ ```
+
+
+ :param Union['GetExtensionsVersionsFiltersArgs', 'GetExtensionsVersionsFiltersArgsDict'] filters: The filter to apply to the extensions list.
+ :param str talos_version: The talos version to get extensions for.
+ """
+ __args__ = dict()
+ __args__['filters'] = filters
+ __args__['talosVersion'] = talos_version
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+ __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getExtensionsVersions:getExtensionsVersions', __args__, opts=opts, typ=GetExtensionsVersionsResult)
+ return __ret__.apply(lambda __response__: GetExtensionsVersionsResult(
+ extensions_infos=pulumi.get(__response__, 'extensions_infos'),
+ filters=pulumi.get(__response__, 'filters'),
+ id=pulumi.get(__response__, 'id'),
+ talos_version=pulumi.get(__response__, 'talos_version')))
diff --git a/sdk/python/pulumiverse_talos/imagefactory/get_overlays_versions.py b/sdk/python/pulumiverse_talos/imagefactory/get_overlays_versions.py
new file mode 100644
index 00000000..529a74ba
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/imagefactory/get_overlays_versions.py
@@ -0,0 +1,154 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+from . import outputs
+from ._inputs import *
+
+__all__ = [
+ 'GetOverlaysVersionsResult',
+ 'AwaitableGetOverlaysVersionsResult',
+ 'get_overlays_versions',
+ 'get_overlays_versions_output',
+]
+
+@pulumi.output_type
+class GetOverlaysVersionsResult:
+ """
+ A collection of values returned by getOverlaysVersions.
+ """
+ def __init__(__self__, filters=None, id=None, overlays_infos=None, talos_version=None):
+ if filters and not isinstance(filters, dict):
+ raise TypeError("Expected argument 'filters' to be a dict")
+ pulumi.set(__self__, "filters", filters)
+ if id and not isinstance(id, str):
+ raise TypeError("Expected argument 'id' to be a str")
+ pulumi.set(__self__, "id", id)
+ if overlays_infos and not isinstance(overlays_infos, list):
+ raise TypeError("Expected argument 'overlays_infos' to be a list")
+ pulumi.set(__self__, "overlays_infos", overlays_infos)
+ if talos_version and not isinstance(talos_version, str):
+ raise TypeError("Expected argument 'talos_version' to be a str")
+ pulumi.set(__self__, "talos_version", talos_version)
+
+ @property
+ @pulumi.getter
+ def filters(self) -> Optional['outputs.GetOverlaysVersionsFiltersResult']:
+ """
+ The filter to apply to the overlays list.
+ """
+ return pulumi.get(self, "filters")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The ID of this resource.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="overlaysInfos")
+ def overlays_infos(self) -> Sequence['outputs.GetOverlaysVersionsOverlaysInfoResult']:
+ """
+ The list of available extensions for the specified talos version.
+ """
+ return pulumi.get(self, "overlays_infos")
+
+ @property
+ @pulumi.getter(name="talosVersion")
+ def talos_version(self) -> str:
+ """
+ The talos version to get overlays for.
+ """
+ return pulumi.get(self, "talos_version")
+
+
+class AwaitableGetOverlaysVersionsResult(GetOverlaysVersionsResult):
+ # pylint: disable=using-constant-test
+ def __await__(self):
+ if False:
+ yield self
+ return GetOverlaysVersionsResult(
+ filters=self.filters,
+ id=self.id,
+ overlays_infos=self.overlays_infos,
+ talos_version=self.talos_version)
+
+
+def get_overlays_versions(filters: Optional[Union['GetOverlaysVersionsFiltersArgs', 'GetOverlaysVersionsFiltersArgsDict']] = None,
+ talos_version: Optional[str] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetOverlaysVersionsResult:
+ """
+ The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.
+
+ ## Example Usage
+
+ ```python
+ import pulumi
+ import pulumi_talos as talos
+
+ this = talos.imageFactory.get_overlays_versions(talos_version="v1.7.5",
+ filters={
+ "name": "rock4cplus",
+ })
+ ```
+
+
+ :param Union['GetOverlaysVersionsFiltersArgs', 'GetOverlaysVersionsFiltersArgsDict'] filters: The filter to apply to the overlays list.
+ :param str talos_version: The talos version to get overlays for.
+ """
+ __args__ = dict()
+ __args__['filters'] = filters
+ __args__['talosVersion'] = talos_version
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+ __ret__ = pulumi.runtime.invoke('talos:imageFactory/getOverlaysVersions:getOverlaysVersions', __args__, opts=opts, typ=GetOverlaysVersionsResult).value
+
+ return AwaitableGetOverlaysVersionsResult(
+ filters=pulumi.get(__ret__, 'filters'),
+ id=pulumi.get(__ret__, 'id'),
+ overlays_infos=pulumi.get(__ret__, 'overlays_infos'),
+ talos_version=pulumi.get(__ret__, 'talos_version'))
+def get_overlays_versions_output(filters: Optional[pulumi.Input[Optional[Union['GetOverlaysVersionsFiltersArgs', 'GetOverlaysVersionsFiltersArgsDict']]]] = None,
+ talos_version: Optional[pulumi.Input[str]] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetOverlaysVersionsResult]:
+ """
+ The image factory overlays versions data source provides a list of available overlays for a specific talos version from the image factory.
+
+ ## Example Usage
+
+ ```python
+ import pulumi
+ import pulumi_talos as talos
+
+ this = talos.imageFactory.get_overlays_versions(talos_version="v1.7.5",
+ filters={
+ "name": "rock4cplus",
+ })
+ ```
+
+
+ :param Union['GetOverlaysVersionsFiltersArgs', 'GetOverlaysVersionsFiltersArgsDict'] filters: The filter to apply to the overlays list.
+ :param str talos_version: The talos version to get overlays for.
+ """
+ __args__ = dict()
+ __args__['filters'] = filters
+ __args__['talosVersion'] = talos_version
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+ __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getOverlaysVersions:getOverlaysVersions', __args__, opts=opts, typ=GetOverlaysVersionsResult)
+ return __ret__.apply(lambda __response__: GetOverlaysVersionsResult(
+ filters=pulumi.get(__response__, 'filters'),
+ id=pulumi.get(__response__, 'id'),
+ overlays_infos=pulumi.get(__response__, 'overlays_infos'),
+ talos_version=pulumi.get(__response__, 'talos_version')))
diff --git a/sdk/python/pulumiverse_talos/imagefactory/get_urls.py b/sdk/python/pulumiverse_talos/imagefactory/get_urls.py
new file mode 100644
index 00000000..d0787f3f
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/imagefactory/get_urls.py
@@ -0,0 +1,154 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+from . import outputs
+
+__all__ = [
+ 'GetUrlsResult',
+ 'AwaitableGetUrlsResult',
+ 'get_urls',
+ 'get_urls_output',
+]
+
+@pulumi.output_type
+class GetUrlsResult:
+ """
+ A collection of values returned by getUrls.
+ """
+ def __init__(__self__, architecture=None, id=None, platform=None, sbc=None, schematic_id=None, talos_version=None, urls=None):
+ if architecture and not isinstance(architecture, str):
+ raise TypeError("Expected argument 'architecture' to be a str")
+ pulumi.set(__self__, "architecture", architecture)
+ if id and not isinstance(id, str):
+ raise TypeError("Expected argument 'id' to be a str")
+ pulumi.set(__self__, "id", id)
+ if platform and not isinstance(platform, str):
+ raise TypeError("Expected argument 'platform' to be a str")
+ pulumi.set(__self__, "platform", platform)
+ if sbc and not isinstance(sbc, str):
+ raise TypeError("Expected argument 'sbc' to be a str")
+ pulumi.set(__self__, "sbc", sbc)
+ if schematic_id and not isinstance(schematic_id, str):
+ raise TypeError("Expected argument 'schematic_id' to be a str")
+ pulumi.set(__self__, "schematic_id", schematic_id)
+ if talos_version and not isinstance(talos_version, str):
+ raise TypeError("Expected argument 'talos_version' to be a str")
+ pulumi.set(__self__, "talos_version", talos_version)
+ if urls and not isinstance(urls, dict):
+ raise TypeError("Expected argument 'urls' to be a dict")
+ pulumi.set(__self__, "urls", urls)
+
+ @property
+ @pulumi.getter
+ def architecture(self) -> str:
+ return pulumi.get(self, "architecture")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter
+ def platform(self) -> Optional[str]:
+ return pulumi.get(self, "platform")
+
+ @property
+ @pulumi.getter
+ def sbc(self) -> Optional[str]:
+ return pulumi.get(self, "sbc")
+
+ @property
+ @pulumi.getter(name="schematicId")
+ def schematic_id(self) -> str:
+ return pulumi.get(self, "schematic_id")
+
+ @property
+ @pulumi.getter(name="talosVersion")
+ def talos_version(self) -> str:
+ return pulumi.get(self, "talos_version")
+
+ @property
+ @pulumi.getter
+ def urls(self) -> 'outputs.GetUrlsUrlsResult':
+ return pulumi.get(self, "urls")
+
+
+class AwaitableGetUrlsResult(GetUrlsResult):
+ # pylint: disable=using-constant-test
+ def __await__(self):
+ if False:
+ yield self
+ return GetUrlsResult(
+ architecture=self.architecture,
+ id=self.id,
+ platform=self.platform,
+ sbc=self.sbc,
+ schematic_id=self.schematic_id,
+ talos_version=self.talos_version,
+ urls=self.urls)
+
+
+def get_urls(architecture: Optional[str] = None,
+ platform: Optional[str] = None,
+ sbc: Optional[str] = None,
+ schematic_id: Optional[str] = None,
+ talos_version: Optional[str] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetUrlsResult:
+ """
+ Generates URLs for different assets supported by the Talos image factory.
+ """
+ __args__ = dict()
+ __args__['architecture'] = architecture
+ __args__['platform'] = platform
+ __args__['sbc'] = sbc
+ __args__['schematicId'] = schematic_id
+ __args__['talosVersion'] = talos_version
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+ __ret__ = pulumi.runtime.invoke('talos:imageFactory/getUrls:getUrls', __args__, opts=opts, typ=GetUrlsResult).value
+
+ return AwaitableGetUrlsResult(
+ architecture=pulumi.get(__ret__, 'architecture'),
+ id=pulumi.get(__ret__, 'id'),
+ platform=pulumi.get(__ret__, 'platform'),
+ sbc=pulumi.get(__ret__, 'sbc'),
+ schematic_id=pulumi.get(__ret__, 'schematic_id'),
+ talos_version=pulumi.get(__ret__, 'talos_version'),
+ urls=pulumi.get(__ret__, 'urls'))
+def get_urls_output(architecture: Optional[pulumi.Input[Optional[str]]] = None,
+ platform: Optional[pulumi.Input[Optional[str]]] = None,
+ sbc: Optional[pulumi.Input[Optional[str]]] = None,
+ schematic_id: Optional[pulumi.Input[str]] = None,
+ talos_version: Optional[pulumi.Input[str]] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetUrlsResult]:
+ """
+ Generates URLs for different assets supported by the Talos image factory.
+ """
+ __args__ = dict()
+ __args__['architecture'] = architecture
+ __args__['platform'] = platform
+ __args__['sbc'] = sbc
+ __args__['schematicId'] = schematic_id
+ __args__['talosVersion'] = talos_version
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+ __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getUrls:getUrls', __args__, opts=opts, typ=GetUrlsResult)
+ return __ret__.apply(lambda __response__: GetUrlsResult(
+ architecture=pulumi.get(__response__, 'architecture'),
+ id=pulumi.get(__response__, 'id'),
+ platform=pulumi.get(__response__, 'platform'),
+ sbc=pulumi.get(__response__, 'sbc'),
+ schematic_id=pulumi.get(__response__, 'schematic_id'),
+ talos_version=pulumi.get(__response__, 'talos_version'),
+ urls=pulumi.get(__response__, 'urls')))
diff --git a/sdk/python/pulumiverse_talos/imagefactory/get_versions.py b/sdk/python/pulumiverse_talos/imagefactory/get_versions.py
new file mode 100644
index 00000000..bdb91154
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/imagefactory/get_versions.py
@@ -0,0 +1,110 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+from . import outputs
+from ._inputs import *
+
+__all__ = [
+ 'GetVersionsResult',
+ 'AwaitableGetVersionsResult',
+ 'get_versions',
+ 'get_versions_output',
+]
+
+@pulumi.output_type
+class GetVersionsResult:
+ """
+ A collection of values returned by getVersions.
+ """
+ def __init__(__self__, filters=None, id=None, talos_versions=None):
+ if filters and not isinstance(filters, dict):
+ raise TypeError("Expected argument 'filters' to be a dict")
+ pulumi.set(__self__, "filters", filters)
+ if id and not isinstance(id, str):
+ raise TypeError("Expected argument 'id' to be a str")
+ pulumi.set(__self__, "id", id)
+ if talos_versions and not isinstance(talos_versions, list):
+ raise TypeError("Expected argument 'talos_versions' to be a list")
+ pulumi.set(__self__, "talos_versions", talos_versions)
+
+ @property
+ @pulumi.getter
+ def filters(self) -> Optional['outputs.GetVersionsFiltersResult']:
+ """
+ The filter to apply to the overlays list.
+ """
+ return pulumi.get(self, "filters")
+
+ @property
+ @pulumi.getter
+ def id(self) -> str:
+ """
+ The ID of this resource.
+ """
+ return pulumi.get(self, "id")
+
+ @property
+ @pulumi.getter(name="talosVersions")
+ def talos_versions(self) -> Sequence[str]:
+ """
+ The list of available talos versions.
+ """
+ return pulumi.get(self, "talos_versions")
+
+
+class AwaitableGetVersionsResult(GetVersionsResult):
+ # pylint: disable=using-constant-test
+ def __await__(self):
+ if False:
+ yield self
+ return GetVersionsResult(
+ filters=self.filters,
+ id=self.id,
+ talos_versions=self.talos_versions)
+
+
+def get_versions(filters: Optional[Union['GetVersionsFiltersArgs', 'GetVersionsFiltersArgsDict']] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetVersionsResult:
+ """
+ The image factory versions data source provides a list of available talos versions from the image factory.
+
+
+ :param Union['GetVersionsFiltersArgs', 'GetVersionsFiltersArgsDict'] filters: The filter to apply to the overlays list.
+ """
+ __args__ = dict()
+ __args__['filters'] = filters
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+ __ret__ = pulumi.runtime.invoke('talos:imageFactory/getVersions:getVersions', __args__, opts=opts, typ=GetVersionsResult).value
+
+ return AwaitableGetVersionsResult(
+ filters=pulumi.get(__ret__, 'filters'),
+ id=pulumi.get(__ret__, 'id'),
+ talos_versions=pulumi.get(__ret__, 'talos_versions'))
+def get_versions_output(filters: Optional[pulumi.Input[Optional[Union['GetVersionsFiltersArgs', 'GetVersionsFiltersArgsDict']]]] = None,
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetVersionsResult]:
+ """
+ The image factory versions data source provides a list of available talos versions from the image factory.
+
+
+ :param Union['GetVersionsFiltersArgs', 'GetVersionsFiltersArgsDict'] filters: The filter to apply to the overlays list.
+ """
+ __args__ = dict()
+ __args__['filters'] = filters
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
+ __ret__ = pulumi.runtime.invoke_output('talos:imageFactory/getVersions:getVersions', __args__, opts=opts, typ=GetVersionsResult)
+ return __ret__.apply(lambda __response__: GetVersionsResult(
+ filters=pulumi.get(__response__, 'filters'),
+ id=pulumi.get(__response__, 'id'),
+ talos_versions=pulumi.get(__response__, 'talos_versions')))
diff --git a/sdk/python/pulumiverse_talos/imagefactory/outputs.py b/sdk/python/pulumiverse_talos/imagefactory/outputs.py
new file mode 100644
index 00000000..60aca932
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/imagefactory/outputs.py
@@ -0,0 +1,283 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+
+__all__ = [
+ 'GetExtensionsVersionsExtensionsInfoResult',
+ 'GetExtensionsVersionsFiltersResult',
+ 'GetOverlaysVersionsFiltersResult',
+ 'GetOverlaysVersionsOverlaysInfoResult',
+ 'GetUrlsUrlsResult',
+ 'GetVersionsFiltersResult',
+]
+
+@pulumi.output_type
+class GetExtensionsVersionsExtensionsInfoResult(dict):
+ def __init__(__self__, *,
+ author: str,
+ description: str,
+ digest: str,
+ name: str,
+ ref: str):
+ pulumi.set(__self__, "author", author)
+ pulumi.set(__self__, "description", description)
+ pulumi.set(__self__, "digest", digest)
+ pulumi.set(__self__, "name", name)
+ pulumi.set(__self__, "ref", ref)
+
+ @property
+ @pulumi.getter
+ def author(self) -> str:
+ return pulumi.get(self, "author")
+
+ @property
+ @pulumi.getter
+ def description(self) -> str:
+ return pulumi.get(self, "description")
+
+ @property
+ @pulumi.getter
+ def digest(self) -> str:
+ return pulumi.get(self, "digest")
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter
+ def ref(self) -> str:
+ return pulumi.get(self, "ref")
+
+
+@pulumi.output_type
+class GetExtensionsVersionsFiltersResult(dict):
+ def __init__(__self__, *,
+ names: Optional[Sequence[str]] = None):
+ """
+ :param Sequence[str] names: The name of the extension to filter by.
+ """
+ if names is not None:
+ pulumi.set(__self__, "names", names)
+
+ @property
+ @pulumi.getter
+ def names(self) -> Optional[Sequence[str]]:
+ """
+ The name of the extension to filter by.
+ """
+ return pulumi.get(self, "names")
+
+
+@pulumi.output_type
+class GetOverlaysVersionsFiltersResult(dict):
+ def __init__(__self__, *,
+ name: Optional[str] = None):
+ """
+ :param str name: The name of the overlay to filter by.
+ """
+ if name is not None:
+ pulumi.set(__self__, "name", name)
+
+ @property
+ @pulumi.getter
+ def name(self) -> Optional[str]:
+ """
+ The name of the overlay to filter by.
+ """
+ return pulumi.get(self, "name")
+
+
+@pulumi.output_type
+class GetOverlaysVersionsOverlaysInfoResult(dict):
+ def __init__(__self__, *,
+ digest: str,
+ image: str,
+ name: str,
+ ref: str):
+ pulumi.set(__self__, "digest", digest)
+ pulumi.set(__self__, "image", image)
+ pulumi.set(__self__, "name", name)
+ pulumi.set(__self__, "ref", ref)
+
+ @property
+ @pulumi.getter
+ def digest(self) -> str:
+ return pulumi.get(self, "digest")
+
+ @property
+ @pulumi.getter
+ def image(self) -> str:
+ return pulumi.get(self, "image")
+
+ @property
+ @pulumi.getter
+ def name(self) -> str:
+ return pulumi.get(self, "name")
+
+ @property
+ @pulumi.getter
+ def ref(self) -> str:
+ return pulumi.get(self, "ref")
+
+
+@pulumi.output_type
+class GetUrlsUrlsResult(dict):
+ def __init__(__self__, *,
+ disk_image: str,
+ disk_image_secureboot: str,
+ initramfs: str,
+ installer: str,
+ installer_secureboot: str,
+ iso: str,
+ iso_secureboot: str,
+ kernel: str,
+ kernel_command_line: str,
+ pxe: str,
+ uki: str):
+ """
+ :param str disk_image: The URL for the disk image.
+ :param str disk_image_secureboot: The URL for the disk image with secure boot.
+ :param str initramfs: The URL for the initramfs image.
+ :param str installer: The URL for the installer image.
+ :param str installer_secureboot: The URL for the installer image with secure boot.
+ :param str iso: The URL for the ISO image.
+ :param str iso_secureboot: The URL for the ISO image with secure boot.
+ :param str kernel: The URL for the kernel image.
+ :param str kernel_command_line: The URL for the kernel command line.
+ :param str pxe: The URL for the PXE image.
+ :param str uki: The URL for the UKI image.
+ """
+ pulumi.set(__self__, "disk_image", disk_image)
+ pulumi.set(__self__, "disk_image_secureboot", disk_image_secureboot)
+ pulumi.set(__self__, "initramfs", initramfs)
+ pulumi.set(__self__, "installer", installer)
+ pulumi.set(__self__, "installer_secureboot", installer_secureboot)
+ pulumi.set(__self__, "iso", iso)
+ pulumi.set(__self__, "iso_secureboot", iso_secureboot)
+ pulumi.set(__self__, "kernel", kernel)
+ pulumi.set(__self__, "kernel_command_line", kernel_command_line)
+ pulumi.set(__self__, "pxe", pxe)
+ pulumi.set(__self__, "uki", uki)
+
+ @property
+ @pulumi.getter(name="diskImage")
+ def disk_image(self) -> str:
+ """
+ The URL for the disk image.
+ """
+ return pulumi.get(self, "disk_image")
+
+ @property
+ @pulumi.getter(name="diskImageSecureboot")
+ def disk_image_secureboot(self) -> str:
+ """
+ The URL for the disk image with secure boot.
+ """
+ return pulumi.get(self, "disk_image_secureboot")
+
+ @property
+ @pulumi.getter
+ def initramfs(self) -> str:
+ """
+ The URL for the initramfs image.
+ """
+ return pulumi.get(self, "initramfs")
+
+ @property
+ @pulumi.getter
+ def installer(self) -> str:
+ """
+ The URL for the installer image.
+ """
+ return pulumi.get(self, "installer")
+
+ @property
+ @pulumi.getter(name="installerSecureboot")
+ def installer_secureboot(self) -> str:
+ """
+ The URL for the installer image with secure boot.
+ """
+ return pulumi.get(self, "installer_secureboot")
+
+ @property
+ @pulumi.getter
+ def iso(self) -> str:
+ """
+ The URL for the ISO image.
+ """
+ return pulumi.get(self, "iso")
+
+ @property
+ @pulumi.getter(name="isoSecureboot")
+ def iso_secureboot(self) -> str:
+ """
+ The URL for the ISO image with secure boot.
+ """
+ return pulumi.get(self, "iso_secureboot")
+
+ @property
+ @pulumi.getter
+ def kernel(self) -> str:
+ """
+ The URL for the kernel image.
+ """
+ return pulumi.get(self, "kernel")
+
+ @property
+ @pulumi.getter(name="kernelCommandLine")
+ def kernel_command_line(self) -> str:
+ """
+ The URL for the kernel command line.
+ """
+ return pulumi.get(self, "kernel_command_line")
+
+ @property
+ @pulumi.getter
+ def pxe(self) -> str:
+ """
+ The URL for the PXE image.
+ """
+ return pulumi.get(self, "pxe")
+
+ @property
+ @pulumi.getter
+ def uki(self) -> str:
+ """
+ The URL for the UKI image.
+ """
+ return pulumi.get(self, "uki")
+
+
+@pulumi.output_type
+class GetVersionsFiltersResult(dict):
+ def __init__(__self__, *,
+ stable_versions_only: Optional[bool] = None):
+ """
+ :param bool stable_versions_only: If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ """
+ if stable_versions_only is not None:
+ pulumi.set(__self__, "stable_versions_only", stable_versions_only)
+
+ @property
+ @pulumi.getter(name="stableVersionsOnly")
+ def stable_versions_only(self) -> Optional[bool]:
+ """
+ If set to true, only stable versions will be returned. If set to false, all versions will be returned.
+ """
+ return pulumi.get(self, "stable_versions_only")
+
+
diff --git a/sdk/python/pulumiverse_talos/imagefactory/schematic.py b/sdk/python/pulumiverse_talos/imagefactory/schematic.py
new file mode 100644
index 00000000..4bf7bb2e
--- /dev/null
+++ b/sdk/python/pulumiverse_talos/imagefactory/schematic.py
@@ -0,0 +1,150 @@
+# coding=utf-8
+# *** 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! ***
+
+import copy
+import warnings
+import sys
+import pulumi
+import pulumi.runtime
+from typing import Any, Mapping, Optional, Sequence, Union, overload
+if sys.version_info >= (3, 11):
+ from typing import NotRequired, TypedDict, TypeAlias
+else:
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
+from .. import _utilities
+
+__all__ = ['SchematicArgs', 'Schematic']
+
+@pulumi.input_type
+class SchematicArgs:
+ def __init__(__self__, *,
+ schematic: Optional[pulumi.Input[str]] = None):
+ """
+ The set of arguments for constructing a Schematic resource.
+ :param pulumi.Input[str] schematic: The schematic yaml respresentation to generate the image.
+ """
+ if schematic is not None:
+ pulumi.set(__self__, "schematic", schematic)
+
+ @property
+ @pulumi.getter
+ def schematic(self) -> Optional[pulumi.Input[str]]:
+ """
+ The schematic yaml respresentation to generate the image.
+ """
+ return pulumi.get(self, "schematic")
+
+ @schematic.setter
+ def schematic(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "schematic", value)
+
+
+@pulumi.input_type
+class _SchematicState:
+ def __init__(__self__, *,
+ schematic: Optional[pulumi.Input[str]] = None):
+ """
+ Input properties used for looking up and filtering Schematic resources.
+ :param pulumi.Input[str] schematic: The schematic yaml respresentation to generate the image.
+ """
+ if schematic is not None:
+ pulumi.set(__self__, "schematic", schematic)
+
+ @property
+ @pulumi.getter
+ def schematic(self) -> Optional[pulumi.Input[str]]:
+ """
+ The schematic yaml respresentation to generate the image.
+ """
+ return pulumi.get(self, "schematic")
+
+ @schematic.setter
+ def schematic(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "schematic", value)
+
+
+class Schematic(pulumi.CustomResource):
+ @overload
+ def __init__(__self__,
+ resource_name: str,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ schematic: Optional[pulumi.Input[str]] = None,
+ __props__=None):
+ """
+ The image factory schematic resource allows you to create a schematic for a Talos image.
+
+ :param str resource_name: The name of the resource.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ :param pulumi.Input[str] schematic: The schematic yaml respresentation to generate the image.
+ """
+ ...
+ @overload
+ def __init__(__self__,
+ resource_name: str,
+ args: Optional[SchematicArgs] = None,
+ opts: Optional[pulumi.ResourceOptions] = None):
+ """
+ The image factory schematic resource allows you to create a schematic for a Talos image.
+
+ :param str resource_name: The name of the resource.
+ :param SchematicArgs args: The arguments to use to populate this resource's properties.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ """
+ ...
+ def __init__(__self__, resource_name: str, *args, **kwargs):
+ resource_args, opts = _utilities.get_resource_args_opts(SchematicArgs, pulumi.ResourceOptions, *args, **kwargs)
+ if resource_args is not None:
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
+ else:
+ __self__._internal_init(resource_name, *args, **kwargs)
+
+ def _internal_init(__self__,
+ resource_name: str,
+ opts: Optional[pulumi.ResourceOptions] = None,
+ schematic: Optional[pulumi.Input[str]] = None,
+ __props__=None):
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
+ if not isinstance(opts, pulumi.ResourceOptions):
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
+ if opts.id is None:
+ if __props__ is not None:
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
+ __props__ = SchematicArgs.__new__(SchematicArgs)
+
+ __props__.__dict__["schematic"] = schematic
+ super(Schematic, __self__).__init__(
+ 'talos:imageFactory/schematic:Schematic',
+ resource_name,
+ __props__,
+ opts)
+
+ @staticmethod
+ def get(resource_name: str,
+ id: pulumi.Input[str],
+ opts: Optional[pulumi.ResourceOptions] = None,
+ schematic: Optional[pulumi.Input[str]] = None) -> 'Schematic':
+ """
+ Get an existing Schematic resource's state with the given name, id, and optional extra
+ properties used to qualify the lookup.
+
+ :param str resource_name: The unique name of the resulting resource.
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
+ :param pulumi.ResourceOptions opts: Options for the resource.
+ :param pulumi.Input[str] schematic: The schematic yaml respresentation to generate the image.
+ """
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
+
+ __props__ = _SchematicState.__new__(_SchematicState)
+
+ __props__.__dict__["schematic"] = schematic
+ return Schematic(resource_name, opts=opts, __props__=__props__)
+
+ @property
+ @pulumi.getter
+ def schematic(self) -> pulumi.Output[Optional[str]]:
+ """
+ The schematic yaml respresentation to generate the image.
+ """
+ return pulumi.get(self, "schematic")
+
diff --git a/sdk/python/pulumiverse_talos/machine/_inputs.py b/sdk/python/pulumiverse_talos/machine/_inputs.py
index 076999ea..2fb35299 100644
--- a/sdk/python/pulumiverse_talos/machine/_inputs.py
+++ b/sdk/python/pulumiverse_talos/machine/_inputs.py
@@ -17,6 +17,8 @@
__all__ = [
'BootstrapTimeoutsArgs',
'BootstrapTimeoutsArgsDict',
+ 'ConfigurationApplyOnDestroyArgs',
+ 'ConfigurationApplyOnDestroyArgsDict',
'TimeoutArgs',
'TimeoutArgsDict',
'CertificateArgs',
@@ -91,12 +93,88 @@ def create(self, value: Optional[pulumi.Input[str]]):
pulumi.set(self, "create", value)
+if not MYPY:
+ class ConfigurationApplyOnDestroyArgsDict(TypedDict):
+ graceful: NotRequired[pulumi.Input[bool]]
+ """
+ Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ """
+ reboot: NotRequired[pulumi.Input[bool]]
+ """
+ Reboot indicates whether node should reboot or halt after resetting. Default false
+ """
+ reset: NotRequired[pulumi.Input[bool]]
+ """
+ Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ """
+elif False:
+ ConfigurationApplyOnDestroyArgsDict: TypeAlias = Mapping[str, Any]
+
+@pulumi.input_type
+class ConfigurationApplyOnDestroyArgs:
+ def __init__(__self__, *,
+ graceful: Optional[pulumi.Input[bool]] = None,
+ reboot: Optional[pulumi.Input[bool]] = None,
+ reset: Optional[pulumi.Input[bool]] = None):
+ """
+ :param pulumi.Input[bool] graceful: Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ :param pulumi.Input[bool] reboot: Reboot indicates whether node should reboot or halt after resetting. Default false
+ :param pulumi.Input[bool] reset: Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ """
+ if graceful is not None:
+ pulumi.set(__self__, "graceful", graceful)
+ if reboot is not None:
+ pulumi.set(__self__, "reboot", reboot)
+ if reset is not None:
+ pulumi.set(__self__, "reset", reset)
+
+ @property
+ @pulumi.getter
+ def graceful(self) -> Optional[pulumi.Input[bool]]:
+ """
+ Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ """
+ return pulumi.get(self, "graceful")
+
+ @graceful.setter
+ def graceful(self, value: Optional[pulumi.Input[bool]]):
+ pulumi.set(self, "graceful", value)
+
+ @property
+ @pulumi.getter
+ def reboot(self) -> Optional[pulumi.Input[bool]]:
+ """
+ Reboot indicates whether node should reboot or halt after resetting. Default false
+ """
+ return pulumi.get(self, "reboot")
+
+ @reboot.setter
+ def reboot(self, value: Optional[pulumi.Input[bool]]):
+ pulumi.set(self, "reboot", value)
+
+ @property
+ @pulumi.getter
+ def reset(self) -> Optional[pulumi.Input[bool]]:
+ """
+ Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ """
+ return pulumi.get(self, "reset")
+
+ @reset.setter
+ def reset(self, value: Optional[pulumi.Input[bool]]):
+ pulumi.set(self, "reset", value)
+
+
if not MYPY:
class TimeoutArgsDict(TypedDict):
create: NotRequired[pulumi.Input[str]]
"""
A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
"""
+ delete: NotRequired[pulumi.Input[str]]
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ """
update: NotRequired[pulumi.Input[str]]
"""
A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
@@ -108,13 +186,17 @@ class TimeoutArgsDict(TypedDict):
class TimeoutArgs:
def __init__(__self__, *,
create: Optional[pulumi.Input[str]] = None,
+ delete: Optional[pulumi.Input[str]] = None,
update: Optional[pulumi.Input[str]] = None):
"""
:param pulumi.Input[str] create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ :param pulumi.Input[str] delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
:param pulumi.Input[str] update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
"""
if create is not None:
pulumi.set(__self__, "create", create)
+ if delete is not None:
+ pulumi.set(__self__, "delete", delete)
if update is not None:
pulumi.set(__self__, "update", update)
@@ -130,6 +212,18 @@ def create(self) -> Optional[pulumi.Input[str]]:
def create(self, value: Optional[pulumi.Input[str]]):
pulumi.set(self, "create", value)
+ @property
+ @pulumi.getter
+ def delete(self) -> Optional[pulumi.Input[str]]:
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ """
+ return pulumi.get(self, "delete")
+
+ @delete.setter
+ def delete(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "delete", value)
+
@property
@pulumi.getter
def update(self) -> Optional[pulumi.Input[str]]:
diff --git a/sdk/python/pulumiverse_talos/machine/configuration_apply.py b/sdk/python/pulumiverse_talos/machine/configuration_apply.py
index f9936545..577ed90e 100644
--- a/sdk/python/pulumiverse_talos/machine/configuration_apply.py
+++ b/sdk/python/pulumiverse_talos/machine/configuration_apply.py
@@ -27,6 +27,7 @@ def __init__(__self__, *,
apply_mode: Optional[pulumi.Input[str]] = None,
config_patches: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
endpoint: Optional[pulumi.Input[str]] = None,
+ on_destroy: Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']] = None,
timeouts: Optional[pulumi.Input['TimeoutArgs']] = None):
"""
The set of arguments for constructing a ConfigurationApply resource.
@@ -36,6 +37,7 @@ def __init__(__self__, *,
:param pulumi.Input[str] apply_mode: The mode of the apply operation
:param pulumi.Input[Sequence[pulumi.Input[str]]] config_patches: The list of config patches to apply
:param pulumi.Input[str] endpoint: The endpoint of the machine to bootstrap
+ :param pulumi.Input['ConfigurationApplyOnDestroyArgs'] on_destroy: Actions to be taken on destroy, if *reset* is not set this is a no-op.
"""
pulumi.set(__self__, "client_configuration", client_configuration)
pulumi.set(__self__, "machine_configuration_input", machine_configuration_input)
@@ -46,6 +48,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "config_patches", config_patches)
if endpoint is not None:
pulumi.set(__self__, "endpoint", endpoint)
+ if on_destroy is not None:
+ pulumi.set(__self__, "on_destroy", on_destroy)
if timeouts is not None:
pulumi.set(__self__, "timeouts", timeouts)
@@ -121,6 +125,18 @@ def endpoint(self) -> Optional[pulumi.Input[str]]:
def endpoint(self, value: Optional[pulumi.Input[str]]):
pulumi.set(self, "endpoint", value)
+ @property
+ @pulumi.getter(name="onDestroy")
+ def on_destroy(self) -> Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']]:
+ """
+ Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ """
+ return pulumi.get(self, "on_destroy")
+
+ @on_destroy.setter
+ def on_destroy(self, value: Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']]):
+ pulumi.set(self, "on_destroy", value)
+
@property
@pulumi.getter
def timeouts(self) -> Optional[pulumi.Input['TimeoutArgs']]:
@@ -141,6 +157,7 @@ def __init__(__self__, *,
machine_configuration: Optional[pulumi.Input[str]] = None,
machine_configuration_input: Optional[pulumi.Input[str]] = None,
node: Optional[pulumi.Input[str]] = None,
+ on_destroy: Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']] = None,
timeouts: Optional[pulumi.Input['TimeoutArgs']] = None):
"""
Input properties used for looking up and filtering ConfigurationApply resources.
@@ -151,6 +168,7 @@ def __init__(__self__, *,
:param pulumi.Input[str] machine_configuration: The generated machine configuration after applying patches
:param pulumi.Input[str] machine_configuration_input: The machine configuration to apply
:param pulumi.Input[str] node: The name of the node to bootstrap
+ :param pulumi.Input['ConfigurationApplyOnDestroyArgs'] on_destroy: Actions to be taken on destroy, if *reset* is not set this is a no-op.
"""
if apply_mode is not None:
pulumi.set(__self__, "apply_mode", apply_mode)
@@ -166,6 +184,8 @@ def __init__(__self__, *,
pulumi.set(__self__, "machine_configuration_input", machine_configuration_input)
if node is not None:
pulumi.set(__self__, "node", node)
+ if on_destroy is not None:
+ pulumi.set(__self__, "on_destroy", on_destroy)
if timeouts is not None:
pulumi.set(__self__, "timeouts", timeouts)
@@ -253,6 +273,18 @@ def node(self) -> Optional[pulumi.Input[str]]:
def node(self, value: Optional[pulumi.Input[str]]):
pulumi.set(self, "node", value)
+ @property
+ @pulumi.getter(name="onDestroy")
+ def on_destroy(self) -> Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']]:
+ """
+ Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ """
+ return pulumi.get(self, "on_destroy")
+
+ @on_destroy.setter
+ def on_destroy(self, value: Optional[pulumi.Input['ConfigurationApplyOnDestroyArgs']]):
+ pulumi.set(self, "on_destroy", value)
+
@property
@pulumi.getter
def timeouts(self) -> Optional[pulumi.Input['TimeoutArgs']]:
@@ -274,6 +306,7 @@ def __init__(__self__,
endpoint: Optional[pulumi.Input[str]] = None,
machine_configuration_input: Optional[pulumi.Input[str]] = None,
node: Optional[pulumi.Input[str]] = None,
+ on_destroy: Optional[pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']]] = None,
timeouts: Optional[pulumi.Input[Union['TimeoutArgs', 'TimeoutArgsDict']]] = None,
__props__=None):
"""
@@ -287,6 +320,7 @@ def __init__(__self__,
:param pulumi.Input[str] endpoint: The endpoint of the machine to bootstrap
:param pulumi.Input[str] machine_configuration_input: The machine configuration to apply
:param pulumi.Input[str] node: The name of the node to bootstrap
+ :param pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']] on_destroy: Actions to be taken on destroy, if *reset* is not set this is a no-op.
"""
...
@overload
@@ -318,6 +352,7 @@ def _internal_init(__self__,
endpoint: Optional[pulumi.Input[str]] = None,
machine_configuration_input: Optional[pulumi.Input[str]] = None,
node: Optional[pulumi.Input[str]] = None,
+ on_destroy: Optional[pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']]] = None,
timeouts: Optional[pulumi.Input[Union['TimeoutArgs', 'TimeoutArgsDict']]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -340,6 +375,7 @@ def _internal_init(__self__,
if node is None and not opts.urn:
raise TypeError("Missing required property 'node'")
__props__.__dict__["node"] = node
+ __props__.__dict__["on_destroy"] = on_destroy
__props__.__dict__["timeouts"] = timeouts
__props__.__dict__["machine_configuration"] = None
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["machineConfiguration", "machineConfigurationInput"])
@@ -361,6 +397,7 @@ def get(resource_name: str,
machine_configuration: Optional[pulumi.Input[str]] = None,
machine_configuration_input: Optional[pulumi.Input[str]] = None,
node: Optional[pulumi.Input[str]] = None,
+ on_destroy: Optional[pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']]] = None,
timeouts: Optional[pulumi.Input[Union['TimeoutArgs', 'TimeoutArgsDict']]] = None) -> 'ConfigurationApply':
"""
Get an existing ConfigurationApply resource's state with the given name, id, and optional extra
@@ -376,6 +413,7 @@ def get(resource_name: str,
:param pulumi.Input[str] machine_configuration: The generated machine configuration after applying patches
:param pulumi.Input[str] machine_configuration_input: The machine configuration to apply
:param pulumi.Input[str] node: The name of the node to bootstrap
+ :param pulumi.Input[Union['ConfigurationApplyOnDestroyArgs', 'ConfigurationApplyOnDestroyArgsDict']] on_destroy: Actions to be taken on destroy, if *reset* is not set this is a no-op.
"""
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -388,6 +426,7 @@ def get(resource_name: str,
__props__.__dict__["machine_configuration"] = machine_configuration
__props__.__dict__["machine_configuration_input"] = machine_configuration_input
__props__.__dict__["node"] = node
+ __props__.__dict__["on_destroy"] = on_destroy
__props__.__dict__["timeouts"] = timeouts
return ConfigurationApply(resource_name, opts=opts, __props__=__props__)
@@ -447,6 +486,14 @@ def node(self) -> pulumi.Output[str]:
"""
return pulumi.get(self, "node")
+ @property
+ @pulumi.getter(name="onDestroy")
+ def on_destroy(self) -> pulumi.Output[Optional['outputs.ConfigurationApplyOnDestroy']]:
+ """
+ Actions to be taken on destroy, if *reset* is not set this is a no-op.
+ """
+ return pulumi.get(self, "on_destroy")
+
@property
@pulumi.getter
def timeouts(self) -> pulumi.Output[Optional['outputs.Timeout']]:
diff --git a/sdk/python/pulumiverse_talos/machine/get_configuration.py b/sdk/python/pulumiverse_talos/machine/get_configuration.py
index 64033159..ee25ee73 100644
--- a/sdk/python/pulumiverse_talos/machine/get_configuration.py
+++ b/sdk/python/pulumiverse_talos/machine/get_configuration.py
@@ -91,7 +91,7 @@ def config_patches(self) -> Optional[Sequence[str]]:
@pulumi.getter
def docs(self) -> Optional[bool]:
"""
- Whether to generate documentation for the generated configuration
+ Whether to generate documentation for the generated configuration. Defaults to false
"""
return pulumi.get(self, "docs")
@@ -99,7 +99,7 @@ def docs(self) -> Optional[bool]:
@pulumi.getter
def examples(self) -> Optional[bool]:
"""
- Whether to generate examples for the generated configuration
+ Whether to generate examples for the generated configuration. Defaults to false
"""
return pulumi.get(self, "examples")
@@ -204,8 +204,8 @@ def get_configuration(cluster_endpoint: Optional[str] = None,
:param str cluster_endpoint: The endpoint of the talos kubernetes cluster
:param str cluster_name: The name of the talos kubernetes cluster
:param Sequence[str] config_patches: The list of config patches to apply to the generated configuration
- :param bool docs: Whether to generate documentation for the generated configuration
- :param bool examples: Whether to generate examples for the generated configuration
+ :param bool docs: Whether to generate documentation for the generated configuration. Defaults to false
+ :param bool examples: Whether to generate examples for the generated configuration. Defaults to false
:param str kubernetes_version: The version of kubernetes to use
:param Union['MachineSecretsArgs', 'MachineSecretsArgsDict'] machine_secrets: The secrets for the talos cluster
:param str machine_type: The type of machine to generate the configuration for
@@ -269,8 +269,8 @@ def get_configuration_output(cluster_endpoint: Optional[pulumi.Input[str]] = Non
:param str cluster_endpoint: The endpoint of the talos kubernetes cluster
:param str cluster_name: The name of the talos kubernetes cluster
:param Sequence[str] config_patches: The list of config patches to apply to the generated configuration
- :param bool docs: Whether to generate documentation for the generated configuration
- :param bool examples: Whether to generate examples for the generated configuration
+ :param bool docs: Whether to generate documentation for the generated configuration. Defaults to false
+ :param bool examples: Whether to generate examples for the generated configuration. Defaults to false
:param str kubernetes_version: The version of kubernetes to use
:param Union['MachineSecretsArgs', 'MachineSecretsArgsDict'] machine_secrets: The secrets for the talos cluster
:param str machine_type: The type of machine to generate the configuration for
diff --git a/sdk/python/pulumiverse_talos/machine/outputs.py b/sdk/python/pulumiverse_talos/machine/outputs.py
index 905d8e9a..06d328c0 100644
--- a/sdk/python/pulumiverse_talos/machine/outputs.py
+++ b/sdk/python/pulumiverse_talos/machine/outputs.py
@@ -17,6 +17,7 @@
__all__ = [
'BootstrapTimeouts',
+ 'ConfigurationApplyOnDestroy',
'Timeout',
'CertificateResult',
'CertificatesResult',
@@ -51,17 +52,64 @@ def create(self) -> Optional[str]:
return pulumi.get(self, "create")
+@pulumi.output_type
+class ConfigurationApplyOnDestroy(dict):
+ def __init__(__self__, *,
+ graceful: Optional[bool] = None,
+ reboot: Optional[bool] = None,
+ reset: Optional[bool] = None):
+ """
+ :param bool graceful: Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ :param bool reboot: Reboot indicates whether node should reboot or halt after resetting. Default false
+ :param bool reset: Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ """
+ if graceful is not None:
+ pulumi.set(__self__, "graceful", graceful)
+ if reboot is not None:
+ pulumi.set(__self__, "reboot", reboot)
+ if reset is not None:
+ pulumi.set(__self__, "reset", reset)
+
+ @property
+ @pulumi.getter
+ def graceful(self) -> Optional[bool]:
+ """
+ Graceful indicates whether node should leave etcd before the upgrade, it also enforces etcd checks before leaving. Default true
+ """
+ return pulumi.get(self, "graceful")
+
+ @property
+ @pulumi.getter
+ def reboot(self) -> Optional[bool]:
+ """
+ Reboot indicates whether node should reboot or halt after resetting. Default false
+ """
+ return pulumi.get(self, "reboot")
+
+ @property
+ @pulumi.getter
+ def reset(self) -> Optional[bool]:
+ """
+ Reset the machine to the initial state (STATE and EPHEMERAL will be wiped). Default false
+ """
+ return pulumi.get(self, "reset")
+
+
@pulumi.output_type
class Timeout(dict):
def __init__(__self__, *,
create: Optional[str] = None,
+ delete: Optional[str] = None,
update: Optional[str] = None):
"""
:param str create: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
+ :param str delete: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
:param str update: A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
"""
if create is not None:
pulumi.set(__self__, "create", create)
+ if delete is not None:
+ pulumi.set(__self__, "delete", delete)
if update is not None:
pulumi.set(__self__, "update", update)
@@ -73,6 +121,14 @@ def create(self) -> Optional[str]:
"""
return pulumi.get(self, "create")
+ @property
+ @pulumi.getter
+ def delete(self) -> Optional[str]:
+ """
+ A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
+ """
+ return pulumi.get(self, "delete")
+
@property
@pulumi.getter
def update(self) -> Optional[str]:
diff --git a/sdk/python/pulumiverse_talos/provider.py b/sdk/python/pulumiverse_talos/provider.py
index ef297a32..2aa72101 100644
--- a/sdk/python/pulumiverse_talos/provider.py
+++ b/sdk/python/pulumiverse_talos/provider.py
@@ -18,11 +18,26 @@
@pulumi.input_type
class ProviderArgs:
- def __init__(__self__):
+ def __init__(__self__, *,
+ image_factory_url: Optional[pulumi.Input[str]] = None):
"""
The set of arguments for constructing a Provider resource.
+ :param pulumi.Input[str] image_factory_url: The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
"""
- pass
+ if image_factory_url is not None:
+ pulumi.set(__self__, "image_factory_url", image_factory_url)
+
+ @property
+ @pulumi.getter(name="imageFactoryUrl")
+ def image_factory_url(self) -> Optional[pulumi.Input[str]]:
+ """
+ The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ """
+ return pulumi.get(self, "image_factory_url")
+
+ @image_factory_url.setter
+ def image_factory_url(self, value: Optional[pulumi.Input[str]]):
+ pulumi.set(self, "image_factory_url", value)
class Provider(pulumi.ProviderResource):
@@ -30,6 +45,7 @@ class Provider(pulumi.ProviderResource):
def __init__(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
+ image_factory_url: Optional[pulumi.Input[str]] = None,
__props__=None):
"""
The provider type for the talos package. By default, resources use package-wide configuration
@@ -39,6 +55,7 @@ def __init__(__self__,
:param str resource_name: The name of the resource.
:param pulumi.ResourceOptions opts: Options for the resource.
+ :param pulumi.Input[str] image_factory_url: The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
"""
...
@overload
@@ -67,6 +84,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs):
def _internal_init(__self__,
resource_name: str,
opts: Optional[pulumi.ResourceOptions] = None,
+ image_factory_url: Optional[pulumi.Input[str]] = None,
__props__=None):
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
if not isinstance(opts, pulumi.ResourceOptions):
@@ -76,9 +94,18 @@ def _internal_init(__self__,
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
__props__ = ProviderArgs.__new__(ProviderArgs)
+ __props__.__dict__["image_factory_url"] = image_factory_url
super(Provider, __self__).__init__(
'talos',
resource_name,
__props__,
opts)
+ @property
+ @pulumi.getter(name="imageFactoryUrl")
+ def image_factory_url(self) -> pulumi.Output[Optional[str]]:
+ """
+ The URL of Image Factory to generate schematics. If not set defaults to https://factory.talos.dev.
+ """
+ return pulumi.get(self, "image_factory_url")
+