Skip to content

Commit

Permalink
Backport of docs: GKE Autopilot section into release/1.18.x (#20700)
Browse files Browse the repository at this point in the history
* backport of commit 1367b1b

* backport of commit 6dd8c72

* backport of commit 5aaace4

* backport of commit 2fe8249

* backport of commit 9bfd5da

* backport of commit 301e4e2

* backport of commit 819fab9

* backport of commit eb21440

* backport of commit a4ec1e3

* backport of commit fe71e4f

* backport of commit 5f8c1c5

* backport of commit 8b4d761

* backport of commit 03139a5

* backport of commit 0e18f29

* backport of commit 4b5d5a9

---------

Co-authored-by: David Yu <[email protected]>
  • Loading branch information
hc-github-team-consul-core and David Yu authored Feb 22, 2024
1 parent 1309b6a commit 7e18797
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 19 deletions.
75 changes: 57 additions & 18 deletions website/content/docs/connect/gateways/api-gateway/install-k8s.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@ description: >-

The Consul API gateway ships with Consul and is automatically installed when you install Consul on Kubernetes. Before you begin the installation process, verify that the environment you are deploying Consul and the API gateway in meets the requirements listed in the [Technical Specifications](/consul/docs/connect/gateways/api-gateway/tech-specs). Refer to the [Release Notes](/consul/docs/release-notes) for any additional information about the version you are deploying.

1. Create a `values.yaml` file for configuring your Consul API gateway deployment and include the following settings:
1. The Consul Helm chart deploys the API gateway using the configuration specified in the `values.yaml` file. Refer to [Helm Chart Configuration - `connectInject.apiGateway`](/consul/docs/k8s/helm#apigateway) for information about the Helm chart configuration options. Create a `values.yaml` file for configuring your Consul API gateway deployment and include the following settings:

<Tabs>

<Tab heading="Reference configuration">
<CodeBlockConfig filename="values.yaml">

```yaml
global:
name: consul
Expand All @@ -21,24 +24,60 @@ The Consul API gateway ships with Consul and is automatically installed when you
apiGateway:
manageExternalCRDs: true
```
</CodeBlockConfig>
The Consul Helm chart deploys the API gateway using the configuration specified in the `values.yaml` file. Refer to [Helm Chart Configuration - `connectInject.apiGateway`](/consul/docs/k8s/helm#apigateway) for information about the Helm chart configuration options.

1. If you are installing Consul on an OpenShift Kubernetes cluster, you must include the `global.openShift.enabled` parameter and set it to `true`:

<CodeBlockConfig filename="values.yaml">

```yaml
global:
openshift:
</Tab>
<Tab heading="OpenShift">
If you are installing Consul on an OpenShift Kubernetes cluster, you must include the `global.openShift.enabled` parameter and set it to `true`. Refer to [OpenShift requirements](/consul/docs/connect/gateways/api-gateway/tech-specs#openshift-requirements) for additional information.

<CodeBlockConfig filename="values.yaml">

```yaml
global:
openshift:
enabled: true
connectInject:
enabled: true
```

</CodeBlockConfig>

Refer to [OpenShift requirements](/consul/docs/connect/gateways/api-gateway/tech-specs#openshift-requirements) for additional information.
apiGateway:
manageExternalCRDs: true
cni:
enabled: true
logLevel: info
multus: true
cniBinDir: "/var/lib/cni/bin"
cniNetDir: "/etc/kubernetes/cni/net.d"
```
</CodeBlockConfig>
</Tab>

<Tab heading="GKE Autopilot">

By default, GKE Autopilot installs [Gateway API resources](https://gateway-api.sigs.k8s.io), so we recommend customizing the `connectInject.apiGateway` stanza to accommodate the pre-installed Gateway API CRDs.

The following working example enables both Consul Service Mesh and Consul API Gateway on GKE Autopilot. Refer to [`connectInject.agiGateway` in the Helm chart reference](https://developer.hashicorp.com/consul/docs/k8s/helm#v-connectinject-apigateway) for additional information.

<CodeBlockConfig filename="values.yaml">

```yaml
global:
name: consul
connectInject:
enabled: true
apiGateway:
manageExternalCRDs: false
manageNonStandardCRDs: true
cni:
enabled: true
logLevel: info
cniBinDir: "/home/kubernetes/bin"
cniNetDir: "/etc/cni/net.d"
```
</CodeBlockConfig>
</Tab>

</Tabs>

1. Install Consul API Gateway using the standard Consul Helm chart or Consul K8s CLI specify the custom values file. Refer to the [Consul Helm chart](https://github.com/hashicorp/consul-k8s/releases) in GitHub releases for the available versions.

Expand Down
28 changes: 27 additions & 1 deletion website/content/docs/k8s/installation/install.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,33 @@ global:
enabled: true
```

Refer to [`openshift` in the Helm chart reference](/consul/docs/k8s/helm#v-global-openshift) for additional information.
Refer to [`openshift` in the Helm chart reference](/consul/docs/k8s/helm#v-global-openshift) for additional information regarding the OpenShift stanza. In addition, refer to the [Deploy Consul on RedHat OpenShift tutorial](/consul/tutorials/kubernetes/kubernetes-openshift-red-hat) for a complete working example that deploys Consul Service Mesh using Red Hat Certified UBI images.

### Install Consul on GKE Autopilot

GKE Autopilot provides a fully managed environment for containerized workloads and requires the Consul CNI plugin to be installed. Refer to [Enable the Consul CNI plugin](#enable-the-consul-cni-plugin) for a full reference on how to enable the CNI plugin.

By default, GKE Autopilot also installs [Gateway API resources](https://gateway-api.sigs.k8s.io), so we recommend customizing the `connectInject.apiGateway` stanza to accommodate for the pre-installed Gateway API CRDs.

The following working example enables both Consul Service Mesh and Consul API Gateway on GKE Autopilot. Refer to [`connectInject.agiGateway` in the Helm chart reference](https://developer.hashicorp.com/consul/docs/k8s/helm#v-connectinject-apigateway) for additional information.

<CodeBlockConfig filename="values.yaml">

```yaml
global:
name: consul
connectInject:
enabled: true
apiGateway:
manageExternalCRDs: false
manageNonStandardCRDs: true
cni:
enabled: true
logLevel: info
cniBinDir: "/home/kubernetes/bin"
cniNetDir: "/etc/cni/net.d"
```
</CodeBlockConfig>

### Enable the Consul CNI plugin

Expand Down

0 comments on commit 7e18797

Please sign in to comment.