github.com/cilium/cilium@v1.16.2/Documentation/network/servicemesh/gateway-api/installation.rst (about)

     1  Prerequisites
     2  #############
     3  
     4  * Cilium must be configured with NodePort enabled, using
     5    ``nodePort.enabled=true`` or by enabling the kube-proxy replacement with
     6    ``kubeProxyReplacement=true``. For more information, see :ref:`kube-proxy
     7    replacement <kubeproxy-free>`.
     8  * Cilium must be configured with the L7 proxy enabled using ``l7Proxy=true``
     9    (enabled by default).
    10  * The below CRDs from Gateway API v1.1.0 ``must`` be pre-installed.
    11    Please refer to this `docs <https://gateway-api.sigs.k8s.io/guides/?h=crds#getting-started-with-gateway-api>`_
    12    for installation steps. Alternatively, the below snippet could be used.
    13  
    14      - `GatewayClass <https://gateway-api.sigs.k8s.io/api-types/gatewayclass/>`_
    15      - `Gateway <https://gateway-api.sigs.k8s.io/api-types/gateway/>`_
    16      - `HTTPRoute <https://gateway-api.sigs.k8s.io/api-types/httproute/>`_
    17      - `GRPCRoute <https://gateway-api.sigs.k8s.io/api-types/grpcroute/>`_
    18      - `ReferenceGrant <https://gateway-api.sigs.k8s.io/api-types/referencegrant/>`_
    19      - `TLSRoute (experimental) <https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io%2fv1alpha2.TLSRoute/>`_
    20  
    21      .. admonition:: warning
    22          :class: attention
    23  
    24          An issue in Gateway API requires Cilium having the experimental CRDs to
    25          be installed in order to use Gateway API. The issue is being tracked
    26          `here <https://github.com/kubernetes-sigs/gateway-api/issues/3080>`__.
    27  
    28          To install the experimental CRDs, please refer to
    29          the `Gateway API documentation <https://gateway-api.sigs.k8s.io/guides/#install-experimental-channel>`__.
    30  
    31      .. code-block:: shell-session
    32  
    33          $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yaml
    34          $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/standard/gateway.networking.k8s.io_gateways.yaml
    35          $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml
    36          $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/standard/gateway.networking.k8s.io_referencegrants.yaml
    37          $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml
    38          $ kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/experimental/gateway.networking.k8s.io_tlsroutes.yaml
    39  
    40  * By default, the Gateway API controller creates a service of LoadBalancer type,
    41    so your environment will need to support this. Alternatively, since Cilium 1.16+,
    42    you can directly expose the Cilium L7 proxy on the :ref:`host network <gs_gateway_host_network_mode>`.
    43  
    44  Installation
    45  ############
    46  
    47  .. include:: ../../../installation/cli-download.rst
    48  
    49  .. tabs::
    50  
    51      .. group-tab:: Helm
    52  
    53          Cilium Gateway API Controller can be enabled with helm flag ``gatewayAPI.enabled``
    54          set as true. Please refer to :ref:`k8s_install_helm` for a fresh installation.
    55  
    56          .. parsed-literal::
    57  
    58              $ helm upgrade cilium |CHART_RELEASE| \\
    59                  --namespace kube-system \\
    60                  --reuse-values \\
    61                  --set kubeProxyReplacement=true \\
    62                  --set gatewayAPI.enabled=true
    63  
    64              $ kubectl -n kube-system rollout restart deployment/cilium-operator
    65              $ kubectl -n kube-system rollout restart ds/cilium
    66  
    67          Next you can check the status of the Cilium agent and operator:
    68  
    69          .. code-block:: shell-session
    70  
    71              $ cilium status
    72  
    73  
    74      .. group-tab:: Cilium CLI
    75  
    76          Cilium Gateway API Controller can be enabled with the below command
    77  
    78          .. parsed-literal::
    79  
    80              $ cilium install |CHART_VERSION| \\
    81                  --set kubeProxyReplacement=true \\
    82                  --set gatewayAPI.enabled=true
    83  
    84          Next you can check the status of the Cilium agent and operator:
    85  
    86          .. code-block:: shell-session
    87  
    88              $ cilium status
    89