## kubernetes (releasemanager)

Manipulates the Kubernetes Service activate Deployments.

### Interface

### Required Parameters

These parameters are used in the [`use` stanza](/docs/waypoint-hcl/use) for this plugin.

#### ingress (category)

Configuration to set up an ingress resource to route traffic to the given application from an ingress controller.

An ingress resource can be created on release that will route traffic to the Kubernetes service. Note that before this happens, the Kubernetes cluster must already be configured with an Ingress controller. Otherwise there won't be a way for inbound traffic to be routed to the ingress resource.

##### ingress.annotations

Annotations to be applied to the ingress resource.

- Type: **map of string to string**
- **Optional**

##### ingress.default

Sets the ingress resource to be the default backend for any traffic that doesn't match existing ingress rule paths.

- Type: **bool**
- **Optional**
- Default: false

##### ingress.host

If set, will configure the ingress resource to have the ingress controller route traffic for any inbound requests that match this host. IP addresses are not allowed, nor are ':' delimiters. Wildcards are allowed to a certain extent. For more details check out the Kubernetes documentation.

- Type: **string**
- **Optional**

##### ingress.path

The route rule that should be used to route requests to this ingress resource. A path must begin with a '/'.

- Type: **string**
- **Optional**
- Default: /

##### ingress.path_type

Defines the kind of rule the path will be for the ingress controller. Valid path types are 'Exact', 'Prefix', and 'ImplementationSpecific'.

- Type: **string**
- **Optional**
- Default: Prefix

##### ingress.tls (category)

A stanza of TLS configuration options for traffic to the ingress resource.

###### ingress.tls.hosts

A list of hosts included in the TLS certificate.

###### ingress.tls.secret_name

The Kubernetes secret name that should be used to look up or store TLS configs.

### Optional Parameters

These parameters are used in the [`use` stanza](/docs/waypoint-hcl/use) for this plugin.

#### annotations

Annotations to be applied to the kube service.

- Type: **map of string to string**
- **Optional**

#### context

The kubectl context to use, as defined in the kubeconfig file.

- Type: **string**
- **Optional**

#### kubeconfig

Path to the kubeconfig file to use.

By default uses from current user's home directory.

- Type: **string**
- **Optional**
- Environment Variable: **KUBECONFIG**

#### load_balancer

Indicates if the Kubernetes Service should LoadBalancer type.

If the Kubernetes Service is not a LoadBalancer and node_port is not set, then the Service uses ClusterIP.

- Type: **bool**
- **Optional**

#### namespace

Namespace to create Service in.

Namespace is the name of the Kubernetes namespace to create the deployment in This is useful to create Services in non-default namespaces without creating kubeconfig contexts for each.

- Type: **string**
- **Optional**

#### node_port

The TCP port that the Service should consume as a NodePort.

If this is set but load_balancer is not, the service will be NodePort type, but if load_balancer is also set, it will be LoadBalancer.

- Type: **uint**
- **Optional**

#### port

The TCP port that the application is listening on.

- Type: **uint**
- **Optional**
- Default: 80

#### ports

A map of ports and options that the application is listening on.

Used to define and configure multiple ports that the application is listening on. Available keys are 'port', 'node_port', 'name', and 'target_port'. If 'node_port' is set but 'load_balancer' is not, the service will be NodePort type. If 'load_balancer' is also set, it will be LoadBalancer. Ports defined will be TCP protocol. Note that 'name' is required if defining more than one port.

- Type: **list of map of string to string**
- **Optional**
