import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * This resource provides the Cluster resource in Oracle Cloud Infrastructure Container Engine service. * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/containerengine/latest/Cluster * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/container_engine * * Create a new cluster. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const testCluster = new oci.containerengine.Cluster("test_cluster", { * compartmentId: compartmentId, * kubernetesVersion: clusterKubernetesVersion, * name: clusterName, * vcnId: testVcn.id, * clusterPodNetworkOptions: [{ * cniType: clusterClusterPodNetworkOptionsCniType, * }], * definedTags: { * "Operations.CostCenter": "42", * }, * endpointConfig: { * isPublicIpEnabled: clusterEndpointConfigIsPublicIpEnabled === "true", * nsgIds: clusterEndpointConfigNsgIds, * securityAttributes: clusterEndpointConfigSecurityAttributes, * subnetId: testSubnet.id, * }, * freeformTags: { * Department: "Finance", * }, * imagePolicyConfig: { * isPolicyEnabled: clusterImagePolicyConfigIsPolicyEnabled === "true", * keyDetails: [{ * kmsKeyId: testKey.id, * }], * }, * kmsKeyId: testKey.id, * options: { * addOns: { * isKubernetesDashboardEnabled: clusterOptionsAddOnsIsKubernetesDashboardEnabled === "true", * isTillerEnabled: clusterOptionsAddOnsIsTillerEnabled === "true", * }, * admissionControllerOptions: { * isPodSecurityPolicyEnabled: clusterOptionsAdmissionControllerOptionsIsPodSecurityPolicyEnabled === "true", * }, * ipFamilies: clusterOptionsIpFamilies, * kubernetesNetworkConfig: { * podsCidr: clusterOptionsKubernetesNetworkConfigPodsCidr, * servicesCidr: clusterOptionsKubernetesNetworkConfigServicesCidr, * }, * openIdConnectTokenAuthenticationConfig: { * isOpenIdConnectAuthEnabled: clusterOptionsOpenIdConnectTokenAuthenticationConfigIsOpenIdConnectAuthEnabled === "true", * caCertificate: clusterOptionsOpenIdConnectTokenAuthenticationConfigCaCertificate, * clientId: testClient.id, * configurationFile: clusterOptionsOpenIdConnectTokenAuthenticationConfigConfigurationFile, * groupsClaim: clusterOptionsOpenIdConnectTokenAuthenticationConfigGroupsClaim, * groupsPrefix: clusterOptionsOpenIdConnectTokenAuthenticationConfigGroupsPrefix, * issuerUrl: clusterOptionsOpenIdConnectTokenAuthenticationConfigIssuerUrl, * requiredClaims: [{ * key: clusterOptionsOpenIdConnectTokenAuthenticationConfigRequiredClaimsKey, * value: clusterOptionsOpenIdConnectTokenAuthenticationConfigRequiredClaimsValue, * }], * signingAlgorithms: clusterOptionsOpenIdConnectTokenAuthenticationConfigSigningAlgorithms, * usernameClaim: clusterOptionsOpenIdConnectTokenAuthenticationConfigUsernameClaim, * usernamePrefix: clusterOptionsOpenIdConnectTokenAuthenticationConfigUsernamePrefix, * }, * openIdConnectDiscovery: { * isOpenIdConnectDiscoveryEnabled: clusterOptionsOpenIdConnectDiscoveryIsOpenIdConnectDiscoveryEnabled === "true", * }, * persistentVolumeConfig: { * definedTags: { * "Operations.CostCenter": "42", * }, * freeformTags: { * Department: "Finance", * }, * }, * serviceLbConfig: { * backendNsgIds: clusterOptionsServiceLbConfigBackendNsgIds, * definedTags: { * "Operations.CostCenter": "42", * }, * freeformTags: { * Department: "Finance", * }, * }, * serviceLbSubnetIds: clusterOptionsServiceLbSubnetIds, * }, * type: clusterType, * }); * ``` * * ## Import * * Clusters can be imported using the `id`, e.g. * * ```sh * $ pulumi import oci:ContainerEngine/cluster:Cluster test_cluster "id" * ``` */ export declare class Cluster extends pulumi.CustomResource { /** * Get an existing Cluster 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, state?: ClusterState, opts?: pulumi.CustomResourceOptions): Cluster; /** * Returns true if the given object is an instance of Cluster. 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 Cluster; /** * Available Kubernetes versions to which the clusters masters may be upgraded. */ readonly availableKubernetesUpgrades: pulumi.Output; /** * Available CNIs and network options for existing and new node pools of the cluster */ readonly clusterPodNetworkOptions: pulumi.Output; /** * The OCID of the compartment in which to create the cluster. */ readonly compartmentId: pulumi.Output; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ readonly definedTags: pulumi.Output<{ [key: string]: string; }>; /** * The network configuration for access to the Cluster control plane. */ readonly endpointConfig: pulumi.Output; /** * Endpoints served up by the cluster masters. */ readonly endpoints: pulumi.Output; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ readonly freeformTags: pulumi.Output<{ [key: string]: string; }>; /** * (Updatable) The image verification policy for signature validation. Once a policy is created and enabled with one or more kms keys, the policy will ensure all images deployed has been signed with the key(s) attached to the policy. */ readonly imagePolicyConfig: pulumi.Output; /** * The OCID of the KMS key to be used as the master encryption key for Kubernetes secret encryption. When used, `kubernetesVersion` must be at least `v1.13.0`. */ readonly kmsKeyId: pulumi.Output; /** * (Updatable) The version of Kubernetes to install into the cluster masters. */ readonly kubernetesVersion: pulumi.Output; /** * Details about the state of the cluster masters. */ readonly lifecycleDetails: pulumi.Output; /** * Metadata about the cluster. */ readonly metadatas: pulumi.Output; /** * (Updatable) The name of the cluster. Avoid entering confidential information. */ readonly name: pulumi.Output; /** * The cluster-specific OpenID Connect Discovery endpoint */ readonly openIdConnectDiscoveryEndpoint: pulumi.Output; /** * The cluster-specific OpenID Connect Discovery Key to derive the DiscoveryEndpoint */ readonly openIdConnectDiscoveryKey: pulumi.Output; /** * (Updatable) Optional attributes for the cluster. */ readonly options: pulumi.Output; /** * The state of the cluster masters. */ readonly state: pulumi.Output; /** * (Updatable) Type of cluster */ readonly type: pulumi.Output; /** * The OCID of the virtual cloud network (VCN) in which to create the cluster. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ readonly vcnId: pulumi.Output; /** * Create a Cluster 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: ClusterArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Cluster resources. */ export interface ClusterState { /** * Available Kubernetes versions to which the clusters masters may be upgraded. */ availableKubernetesUpgrades?: pulumi.Input[] | undefined>; /** * Available CNIs and network options for existing and new node pools of the cluster */ clusterPodNetworkOptions?: pulumi.Input[] | undefined>; /** * The OCID of the compartment in which to create the cluster. */ compartmentId?: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The network configuration for access to the Cluster control plane. */ endpointConfig?: pulumi.Input; /** * Endpoints served up by the cluster masters. */ endpoints?: pulumi.Input[] | undefined>; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) The image verification policy for signature validation. Once a policy is created and enabled with one or more kms keys, the policy will ensure all images deployed has been signed with the key(s) attached to the policy. */ imagePolicyConfig?: pulumi.Input; /** * The OCID of the KMS key to be used as the master encryption key for Kubernetes secret encryption. When used, `kubernetesVersion` must be at least `v1.13.0`. */ kmsKeyId?: pulumi.Input; /** * (Updatable) The version of Kubernetes to install into the cluster masters. */ kubernetesVersion?: pulumi.Input; /** * Details about the state of the cluster masters. */ lifecycleDetails?: pulumi.Input; /** * Metadata about the cluster. */ metadatas?: pulumi.Input[] | undefined>; /** * (Updatable) The name of the cluster. Avoid entering confidential information. */ name?: pulumi.Input; /** * The cluster-specific OpenID Connect Discovery endpoint */ openIdConnectDiscoveryEndpoint?: pulumi.Input; /** * The cluster-specific OpenID Connect Discovery Key to derive the DiscoveryEndpoint */ openIdConnectDiscoveryKey?: pulumi.Input; /** * (Updatable) Optional attributes for the cluster. */ options?: pulumi.Input; /** * The state of the cluster masters. */ state?: pulumi.Input; /** * (Updatable) Type of cluster */ type?: pulumi.Input; /** * The OCID of the virtual cloud network (VCN) in which to create the cluster. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ vcnId?: pulumi.Input; } /** * The set of arguments for constructing a Cluster resource. */ export interface ClusterArgs { /** * Available CNIs and network options for existing and new node pools of the cluster */ clusterPodNetworkOptions?: pulumi.Input[] | undefined>; /** * The OCID of the compartment in which to create the cluster. */ compartmentId: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The network configuration for access to the Cluster control plane. */ endpointConfig?: pulumi.Input; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) The image verification policy for signature validation. Once a policy is created and enabled with one or more kms keys, the policy will ensure all images deployed has been signed with the key(s) attached to the policy. */ imagePolicyConfig?: pulumi.Input; /** * The OCID of the KMS key to be used as the master encryption key for Kubernetes secret encryption. When used, `kubernetesVersion` must be at least `v1.13.0`. */ kmsKeyId?: pulumi.Input; /** * (Updatable) The version of Kubernetes to install into the cluster masters. */ kubernetesVersion: pulumi.Input; /** * (Updatable) The name of the cluster. Avoid entering confidential information. */ name?: pulumi.Input; /** * (Updatable) Optional attributes for the cluster. */ options?: pulumi.Input; /** * (Updatable) Type of cluster */ type?: pulumi.Input; /** * The OCID of the virtual cloud network (VCN) in which to create the cluster. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ vcnId: pulumi.Input; } //# sourceMappingURL=cluster.d.ts.map