UNPKG

@pulumiverse/scaleway

Version:

A Pulumi package for creating and managing Scaleway cloud resources.

170 lines 6.59 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * The `scalewayK8sClusterAcl` resource allows you to create and manage Scaleway Kubernetes Cluster authorized IPs. * * Refer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information. * * > **Important:** When creating a Cluster, it comes with a default ACL rule allowing all ranges `0.0.0.0/0`. * Defining custom ACLs with Terraform will overwrite this rule, but it will be recreated automatically when deleting the ACL resource. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * // Basic ACL usage * const aclBasic = new scaleway.network.PrivateNetwork("acl_basic", {}); * const aclBasicCluster = new scaleway.kubernetes.Cluster("acl_basic", { * name: "acl-basic", * version: "1.35.3", * cni: "cilium", * deleteAdditionalResources: true, * privateNetworkId: aclBasic.id, * }); * const aclBasicAcl = new scaleway.kubernetes.Acl("acl_basic", { * clusterId: aclBasicCluster.id, * aclRules: [ * { * ip: "1.2.3.4/32", * description: "Allow 1.2.3.4", * }, * { * scalewayRanges: true, * description: "Allow all Scaleway ranges", * }, * ], * }); * ``` * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * // Full isolation example * const aclBasic = new scaleway.network.PrivateNetwork("acl_basic", {}); * const aclBasicCluster = new scaleway.kubernetes.Cluster("acl_basic", { * name: "acl-basic", * version: "1.35.3", * cni: "cilium", * deleteAdditionalResources: true, * privateNetworkId: aclBasic.id, * }); * const aclBasicAcl = new scaleway.kubernetes.Acl("acl_basic", { * clusterId: aclBasicCluster.id, * noIpAllowed: true, * }); * ``` * * ## Import * * Kubernetes ACLs can be imported using the `{region}/{cluster-id}`, e.g. * * ```sh * $ pulumi import scaleway:kubernetes/acl:Acl acl01 fr-par/11111111-1111-1111-1111-111111111111 * ``` */ export declare class Acl extends pulumi.CustomResource { /** * Get an existing Acl resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: AclState, opts?: pulumi.CustomResourceOptions): Acl; /** * Returns true if the given object is an instance of Acl. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Acl; /** * A list of ACLs (structure is described below) * * > **Important:** This block cannot be defined if the `noIpAllowed` field is set to true. */ readonly aclRules: pulumi.Output<outputs.kubernetes.AclAclRule[] | undefined>; /** * UUID of the cluster. The ID of the cluster is also the ID of the ACL resource, as there can only be one per cluster. * * > **Important:** Updates to `clusterId` will recreate the ACL. */ readonly clusterId: pulumi.Output<string>; /** * If set to true, no IP will be allowed and the cluster will be in full-isolation. * * > **Important:** This field cannot be set to true if the `aclRules` block is defined. */ readonly noIpAllowed: pulumi.Output<boolean | undefined>; /** * `region`) The region in which the ACL rule should be created. */ readonly region: pulumi.Output<string | undefined>; /** * Create a Acl resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: AclArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Acl resources. */ export interface AclState { /** * A list of ACLs (structure is described below) * * > **Important:** This block cannot be defined if the `noIpAllowed` field is set to true. */ aclRules?: pulumi.Input<pulumi.Input<inputs.kubernetes.AclAclRule>[] | undefined>; /** * UUID of the cluster. The ID of the cluster is also the ID of the ACL resource, as there can only be one per cluster. * * > **Important:** Updates to `clusterId` will recreate the ACL. */ clusterId?: pulumi.Input<string | undefined>; /** * If set to true, no IP will be allowed and the cluster will be in full-isolation. * * > **Important:** This field cannot be set to true if the `aclRules` block is defined. */ noIpAllowed?: pulumi.Input<boolean | undefined>; /** * `region`) The region in which the ACL rule should be created. */ region?: pulumi.Input<string | undefined>; } /** * The set of arguments for constructing a Acl resource. */ export interface AclArgs { /** * A list of ACLs (structure is described below) * * > **Important:** This block cannot be defined if the `noIpAllowed` field is set to true. */ aclRules?: pulumi.Input<pulumi.Input<inputs.kubernetes.AclAclRule>[] | undefined>; /** * UUID of the cluster. The ID of the cluster is also the ID of the ACL resource, as there can only be one per cluster. * * > **Important:** Updates to `clusterId` will recreate the ACL. */ clusterId: pulumi.Input<string>; /** * If set to true, no IP will be allowed and the cluster will be in full-isolation. * * > **Important:** This field cannot be set to true if the `aclRules` block is defined. */ noIpAllowed?: pulumi.Input<boolean | undefined>; /** * `region`) The region in which the ACL rule should be created. */ region?: pulumi.Input<string | undefined>; } //# sourceMappingURL=acl.d.ts.map