harness.cloudprovider.Kubernetes

Explore with Pulumi AI

Resource for creating a Kubernetes cloud provider. This resource uses the config-as-code API’s. When updating the name or path of this resource you should typically also set the create_before_destroy = true lifecycle setting.

Example Usage

using System.Collections.Generic;
using Pulumi;
using Harness = Lbrlabs.PulumiPackage.Harness;
using Harness = Pulumi.Harness;

return await Deployment.RunAsync(() => 
{
    var @default = Harness.GetSecretManager.Invoke(new()
    {
        Default = true,
    });

    var username = new Harness.EncryptedText("username", new()
    {
        Value = "<USERNAME>",
        SecretManagerId = @default.Apply(getSecretManagerResult => getSecretManagerResult).Apply(@default => @default.Apply(getSecretManagerResult => getSecretManagerResult.Id)),
    });

    var password = new Harness.EncryptedText("password", new()
    {
        Value = "<PASSWORD>",
        SecretManagerId = @default.Apply(getSecretManagerResult => getSecretManagerResult).Apply(@default => @default.Apply(getSecretManagerResult => getSecretManagerResult.Id)),
    });

    var example = new Harness.Cloudprovider.Kubernetes("example", new()
    {
        SkipValidation = true,
        Authentication = new Harness.Cloudprovider.Inputs.KubernetesAuthenticationArgs
        {
            UsernamePassword = new Harness.Cloudprovider.Inputs.KubernetesAuthenticationUsernamePasswordArgs
            {
                MasterUrl = "https://localhost.com",
                UsernameSecretName = username.Name,
                PasswordSecretName = password.Name,
            },
        },
    });

});
package main

