Ingress

class Ingress : KotlinCustomResource

Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. This resource waits until its status is ready before registering success for create/update, and populating output properties from the current state of the resource. The following conditions are used to determine whether the resource creation has succeeded or failed:

  1. Ingress object exists.

  2. Endpoint objects exist with matching names for each Ingress path (except when Service type is ExternalName).

  3. Ingress entry exists for '.status.loadBalancer.ingress'. If the Ingress has not reached a Ready state after 10 minutes, it will time out and mark the resource update as Failed. You can override the default timeout value by setting the 'customTimeouts' option on the resource.

Example Usage

Create an Ingress with auto-naming

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.kubernetes.networking.k8s.io_v1.Ingress;
import com.pulumi.kubernetes.networking.k8s.io_v1.IngressArgs;
import com.pulumi.kubernetes.meta_v1.inputs.ObjectMetaArgs;
import com.pulumi.kubernetes.networking.k8s.io_v1.inputs.IngressSpecArgs;
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) {
var ingress = new Ingress("ingress", IngressArgs.builder()
.metadata(ObjectMetaArgs.builder()
.annotations(Map.of("nginx.ingress.kubernetes.io/rewrite-target", "/"))
.build())
.spec(IngressSpecArgs.builder()
.rules(IngressRuleArgs.builder()
.http(HTTPIngressRuleValueArgs.builder()
.paths(HTTPIngressPathArgs.builder()
.backend(IngressBackendArgs.builder()
.service(IngressServiceBackendArgs.builder()
.name("test")
.port(ServiceBackendPortArgs.builder()
.number(80)
.build())
.build())
.build())
.path("/testpath")
.pathType("Prefix")
.build())
.build())
.build())
.build())
.build());
}
}

Create an Ingress with a user-specified name

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.kubernetes.networking.k8s.io_v1.Ingress;
import com.pulumi.kubernetes.networking.k8s.io_v1.IngressArgs;
import com.pulumi.kubernetes.meta_v1.inputs.ObjectMetaArgs;
import com.pulumi.kubernetes.networking.k8s.io_v1.inputs.IngressSpecArgs;
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) {
var ingress = new Ingress("ingress", IngressArgs.builder()
.metadata(ObjectMetaArgs.builder()
.annotations(Map.of("nginx.ingress.kubernetes.io/rewrite-target", "/"))
.name("minimal-ingress")
.build())
.spec(IngressSpecArgs.builder()
.rules(IngressRuleArgs.builder()
.http(HTTPIngressRuleValueArgs.builder()
.paths(HTTPIngressPathArgs.builder()
.backend(IngressBackendArgs.builder()
.service(IngressServiceBackendArgs.builder()
.name("test")
.port(ServiceBackendPortArgs.builder()
.number(80)
.build())
.build())
.build())
.path("/testpath")
.pathType("Prefix")
.build())
.build())
.build())
.build())
.build());
}
}

Properties

Link copied to clipboard
val apiVersion: Output<String>

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val kind: Output<String>

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

Link copied to clipboard
val metadata: Output<ObjectMeta>

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val spec: Output<IngressSpec>

spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

Link copied to clipboard
val status: Output<IngressStatus>?

status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

Link copied to clipboard
val urn: Output<String>