From db8298b33180cff28d7c68fa8436aa89b9be74ac Mon Sep 17 00:00:00 2001 From: pulumi-bot Date: Thu, 26 Sep 2024 05:16:39 +0000 Subject: [PATCH 1/2] make tfgen --- provider/cmd/pulumi-resource-cpln/schema.json | 1 - provider/go.mod | 2 +- provider/go.sum | 4 ++-- provider/shim/go.mod | 2 +- provider/shim/go.sum | 4 ++-- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/provider/cmd/pulumi-resource-cpln/schema.json b/provider/cmd/pulumi-resource-cpln/schema.json index 7a8deee..ccf2b9f 100644 --- a/provider/cmd/pulumi-resource-cpln/schema.json +++ b/provider/cmd/pulumi-resource-cpln/schema.json @@ -5048,7 +5048,6 @@ } }, "cpln:index/mk8s:Mk8s": { - "description": "Manages a Mk8s's [Mk8s](https://docs.controlplane.com/mk8s/overview).\n\n## Declaration\n\n### Required\n\n- **name** (String) Name of the Mk8s.\n- **version** (String)\n\n\u003e **Note** Only one of the providers listed below can be included in a resource.\n\n- **generic_provider** (Block List, Max: 1) (see below)\n- **hetzner_provider** (Block List, Max: 1) (see below)\n- **aws_provider** (Block List, Max: 1) (see below)\n- **ephemeral_provider** (Block List, Max: 1) (see below)\n\n### Optional\n\n- **description** (String) Description of the Mk8s.\n- **tags** (Map of String) Key-value map of resource tags.\n- **firewall** (Block List, Max: 1) (see below)\n- **add_ons** (Block List, Max: 1) (see below)\n\n\u003ca id=\"nestedblock--generic_provider\"\u003e\u003c/a\u003e\n\n### `generic_provider`\n\nRequired:\n\n- **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running.\n- **networking** (Block List, Max: 1) (see below)\n\nOptional:\n\n- **node_pool** (Block List) (see below)\n\n\u003ca id=\"nestedblock--generic_provider--networking\"\u003e\u003c/a\u003e\n\n### `generic_provider.networking`\n\nNetworking declaration is required even if networking is not utilized. Example usage: `networking {}`.\n\nOptional:\n\n- **service_network** (String) The CIDR of the service network.\n- **pod_network** (String) The CIDR of the pod network.\n\n\u003ca id=\"nestedblock--generic_provider--node_pool\"\u003e\u003c/a\u003e\n\n### `generic_provider.node_pool`\n\nList of node pools.\n\nRequired:\n\n- **name** (String)\n\nOptional:\n\n- **labels** (Map of String) Labels to attach to nodes of a node pool.\n- **taint** (Block List) (see below)\n\n\u003ca id=\"nestedblock--generic_provider--node_pool--taint\"\u003e\u003c/a\u003e\n\n### `generic_provider.node_pool.taint`\n\nTaint for the nodes of a pool.\n\nOptional:\n\n- **key** (String)\n- **value** (String)\n- **effect** (String)\n\n\u003ca id=\"nestedblock--hetzner_provider\"\u003e\u003c/a\u003e\n\n### `hetzner_provider`\n\nRequired:\n\n- **region** (String) Hetzner region to deploy nodes to.\n- **token_secret_link** (String) Link to a secret holding Hetzner access key.\n- **network_id** (String) ID of the Hetzner network to deploy nodes to.\n- **networking** (Block List, Max: 1) (see below)\n\nOptional:\n\n- **hetzner_labels** (Map of String) Extra labels to attach to servers.\n- **pre_install_script** (String) Optional shell script that will be run before K8S is installed.\n- **firewall_id** (String) Optional firewall rule to attach to all nodes.\n- **node_pool** (Block List) (see below)\n- **dedicated_server_node_pool** (Block List) (see below)\n- **image** (String) Default image for all nodes.\n- **ssh_key** (String) SSH key name for accessing deployed nodes.\n- **autoscaler** (Block List, Max: 1) (see below)\n- **floating_ip_selector** (Map of String) If supplied, nodes will get assigned a random floating ip matching the selector.\n\n\u003ca id=\"nestedblock--hetzner_provider--node_pool\"\u003e\u003c/a\u003e\n\n### `hetzner_provider.node_pool`\n\nList of node pools.\n\nRequired:\n\n- **name** (String)\n- **server_type** (String)\n\nOptional:\n\n- **labels** (Map of String) Labels to attach to nodes of a node pool.\n- **taint** (Block List) (see below)\n- **override_image** (String)\n- **min_size** (Number)\n- **max_size** (Number)\n\n\u003ca id=\"nestedblock--hetzner_provider--dedicated_server_node_pool\"\u003e\u003c/a\u003e\n\n### `hetzner_provider.dedicated_server_node_pool`\n\nNode pool that can configure dedicated Hetzner servers.\n\nRequired:\n\n- **name** (String)\n\nOptional:\n\n- **labels** (Map of String) Labels to attach to nodes of a node pool.\n- **taint** (Block List) (see below)\n\n\u003ca id=\"nestedblock--aws_provider\"\u003e\u003c/a\u003e\n\n### `aws_provider`\n\nRequired:\n\n- **region** (String) Region where the cluster nodes will live.\n- **skip_create_roles** (Boolean) If true, Control Plane will not create any roles.\n- **image** (Block List, Max: 1) (see below)\n- **deploy_role_arn** (String) Control Plane will set up the cluster by assuming this role.\n- **vpc_id** (String) The vpc where nodes will be deployed. Supports SSM.\n- **networking** (Block List, Max: 1) (see below)\n\nOptional:\n\n- **aws_tags** (Map of String) Extra tags to attach to all created objects.\n- **pre_install_script** (String) Optional shell script that will be run before K8S is installed. Supports SSM.\n- **key_pair** (String) Name of keyPair. Supports SSM\n- **disk_encryption_key_arn** (String) KMS key used to encrypt volumes. Supports SSM.\n- **security_group_ids** (List of String) Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon.\n- **node_pool** (Block List) (see below)\n- **autoscaler** (Block List, Max: 1) (see below)\n\n\u003ca id=\"nestedblock--aws_provider--node_pool\"\u003e\u003c/a\u003e\n\n### `aws_provider.node_pool`\n\nList of node pools.\n\nRequired:\n\n- **name** (String)\n- **instance_types** (List of String)\n- **override_image** (Block List, Max: 1) (see below)\n- **subnet_ids** (List of String)\n\nOptional:\n\n- **labels** (Map of String) Labels to attach to nodes of a node pool.\n- **taint** (Block List) (see below)\n- **boot_disk_size** (Number) Size in GB.\n- **min_size** (Number)\n- **max_size** (Number)\n- **on_demand_base_capacity** (Number)\n- **on_demand_percentage_above_base_capacity** (Number)\n- **spot_allocation_strategy** (String)\n- **extra_security_group_ids** (List of String)\n\n\u003ca id=\"nestedblock--aws_provider--ami\"\u003e\u003c/a\u003e\n\n### `ami`\n\nDefault image for all nodes.\n\nRequired:\n\n\u003e **Note** Only one of the following listed below can be included.\n\n- **recommended** (String)\n- **exact** (String) Support SSM.\n\n\u003ca id=\"nestedblock--ephemeral_provider\"\u003e\u003c/a\u003e\n\n### `ephemeral_provider`\n\nRequired:\n\n- **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running.\n\nOptional:\n\n- **node_pool** (Block List) (see below)\n\n\u003ca id=\"nestedblock--ephemeral_provider--node_pool\"\u003e\u003c/a\u003e\n\n### `ephemeral_provider.node_pool`\n\nList of node pools.\n\nRequired:\n\n- **name** (String)\n- **count** (Int) Number of nodes to deploy.\n- **arch** (String) CPU architecture of the nodes.\n- **flavor** (String) Linux distro to use for ephemeral nodes.\n- **cpu** (String) Allocated CPU.\n- **memory** (String) Allocated memory.\n\nOptional:\n\n- **labels** (Map of String) Labels to attach to nodes of a node pool.\n- **taint** (Block List) (see below)\n\n\u003ca id=\"nestedblock--autoscaler\"\u003e\u003c/a\u003e\n\n### `autoscaler`\n\nOptional:\n\n- **expander** (List of String)\n- **unneeded_time** (String)\n- **unready_time** (String)\n- **utilization_threshold** (Float64)\n\n\u003ca id=\"nestedblock--firewall\"\u003e\u003c/a\u003e\n\n### `firewall`\n\nAllow-list.\n\nRequired:\n\n- **source_cidr** (String)\n\nOptional:\n\n- **description** (String)\n\n\u003ca id=\"nestedblock--add_ons\"\u003e\u003c/a\u003e\n\n### `add_ons`\n\nOptional:\n\n- **dashboard** (Boolean)\n- **azure_workload_identity** (Block List, Max: 1) (see below)\n- **aws_workload_identity** (Boolean)\n- **local_path_storage** (Boolean)\n- **metrics** (Block List, Max: 1) (see below)\n- **logs** (Block List, Max: 1) (see below)\n- **nvidia** (Block List, Max: 1) (see below)\n- **aws_efs** (Block List, Max: 1) (see below)\n- **aws_ecr** (Block List, Max: 1) (see below)\n- **aws_elb** (Block List, Max: 1) (see below)\n- **azure_acr** (Block List, Max: 1) (see below)\n- **sysbox** (Boolean)\n\n\u003ca id=\"nestedblock--add_ons--azure_workload_identity\"\u003e\u003c/a\u003e\n\n### `add_ons.azure_workload_identity`\n\nRequired:\n\n- **tenant_id** (String) Tenant ID to use for workload identity.\n\n\u003ca id=\"nestedblock--add_ons--metrics\"\u003e\u003c/a\u003e\n\n### `add_ons.metrics`\n\nOptional:\n\n- **kube_state** (Boolean) Enable kube-state metrics.\n- **core_dns** (Boolean) Enable scraping of core-dns service.\n- **kubelet** (Boolean) Enable scraping kubelet stats.\n- **api_server** (Boolean) Enable scraping apiserver stats.\n- **node_exporter** (Boolean) Enable collecting node-level stats (disk, network, filesystem, etc).\n- **cadvisor** (Boolean) Enable CNI-level container stats.\n- **scrape_annotated** (Block List, Max: 1) (see below)\n\n\u003ca id=\"nestedblock--add_ons--metrics--scrape-annotated\"\u003e\u003c/a\u003e\n\n### `add_ons.metrics.scrape-annotated`\n\nScrape pods annotated with prometheus.io/scrape=true.\n\nOptional:\n\n- **interval_seconds** (Number)\n- **include_namespaces** (String)\n- **exclude_namespaces** (String)\n- **retain_labels** (String)\n\n\u003ca id=\"nestedblock--add_ons--logs\"\u003e\u003c/a\u003e\n\n### `add_ons.logs`\n\nOptional:\n\n- **audit_enabled** (Boolean) Collect k8s audit log as log events.\n- **include_namespaces** (String)\n- **exclude_namespaces** (String)\n\n\u003ca id=\"nestedblock--add_ons--nvidia\"\u003e\u003c/a\u003e\n\n### `add_ons.nvidia`\n\nRequired:\n\n- **taint_gpu_nodes** (Boolean)\n\n\u003ca id=\"nestedblock--add_ons--aws--efs\"\u003e\u003c/a\u003e\n\n### `add_ons.aws_efs`\n\nRequired:\n\n- **role_arn** (String) Use this role for EFS interaction.\n\n\u003ca id=\"nestedblock--add_ons--aws--ecr\"\u003e\u003c/a\u003e\n\n### `add_ons.aws_ecr`\n\nRequired:\n\n- **role_arn** (String) Role to use when authorizing ECR pulls. Optional on AWS, in which case it will use the instance role to pull.\n\n\u003ca id=\"nestedblock--add_ons--aws--elb\"\u003e\u003c/a\u003e\n\n### `add_ons.aws_elb`\n\nRequired:\n\n- **role_arn** (String) Role to use when authorizing calls to EC2 ELB. Optional on AWS, when not provided it will create the recommended role.\n\n\u003ca id=\"nestedblock--add_ons--azure_acr\"\u003e\u003c/a\u003e\n\n### `add_ons.azure_acr`\n\nRequired:\n\n- **client_id** (String)\n\n## Outputs\n\nThe following attributes are exported:\n\n- **cpln_id** (String) The ID, in GUID format, of the Mk8s.\n- **alias** (String) The alias name of the Mk8s.\n- **self_link** (String) Full link to this resource. Can be referenced by other resources.\n- **status** (Block List, Max: 1) (see below).\n\n\u003ca id=\"nestedblock--status\"\u003e\u003c/a\u003e\n\n### `status`\n\nStatus of the mk8s.\n\nRead-Only:\n\n- **oidc_provider_url** (String)\n- **server_url** (String)\n- **home_location** (String)\n- **add_ons** (Block List, Max: 1) (see below)\n\n\u003ca id=\"nestedblock--status--add_ons\"\u003e\u003c/a\u003e\n\n### `status.add_ons`\n\nRead-Only:\n\n- **dashboard** (Block List, Max: 1) (see below)\n- **aws_workload_identity** (Block List, Max: 1) (see below)\n- **metrics** (Block List, Max: 1) (see below)\n- **logs** (Block List, Max: 1) (see below)\n- **aws_ecr** (Block List, Max: 1) (see below)\n- **aws_efs** (Block List, Max: 1) (see below)\n- **aws_elb** (Block List, Max: 1) (see below)\n\n\u003ca id=\"nestedblock--status--add_ons--dashobard\"\u003e\u003c/a\u003e\n\n### `status.add_ons.dashboard`\n\nRead-Only:\n\n- **url** (String) Access to dashboard.\n\n\u003ca id=\"nestedblock--status--add_ons--aws_workload_identity\"\u003e\u003c/a\u003e\n\n### `status.add_ons.aws_workload_identity`\n\nRead-Only:\n\n- **oidc_provider_config** (Block List, Max: 1) (see below)\n- **trust_policy** (String)\n\n\u003ca id=\"nestedblock--status--add_ons--aws_workload_identity--oidc_provider_config\"\u003e\u003c/a\u003e\n\n### `status.add_ons.aws_workload_identity.oidc_provider_config`\n\nRead-Only:\n\n- **provider_url** (String)\n- **audience** (String)\n\n\u003ca id=\"nestedblock--status--add_ons--metrics\"\u003e\u003c/a\u003e\n\n### `status.add_ons.metrics`\n\nRead-Only:\n\n- **prometheus_endpoint** (String)\n- **remote_write_config** (String)\n\n\u003ca id=\"nestedblock--status--add_ons--logs\"\u003e\u003c/a\u003e\n\n### `status.add_ons.logs`\n\nRead-Only:\n\n- **loki_address** (String) Loki endpoint to query logs from.\n\n\u003ca id=\"nestedblock--status--add_ons--aws\"\u003e\u003c/a\u003e\n\n### `status.add_ons.aws`\n\nRead-Only:\n\n- **trust_policy** (String)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Generic Provider\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cpln.Mk8s;\nimport com.pulumi.cpln.Mk8sArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAzureAcrArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAzureWorkloadIdentityArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsLogsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsMetricsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsMetricsScrapeAnnotatedArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsNvidiaArgs;\nimport com.pulumi.cpln.inputs.Mk8sFirewallArgs;\nimport com.pulumi.cpln.inputs.Mk8sGenericProviderArgs;\nimport com.pulumi.cpln.inputs.Mk8sGenericProviderNetworkingArgs;\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 generic = new Mk8s(\"generic\", Mk8sArgs.builder() \n .addOns(Mk8sAddOnsArgs.builder()\n .awsWorkloadIdentity(true)\n .azureAcr(Mk8sAddOnsAzureAcrArgs.builder()\n .clientId(\"4e25b134-160b-4a9d-b392-13b381ced5ef\")\n .build())\n .azureWorkloadIdentity(Mk8sAddOnsAzureWorkloadIdentityArgs.builder()\n .tenantId(\"7f43458a-a34e-4bfa-9e56-e2289e49c4ec\")\n .build())\n .dashboard(true)\n .localPathStorage(true)\n .logs(Mk8sAddOnsLogsArgs.builder()\n .auditEnabled(true)\n .excludeNamespaces(\"^[a-z]$\")\n .includeNamespaces(\"^\\\\d+$\")\n .build())\n .metrics(Mk8sAddOnsMetricsArgs.builder()\n .apiServer(true)\n .cadvisor(true)\n .coreDns(true)\n .kubeState(true)\n .kubelet(true)\n .nodeExporter(true)\n .scrapeAnnotated(Mk8sAddOnsMetricsScrapeAnnotatedArgs.builder()\n .excludeNamespaces(\"^[a-z]$\")\n .includeNamespaces(\"^\\\\d+$\")\n .intervalSeconds(30)\n .retainLabels(\"^\\\\w+$\")\n .build())\n .build())\n .nvidia(Mk8sAddOnsNvidiaArgs.builder()\n .taintGpuNodes(true)\n .build())\n .sysbox(true)\n .build())\n .description(\"demo-mk8s-generic-provider\")\n .firewalls(Mk8sFirewallArgs.builder()\n .description(\"hello world\")\n .sourceCidr(\"192.168.1.255\")\n .build())\n .genericProvider(Mk8sGenericProviderArgs.builder()\n .location(\"aws-eu-central-1\")\n .networking(Mk8sGenericProviderNetworkingArgs.builder()\n .podNetwork(\"10.42.0.0/16\")\n .serviceNetwork(\"10.43.0.0/16\")\n .build())\n .nodePools(Mk8sGenericProviderNodePoolArgs.builder()\n .labels(Map.of(\"hello\", \"world\"))\n .name(\"my-node-pool\")\n .taint(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"acceptance_test\", \"true\"),\n Map.entry(\"terraform_generated\", \"true\")\n ))\n .version(\"1.28.4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n generic:\n type: cpln:Mk8s\n properties:\n addOns:\n awsWorkloadIdentity: true\n azureAcr:\n clientId: 4e25b134-160b-4a9d-b392-13b381ced5ef\n azureWorkloadIdentity:\n tenantId: 7f43458a-a34e-4bfa-9e56-e2289e49c4ec\n dashboard: true\n localPathStorage: true\n logs:\n auditEnabled: true\n excludeNamespaces: ^[a-z]$\n includeNamespaces: ^\\d+$\n metrics:\n apiServer: true\n cadvisor: true\n coreDns: true\n kubeState: true\n kubelet: true\n nodeExporter: true\n scrapeAnnotated:\n excludeNamespaces: ^[a-z]$\n includeNamespaces: ^\\d+$\n intervalSeconds: 30\n retainLabels: ^\\w+$\n nvidia:\n taintGpuNodes: true\n sysbox: true\n description: demo-mk8s-generic-provider\n firewalls:\n - description: hello world\n sourceCidr: 192.168.1.255\n genericProvider:\n location: aws-eu-central-1\n networking:\n podNetwork: 10.42.0.0/16\n serviceNetwork: 10.43.0.0/16\n nodePools:\n - labels:\n hello: world\n name: my-node-pool\n taint:\n - effect: NoSchedule\n key: hello\n value: world\n tags:\n acceptance_test: 'true'\n terraform_generated: 'true'\n version: 1.28.4\n```\n{{% /example %}}\n{{% example %}}\n### Hetzner Provider\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cpln.Mk8s;\nimport com.pulumi.cpln.Mk8sArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAzureAcrArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAzureWorkloadIdentityArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsLogsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsMetricsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsMetricsScrapeAnnotatedArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsNvidiaArgs;\nimport com.pulumi.cpln.inputs.Mk8sFirewallArgs;\nimport com.pulumi.cpln.inputs.Mk8sHetznerProviderArgs;\nimport com.pulumi.cpln.inputs.Mk8sHetznerProviderAutoscalerArgs;\nimport com.pulumi.cpln.inputs.Mk8sHetznerProviderNetworkingArgs;\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 hetzner = new Mk8s(\"hetzner\", Mk8sArgs.builder() \n .addOns(Mk8sAddOnsArgs.builder()\n .awsWorkloadIdentity(true)\n .azureAcr(Mk8sAddOnsAzureAcrArgs.builder()\n .clientId(\"4e25b134-160b-4a9d-b392-13b381ced5ef\")\n .build())\n .azureWorkloadIdentity(Mk8sAddOnsAzureWorkloadIdentityArgs.builder()\n .tenantId(\"7f43458a-a34e-4bfa-9e56-e2289e49c4ec\")\n .build())\n .dashboard(true)\n .localPathStorage(true)\n .logs(Mk8sAddOnsLogsArgs.builder()\n .auditEnabled(true)\n .excludeNamespaces(\"^[a-z]$\")\n .includeNamespaces(\"^\\\\d+$\")\n .build())\n .metrics(Mk8sAddOnsMetricsArgs.builder()\n .apiServer(true)\n .cadvisor(true)\n .coreDns(true)\n .kubeState(true)\n .kubelet(true)\n .nodeExporter(true)\n .scrapeAnnotated(Mk8sAddOnsMetricsScrapeAnnotatedArgs.builder()\n .excludeNamespaces(\"^[a-z]$\")\n .includeNamespaces(\"^\\\\d+$\")\n .intervalSeconds(30)\n .retainLabels(\"^\\\\w+$\")\n .build())\n .build())\n .nvidia(Mk8sAddOnsNvidiaArgs.builder()\n .taintGpuNodes(true)\n .build())\n .sysbox(true)\n .build())\n .description(\"demo-mk8s-hetzner-provider\")\n .firewalls(Mk8sFirewallArgs.builder()\n .description(\"hello world\")\n .sourceCidr(\"192.168.1.255\")\n .build())\n .hetznerProvider(Mk8sHetznerProviderArgs.builder()\n .autoscaler(Mk8sHetznerProviderAutoscalerArgs.builder()\n .expander(\"most-pods\")\n .unneededTime(\"10m\")\n .unreadyTime(\"20m\")\n .utilizationThreshold(0.7)\n .build())\n .dedicatedServerNodePools(Mk8sHetznerProviderDedicatedServerNodePoolArgs.builder()\n .labels(Map.of(\"hello\", \"world\"))\n .name(\"my-node-pool\")\n .taint(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .floatingIpSelector(Map.ofEntries(\n Map.entry(\"floatingIp1\", \"123.45.67.89\"),\n Map.entry(\"floatingIp2\", \"98.76.54.32\")\n ))\n .hetznerLabels(Map.of(\"hello\", \"world\"))\n .image(\"centos-7\")\n .networkId(\"2808575\")\n .networking(Mk8sHetznerProviderNetworkingArgs.builder()\n .podNetwork(\"10.42.0.0/16\")\n .serviceNetwork(\"10.43.0.0/16\")\n .build())\n .nodePools(Mk8sHetznerProviderNodePoolArgs.builder()\n .labels(Map.of(\"hello\", \"world\"))\n .maxSize(0)\n .minSize(0)\n .name(\"my-hetzner-node-pool\")\n .overrideImage(\"debian-11\")\n .serverType(\"cx11\")\n .taint(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .preInstallScript(\"#! echo hello world\")\n .region(\"fsn1\")\n .sshKey(\"10925607\")\n .tokenSecretLink(\"/org/terraform-test-org/secret/hetzner\")\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"acceptance_test\", \"true\"),\n Map.entry(\"terraform_generated\", \"true\")\n ))\n .version(\"1.28.4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n hetzner:\n type: cpln:Mk8s\n properties:\n addOns:\n awsWorkloadIdentity: true\n azureAcr:\n clientId: 4e25b134-160b-4a9d-b392-13b381ced5ef\n azureWorkloadIdentity:\n tenantId: 7f43458a-a34e-4bfa-9e56-e2289e49c4ec\n dashboard: true\n localPathStorage: true\n logs:\n auditEnabled: true\n excludeNamespaces: ^[a-z]$\n includeNamespaces: ^\\d+$\n metrics:\n apiServer: true\n cadvisor: true\n coreDns: true\n kubeState: true\n kubelet: true\n nodeExporter: true\n scrapeAnnotated:\n excludeNamespaces: ^[a-z]$\n includeNamespaces: ^\\d+$\n intervalSeconds: 30\n retainLabels: ^\\w+$\n nvidia:\n taintGpuNodes: true\n sysbox: true\n description: demo-mk8s-hetzner-provider\n firewalls:\n - description: hello world\n sourceCidr: 192.168.1.255\n hetznerProvider:\n autoscaler:\n expander:\n - most-pods\n unneededTime: 10m\n unreadyTime: 20m\n utilizationThreshold: 0.7\n dedicatedServerNodePools:\n - labels:\n hello: world\n name: my-node-pool\n taint:\n - effect: NoSchedule\n key: hello\n value: world\n floatingIpSelector:\n floatingIp1: 123.45.67.89\n floatingIp2: 98.76.54.32\n hetznerLabels:\n hello: world\n image: centos-7\n networkId: '2808575'\n networking:\n podNetwork: 10.42.0.0/16\n serviceNetwork: 10.43.0.0/16\n nodePools:\n - labels:\n hello: world\n maxSize: 0\n minSize: 0\n name: my-hetzner-node-pool\n overrideImage: debian-11\n serverType: cx11\n taint:\n - effect: NoSchedule\n key: hello\n value: world\n preInstallScript: '#! echo hello world'\n region: fsn1\n sshKey: '10925607'\n tokenSecretLink: /org/terraform-test-org/secret/hetzner\n tags:\n acceptance_test: 'true'\n terraform_generated: 'true'\n version: 1.28.4\n```\n{{% /example %}}\n{{% example %}}\n### AWS Provider\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cpln.Mk8s;\nimport com.pulumi.cpln.Mk8sArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAwsEcrArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAwsEfsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAwsElbArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAzureAcrArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAzureWorkloadIdentityArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsLogsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsMetricsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsMetricsScrapeAnnotatedArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsNvidiaArgs;\nimport com.pulumi.cpln.inputs.Mk8sAwsProviderArgs;\nimport com.pulumi.cpln.inputs.Mk8sAwsProviderAutoscalerArgs;\nimport com.pulumi.cpln.inputs.Mk8sAwsProviderImageArgs;\nimport com.pulumi.cpln.inputs.Mk8sAwsProviderNetworkingArgs;\nimport com.pulumi.cpln.inputs.Mk8sFirewallArgs;\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 aws = new Mk8s(\"aws\", Mk8sArgs.builder() \n .addOns(Mk8sAddOnsArgs.builder()\n .awsEcr(Mk8sAddOnsAwsEcrArgs.builder()\n .roleArn(\"arn:aws:iam::123456789012:role/aws-ecr-role\")\n .build())\n .awsEfs(Mk8sAddOnsAwsEfsArgs.builder()\n .roleArn(\"arn:aws:iam::123456789012:role/aws-efs-role\")\n .build())\n .awsElb(Mk8sAddOnsAwsElbArgs.builder()\n .roleArn(\"arn:aws:iam::123456789012:role/aws-elb-role\")\n .build())\n .awsWorkloadIdentity(true)\n .azureAcr(Mk8sAddOnsAzureAcrArgs.builder()\n .clientId(\"4e25b134-160b-4a9d-b392-13b381ced5ef\")\n .build())\n .azureWorkloadIdentity(Mk8sAddOnsAzureWorkloadIdentityArgs.builder()\n .tenantId(\"7f43458a-a34e-4bfa-9e56-e2289e49c4ec\")\n .build())\n .dashboard(true)\n .localPathStorage(true)\n .logs(Mk8sAddOnsLogsArgs.builder()\n .auditEnabled(true)\n .excludeNamespaces(\"^[a-z]$\")\n .includeNamespaces(\"^\\\\d+$\")\n .build())\n .metrics(Mk8sAddOnsMetricsArgs.builder()\n .apiServer(true)\n .cadvisor(true)\n .coreDns(true)\n .kubeState(true)\n .kubelet(true)\n .nodeExporter(true)\n .scrapeAnnotated(Mk8sAddOnsMetricsScrapeAnnotatedArgs.builder()\n .excludeNamespaces(\"^[a-z]$\")\n .includeNamespaces(\"^\\\\d+$\")\n .intervalSeconds(30)\n .retainLabels(\"^\\\\w+$\")\n .build())\n .build())\n .nvidia(Mk8sAddOnsNvidiaArgs.builder()\n .taintGpuNodes(true)\n .build())\n .sysbox(true)\n .build())\n .awsProvider(Mk8sAwsProviderArgs.builder()\n .autoscaler(Mk8sAwsProviderAutoscalerArgs.builder()\n .expander(\"most-pods\")\n .unneededTime(\"10m\")\n .unreadyTime(\"20m\")\n .utilizationThreshold(0.7)\n .build())\n .awsTags(Map.of(\"hello\", \"world\"))\n .deployRoleArn(\"arn:aws:iam::12345678901:role/cpln\")\n .diskEncryptionKeyArn(\"arn:aws:kms:eu-central-1:12345678901:key/0a1bcd23-4567-8901-e2fg-3h4i5jk678lm\")\n .image(Mk8sAwsProviderImageArgs.builder()\n .recommended(\"amazon/al2023\")\n .build())\n .keyPair(\"cem_uzak\")\n .networking()\n .nodePools(Mk8sAwsProviderNodePoolArgs.builder()\n .bootDiskSize(20)\n .extraSecurityGroupIds(\"sg-031480aa7a1e6e38b\")\n .instanceTypes(\"t4g.nano\")\n .labels(Map.of(\"hello\", \"world\"))\n .maxSize(0)\n .minSize(0)\n .name(\"my-aws-node-pool\")\n .onDemandBaseCapacity(0)\n .onDemandPercentageAboveBaseCapacity(0)\n .overrideImage(Mk8sAwsProviderNodePoolOverrideImageArgs.builder()\n .exact(\"ami-123\")\n .build())\n .spotAllocationStrategy(\"lowest-price\")\n .subnetIds(\"subnet-0e564a042e2a45009\")\n .taint(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .preInstallScript(\"#! echo hello world\")\n .region(\"eu-central-1\")\n .securityGroupIds(\"sg-031480aa7a1e6e38b\")\n .skipCreateRoles(false)\n .vpcId(\"vpc-03105bd4dc058d3a8\")\n .build())\n .description(\"demo-mk8s-aws-provider\")\n .firewalls(Mk8sFirewallArgs.builder()\n .description(\"hello world\")\n .sourceCidr(\"192.168.1.255\")\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"acceptance_test\", \"true\"),\n Map.entry(\"terraform_generated\", \"true\")\n ))\n .version(\"1.28.4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n aws:\n type: cpln:Mk8s\n properties:\n addOns:\n awsEcr:\n roleArn: arn:aws:iam::123456789012:role/aws-ecr-role\n awsEfs:\n roleArn: arn:aws:iam::123456789012:role/aws-efs-role\n awsElb:\n roleArn: arn:aws:iam::123456789012:role/aws-elb-role\n awsWorkloadIdentity: true\n azureAcr:\n clientId: 4e25b134-160b-4a9d-b392-13b381ced5ef\n azureWorkloadIdentity:\n tenantId: 7f43458a-a34e-4bfa-9e56-e2289e49c4ec\n dashboard: true\n localPathStorage: true\n logs:\n auditEnabled: true\n excludeNamespaces: ^[a-z]$\n includeNamespaces: ^\\d+$\n metrics:\n apiServer: true\n cadvisor: true\n coreDns: true\n kubeState: true\n kubelet: true\n nodeExporter: true\n scrapeAnnotated:\n excludeNamespaces: ^[a-z]$\n includeNamespaces: ^\\d+$\n intervalSeconds: 30\n retainLabels: ^\\w+$\n nvidia:\n taintGpuNodes: true\n sysbox: true\n awsProvider:\n autoscaler:\n expander:\n - most-pods\n unneededTime: 10m\n unreadyTime: 20m\n utilizationThreshold: 0.7\n awsTags:\n hello: world\n deployRoleArn: arn:aws:iam::12345678901:role/cpln\n diskEncryptionKeyArn: arn:aws:kms:eu-central-1:12345678901:key/0a1bcd23-4567-8901-e2fg-3h4i5jk678lm\n image:\n recommended: amazon/al2023\n keyPair: cem_uzak\n networking: {}\n nodePools:\n - bootDiskSize: 20\n extraSecurityGroupIds:\n - sg-031480aa7a1e6e38b\n instanceTypes:\n - t4g.nano\n labels:\n hello: world\n maxSize: 0\n minSize: 0\n name: my-aws-node-pool\n onDemandBaseCapacity: 0\n onDemandPercentageAboveBaseCapacity: 0\n overrideImage:\n exact: ami-123\n spotAllocationStrategy: lowest-price\n subnetIds:\n - subnet-0e564a042e2a45009\n taint:\n - effect: NoSchedule\n key: hello\n value: world\n preInstallScript: '#! echo hello world'\n region: eu-central-1\n securityGroupIds:\n - sg-031480aa7a1e6e38b\n skipCreateRoles: false\n vpcId: vpc-03105bd4dc058d3a8\n description: demo-mk8s-aws-provider\n firewalls:\n - description: hello world\n sourceCidr: 192.168.1.255\n tags:\n acceptance_test: 'true'\n terraform_generated: 'true'\n version: 1.28.4\n```\n{{% /example %}}\n{{% example %}}\n### Ephemeral Provider\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cpln.Mk8s;\nimport com.pulumi.cpln.Mk8sArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAzureAcrArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsAzureWorkloadIdentityArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsLogsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsMetricsArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsMetricsScrapeAnnotatedArgs;\nimport com.pulumi.cpln.inputs.Mk8sAddOnsNvidiaArgs;\nimport com.pulumi.cpln.inputs.Mk8sEphemeralProviderArgs;\nimport com.pulumi.cpln.inputs.Mk8sFirewallArgs;\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 ephemeral = new Mk8s(\"ephemeral\", Mk8sArgs.builder() \n .addOns(Mk8sAddOnsArgs.builder()\n .awsWorkloadIdentity(true)\n .azureAcr(Mk8sAddOnsAzureAcrArgs.builder()\n .clientId(\"4e25b134-160b-4a9d-b392-13b381ced5ef\")\n .build())\n .azureWorkloadIdentity(Mk8sAddOnsAzureWorkloadIdentityArgs.builder()\n .tenantId(\"7f43458a-a34e-4bfa-9e56-e2289e49c4ec\")\n .build())\n .dashboard(true)\n .localPathStorage(true)\n .logs(Mk8sAddOnsLogsArgs.builder()\n .auditEnabled(true)\n .excludeNamespaces(\"^[a-z]$\")\n .includeNamespaces(\"^\\\\d+$\")\n .build())\n .metrics(Mk8sAddOnsMetricsArgs.builder()\n .apiServer(true)\n .cadvisor(true)\n .coreDns(true)\n .kubeState(true)\n .kubelet(true)\n .nodeExporter(true)\n .scrapeAnnotated(Mk8sAddOnsMetricsScrapeAnnotatedArgs.builder()\n .excludeNamespaces(\"^[a-z]$\")\n .includeNamespaces(\"^\\\\d+$\")\n .intervalSeconds(30)\n .retainLabels(\"^\\\\w+$\")\n .build())\n .build())\n .nvidia(Mk8sAddOnsNvidiaArgs.builder()\n .taintGpuNodes(true)\n .build())\n .build())\n .description(\"demo-mk8s-ephemeral-provider\")\n .ephemeralProvider(Mk8sEphemeralProviderArgs.builder()\n .location(\"aws-eu-central-1\")\n .nodePools(Mk8sEphemeralProviderNodePoolArgs.builder()\n .arch(\"arm64\")\n .count(1)\n .cpu(\"50m\")\n .flavor(\"debian\")\n .labels(Map.of(\"hello\", \"world\"))\n .memory(\"128Mi\")\n .name(\"my-node-pool\")\n .taint(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build())\n .firewalls(Mk8sFirewallArgs.builder()\n .description(\"hello world\")\n .sourceCidr(\"192.168.1.255\")\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"acceptance_test\", \"true\"),\n Map.entry(\"terraform_generated\", \"true\")\n ))\n .version(\"1.28.4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ephemeral:\n type: cpln:Mk8s\n properties:\n addOns:\n awsWorkloadIdentity: true\n azureAcr:\n clientId: 4e25b134-160b-4a9d-b392-13b381ced5ef\n azureWorkloadIdentity:\n tenantId: 7f43458a-a34e-4bfa-9e56-e2289e49c4ec\n dashboard: true\n localPathStorage: true\n logs:\n auditEnabled: true\n excludeNamespaces: ^[a-z]$\n includeNamespaces: ^\\d+$\n metrics:\n apiServer: true\n cadvisor: true\n coreDns: true\n kubeState: true\n kubelet: true\n nodeExporter: true\n scrapeAnnotated:\n excludeNamespaces: ^[a-z]$\n includeNamespaces: ^\\d+$\n intervalSeconds: 30\n retainLabels: ^\\w+$\n nvidia:\n taintGpuNodes: true\n description: demo-mk8s-ephemeral-provider\n ephemeralProvider:\n location: aws-eu-central-1\n nodePools:\n - arch: arm64\n count: 1\n cpu: 50m\n flavor: debian\n labels:\n hello: world\n memory: 128Mi\n name: my-node-pool\n taint:\n - effect: NoSchedule\n key: hello\n value: world\n firewalls:\n - description: hello world\n sourceCidr: 192.168.1.255\n tags:\n acceptance_test: 'true'\n terraform_generated: 'true'\n version: 1.28.4\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "addOns": { "$ref": "#/types/cpln:index/Mk8sAddOns:Mk8sAddOns" diff --git a/provider/go.mod b/provider/go.mod index 299aa4c..44905eb 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -86,7 +86,7 @@ require ( github.com/cheggaaa/pb v1.0.29 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect - github.com/controlplane-com/terraform-provider-cpln v1.1.32 // indirect + github.com/controlplane-com/terraform-provider-cpln v1.1.33 // indirect github.com/creack/pty v1.1.18 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/provider/go.sum b/provider/go.sum index b67d6c5..f28f15c 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1076,8 +1076,8 @@ github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/ github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= -github.com/controlplane-com/terraform-provider-cpln v1.1.32 h1:bqP6//cOezu8kXP1Fu6SdsYgk4kn+5Xqov9ynQAFGPM= -github.com/controlplane-com/terraform-provider-cpln v1.1.32/go.mod h1:Db+m7s416DdFWcu0Ifc2XDn9yhE+MFuEQvArBxNGc60= +github.com/controlplane-com/terraform-provider-cpln v1.1.33 h1:NwonIxWfJ903cKkWQhohHhfjcy1oedi0OaWGklpbVeE= +github.com/controlplane-com/terraform-provider-cpln v1.1.33/go.mod h1:Db+m7s416DdFWcu0Ifc2XDn9yhE+MFuEQvArBxNGc60= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= diff --git a/provider/shim/go.mod b/provider/shim/go.mod index 9f61037..ed97258 100644 --- a/provider/shim/go.mod +++ b/provider/shim/go.mod @@ -5,7 +5,7 @@ go 1.21.10 toolchain go1.21.13 require ( - github.com/controlplane-com/terraform-provider-cpln v1.1.32 + github.com/controlplane-com/terraform-provider-cpln v1.1.33 github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0 ) diff --git a/provider/shim/go.sum b/provider/shim/go.sum index 1a0f112..0802203 100644 --- a/provider/shim/go.sum +++ b/provider/shim/go.sum @@ -9,8 +9,8 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= -github.com/controlplane-com/terraform-provider-cpln v1.1.32 h1:bqP6//cOezu8kXP1Fu6SdsYgk4kn+5Xqov9ynQAFGPM= -github.com/controlplane-com/terraform-provider-cpln v1.1.32/go.mod h1:Db+m7s416DdFWcu0Ifc2XDn9yhE+MFuEQvArBxNGc60= +github.com/controlplane-com/terraform-provider-cpln v1.1.33 h1:NwonIxWfJ903cKkWQhohHhfjcy1oedi0OaWGklpbVeE= +github.com/controlplane-com/terraform-provider-cpln v1.1.33/go.mod h1:Db+m7s416DdFWcu0Ifc2XDn9yhE+MFuEQvArBxNGc60= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 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= From deddfefd172bf679ccc9c97306f4f69d6e37643b Mon Sep 17 00:00:00 2001 From: pulumi-bot Date: Thu, 26 Sep 2024 05:17:20 +0000 Subject: [PATCH 2/2] make build_sdks --- sdk/dotnet/Mk8s.cs | 443 -------------- sdk/go/cpln/mk8s.go | 441 -------------- sdk/nodejs/mk8s.ts | 443 -------------- sdk/python/pulumiverse_cpln/mk8s.py | 886 +--------------------------- 4 files changed, 2 insertions(+), 2211 deletions(-) diff --git a/sdk/dotnet/Mk8s.cs b/sdk/dotnet/Mk8s.cs index eb7358f..084d4cb 100644 --- a/sdk/dotnet/Mk8s.cs +++ b/sdk/dotnet/Mk8s.cs @@ -10,449 +10,6 @@ namespace Pulumiverse.Cpln { - /// - /// Manages a Mk8s's [Mk8s](https://docs.controlplane.com/mk8s/overview). - /// - /// ## Declaration - /// - /// ### Required - /// - /// - **name** (String) Name of the Mk8s. - /// - **version** (String) - /// - /// > **Note** Only one of the providers listed below can be included in a resource. - /// - /// - **generic_provider** (Block List, Max: 1) (see below) - /// - **hetzner_provider** (Block List, Max: 1) (see below) - /// - **aws_provider** (Block List, Max: 1) (see below) - /// - **ephemeral_provider** (Block List, Max: 1) (see below) - /// - /// ### Optional - /// - /// - **description** (String) Description of the Mk8s. - /// - **tags** (Map of String) Key-value map of resource tags. - /// - **firewall** (Block List, Max: 1) (see below) - /// - **add_ons** (Block List, Max: 1) (see below) - /// - /// <a id="nestedblock--generic_provider"></a> - /// - /// ### `generic_provider` - /// - /// Required: - /// - /// - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. - /// - **networking** (Block List, Max: 1) (see below) - /// - /// Optional: - /// - /// - **node_pool** (Block List) (see below) - /// - /// <a id="nestedblock--generic_provider--networking"></a> - /// - /// ### `generic_provider.networking` - /// - /// Networking declaration is required even if networking is not utilized. Example usage: `networking {}`. - /// - /// Optional: - /// - /// - **service_network** (String) The CIDR of the service network. - /// - **pod_network** (String) The CIDR of the pod network. - /// - /// <a id="nestedblock--generic_provider--node_pool"></a> - /// - /// ### `generic_provider.node_pool` - /// - /// List of node pools. - /// - /// Required: - /// - /// - **name** (String) - /// - /// Optional: - /// - /// - **labels** (Map of String) Labels to attach to nodes of a node pool. - /// - **taint** (Block List) (see below) - /// - /// <a id="nestedblock--generic_provider--node_pool--taint"></a> - /// - /// ### `generic_provider.node_pool.taint` - /// - /// Taint for the nodes of a pool. - /// - /// Optional: - /// - /// - **key** (String) - /// - **value** (String) - /// - **effect** (String) - /// - /// <a id="nestedblock--hetzner_provider"></a> - /// - /// ### `hetzner_provider` - /// - /// Required: - /// - /// - **region** (String) Hetzner region to deploy nodes to. - /// - **token_secret_link** (String) Link to a secret holding Hetzner access key. - /// - **network_id** (String) ID of the Hetzner network to deploy nodes to. - /// - **networking** (Block List, Max: 1) (see below) - /// - /// Optional: - /// - /// - **hetzner_labels** (Map of String) Extra labels to attach to servers. - /// - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. - /// - **firewall_id** (String) Optional firewall rule to attach to all nodes. - /// - **node_pool** (Block List) (see below) - /// - **dedicated_server_node_pool** (Block List) (see below) - /// - **image** (String) Default image for all nodes. - /// - **ssh_key** (String) SSH key name for accessing deployed nodes. - /// - **autoscaler** (Block List, Max: 1) (see below) - /// - **floating_ip_selector** (Map of String) If supplied, nodes will get assigned a random floating ip matching the selector. - /// - /// <a id="nestedblock--hetzner_provider--node_pool"></a> - /// - /// ### `hetzner_provider.node_pool` - /// - /// List of node pools. - /// - /// Required: - /// - /// - **name** (String) - /// - **server_type** (String) - /// - /// Optional: - /// - /// - **labels** (Map of String) Labels to attach to nodes of a node pool. - /// - **taint** (Block List) (see below) - /// - **override_image** (String) - /// - **min_size** (Number) - /// - **max_size** (Number) - /// - /// <a id="nestedblock--hetzner_provider--dedicated_server_node_pool"></a> - /// - /// ### `hetzner_provider.dedicated_server_node_pool` - /// - /// Node pool that can configure dedicated Hetzner servers. - /// - /// Required: - /// - /// - **name** (String) - /// - /// Optional: - /// - /// - **labels** (Map of String) Labels to attach to nodes of a node pool. - /// - **taint** (Block List) (see below) - /// - /// <a id="nestedblock--aws_provider"></a> - /// - /// ### `aws_provider` - /// - /// Required: - /// - /// - **region** (String) Region where the cluster nodes will live. - /// - **skip_create_roles** (Boolean) If true, Control Plane will not create any roles. - /// - **image** (Block List, Max: 1) (see below) - /// - **deploy_role_arn** (String) Control Plane will set up the cluster by assuming this role. - /// - **vpc_id** (String) The vpc where nodes will be deployed. Supports SSM. - /// - **networking** (Block List, Max: 1) (see below) - /// - /// Optional: - /// - /// - **aws_tags** (Map of String) Extra tags to attach to all created objects. - /// - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. Supports SSM. - /// - **key_pair** (String) Name of keyPair. Supports SSM - /// - **disk_encryption_key_arn** (String) KMS key used to encrypt volumes. Supports SSM. - /// - **security_group_ids** (List of String) Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon. - /// - **node_pool** (Block List) (see below) - /// - **autoscaler** (Block List, Max: 1) (see below) - /// - /// <a id="nestedblock--aws_provider--node_pool"></a> - /// - /// ### `aws_provider.node_pool` - /// - /// List of node pools. - /// - /// Required: - /// - /// - **name** (String) - /// - **instance_types** (List of String) - /// - **override_image** (Block List, Max: 1) (see below) - /// - **subnet_ids** (List of String) - /// - /// Optional: - /// - /// - **labels** (Map of String) Labels to attach to nodes of a node pool. - /// - **taint** (Block List) (see below) - /// - **boot_disk_size** (Number) Size in GB. - /// - **min_size** (Number) - /// - **max_size** (Number) - /// - **on_demand_base_capacity** (Number) - /// - **on_demand_percentage_above_base_capacity** (Number) - /// - **spot_allocation_strategy** (String) - /// - **extra_security_group_ids** (List of String) - /// - /// <a id="nestedblock--aws_provider--ami"></a> - /// - /// ### `ami` - /// - /// Default image for all nodes. - /// - /// Required: - /// - /// > **Note** Only one of the following listed below can be included. - /// - /// - **recommended** (String) - /// - **exact** (String) Support SSM. - /// - /// <a id="nestedblock--ephemeral_provider"></a> - /// - /// ### `ephemeral_provider` - /// - /// Required: - /// - /// - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. - /// - /// Optional: - /// - /// - **node_pool** (Block List) (see below) - /// - /// <a id="nestedblock--ephemeral_provider--node_pool"></a> - /// - /// ### `ephemeral_provider.node_pool` - /// - /// List of node pools. - /// - /// Required: - /// - /// - **name** (String) - /// - **count** (Int) Number of nodes to deploy. - /// - **arch** (String) CPU architecture of the nodes. - /// - **flavor** (String) Linux distro to use for ephemeral nodes. - /// - **cpu** (String) Allocated CPU. - /// - **memory** (String) Allocated memory. - /// - /// Optional: - /// - /// - **labels** (Map of String) Labels to attach to nodes of a node pool. - /// - **taint** (Block List) (see below) - /// - /// <a id="nestedblock--autoscaler"></a> - /// - /// ### `autoscaler` - /// - /// Optional: - /// - /// - **expander** (List of String) - /// - **unneeded_time** (String) - /// - **unready_time** (String) - /// - **utilization_threshold** (Float64) - /// - /// <a id="nestedblock--firewall"></a> - /// - /// ### `firewall` - /// - /// Allow-list. - /// - /// Required: - /// - /// - **source_cidr** (String) - /// - /// Optional: - /// - /// - **description** (String) - /// - /// <a id="nestedblock--add_ons"></a> - /// - /// ### `add_ons` - /// - /// Optional: - /// - /// - **dashboard** (Boolean) - /// - **azure_workload_identity** (Block List, Max: 1) (see below) - /// - **aws_workload_identity** (Boolean) - /// - **local_path_storage** (Boolean) - /// - **metrics** (Block List, Max: 1) (see below) - /// - **logs** (Block List, Max: 1) (see below) - /// - **nvidia** (Block List, Max: 1) (see below) - /// - **aws_efs** (Block List, Max: 1) (see below) - /// - **aws_ecr** (Block List, Max: 1) (see below) - /// - **aws_elb** (Block List, Max: 1) (see below) - /// - **azure_acr** (Block List, Max: 1) (see below) - /// - **sysbox** (Boolean) - /// - /// <a id="nestedblock--add_ons--azure_workload_identity"></a> - /// - /// ### `add_ons.azure_workload_identity` - /// - /// Required: - /// - /// - **tenant_id** (String) Tenant ID to use for workload identity. - /// - /// <a id="nestedblock--add_ons--metrics"></a> - /// - /// ### `add_ons.metrics` - /// - /// Optional: - /// - /// - **kube_state** (Boolean) Enable kube-state metrics. - /// - **core_dns** (Boolean) Enable scraping of core-dns service. - /// - **kubelet** (Boolean) Enable scraping kubelet stats. - /// - **api_server** (Boolean) Enable scraping apiserver stats. - /// - **node_exporter** (Boolean) Enable collecting node-level stats (disk, network, filesystem, etc). - /// - **cadvisor** (Boolean) Enable CNI-level container stats. - /// - **scrape_annotated** (Block List, Max: 1) (see below) - /// - /// <a id="nestedblock--add_ons--metrics--scrape-annotated"></a> - /// - /// ### `add_ons.metrics.scrape-annotated` - /// - /// Scrape pods annotated with prometheus.io/scrape=true. - /// - /// Optional: - /// - /// - **interval_seconds** (Number) - /// - **include_namespaces** (String) - /// - **exclude_namespaces** (String) - /// - **retain_labels** (String) - /// - /// <a id="nestedblock--add_ons--logs"></a> - /// - /// ### `add_ons.logs` - /// - /// Optional: - /// - /// - **audit_enabled** (Boolean) Collect k8s audit log as log events. - /// - **include_namespaces** (String) - /// - **exclude_namespaces** (String) - /// - /// <a id="nestedblock--add_ons--nvidia"></a> - /// - /// ### `add_ons.nvidia` - /// - /// Required: - /// - /// - **taint_gpu_nodes** (Boolean) - /// - /// <a id="nestedblock--add_ons--aws--efs"></a> - /// - /// ### `add_ons.aws_efs` - /// - /// Required: - /// - /// - **role_arn** (String) Use this role for EFS interaction. - /// - /// <a id="nestedblock--add_ons--aws--ecr"></a> - /// - /// ### `add_ons.aws_ecr` - /// - /// Required: - /// - /// - **role_arn** (String) Role to use when authorizing ECR pulls. Optional on AWS, in which case it will use the instance role to pull. - /// - /// <a id="nestedblock--add_ons--aws--elb"></a> - /// - /// ### `add_ons.aws_elb` - /// - /// Required: - /// - /// - **role_arn** (String) Role to use when authorizing calls to EC2 ELB. Optional on AWS, when not provided it will create the recommended role. - /// - /// <a id="nestedblock--add_ons--azure_acr"></a> - /// - /// ### `add_ons.azure_acr` - /// - /// Required: - /// - /// - **client_id** (String) - /// - /// ## Outputs - /// - /// The following attributes are exported: - /// - /// - **cpln_id** (String) The ID, in GUID format, of the Mk8s. - /// - **alias** (String) The alias name of the Mk8s. - /// - **self_link** (String) Full link to this resource. Can be referenced by other resources. - /// - **status** (Block List, Max: 1) (see below). - /// - /// <a id="nestedblock--status"></a> - /// - /// ### `status` - /// - /// Status of the mk8s. - /// - /// Read-Only: - /// - /// - **oidc_provider_url** (String) - /// - **server_url** (String) - /// - **home_location** (String) - /// - **add_ons** (Block List, Max: 1) (see below) - /// - /// <a id="nestedblock--status--add_ons"></a> - /// - /// ### `status.add_ons` - /// - /// Read-Only: - /// - /// - **dashboard** (Block List, Max: 1) (see below) - /// - **aws_workload_identity** (Block List, Max: 1) (see below) - /// - **metrics** (Block List, Max: 1) (see below) - /// - **logs** (Block List, Max: 1) (see below) - /// - **aws_ecr** (Block List, Max: 1) (see below) - /// - **aws_efs** (Block List, Max: 1) (see below) - /// - **aws_elb** (Block List, Max: 1) (see below) - /// - /// <a id="nestedblock--status--add_ons--dashobard"></a> - /// - /// ### `status.add_ons.dashboard` - /// - /// Read-Only: - /// - /// - **url** (String) Access to dashboard. - /// - /// <a id="nestedblock--status--add_ons--aws_workload_identity"></a> - /// - /// ### `status.add_ons.aws_workload_identity` - /// - /// Read-Only: - /// - /// - **oidc_provider_config** (Block List, Max: 1) (see below) - /// - **trust_policy** (String) - /// - /// <a id="nestedblock--status--add_ons--aws_workload_identity--oidc_provider_config"></a> - /// - /// ### `status.add_ons.aws_workload_identity.oidc_provider_config` - /// - /// Read-Only: - /// - /// - **provider_url** (String) - /// - **audience** (String) - /// - /// <a id="nestedblock--status--add_ons--metrics"></a> - /// - /// ### `status.add_ons.metrics` - /// - /// Read-Only: - /// - /// - **prometheus_endpoint** (String) - /// - **remote_write_config** (String) - /// - /// <a id="nestedblock--status--add_ons--logs"></a> - /// - /// ### `status.add_ons.logs` - /// - /// Read-Only: - /// - /// - **loki_address** (String) Loki endpoint to query logs from. - /// - /// <a id="nestedblock--status--add_ons--aws"></a> - /// - /// ### `status.add_ons.aws` - /// - /// Read-Only: - /// - /// - **trust_policy** (String) - /// - /// ## Example Usage - /// [CplnResourceType("cpln:index/mk8s:Mk8s")] public partial class Mk8s : global::Pulumi.CustomResource { diff --git a/sdk/go/cpln/mk8s.go b/sdk/go/cpln/mk8s.go index d508122..a5c443d 100644 --- a/sdk/go/cpln/mk8s.go +++ b/sdk/go/cpln/mk8s.go @@ -13,447 +13,6 @@ import ( "github.com/pulumiverse/pulumi-cpln/sdk/go/cpln/internal" ) -// Manages a Mk8s's [Mk8s](https://docs.controlplane.com/mk8s/overview). -// -// ## Declaration -// -// ### Required -// -// - **name** (String) Name of the Mk8s. -// - **version** (String) -// -// > **Note** Only one of the providers listed below can be included in a resource. -// -// - **generic_provider** (Block List, Max: 1) (see below) -// - **hetzner_provider** (Block List, Max: 1) (see below) -// - **aws_provider** (Block List, Max: 1) (see below) -// - **ephemeral_provider** (Block List, Max: 1) (see below) -// -// ### Optional -// -// - **description** (String) Description of the Mk8s. -// - **tags** (Map of String) Key-value map of resource tags. -// - **firewall** (Block List, Max: 1) (see below) -// - **add_ons** (Block List, Max: 1) (see below) -// -// -// -// ### `genericProvider` -// -// Required: -// -// - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. -// - **networking** (Block List, Max: 1) (see below) -// -// Optional: -// -// - **node_pool** (Block List) (see below) -// -// -// -// ### `generic_provider.networking` -// -// Networking declaration is required even if networking is not utilized. Example usage: `networking {}`. -// -// Optional: -// -// - **service_network** (String) The CIDR of the service network. -// - **pod_network** (String) The CIDR of the pod network. -// -// -// -// ### `generic_provider.node_pool` -// -// List of node pools. -// -// Required: -// -// - **name** (String) -// -// Optional: -// -// - **labels** (Map of String) Labels to attach to nodes of a node pool. -// - **taint** (Block List) (see below) -// -// -// -// ### `generic_provider.node_pool.taint` -// -// Taint for the nodes of a pool. -// -// Optional: -// -// - **key** (String) -// - **value** (String) -// - **effect** (String) -// -// -// -// ### `hetznerProvider` -// -// Required: -// -// - **region** (String) Hetzner region to deploy nodes to. -// - **token_secret_link** (String) Link to a secret holding Hetzner access key. -// - **network_id** (String) ID of the Hetzner network to deploy nodes to. -// - **networking** (Block List, Max: 1) (see below) -// -// Optional: -// -// - **hetzner_labels** (Map of String) Extra labels to attach to servers. -// - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. -// - **firewall_id** (String) Optional firewall rule to attach to all nodes. -// - **node_pool** (Block List) (see below) -// - **dedicated_server_node_pool** (Block List) (see below) -// - **image** (String) Default image for all nodes. -// - **ssh_key** (String) SSH key name for accessing deployed nodes. -// - **autoscaler** (Block List, Max: 1) (see below) -// - **floating_ip_selector** (Map of String) If supplied, nodes will get assigned a random floating ip matching the selector. -// -// -// -// ### `hetzner_provider.node_pool` -// -// List of node pools. -// -// Required: -// -// - **name** (String) -// - **server_type** (String) -// -// Optional: -// -// - **labels** (Map of String) Labels to attach to nodes of a node pool. -// - **taint** (Block List) (see below) -// - **override_image** (String) -// - **min_size** (Number) -// - **max_size** (Number) -// -// -// -// ### `hetzner_provider.dedicated_server_node_pool` -// -// Node pool that can configure dedicated Hetzner servers. -// -// Required: -// -// - **name** (String) -// -// Optional: -// -// - **labels** (Map of String) Labels to attach to nodes of a node pool. -// - **taint** (Block List) (see below) -// -// -// -// ### `awsProvider` -// -// Required: -// -// - **region** (String) Region where the cluster nodes will live. -// - **skip_create_roles** (Boolean) If true, Control Plane will not create any roles. -// - **image** (Block List, Max: 1) (see below) -// - **deploy_role_arn** (String) Control Plane will set up the cluster by assuming this role. -// - **vpc_id** (String) The vpc where nodes will be deployed. Supports SSM. -// - **networking** (Block List, Max: 1) (see below) -// -// Optional: -// -// - **aws_tags** (Map of String) Extra tags to attach to all created objects. -// - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. Supports SSM. -// - **key_pair** (String) Name of keyPair. Supports SSM -// - **disk_encryption_key_arn** (String) KMS key used to encrypt volumes. Supports SSM. -// - **security_group_ids** (List of String) Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon. -// - **node_pool** (Block List) (see below) -// - **autoscaler** (Block List, Max: 1) (see below) -// -// -// -// ### `aws_provider.node_pool` -// -// List of node pools. -// -// Required: -// -// - **name** (String) -// - **instance_types** (List of String) -// - **override_image** (Block List, Max: 1) (see below) -// - **subnet_ids** (List of String) -// -// Optional: -// -// - **labels** (Map of String) Labels to attach to nodes of a node pool. -// - **taint** (Block List) (see below) -// - **boot_disk_size** (Number) Size in GB. -// - **min_size** (Number) -// - **max_size** (Number) -// - **on_demand_base_capacity** (Number) -// - **on_demand_percentage_above_base_capacity** (Number) -// - **spot_allocation_strategy** (String) -// - **extra_security_group_ids** (List of String) -// -// -// -// ### `ami` -// -// Default image for all nodes. -// -// Required: -// -// > **Note** Only one of the following listed below can be included. -// -// - **recommended** (String) -// - **exact** (String) Support SSM. -// -// -// -// ### `ephemeralProvider` -// -// Required: -// -// - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. -// -// Optional: -// -// - **node_pool** (Block List) (see below) -// -// -// -// ### `ephemeral_provider.node_pool` -// -// List of node pools. -// -// Required: -// -// - **name** (String) -// - **count** (Int) Number of nodes to deploy. -// - **arch** (String) CPU architecture of the nodes. -// - **flavor** (String) Linux distro to use for ephemeral nodes. -// - **cpu** (String) Allocated CPU. -// - **memory** (String) Allocated memory. -// -// Optional: -// -// - **labels** (Map of String) Labels to attach to nodes of a node pool. -// - **taint** (Block List) (see below) -// -// -// -// ### `autoscaler` -// -// Optional: -// -// - **expander** (List of String) -// - **unneeded_time** (String) -// - **unready_time** (String) -// - **utilization_threshold** (Float64) -// -// -// -// ### `firewall` -// -// Allow-list. -// -// Required: -// -// - **source_cidr** (String) -// -// Optional: -// -// - **description** (String) -// -// -// -// ### `addOns` -// -// Optional: -// -// - **dashboard** (Boolean) -// - **azure_workload_identity** (Block List, Max: 1) (see below) -// - **aws_workload_identity** (Boolean) -// - **local_path_storage** (Boolean) -// - **metrics** (Block List, Max: 1) (see below) -// - **logs** (Block List, Max: 1) (see below) -// - **nvidia** (Block List, Max: 1) (see below) -// - **aws_efs** (Block List, Max: 1) (see below) -// - **aws_ecr** (Block List, Max: 1) (see below) -// - **aws_elb** (Block List, Max: 1) (see below) -// - **azure_acr** (Block List, Max: 1) (see below) -// - **sysbox** (Boolean) -// -// -// -// ### `add_ons.azure_workload_identity` -// -// Required: -// -// - **tenant_id** (String) Tenant ID to use for workload identity. -// -// -// -// ### `add_ons.metrics` -// -// Optional: -// -// - **kube_state** (Boolean) Enable kube-state metrics. -// - **core_dns** (Boolean) Enable scraping of core-dns service. -// - **kubelet** (Boolean) Enable scraping kubelet stats. -// - **api_server** (Boolean) Enable scraping apiserver stats. -// - **node_exporter** (Boolean) Enable collecting node-level stats (disk, network, filesystem, etc). -// - **cadvisor** (Boolean) Enable CNI-level container stats. -// - **scrape_annotated** (Block List, Max: 1) (see below) -// -// -// -// ### `add_ons.metrics.scrape-annotated` -// -// Scrape pods annotated with prometheus.io/scrape=true. -// -// Optional: -// -// - **interval_seconds** (Number) -// - **include_namespaces** (String) -// - **exclude_namespaces** (String) -// - **retain_labels** (String) -// -// -// -// ### `add_ons.logs` -// -// Optional: -// -// - **audit_enabled** (Boolean) Collect k8s audit log as log events. -// - **include_namespaces** (String) -// - **exclude_namespaces** (String) -// -// -// -// ### `add_ons.nvidia` -// -// Required: -// -// - **taint_gpu_nodes** (Boolean) -// -// -// -// ### `add_ons.aws_efs` -// -// Required: -// -// - **role_arn** (String) Use this role for EFS interaction. -// -// -// -// ### `add_ons.aws_ecr` -// -// Required: -// -// - **role_arn** (String) Role to use when authorizing ECR pulls. Optional on AWS, in which case it will use the instance role to pull. -// -// -// -// ### `add_ons.aws_elb` -// -// Required: -// -// - **role_arn** (String) Role to use when authorizing calls to EC2 ELB. Optional on AWS, when not provided it will create the recommended role. -// -// -// -// ### `add_ons.azure_acr` -// -// Required: -// -// - **client_id** (String) -// -// ## Outputs -// -// The following attributes are exported: -// -// - **cpln_id** (String) The ID, in GUID format, of the Mk8s. -// - **alias** (String) The alias name of the Mk8s. -// - **self_link** (String) Full link to this resource. Can be referenced by other resources. -// - **status** (Block List, Max: 1) (see below). -// -// -// -// ### `status` -// -// Status of the mk8s. -// -// Read-Only: -// -// - **oidc_provider_url** (String) -// - **server_url** (String) -// - **home_location** (String) -// - **add_ons** (Block List, Max: 1) (see below) -// -// -// -// ### `status.add_ons` -// -// Read-Only: -// -// - **dashboard** (Block List, Max: 1) (see below) -// - **aws_workload_identity** (Block List, Max: 1) (see below) -// - **metrics** (Block List, Max: 1) (see below) -// - **logs** (Block List, Max: 1) (see below) -// - **aws_ecr** (Block List, Max: 1) (see below) -// - **aws_efs** (Block List, Max: 1) (see below) -// - **aws_elb** (Block List, Max: 1) (see below) -// -// -// -// ### `status.add_ons.dashboard` -// -// Read-Only: -// -// - **url** (String) Access to dashboard. -// -// -// -// ### `status.add_ons.aws_workload_identity` -// -// Read-Only: -// -// - **oidc_provider_config** (Block List, Max: 1) (see below) -// - **trust_policy** (String) -// -// -// -// ### `status.add_ons.aws_workload_identity.oidc_provider_config` -// -// Read-Only: -// -// - **provider_url** (String) -// - **audience** (String) -// -// -// -// ### `status.add_ons.metrics` -// -// Read-Only: -// -// - **prometheus_endpoint** (String) -// - **remote_write_config** (String) -// -// -// -// ### `status.add_ons.logs` -// -// Read-Only: -// -// - **loki_address** (String) Loki endpoint to query logs from. -// -// -// -// ### `status.add_ons.aws` -// -// Read-Only: -// -// - **trust_policy** (String) -// -// ## Example Usage type Mk8s struct { pulumi.CustomResourceState diff --git a/sdk/nodejs/mk8s.ts b/sdk/nodejs/mk8s.ts index 6df0bf1..df33c60 100644 --- a/sdk/nodejs/mk8s.ts +++ b/sdk/nodejs/mk8s.ts @@ -6,449 +6,6 @@ import * as inputs from "./types/input"; import * as outputs from "./types/output"; import * as utilities from "./utilities"; -/** - * Manages a Mk8s's [Mk8s](https://docs.controlplane.com/mk8s/overview). - * - * ## Declaration - * - * ### Required - * - * - **name** (String) Name of the Mk8s. - * - **version** (String) - * - * > **Note** Only one of the providers listed below can be included in a resource. - * - * - **generic_provider** (Block List, Max: 1) (see below) - * - **hetzner_provider** (Block List, Max: 1) (see below) - * - **aws_provider** (Block List, Max: 1) (see below) - * - **ephemeral_provider** (Block List, Max: 1) (see below) - * - * ### Optional - * - * - **description** (String) Description of the Mk8s. - * - **tags** (Map of String) Key-value map of resource tags. - * - **firewall** (Block List, Max: 1) (see below) - * - **add_ons** (Block List, Max: 1) (see below) - * - * - * - * ### `genericProvider` - * - * Required: - * - * - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. - * - **networking** (Block List, Max: 1) (see below) - * - * Optional: - * - * - **node_pool** (Block List) (see below) - * - * - * - * ### `generic_provider.networking` - * - * Networking declaration is required even if networking is not utilized. Example usage: `networking {}`. - * - * Optional: - * - * - **service_network** (String) The CIDR of the service network. - * - **pod_network** (String) The CIDR of the pod network. - * - * - * - * ### `generic_provider.node_pool` - * - * List of node pools. - * - * Required: - * - * - **name** (String) - * - * Optional: - * - * - **labels** (Map of String) Labels to attach to nodes of a node pool. - * - **taint** (Block List) (see below) - * - * - * - * ### `generic_provider.node_pool.taint` - * - * Taint for the nodes of a pool. - * - * Optional: - * - * - **key** (String) - * - **value** (String) - * - **effect** (String) - * - * - * - * ### `hetznerProvider` - * - * Required: - * - * - **region** (String) Hetzner region to deploy nodes to. - * - **token_secret_link** (String) Link to a secret holding Hetzner access key. - * - **network_id** (String) ID of the Hetzner network to deploy nodes to. - * - **networking** (Block List, Max: 1) (see below) - * - * Optional: - * - * - **hetzner_labels** (Map of String) Extra labels to attach to servers. - * - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. - * - **firewall_id** (String) Optional firewall rule to attach to all nodes. - * - **node_pool** (Block List) (see below) - * - **dedicated_server_node_pool** (Block List) (see below) - * - **image** (String) Default image for all nodes. - * - **ssh_key** (String) SSH key name for accessing deployed nodes. - * - **autoscaler** (Block List, Max: 1) (see below) - * - **floating_ip_selector** (Map of String) If supplied, nodes will get assigned a random floating ip matching the selector. - * - * - * - * ### `hetzner_provider.node_pool` - * - * List of node pools. - * - * Required: - * - * - **name** (String) - * - **server_type** (String) - * - * Optional: - * - * - **labels** (Map of String) Labels to attach to nodes of a node pool. - * - **taint** (Block List) (see below) - * - **override_image** (String) - * - **min_size** (Number) - * - **max_size** (Number) - * - * - * - * ### `hetzner_provider.dedicated_server_node_pool` - * - * Node pool that can configure dedicated Hetzner servers. - * - * Required: - * - * - **name** (String) - * - * Optional: - * - * - **labels** (Map of String) Labels to attach to nodes of a node pool. - * - **taint** (Block List) (see below) - * - * - * - * ### `awsProvider` - * - * Required: - * - * - **region** (String) Region where the cluster nodes will live. - * - **skip_create_roles** (Boolean) If true, Control Plane will not create any roles. - * - **image** (Block List, Max: 1) (see below) - * - **deploy_role_arn** (String) Control Plane will set up the cluster by assuming this role. - * - **vpc_id** (String) The vpc where nodes will be deployed. Supports SSM. - * - **networking** (Block List, Max: 1) (see below) - * - * Optional: - * - * - **aws_tags** (Map of String) Extra tags to attach to all created objects. - * - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. Supports SSM. - * - **key_pair** (String) Name of keyPair. Supports SSM - * - **disk_encryption_key_arn** (String) KMS key used to encrypt volumes. Supports SSM. - * - **security_group_ids** (List of String) Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon. - * - **node_pool** (Block List) (see below) - * - **autoscaler** (Block List, Max: 1) (see below) - * - * - * - * ### `aws_provider.node_pool` - * - * List of node pools. - * - * Required: - * - * - **name** (String) - * - **instance_types** (List of String) - * - **override_image** (Block List, Max: 1) (see below) - * - **subnet_ids** (List of String) - * - * Optional: - * - * - **labels** (Map of String) Labels to attach to nodes of a node pool. - * - **taint** (Block List) (see below) - * - **boot_disk_size** (Number) Size in GB. - * - **min_size** (Number) - * - **max_size** (Number) - * - **on_demand_base_capacity** (Number) - * - **on_demand_percentage_above_base_capacity** (Number) - * - **spot_allocation_strategy** (String) - * - **extra_security_group_ids** (List of String) - * - * - * - * ### `ami` - * - * Default image for all nodes. - * - * Required: - * - * > **Note** Only one of the following listed below can be included. - * - * - **recommended** (String) - * - **exact** (String) Support SSM. - * - * - * - * ### `ephemeralProvider` - * - * Required: - * - * - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. - * - * Optional: - * - * - **node_pool** (Block List) (see below) - * - * - * - * ### `ephemeral_provider.node_pool` - * - * List of node pools. - * - * Required: - * - * - **name** (String) - * - **count** (Int) Number of nodes to deploy. - * - **arch** (String) CPU architecture of the nodes. - * - **flavor** (String) Linux distro to use for ephemeral nodes. - * - **cpu** (String) Allocated CPU. - * - **memory** (String) Allocated memory. - * - * Optional: - * - * - **labels** (Map of String) Labels to attach to nodes of a node pool. - * - **taint** (Block List) (see below) - * - * - * - * ### `autoscaler` - * - * Optional: - * - * - **expander** (List of String) - * - **unneeded_time** (String) - * - **unready_time** (String) - * - **utilization_threshold** (Float64) - * - * - * - * ### `firewall` - * - * Allow-list. - * - * Required: - * - * - **source_cidr** (String) - * - * Optional: - * - * - **description** (String) - * - * - * - * ### `addOns` - * - * Optional: - * - * - **dashboard** (Boolean) - * - **azure_workload_identity** (Block List, Max: 1) (see below) - * - **aws_workload_identity** (Boolean) - * - **local_path_storage** (Boolean) - * - **metrics** (Block List, Max: 1) (see below) - * - **logs** (Block List, Max: 1) (see below) - * - **nvidia** (Block List, Max: 1) (see below) - * - **aws_efs** (Block List, Max: 1) (see below) - * - **aws_ecr** (Block List, Max: 1) (see below) - * - **aws_elb** (Block List, Max: 1) (see below) - * - **azure_acr** (Block List, Max: 1) (see below) - * - **sysbox** (Boolean) - * - * - * - * ### `add_ons.azure_workload_identity` - * - * Required: - * - * - **tenant_id** (String) Tenant ID to use for workload identity. - * - * - * - * ### `add_ons.metrics` - * - * Optional: - * - * - **kube_state** (Boolean) Enable kube-state metrics. - * - **core_dns** (Boolean) Enable scraping of core-dns service. - * - **kubelet** (Boolean) Enable scraping kubelet stats. - * - **api_server** (Boolean) Enable scraping apiserver stats. - * - **node_exporter** (Boolean) Enable collecting node-level stats (disk, network, filesystem, etc). - * - **cadvisor** (Boolean) Enable CNI-level container stats. - * - **scrape_annotated** (Block List, Max: 1) (see below) - * - * - * - * ### `add_ons.metrics.scrape-annotated` - * - * Scrape pods annotated with prometheus.io/scrape=true. - * - * Optional: - * - * - **interval_seconds** (Number) - * - **include_namespaces** (String) - * - **exclude_namespaces** (String) - * - **retain_labels** (String) - * - * - * - * ### `add_ons.logs` - * - * Optional: - * - * - **audit_enabled** (Boolean) Collect k8s audit log as log events. - * - **include_namespaces** (String) - * - **exclude_namespaces** (String) - * - * - * - * ### `add_ons.nvidia` - * - * Required: - * - * - **taint_gpu_nodes** (Boolean) - * - * - * - * ### `add_ons.aws_efs` - * - * Required: - * - * - **role_arn** (String) Use this role for EFS interaction. - * - * - * - * ### `add_ons.aws_ecr` - * - * Required: - * - * - **role_arn** (String) Role to use when authorizing ECR pulls. Optional on AWS, in which case it will use the instance role to pull. - * - * - * - * ### `add_ons.aws_elb` - * - * Required: - * - * - **role_arn** (String) Role to use when authorizing calls to EC2 ELB. Optional on AWS, when not provided it will create the recommended role. - * - * - * - * ### `add_ons.azure_acr` - * - * Required: - * - * - **client_id** (String) - * - * ## Outputs - * - * The following attributes are exported: - * - * - **cpln_id** (String) The ID, in GUID format, of the Mk8s. - * - **alias** (String) The alias name of the Mk8s. - * - **self_link** (String) Full link to this resource. Can be referenced by other resources. - * - **status** (Block List, Max: 1) (see below). - * - * - * - * ### `status` - * - * Status of the mk8s. - * - * Read-Only: - * - * - **oidc_provider_url** (String) - * - **server_url** (String) - * - **home_location** (String) - * - **add_ons** (Block List, Max: 1) (see below) - * - * - * - * ### `status.add_ons` - * - * Read-Only: - * - * - **dashboard** (Block List, Max: 1) (see below) - * - **aws_workload_identity** (Block List, Max: 1) (see below) - * - **metrics** (Block List, Max: 1) (see below) - * - **logs** (Block List, Max: 1) (see below) - * - **aws_ecr** (Block List, Max: 1) (see below) - * - **aws_efs** (Block List, Max: 1) (see below) - * - **aws_elb** (Block List, Max: 1) (see below) - * - * - * - * ### `status.add_ons.dashboard` - * - * Read-Only: - * - * - **url** (String) Access to dashboard. - * - * - * - * ### `status.add_ons.aws_workload_identity` - * - * Read-Only: - * - * - **oidc_provider_config** (Block List, Max: 1) (see below) - * - **trust_policy** (String) - * - * - * - * ### `status.add_ons.aws_workload_identity.oidc_provider_config` - * - * Read-Only: - * - * - **provider_url** (String) - * - **audience** (String) - * - * - * - * ### `status.add_ons.metrics` - * - * Read-Only: - * - * - **prometheus_endpoint** (String) - * - **remote_write_config** (String) - * - * - * - * ### `status.add_ons.logs` - * - * Read-Only: - * - * - **loki_address** (String) Loki endpoint to query logs from. - * - * - * - * ### `status.add_ons.aws` - * - * Read-Only: - * - * - **trust_policy** (String) - * - * ## Example Usage - */ export class Mk8s extends pulumi.CustomResource { /** * Get an existing Mk8s resource's state with the given name, ID, and optional extra diff --git a/sdk/python/pulumiverse_cpln/mk8s.py b/sdk/python/pulumiverse_cpln/mk8s.py index 73c623e..e830944 100644 --- a/sdk/python/pulumiverse_cpln/mk8s.py +++ b/sdk/python/pulumiverse_cpln/mk8s.py @@ -471,448 +471,7 @@ def __init__(__self__, version: Optional[pulumi.Input[str]] = None, __props__=None): """ - Manages a Mk8s's [Mk8s](https://docs.controlplane.com/mk8s/overview). - - ## Declaration - - ### Required - - - **name** (String) Name of the Mk8s. - - **version** (String) - - > **Note** Only one of the providers listed below can be included in a resource. - - - **generic_provider** (Block List, Max: 1) (see below) - - **hetzner_provider** (Block List, Max: 1) (see below) - - **aws_provider** (Block List, Max: 1) (see below) - - **ephemeral_provider** (Block List, Max: 1) (see below) - - ### Optional - - - **description** (String) Description of the Mk8s. - - **tags** (Map of String) Key-value map of resource tags. - - **firewall** (Block List, Max: 1) (see below) - - **add_ons** (Block List, Max: 1) (see below) - - - - ### `generic_provider` - - Required: - - - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. - - **networking** (Block List, Max: 1) (see below) - - Optional: - - - **node_pool** (Block List) (see below) - - - - ### `generic_provider.networking` - - Networking declaration is required even if networking is not utilized. Example usage: `networking {}`. - - Optional: - - - **service_network** (String) The CIDR of the service network. - - **pod_network** (String) The CIDR of the pod network. - - - - ### `generic_provider.node_pool` - - List of node pools. - - Required: - - - **name** (String) - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - - - ### `generic_provider.node_pool.taint` - - Taint for the nodes of a pool. - - Optional: - - - **key** (String) - - **value** (String) - - **effect** (String) - - - - ### `hetzner_provider` - - Required: - - - **region** (String) Hetzner region to deploy nodes to. - - **token_secret_link** (String) Link to a secret holding Hetzner access key. - - **network_id** (String) ID of the Hetzner network to deploy nodes to. - - **networking** (Block List, Max: 1) (see below) - - Optional: - - - **hetzner_labels** (Map of String) Extra labels to attach to servers. - - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. - - **firewall_id** (String) Optional firewall rule to attach to all nodes. - - **node_pool** (Block List) (see below) - - **dedicated_server_node_pool** (Block List) (see below) - - **image** (String) Default image for all nodes. - - **ssh_key** (String) SSH key name for accessing deployed nodes. - - **autoscaler** (Block List, Max: 1) (see below) - - **floating_ip_selector** (Map of String) If supplied, nodes will get assigned a random floating ip matching the selector. - - - - ### `hetzner_provider.node_pool` - - List of node pools. - - Required: - - - **name** (String) - - **server_type** (String) - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - **override_image** (String) - - **min_size** (Number) - - **max_size** (Number) - - - - ### `hetzner_provider.dedicated_server_node_pool` - - Node pool that can configure dedicated Hetzner servers. - - Required: - - - **name** (String) - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - - - ### `aws_provider` - - Required: - - - **region** (String) Region where the cluster nodes will live. - - **skip_create_roles** (Boolean) If true, Control Plane will not create any roles. - - **image** (Block List, Max: 1) (see below) - - **deploy_role_arn** (String) Control Plane will set up the cluster by assuming this role. - - **vpc_id** (String) The vpc where nodes will be deployed. Supports SSM. - - **networking** (Block List, Max: 1) (see below) - - Optional: - - - **aws_tags** (Map of String) Extra tags to attach to all created objects. - - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. Supports SSM. - - **key_pair** (String) Name of keyPair. Supports SSM - - **disk_encryption_key_arn** (String) KMS key used to encrypt volumes. Supports SSM. - - **security_group_ids** (List of String) Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon. - - **node_pool** (Block List) (see below) - - **autoscaler** (Block List, Max: 1) (see below) - - - - ### `aws_provider.node_pool` - - List of node pools. - - Required: - - - **name** (String) - - **instance_types** (List of String) - - **override_image** (Block List, Max: 1) (see below) - - **subnet_ids** (List of String) - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - **boot_disk_size** (Number) Size in GB. - - **min_size** (Number) - - **max_size** (Number) - - **on_demand_base_capacity** (Number) - - **on_demand_percentage_above_base_capacity** (Number) - - **spot_allocation_strategy** (String) - - **extra_security_group_ids** (List of String) - - - - ### `ami` - - Default image for all nodes. - - Required: - - > **Note** Only one of the following listed below can be included. - - - **recommended** (String) - - **exact** (String) Support SSM. - - - - ### `ephemeral_provider` - - Required: - - - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. - - Optional: - - - **node_pool** (Block List) (see below) - - - - ### `ephemeral_provider.node_pool` - - List of node pools. - - Required: - - - **name** (String) - - **count** (Int) Number of nodes to deploy. - - **arch** (String) CPU architecture of the nodes. - - **flavor** (String) Linux distro to use for ephemeral nodes. - - **cpu** (String) Allocated CPU. - - **memory** (String) Allocated memory. - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - - - ### `autoscaler` - - Optional: - - - **expander** (List of String) - - **unneeded_time** (String) - - **unready_time** (String) - - **utilization_threshold** (Float64) - - - - ### `firewall` - - Allow-list. - - Required: - - - **source_cidr** (String) - - Optional: - - - **description** (String) - - - - ### `add_ons` - - Optional: - - - **dashboard** (Boolean) - - **azure_workload_identity** (Block List, Max: 1) (see below) - - **aws_workload_identity** (Boolean) - - **local_path_storage** (Boolean) - - **metrics** (Block List, Max: 1) (see below) - - **logs** (Block List, Max: 1) (see below) - - **nvidia** (Block List, Max: 1) (see below) - - **aws_efs** (Block List, Max: 1) (see below) - - **aws_ecr** (Block List, Max: 1) (see below) - - **aws_elb** (Block List, Max: 1) (see below) - - **azure_acr** (Block List, Max: 1) (see below) - - **sysbox** (Boolean) - - - - ### `add_ons.azure_workload_identity` - - Required: - - - **tenant_id** (String) Tenant ID to use for workload identity. - - - - ### `add_ons.metrics` - - Optional: - - - **kube_state** (Boolean) Enable kube-state metrics. - - **core_dns** (Boolean) Enable scraping of core-dns service. - - **kubelet** (Boolean) Enable scraping kubelet stats. - - **api_server** (Boolean) Enable scraping apiserver stats. - - **node_exporter** (Boolean) Enable collecting node-level stats (disk, network, filesystem, etc). - - **cadvisor** (Boolean) Enable CNI-level container stats. - - **scrape_annotated** (Block List, Max: 1) (see below) - - - - ### `add_ons.metrics.scrape-annotated` - - Scrape pods annotated with prometheus.io/scrape=true. - - Optional: - - - **interval_seconds** (Number) - - **include_namespaces** (String) - - **exclude_namespaces** (String) - - **retain_labels** (String) - - - - ### `add_ons.logs` - - Optional: - - - **audit_enabled** (Boolean) Collect k8s audit log as log events. - - **include_namespaces** (String) - - **exclude_namespaces** (String) - - - - ### `add_ons.nvidia` - - Required: - - - **taint_gpu_nodes** (Boolean) - - - - ### `add_ons.aws_efs` - - Required: - - - **role_arn** (String) Use this role for EFS interaction. - - - - ### `add_ons.aws_ecr` - - Required: - - - **role_arn** (String) Role to use when authorizing ECR pulls. Optional on AWS, in which case it will use the instance role to pull. - - - - ### `add_ons.aws_elb` - - Required: - - - **role_arn** (String) Role to use when authorizing calls to EC2 ELB. Optional on AWS, when not provided it will create the recommended role. - - - - ### `add_ons.azure_acr` - - Required: - - - **client_id** (String) - - ## Outputs - - The following attributes are exported: - - - **cpln_id** (String) The ID, in GUID format, of the Mk8s. - - **alias** (String) The alias name of the Mk8s. - - **self_link** (String) Full link to this resource. Can be referenced by other resources. - - **status** (Block List, Max: 1) (see below). - - - - ### `status` - - Status of the mk8s. - - Read-Only: - - - **oidc_provider_url** (String) - - **server_url** (String) - - **home_location** (String) - - **add_ons** (Block List, Max: 1) (see below) - - - - ### `status.add_ons` - - Read-Only: - - - **dashboard** (Block List, Max: 1) (see below) - - **aws_workload_identity** (Block List, Max: 1) (see below) - - **metrics** (Block List, Max: 1) (see below) - - **logs** (Block List, Max: 1) (see below) - - **aws_ecr** (Block List, Max: 1) (see below) - - **aws_efs** (Block List, Max: 1) (see below) - - **aws_elb** (Block List, Max: 1) (see below) - - - - ### `status.add_ons.dashboard` - - Read-Only: - - - **url** (String) Access to dashboard. - - - - ### `status.add_ons.aws_workload_identity` - - Read-Only: - - - **oidc_provider_config** (Block List, Max: 1) (see below) - - **trust_policy** (String) - - - - ### `status.add_ons.aws_workload_identity.oidc_provider_config` - - Read-Only: - - - **provider_url** (String) - - **audience** (String) - - - - ### `status.add_ons.metrics` - - Read-Only: - - - **prometheus_endpoint** (String) - - **remote_write_config** (String) - - - - ### `status.add_ons.logs` - - Read-Only: - - - **loki_address** (String) Loki endpoint to query logs from. - - - - ### `status.add_ons.aws` - - Read-Only: - - - **trust_policy** (String) - - ## Example Usage - + Create a Mk8s resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: Description of the Mk8s. @@ -927,448 +486,7 @@ def __init__(__self__, args: Mk8sArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Manages a Mk8s's [Mk8s](https://docs.controlplane.com/mk8s/overview). - - ## Declaration - - ### Required - - - **name** (String) Name of the Mk8s. - - **version** (String) - - > **Note** Only one of the providers listed below can be included in a resource. - - - **generic_provider** (Block List, Max: 1) (see below) - - **hetzner_provider** (Block List, Max: 1) (see below) - - **aws_provider** (Block List, Max: 1) (see below) - - **ephemeral_provider** (Block List, Max: 1) (see below) - - ### Optional - - - **description** (String) Description of the Mk8s. - - **tags** (Map of String) Key-value map of resource tags. - - **firewall** (Block List, Max: 1) (see below) - - **add_ons** (Block List, Max: 1) (see below) - - - - ### `generic_provider` - - Required: - - - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. - - **networking** (Block List, Max: 1) (see below) - - Optional: - - - **node_pool** (Block List) (see below) - - - - ### `generic_provider.networking` - - Networking declaration is required even if networking is not utilized. Example usage: `networking {}`. - - Optional: - - - **service_network** (String) The CIDR of the service network. - - **pod_network** (String) The CIDR of the pod network. - - - - ### `generic_provider.node_pool` - - List of node pools. - - Required: - - - **name** (String) - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - - - ### `generic_provider.node_pool.taint` - - Taint for the nodes of a pool. - - Optional: - - - **key** (String) - - **value** (String) - - **effect** (String) - - - - ### `hetzner_provider` - - Required: - - - **region** (String) Hetzner region to deploy nodes to. - - **token_secret_link** (String) Link to a secret holding Hetzner access key. - - **network_id** (String) ID of the Hetzner network to deploy nodes to. - - **networking** (Block List, Max: 1) (see below) - - Optional: - - - **hetzner_labels** (Map of String) Extra labels to attach to servers. - - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. - - **firewall_id** (String) Optional firewall rule to attach to all nodes. - - **node_pool** (Block List) (see below) - - **dedicated_server_node_pool** (Block List) (see below) - - **image** (String) Default image for all nodes. - - **ssh_key** (String) SSH key name for accessing deployed nodes. - - **autoscaler** (Block List, Max: 1) (see below) - - **floating_ip_selector** (Map of String) If supplied, nodes will get assigned a random floating ip matching the selector. - - - - ### `hetzner_provider.node_pool` - - List of node pools. - - Required: - - - **name** (String) - - **server_type** (String) - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - **override_image** (String) - - **min_size** (Number) - - **max_size** (Number) - - - - ### `hetzner_provider.dedicated_server_node_pool` - - Node pool that can configure dedicated Hetzner servers. - - Required: - - - **name** (String) - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - - - ### `aws_provider` - - Required: - - - **region** (String) Region where the cluster nodes will live. - - **skip_create_roles** (Boolean) If true, Control Plane will not create any roles. - - **image** (Block List, Max: 1) (see below) - - **deploy_role_arn** (String) Control Plane will set up the cluster by assuming this role. - - **vpc_id** (String) The vpc where nodes will be deployed. Supports SSM. - - **networking** (Block List, Max: 1) (see below) - - Optional: - - - **aws_tags** (Map of String) Extra tags to attach to all created objects. - - **pre_install_script** (String) Optional shell script that will be run before K8S is installed. Supports SSM. - - **key_pair** (String) Name of keyPair. Supports SSM - - **disk_encryption_key_arn** (String) KMS key used to encrypt volumes. Supports SSM. - - **security_group_ids** (List of String) Security groups to deploy nodes to. Security groups control if the cluster is multi-zone or single-zon. - - **node_pool** (Block List) (see below) - - **autoscaler** (Block List, Max: 1) (see below) - - - - ### `aws_provider.node_pool` - - List of node pools. - - Required: - - - **name** (String) - - **instance_types** (List of String) - - **override_image** (Block List, Max: 1) (see below) - - **subnet_ids** (List of String) - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - **boot_disk_size** (Number) Size in GB. - - **min_size** (Number) - - **max_size** (Number) - - **on_demand_base_capacity** (Number) - - **on_demand_percentage_above_base_capacity** (Number) - - **spot_allocation_strategy** (String) - - **extra_security_group_ids** (List of String) - - - - ### `ami` - - Default image for all nodes. - - Required: - - > **Note** Only one of the following listed below can be included. - - - **recommended** (String) - - **exact** (String) Support SSM. - - - - ### `ephemeral_provider` - - Required: - - - **location** (String) Control Plane location that will host the K8S components. Prefer one that is closest to where the nodes are running. - - Optional: - - - **node_pool** (Block List) (see below) - - - - ### `ephemeral_provider.node_pool` - - List of node pools. - - Required: - - - **name** (String) - - **count** (Int) Number of nodes to deploy. - - **arch** (String) CPU architecture of the nodes. - - **flavor** (String) Linux distro to use for ephemeral nodes. - - **cpu** (String) Allocated CPU. - - **memory** (String) Allocated memory. - - Optional: - - - **labels** (Map of String) Labels to attach to nodes of a node pool. - - **taint** (Block List) (see below) - - - - ### `autoscaler` - - Optional: - - - **expander** (List of String) - - **unneeded_time** (String) - - **unready_time** (String) - - **utilization_threshold** (Float64) - - - - ### `firewall` - - Allow-list. - - Required: - - - **source_cidr** (String) - - Optional: - - - **description** (String) - - - - ### `add_ons` - - Optional: - - - **dashboard** (Boolean) - - **azure_workload_identity** (Block List, Max: 1) (see below) - - **aws_workload_identity** (Boolean) - - **local_path_storage** (Boolean) - - **metrics** (Block List, Max: 1) (see below) - - **logs** (Block List, Max: 1) (see below) - - **nvidia** (Block List, Max: 1) (see below) - - **aws_efs** (Block List, Max: 1) (see below) - - **aws_ecr** (Block List, Max: 1) (see below) - - **aws_elb** (Block List, Max: 1) (see below) - - **azure_acr** (Block List, Max: 1) (see below) - - **sysbox** (Boolean) - - - - ### `add_ons.azure_workload_identity` - - Required: - - - **tenant_id** (String) Tenant ID to use for workload identity. - - - - ### `add_ons.metrics` - - Optional: - - - **kube_state** (Boolean) Enable kube-state metrics. - - **core_dns** (Boolean) Enable scraping of core-dns service. - - **kubelet** (Boolean) Enable scraping kubelet stats. - - **api_server** (Boolean) Enable scraping apiserver stats. - - **node_exporter** (Boolean) Enable collecting node-level stats (disk, network, filesystem, etc). - - **cadvisor** (Boolean) Enable CNI-level container stats. - - **scrape_annotated** (Block List, Max: 1) (see below) - - - - ### `add_ons.metrics.scrape-annotated` - - Scrape pods annotated with prometheus.io/scrape=true. - - Optional: - - - **interval_seconds** (Number) - - **include_namespaces** (String) - - **exclude_namespaces** (String) - - **retain_labels** (String) - - - - ### `add_ons.logs` - - Optional: - - - **audit_enabled** (Boolean) Collect k8s audit log as log events. - - **include_namespaces** (String) - - **exclude_namespaces** (String) - - - - ### `add_ons.nvidia` - - Required: - - - **taint_gpu_nodes** (Boolean) - - - - ### `add_ons.aws_efs` - - Required: - - - **role_arn** (String) Use this role for EFS interaction. - - - - ### `add_ons.aws_ecr` - - Required: - - - **role_arn** (String) Role to use when authorizing ECR pulls. Optional on AWS, in which case it will use the instance role to pull. - - - - ### `add_ons.aws_elb` - - Required: - - - **role_arn** (String) Role to use when authorizing calls to EC2 ELB. Optional on AWS, when not provided it will create the recommended role. - - - - ### `add_ons.azure_acr` - - Required: - - - **client_id** (String) - - ## Outputs - - The following attributes are exported: - - - **cpln_id** (String) The ID, in GUID format, of the Mk8s. - - **alias** (String) The alias name of the Mk8s. - - **self_link** (String) Full link to this resource. Can be referenced by other resources. - - **status** (Block List, Max: 1) (see below). - - - - ### `status` - - Status of the mk8s. - - Read-Only: - - - **oidc_provider_url** (String) - - **server_url** (String) - - **home_location** (String) - - **add_ons** (Block List, Max: 1) (see below) - - - - ### `status.add_ons` - - Read-Only: - - - **dashboard** (Block List, Max: 1) (see below) - - **aws_workload_identity** (Block List, Max: 1) (see below) - - **metrics** (Block List, Max: 1) (see below) - - **logs** (Block List, Max: 1) (see below) - - **aws_ecr** (Block List, Max: 1) (see below) - - **aws_efs** (Block List, Max: 1) (see below) - - **aws_elb** (Block List, Max: 1) (see below) - - - - ### `status.add_ons.dashboard` - - Read-Only: - - - **url** (String) Access to dashboard. - - - - ### `status.add_ons.aws_workload_identity` - - Read-Only: - - - **oidc_provider_config** (Block List, Max: 1) (see below) - - **trust_policy** (String) - - - - ### `status.add_ons.aws_workload_identity.oidc_provider_config` - - Read-Only: - - - **provider_url** (String) - - **audience** (String) - - - - ### `status.add_ons.metrics` - - Read-Only: - - - **prometheus_endpoint** (String) - - **remote_write_config** (String) - - - - ### `status.add_ons.logs` - - Read-Only: - - - **loki_address** (String) Loki endpoint to query logs from. - - - - ### `status.add_ons.aws` - - Read-Only: - - - **trust_policy** (String) - - ## Example Usage - + Create a Mk8s resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param Mk8sArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource.