From fc72ae64e969661bfab197fa00c88123654386d8 Mon Sep 17 00:00:00 2001 From: trujillo-adam Date: Wed, 8 Dec 2021 09:37:01 -0800 Subject: [PATCH] Updates for admin partitions to include changes for RC --- .../docs/enterprise/admin-partitions.mdx | 197 ++++++++++-------- .../consul-admin-partitions-verify-in-ui.png | Bin 0 -> 64370 bytes 2 files changed, 108 insertions(+), 89 deletions(-) create mode 100644 website/public/img/admin-partitions/consul-admin-partitions-verify-in-ui.png diff --git a/website/content/docs/enterprise/admin-partitions.mdx b/website/content/docs/enterprise/admin-partitions.mdx index b00ac189fc..b7b75fa186 100644 --- a/website/content/docs/enterprise/admin-partitions.mdx +++ b/website/content/docs/enterprise/admin-partitions.mdx @@ -22,28 +22,24 @@ Admin partitions exist a level above namespaces in the identity hierarchy. They ### Default Admin Partition -Each Consul cluster will have at least one default admin partition (named `default`). Any resource created without specifying an admin partition will inherit the partition of the ACL token. +Each Consul cluster will have a default admin partition (named `default`). The `default` admin partition is special because it may contain namespaces and other entities that are replicated between datacenters. The `default` partition must also contain the Consul servers. -The `default` admin partition is special in that it may contain namespaces and other entities that are replicated between datacenters. The `default` partition must also contain the Consul servers. +Any resource created without specifying an admin partition will inherit the partition of the ACL token. -> **Preexisting resources and the `default` partition**: Admin partitions were introduced in Consul 1.11. After upgrading to Consul 1.11 or later, the `default` partition will contain all resources created in previous versions. ### Naming Admin Partitions Only characters that are valid in DNS names can be used to name admin partitions. -Names must also start with a letter. +Names must also begin with a lowercase letter. ### Namespaces -When an admin partition is created, it will include a `default` namespace. You can create additional namespaces within the partition. - -All namespaces must exist within an admin partition. By extension, the partition will also contain all namespaced resources. - -Within a single datacenter, a namespace in one admin partition is logically separate from any other namespace with the same name in other admin partitions. +When an admin partition is created, it will include the `default` namespace. You can create additional namespaces within the partition. Resources created within a namespace will be inherited by the partition. ### Cross-datacenter Replication -Only resources in the default admin partition will be replicated to secondary datacenters. Non-default partitions are currently not supported in secondary datacenters. +Only resources in the `default` admin partition will be replicated to secondary datacenters (also see [Known Limitations](#known-limitations)). ### DNS Queries @@ -51,13 +47,11 @@ Client agents will be configured to operate within a specific admin partition. T ### Service Mesh Configurations -Values specified for [`proxy-defaults`](/docs/connect/config-entries/proxy-defaults) configurations are scoped to a specific partition. Services registered in the partition will use the partition's `proxy-defaults` values. +Values specified for [`proxy-defaults`](/docs/connect/config-entries/proxy-defaults) and [`mesh`](/docs/connect/config-entries/mesh) configurations are scoped to a specific partition. Services registered in the partition will use the partition's `proxy-defaults` and `mesh` values. ### Cross-partition Networking -You can configure services to be discoverable and accessible by downstream services in any partition within the datacenter. Specify the upstream services that you want to be available for discovery by configuring the `partition-exports` configuration entry in the partition where the services are registered. Refer to the [`partition-exports` documentation](/docs/connect/config-entries/partition-exports) for details. - -Additionally, the `upstreams` configuration for proxies in the source partition must specify the name of the destination partition so that listeners can be created. Refer to the [Upstream Configuration Reference](/docs/connect/registration/service-registration#upstream-configuration-reference) for additional information. +You can configure services to be discoverable by downstream services in any partition within the datacenter. Specify the upstream services that you want to be available for discovery by configuring the `partition-exports` configuration entry in the partition where the services are registered. Refer to the [`partition-exports` documentation](/docs/connect/config-entries/partition-exports) for details. Additionally, the `upstreams` configuration for proxies in the source partition must specify the name of the destination partition so that listeners can be created. Refer to the [Upstream Configuration Reference](/docs/connect/registration/service-registration#upstream-configuration-reference) for additional information. ## Requirements @@ -69,15 +63,15 @@ Your Consul configuration must meet the following requirements to use admin part ### Security Configurations -* The agent token used by the client agent will need to allow `node:write` in the admin partition. +* The agent token used by the client agent must allow `node:write` in the admin partition. * The `write` permission for `proxy-defaults` requires `mesh:write`. See [Admin Partition Rules](/docs/security/acl/acl-rules#admin-partition-rules) for additional information. * The `write` permissions for ingress and terminating gateways require `mesh:write` privileges. -* Wildcards (`*`) are not supported when creating intentions for admin partitions, but you can use a wildcard to specify services within a partition. +* Wildcards (`*`) are not supported when creating intentions for admin partitions. The partition name must be explicitly specified. * With the exception of the `default` admin partition, ACL rules configured for admin partitions are isolated, so policies defined in partitions outside of the `default` partition can only reference their local partition. ### Agent Configurations -* In client agent configurations, the admin partition name should be specified in the agent configuration: +* The admin partition name should be specified in client agent configurations: ```hcl partition = "" @@ -86,36 +80,35 @@ Your Consul configuration must meet the following requirements to use admin part ### Kubernetes Requirements -One of the primary use cases for admin partitions is for enabling a service mesh on Kubernetes clusters. The following requirements must be met to create admin partitions on Kubernetes: +One of the primary use cases for admin partitions is for enabling a service mesh across multiple Kubernetes clusters. The following requirements must be met to create admin partitions on Kubernetes: -* Two or more Kubernetes clusters. Consul servers must be deployed on one of the clusters. The other clusters should run Consul clients. -* A Consul Enterprise license must be installed on each instance of Consul. +* Two or more Kubernetes clusters. Consul servers must be deployed to a single cluster. The other clusters should run Consul clients. +* A Consul Enterprise license must be installed on each Kubernetes cluster. * The helm chart for consul-k8s v0.34.1 or greater. -* Consul 1.11.0-ent-alpha or greater. -* All Consul clients in the VPC must be able to communicate with the Consul servers. -* VPC firewall rules should be implemented that enable clients to communicate with the Consul servers in the `default` partition. The server nodes should be deployed to a single cluster. +* Consul 1.11.0-ent or greater. +* All Consul clients must be able to communicate with the Consul servers in the `default` partition, and all servers must be able to communicate with the clients. ## Usage -This section describes how to deploy Consul admin partitions to Kubernetes clusters, as well as directs you to the CLI reference for interacting with the admin partitions API on the command line. +This section describes how to deploy Consul admin partitions to Kubernetes clusters. Refer to the [admin partition CLI documentation](/commands/admin-partition) for information about command line usage. ### Deploying Consul with Admin Partitions on Kubernetes -The expected use case is to create admin partitions on Kubernetes clusters. This is because many organizations prefer to use cloud-managed Kubernetes offerings to provision separate Kubernetes clusters for individual teams, business units, or environments. This is opposed to deploying a single, large Kubernetes cluster. When these organizations attempt to use a service mesh to enable cross-cluster activities, such as administration tasks and communication between nodes, they encounter problems. +The expected use case is to create admin partitions on Kubernetes clusters. This is because many organizations prefer to use cloud-managed Kubernetes offerings to provision separate Kubernetes clusters for individual teams, business units, or environments. This is opposed to deploying a single, large Kubernetes cluster. Organizations encounter problems, however, when they attempt to use a service mesh to enable multi-cluster use cases, such as administration tasks and communication between nodes. -The following procedure will result in a different admin partition in each Kubernetes cluster. The Consul clients running in the cluster with servers will be in the `default` partition. Another partition called `clients` will also be created. +The following procedure will result in an admin partition in each Kubernetes cluster. The Consul clients running in the cluster with servers will be in the `default` partition. Another partition called `clients` will also be created. Verify that your Consul deployment meets the [Kubernetes Requirements](#kubernetes-requirements) before proceeding. -1. Update the firewall rules so that pods containing Consul clients and pods containing Consul servers can send and receive traffic. Refer to your virtual cloud provider's documentation for instructions on how to configure firewall rules. +1. Verify that your VPC is configured to enable connectivity between the pods running Consul clients and servers. Refer to your virtual cloud provider's documentation for instructions on configuring network connectivity. 1. Create the license secret in each cluster, e.g.: ```shell-session kubectl create secret generic license --from-file=key=[license file path i.e. ./license.hclic] ``` - This step must also be completed for each workload cluster. + This step must also be completed for every cluster. -1. Create a server configuration file to override the default Consul Helm chart settings: +1. Create a server configuration values file to override the default Consul Helm chart settings: @@ -128,30 +121,33 @@ Verify that your Consul deployment meets the [Kubernetes Requirements](#kubernet image: hashicorp/consul-enterprise:1.11.0-ent-beta3 adminPartitions: enabled: true + acls: + managedSystemACLs: true enterpriseLicense: - secretName: consul-ent-license + secretName: license secretKey: key server: exposeGossipAndRPCPorts: true connectInject: enabled: true - transparentProxy: - defaultEnabled: false - consulNamespaces: + consulNamespaces: mirroringK8S: true controller: enabled: true + meshGateway: + enabled: true + replicas: 1 ``` - - - Note that the `transparentProxy` configuration is disabled. This is to enable multi-cluster networking. + -1. Start the Consul server(s) using the custom configuration file: + Refer to the [Helm Chart Configuration reference](/docs/k8s/helm) for details about the parameters you can specify in the file. + +1. Install the Consul server(s) using the values file created in the previous step: ```shell-session helm install server hashicorp/consul -f server.yaml ``` -1. After the server starts, get the external IP address for partition service so that it can be added to the client configuration. The partition service is a `LoadBalancer` type. The IP address is where clients that across your partitions will communicate with servers in this cluster. +1. After the server starts, get the external IP address for partition service so that it can be added to the client configuration. The partition service is a `LoadBalancer` type. The IP address is used to bootstrap connectivity between servers and clients. ```shell-session kubectl get service @@ -171,51 +167,6 @@ Verify that your Consul deployment meets the [Kubernetes Requirements](#kubernet ``` Use the IP address printed to the console to configure the `k8sAuthMethodHost` parameter in the workload configuration file for your client nodes. -1. Create the workload configuration for client nodes in your cluster. Create a configuration for each admin partition. In the following example, the external IP address and the Kubernetes authentication method IP address from the previous steps have been applied: - - - - - ```yaml - global: - enabled: false - enableConsulNamespaces: true - image: hashicorp/consul-enterprise:1.11.0-ent-beta3 - adminPartitions: - enabled: true - name: "clients" - tls: - enabled: true - caCert: - secretName: consul-consul-ca-cert - secretKey: tls.crt - caKey: - secretName: consul-consul-ca-key - secretKey: tls.key - enterpriseLicense: - secretName: license - secretKey: key - externalServers: - enabled: true - hosts: [ "34.135.103.67" ] - tlsServerName: server.dc1.consul - k8sAuthMethodHost: "104.154.156.146" - client: - enabled: true - exposeGossipPorts: true - join: [ "34.135.103.67" ] - connectInject: - enabled: true - consulNamespaces: - mirroringK8S: true - controller: - enabled: true - meshGateway: - enabled: true - ``` - - - 1. Copy the server certificate to the workload cluster. ```shell-session @@ -227,18 +178,86 @@ Verify that your Consul deployment meets the [Kubernetes Requirements](#kubernet ```shell-session kubectl get secret server-consul-ca-key --context -o yaml | kubectl apply --context -f - ``` -1. Start the workload client clusters: +1. If ACLs were enabled in the server configuration values file, copy the token to the workload cluster. + ```shell-session + kubectl get secret server-consul-partitions-acl-token --context -o yaml | kubectl apply --context -f - + ``` +1. Create the workload configuration for client nodes in your cluster. Create a configuration for each admin partition. In the following example, the external IP address and the Kubernetes authentication method IP address from the previous steps have been applied: + + + + + ```yaml + global: + enabled: false + enableConsulNamespaces: true + image: hashicorp/consul-enterprise:1.11.0-ent-beta3 + adminPartitions: + enabled: true + name: clients + tls: + enabled: true + caCert: + secretName: server-consul-ca-cert + secretKey: tls.crt + caKey: + secretName: server-consul-ca-key + secretKey: tls.key + acls: + manageSystemACLs: true + bootstrapToken: + secretName: server-consul-partitions-acl-token + secretKey: token + enterpriseLicense: + secretName: license + secretKey: key + externalServers: + enabled: true + hosts: [ 34.135.103.67 ] + tlsServerName: server.dc1.consul + k8sAuthMethodHost: https://104.154.156.146 + client: + enabled: true + exposeGossipPorts: true + join: [ 34.135.103.67 ] + connectInject: + enabled: true + consulNamespaces: + mirroringK8S: true + controller: + enabled: true + meshGateway: + enabled: true + replicas: 1 + ``` + + + +1. Install the workload client clusters: ```shell-session - helm install client hashicorp/consul -f client.yaml + helm install clients hashicorp/consul -f client.yaml ``` -### CLI Usage +### Verifying the Deployment -You can use create and manage admin partitions through the CLI. Refer to the [admin partition CLI documentation](/commands/admin-partition) for details. +You can log into the Consul UI to verify that the partitions appear as expected. +1. If ACLs are enabled, you will need the partitions ACL token, which can be read from the Kubernetes secret. The token is an encoded string that must be decoded in base64, e.g.: + + ```shell-session + kubectl get secret server-consul-bootstrap-acl-token -o json | jq -r .data.token | base64 -d - + ``` + + The example command gets the token using the secret name configured in the values file (`bootstrap.secretName`), decodes the secret, and prints the usable token to the console in JSON format. + +1. Open the Consul UI in a browser using the external IP address and port number described in a previous step (see [step 5](#get-external-ip-address)). +1. Click **Log in** and enter the decoded token when prompted. + +You will see the `default` and `clients` partitions available in the **Admin Partition** drop-down menu. + +![Partitions will appear in the Admin Partitions drop-down menu within the Consul UI.](/img/admin-partitions/consul-admin-partitions-verify-in-ui.png) + ## Known Limitations -* Gossip between nodes in different admin partitions must be constrained. You can accomplish this with through the use of [network segments](network-segments). -* Cross-partition communication is not currently supported. -* Partitions can only be created in the primary datacenter. +* Only the `default` admin partition is supported when federating multiple Consul datacenters in a WAN. \ No newline at end of file diff --git a/website/public/img/admin-partitions/consul-admin-partitions-verify-in-ui.png b/website/public/img/admin-partitions/consul-admin-partitions-verify-in-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..d52d0299e3c757bcbe4dc7f14f3cd14a8005d090 GIT binary patch literal 64370 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