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