sigs.k8s.io/gateway-api@v1.0.0/site-src/api-types/gateway.md (about)

     1  # Gateway
     2  
     3  ??? success "Standard Channel in v0.5.0+"
     4  
     5      The `Gateway` resource is Beta and part of the Standard Channel in `v0.5.0+`.
     6  
     7  A `Gateway` is 1:1 with the life cycle of the configuration of infrastructure.
     8  When a user creates a `Gateway`, some load balancing infrastructure is
     9  provisioned or configured (see below for details) by the `GatewayClass`
    10  controller. `Gateway` is the resource that triggers actions in this API. Other
    11  resources in this API are configuration snippets until a Gateway has been
    12  created to link the resources together.
    13  
    14  The `Gateway` spec defines the following:
    15  
    16  *   `GatewayClassName`- Defines the name of a `GatewayClass` object used by
    17      this Gateway.
    18  *   `Listeners`-  Define the hostnames, ports, protocol, termination, TLS
    19      settings and which routes can be attached to a listener.
    20  *   `Addresses`- Define the network addresses requested for this gateway.
    21  
    22  If the desired configuration specified in Gateway spec cannot be achieved, the
    23  Gateway will be in an error state with details provided by status conditions.
    24  
    25  ### Deployment models
    26  
    27  Depending on the `GatewayClass`, the creation of a `Gateway` could do any of
    28  the following actions:
    29  
    30  * Use cloud APIs to create an LB instance.
    31  * Spawn a new instance of a software LB (in this or another cluster).
    32  * Add a configuration stanza to an already instantiated LB to handle the new
    33    routes.
    34  * Program the SDN to implement the configuration.
    35  * Something else we haven’t thought of yet...
    36  
    37  The API does not specify which one of these actions will be taken.
    38  
    39  ### Gateway Status
    40  
    41  `GatewayStatus` is used to surface the status of a `Gateway` relative to the
    42  desired state represented in `spec`. `GatewayStatus` consists of the following:
    43  
    44  - `Addresses`- Lists the IP addresses that have actually been bound to the
    45    Gateway.
    46  - `Listeners`- Provide status for each unique listener defined in `spec`.
    47  - `Conditions`- Describe the current status conditions of the Gateway.
    48  
    49  Both `Conditions` and `Listeners.conditions` follow the conditions pattern used
    50  elsewhere in Kubernetes. This is a list that includes a type of condition, the
    51  status of the condition and the last time this condition changed.