import (
	"github.com/lbrlabs/pulumi-harness/sdk/go/harness"
	"github.com/lbrlabs/pulumi-harness/sdk/go/harness/cloudprovider"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := harness.GetSecretManager(ctx, &GetSecretManagerArgs{
			Default: pulumi.BoolRef(true),
		}, nil)
		if err != nil {
			return err
		}
		username, err := harness.NewEncryptedText(ctx, "username", &harness.EncryptedTextArgs{
			Value:           pulumi.String("<USERNAME>"),
			SecretManagerId: pulumi.String(_default.Id),
		})
		if err != nil {
			return err
		}
		password, err := harness.NewEncryptedText(ctx, "password", &harness.EncryptedTextArgs{
			Value:           pulumi.String("<PASSWORD>"),
			SecretManagerId: pulumi.String(_default.Id),
		})
		if err != nil {
			return err
		}
		_, err = cloudprovider.NewKubernetes(ctx, "example", &cloudprovider.KubernetesArgs{
			SkipValidation: pulumi.Bool(true),
			Authentication: &cloudprovider.KubernetesAuthenticationArgs{
				UsernamePassword: &cloudprovider.KubernetesAuthenticationUsernamePasswordArgs{
					MasterUrl:          pulumi.String("https://localhost.com"),
					UsernameSecretName: username.Name,
					PasswordSecretName: password.Name,
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.harness.HarnessFunctions;
import com.pulumi.harness.inputs.GetSecretManagerArgs;
import com.pulumi.harness.EncryptedText;
import com.pulumi.harness.EncryptedTextArgs;
import com.pulumi.harness.cloudprovider.Kubernetes;
import com.pulumi.harness.cloudprovider.KubernetesArgs;
import com.pulumi.harness.cloudprovider.inputs.KubernetesAuthenticationArgs;
import com.pulumi.harness.cloudprovider.inputs.KubernetesAuthenticationUsernamePasswordArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var default = HarnessFunctions.getSecretManager(GetSecretManagerArgs.builder()
            .default_(true)
            .build());

        var username = new EncryptedText("username", EncryptedTextArgs.builder()        
            .value("<USERNAME>")
            .secretManagerId(default_.id())
            .build());

        var password = new EncryptedText("password", EncryptedTextArgs.builder()        
            .value("<PASSWORD>")
            .secretManagerId(default_.id())
            .build());

        var example = new Kubernetes("example", KubernetesArgs.builder()        
            .skipValidation(true)
            .authentication(KubernetesAuthenticationArgs.builder()
                .usernamePassword(KubernetesAuthenticationUsernamePasswordArgs.builder()
                    .masterUrl("https://localhost.com")
                    .usernameSecretName(username.name())
                    .passwordSecretName(password.name())
                    .build())
                .build())
            .build());

    }
}
import pulumi
import lbrlabs_pulumi_harness as harness
import pulumi_harness as harness

default = harness.get_secret_manager(default=True)
username = harness.EncryptedText("username",
    value="<USERNAME>",
    secret_manager_id=default.id)
password = harness.EncryptedText("password",
    value="<PASSWORD>",
    secret_manager_id=default.id)
example = harness.cloudprovider.Kubernetes("example",
    skip_validation=True,
    authentication=harness.cloudprovider.KubernetesAuthenticationArgs(
        username_password=harness.cloudprovider.KubernetesAuthenticationUsernamePasswordArgs(
            master_url="https://localhost.com",
            username_secret_name=username.name,
            password_secret_name=password.name,
        ),
    ))
import * as pulumi from "@pulumi/pulumi";
import * as harness from "@lbrlabs/pulumi-harness";
import * as harness from "@pulumi/harness";

const default = harness.getSecretManager({
    "default": true,
});
const username = new harness.EncryptedText("username", {
    value: "<USERNAME>",
    secretManagerId: _default.then(_default => _default.id),
});
const password = new harness.EncryptedText("password", {
    value: "<PASSWORD>",
    secretManagerId: _default.then(_default => _default.id),
});
const example = new harness.cloudprovider.Kubernetes("example", {
    skipValidation: true,
    authentication: {
        usernamePassword: {
            masterUrl: "https://localhost.com",
            usernameSecretName: username.name,
            passwordSecretName: password.name,
        },
    },
});
resources:
  username:
    type: harness:EncryptedText
    properties:
      value: <USERNAME>
      secretManagerId: ${default.id}
  password:
    type: harness:EncryptedText
    properties:
      value: <PASSWORD>
      secretManagerId: ${default.id}
  example:
    type: harness:cloudprovider:Kubernetes
    properties:
      skipValidation: true
      authentication:
        usernamePassword:
          masterUrl: https://localhost.com
          usernameSecretName: ${username.name}
          passwordSecretName: ${password.name}
variables:
  default:
    fn::invoke:
      Function: harness:getSecretManager
      Arguments:
        default: true

Create Kubernetes Resource

new Kubernetes(name: string, args: KubernetesArgs, opts?: CustomResourceOptions);
@overload
def Kubernetes(resource_name: str,
               opts: Optional[ResourceOptions] = None,
               authentication: Optional[KubernetesAuthenticationArgs] = None,
               name: Optional[str] = None,
               skip_validation: Optional[bool] = None,
               usage_scopes: Optional[Sequence[KubernetesUsageScopeArgs]] = None)
@overload
def Kubernetes(resource_name: str,
               args: KubernetesArgs,
               opts: Optional[ResourceOptions] = None)
func NewKubernetes(ctx *Context, name string, args KubernetesArgs, opts ...ResourceOption) (*Kubernetes, error)
public Kubernetes(string name, KubernetesArgs args, CustomResourceOptions? opts = null)
public Kubernetes(String name, KubernetesArgs args)
public Kubernetes(String name, KubernetesArgs args, CustomResourceOptions options)
type: harness:cloudprovider:Kubernetes
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args KubernetesArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args KubernetesArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args KubernetesArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args KubernetesArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args KubernetesArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Kubernetes Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The Kubernetes resource accepts the following input properties:

Authentication Lbrlabs.PulumiPackage.Harness.Cloudprovider.Inputs.KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

Name string

The name of the cloud provider.

SkipValidation bool

Skip validation of Kubernetes configuration.

UsageScopes List<Lbrlabs.PulumiPackage.Harness.Cloudprovider.Inputs.KubernetesUsageScopeArgs>

This block is used for scoping the resource to a specific set of applications or environments.

Authentication KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

Name string

The name of the cloud provider.

SkipValidation bool

Skip validation of Kubernetes configuration.

UsageScopes []KubernetesUsageScopeArgs

This block is used for scoping the resource to a specific set of applications or environments.

authentication KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

name String

The name of the cloud provider.

skipValidation Boolean

Skip validation of Kubernetes configuration.

usageScopes List<KubernetesUsageScopeArgs>

This block is used for scoping the resource to a specific set of applications or environments.

authentication KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

name string

The name of the cloud provider.

skipValidation boolean

Skip validation of Kubernetes configuration.

usageScopes KubernetesUsageScopeArgs[]

This block is used for scoping the resource to a specific set of applications or environments.

authentication KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

name str

The name of the cloud provider.

skip_validation bool

Skip validation of Kubernetes configuration.

usage_scopes Sequence[KubernetesUsageScopeArgs]

This block is used for scoping the resource to a specific set of applications or environments.

authentication Property Map

Authentication configuration for the Kubernetes cluster

name String

The name of the cloud provider.

skipValidation Boolean

Skip validation of Kubernetes configuration.

usageScopes List<Property Map>

This block is used for scoping the resource to a specific set of applications or environments.

Outputs

All input properties are implicitly available as output properties. Additionally, the Kubernetes resource produces the following output properties:

Id string

The provider-assigned unique ID for this managed resource.

Id string

The provider-assigned unique ID for this managed resource.

id String

The provider-assigned unique ID for this managed resource.

id string

The provider-assigned unique ID for this managed resource.

id str

The provider-assigned unique ID for this managed resource.

id String

The provider-assigned unique ID for this managed resource.

Look up Existing Kubernetes Resource

Get an existing Kubernetes resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: KubernetesState, opts?: CustomResourceOptions): Kubernetes
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        authentication: Optional[KubernetesAuthenticationArgs] = None,
        name: Optional[str] = None,
        skip_validation: Optional[bool] = None,
        usage_scopes: Optional[Sequence[KubernetesUsageScopeArgs]] = None) -> Kubernetes
func GetKubernetes(ctx *Context, name string, id IDInput, state *KubernetesState, opts ...ResourceOption) (*Kubernetes, error)
public static Kubernetes Get(string name, Input<string> id, KubernetesState? state, CustomResourceOptions? opts = null)
public static Kubernetes get(String name, Output<String> id, KubernetesState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
Authentication Lbrlabs.PulumiPackage.Harness.Cloudprovider.Inputs.KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

Name string

The name of the cloud provider.

SkipValidation bool

Skip validation of Kubernetes configuration.

UsageScopes List<Lbrlabs.PulumiPackage.Harness.Cloudprovider.Inputs.KubernetesUsageScopeArgs>

This block is used for scoping the resource to a specific set of applications or environments.

Authentication KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

Name string

The name of the cloud provider.

SkipValidation bool

Skip validation of Kubernetes configuration.

UsageScopes []KubernetesUsageScopeArgs

This block is used for scoping the resource to a specific set of applications or environments.

authentication KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

name String

The name of the cloud provider.

skipValidation Boolean

Skip validation of Kubernetes configuration.

usageScopes List<KubernetesUsageScopeArgs>

This block is used for scoping the resource to a specific set of applications or environments.

authentication KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

name string

The name of the cloud provider.

skipValidation boolean

Skip validation of Kubernetes configuration.

usageScopes KubernetesUsageScopeArgs[]

This block is used for scoping the resource to a specific set of applications or environments.

authentication KubernetesAuthenticationArgs

Authentication configuration for the Kubernetes cluster

name str

The name of the cloud provider.

skip_validation bool

Skip validation of Kubernetes configuration.

usage_scopes Sequence[KubernetesUsageScopeArgs]

This block is used for scoping the resource to a specific set of applications or environments.

authentication Property Map

Authentication configuration for the Kubernetes cluster

name String

The name of the cloud provider.

skipValidation Boolean

Skip validation of Kubernetes configuration.

usageScopes List<Property Map>

This block is used for scoping the resource to a specific set of applications or environments.

Supporting Types

KubernetesAuthentication

DelegateSelectors List<string>

Delegate selectors to inherit the GCP credentials from.

Oidc Lbrlabs.PulumiPackage.Harness.Cloudprovider.Inputs.KubernetesAuthenticationOidc

Service account configuration for connecting to the Kubernetes cluster

ServiceAccount Lbrlabs.PulumiPackage.Harness.Cloudprovider.Inputs.KubernetesAuthenticationServiceAccount

Username and password for authentication to the cluster

UsernamePassword Lbrlabs.PulumiPackage.Harness.Cloudprovider.Inputs.KubernetesAuthenticationUsernamePassword

Username and password for authentication to the cluster

DelegateSelectors []string

Delegate selectors to inherit the GCP credentials from.

Oidc KubernetesAuthenticationOidc

Service account configuration for connecting to the Kubernetes cluster

ServiceAccount KubernetesAuthenticationServiceAccount

Username and password for authentication to the cluster

UsernamePassword KubernetesAuthenticationUsernamePassword

Username and password for authentication to the cluster

delegateSelectors List<String>

Delegate selectors to inherit the GCP credentials from.

oidc KubernetesAuthenticationOidc

Service account configuration for connecting to the Kubernetes cluster

serviceAccount KubernetesAuthenticationServiceAccount

Username and password for authentication to the cluster

usernamePassword KubernetesAuthenticationUsernamePassword

Username and password for authentication to the cluster

delegateSelectors string[]

Delegate selectors to inherit the GCP credentials from.

oidc KubernetesAuthenticationOidc

Service account configuration for connecting to the Kubernetes cluster

serviceAccount KubernetesAuthenticationServiceAccount

Username and password for authentication to the cluster

usernamePassword KubernetesAuthenticationUsernamePassword

Username and password for authentication to the cluster

delegate_selectors Sequence[str]

Delegate selectors to inherit the GCP credentials from.

oidc KubernetesAuthenticationOidc

Service account configuration for connecting to the Kubernetes cluster

service_account KubernetesAuthenticationServiceAccount

Username and password for authentication to the cluster

username_password KubernetesAuthenticationUsernamePassword

Username and password for authentication to the cluster

delegateSelectors List<String>

Delegate selectors to inherit the GCP credentials from.

oidc Property Map

Service account configuration for connecting to the Kubernetes cluster

serviceAccount Property Map

Username and password for authentication to the cluster

usernamePassword Property Map

Username and password for authentication to the cluster

KubernetesAuthenticationOidc

KubernetesAuthenticationServiceAccount

KubernetesAuthenticationUsernamePassword

KubernetesUsageScope

ApplicationId string

Id of the application to scope to. If empty then this scope applies to all applications.

EnvironmentFilterType string

Type of environment filter applied. Cannot be used with environment_id. Valid options are NONPRODUCTIONENVIRONMENTS, PRODUCTION_ENVIRONMENTS.

EnvironmentId string

Id of the id of the specific environment to scope to. Cannot be used with environment_filter_type.

ApplicationId string

Id of the application to scope to. If empty then this scope applies to all applications.

EnvironmentFilterType string

Type of environment filter applied. Cannot be used with environment_id. Valid options are NONPRODUCTIONENVIRONMENTS, PRODUCTION_ENVIRONMENTS.

EnvironmentId string

Id of the id of the specific environment to scope to. Cannot be used with environment_filter_type.

applicationId String

Id of the application to scope to. If empty then this scope applies to all applications.

environmentFilterType String

Type of environment filter applied. Cannot be used with environment_id. Valid options are NONPRODUCTIONENVIRONMENTS, PRODUCTION_ENVIRONMENTS.

environmentId String

Id of the id of the specific environment to scope to. Cannot be used with environment_filter_type.

applicationId string

Id of the application to scope to. If empty then this scope applies to all applications.

environmentFilterType string

Type of environment filter applied. Cannot be used with environment_id. Valid options are NONPRODUCTIONENVIRONMENTS, PRODUCTION_ENVIRONMENTS.

environmentId string

Id of the id of the specific environment to scope to. Cannot be used with environment_filter_type.

application_id str

Id of the application to scope to. If empty then this scope applies to all applications.

environment_filter_type str

Type of environment filter applied. Cannot be used with environment_id. Valid options are NONPRODUCTIONENVIRONMENTS, PRODUCTION_ENVIRONMENTS.

environment_id str

Id of the id of the specific environment to scope to. Cannot be used with environment_filter_type.

applicationId String

Id of the application to scope to. If empty then this scope applies to all applications.

environmentFilterType String

Type of environment filter applied. Cannot be used with environment_id. Valid options are NONPRODUCTIONENVIRONMENTS, PRODUCTION_ENVIRONMENTS.

environmentId String

Id of the id of the specific environment to scope to. Cannot be used with environment_filter_type.

Import

Import using the Harness kubernetes cloud provider id.

 $ pulumi import harness:cloudprovider/kubernetes:Kubernetes example <provider_id>

Package Details

Repository
harness lbrlabs/pulumi-harness
License
Apache-2.0
Notes

This Pulumi package is based on the harness Terraform Provider.