From a5235a2e2a7cfc6793b0d183a136c63d2a18b347 Mon Sep 17 00:00:00 2001 From: will <30413278+wcrum@users.noreply.github.com> Date: Tue, 23 Jul 2024 13:51:02 -0600 Subject: [PATCH 1/3] docs: document how to add group attributes (#3459) * feat: document how to add group attributes * docs: apply suggestions from code review --------- Co-authored-by: Karl Cardenas <29551334+karl-cardenas-coding@users.noreply.github.com> --- .../saml-sso/palette-sso-with-keycloak.md | 32 ++++++++++++++++-- ...so-keycloak-19-keycloak-client-scopes.webp | Bin 0 -> 52884 bytes ..._oidc-sso-keycloak-20-keycloak-mapper.webp | Bin 0 -> 29766 bytes 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 static/assets/docs/images/keycloak/user-management_oidc-sso-keycloak-19-keycloak-client-scopes.webp create mode 100644 static/assets/docs/images/keycloak/user-management_oidc-sso-keycloak-20-keycloak-mapper.webp diff --git a/docs/docs-content/user-management/saml-sso/palette-sso-with-keycloak.md b/docs/docs-content/user-management/saml-sso/palette-sso-with-keycloak.md index 9a8c72868c..176c244288 100644 --- a/docs/docs-content/user-management/saml-sso/palette-sso-with-keycloak.md +++ b/docs/docs-content/user-management/saml-sso/palette-sso-with-keycloak.md @@ -137,6 +137,7 @@ up Keycloak as an OIDC provider for Palette. ![Client Authentication creation screen number two](/keycloak/user-management_saml-sso_keycloak-05-client-authentication.webp "Client Authentication") + 11. Fill out the following fields with the instructions provided in the table. | **Field** | **Description** | @@ -206,16 +207,40 @@ Use the following steps to validate the SSO configuration. ![Image of project roles highlighted](/keycloak/user-management_saml-sso_keycloak-15-palette-project.webp "Palette Project") -4. From the left **Main Menu**, select **Tenant Settings**. Next, click on **SSO** to access the SSO configuration page. + +### Sync Keycloak Groups and Palette Teams + +1. Switch back to the Keycloak admin console and modify the **profile** Client Scope. Navigate to the left **Main Menu** and + select **Client Scope**. Click on the **Profile** button. + + ![Image of keycloak mappers highlighted](/keycloak/user-management_oidc-sso-keycloak-19-keycloak-client-scopes.webp "Palette Project") + +2. Within the **profile** Client scope details, click **Mappers**, then **Add mapper** and **By configuration**. + +3. Navigate to **Group Membership** in the Configure a new mapper modal. + +4. Next, ensure the **Name** and **Token Claim Name** fields are both **groups**. + + ![Image of keycloak client scopes highlighted](/keycloak/user-management_oidc-sso-keycloak-20-keycloak-mapper.webp "Palette Project") + +5. Deselect the radio button for **Full group path**. + +6. Save the add mapper page. + +You have now ensured that the groups for the Keycloak user are within the token attributes, ensure the Keycloak group and the Palette group match. + +### Default Teams + +1. From the left **Main Menu**, select **Tenant Settings**. Next, click on **SSO** to access the SSO configuration page. Click on the **OIDC** tab to access the OIDC configuration page. Scroll down to the **SSO Admins** section and select the **admins** team from the **Default Team** drop-down Menu. Click on **Save**. -5. Navigate back to the Keycloak admin console. From the left **Main Menu** click on **Users**. Create a user and ensure +2. Navigate back to the Keycloak admin console. From the left **Main Menu** click on **Users**. Create a user and ensure the field **Username**, **Email**, and **First Name** are filled out. Click on **Save** to save the user. ![Keycloak's management portal with the User view in focus](/keycloak/user-management_saml-sso_keycloak-17-keycloak-user.webp "Keycloak user") -6. Next, click on the **Credentials** tab and assign the user password. +3. Next, click on the **Credentials** tab and assign the user password. ![Keycloak's management portal with the User view in focus that lists all current users](/keycloak/user-management_saml-sso_keycloak-18-keycloak-password.webp "Keycloak password") @@ -225,6 +250,7 @@ out the [Creating users](https://www.keycloak.org/docs/latest/server_admin/index.html#proc-creating-user_server_administration_guide) guide to learn how to create users in Keycloak. + ## Resources - [Keycloak Documentation](https://www.keycloak.org/documentation) diff --git a/static/assets/docs/images/keycloak/user-management_oidc-sso-keycloak-19-keycloak-client-scopes.webp b/static/assets/docs/images/keycloak/user-management_oidc-sso-keycloak-19-keycloak-client-scopes.webp new file mode 100644 index 0000000000000000000000000000000000000000..6e5197f0c5369ba78bdcbf4db9c085452fe13976 GIT binary patch literal 52884 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 literal 0 HcmV?d00001 diff --git a/static/assets/docs/images/keycloak/user-management_oidc-sso-keycloak-20-keycloak-mapper.webp b/static/assets/docs/images/keycloak/user-management_oidc-sso-keycloak-20-keycloak-mapper.webp new file mode 100644 index 0000000000000000000000000000000000000000..94d1e4454d92d0a4b82547a015245efb220f4d21 GIT binary patch literal 29766 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 literal 0 HcmV?d00001 From 1a92d627f90f9366f25d9486c72099dbdc3a2e6b Mon Sep 17 00:00:00 2001 From: Karl Cardenas <29551334+karl-cardenas-coding@users.noreply.github.com> Date: Thu, 25 Jul 2024 11:22:14 -0700 Subject: [PATCH 2/3] docs: PLT-1316 (#3465) * docs: PLT-1316 * chore: prettier fix --- docs/docs-content/release-notes/known-issues.md | 1 + .../saml-sso/palette-sso-with-keycloak.md | 10 ++++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/docs-content/release-notes/known-issues.md b/docs/docs-content/release-notes/known-issues.md index 0e8c9cecab..a4c48b242b 100644 --- a/docs/docs-content/release-notes/known-issues.md +++ b/docs/docs-content/release-notes/known-issues.md @@ -16,6 +16,7 @@ The following table lists all known issues that are currently active and affecti | Description | Workaround | Publish Date | Product Component | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------------------------- | +| Palette CLI users who authenticated with the `login` command and specified a Palette console endpoint that does not contain the tenant name are encountering issues with expired JWT tokens. | Re-authenticate using your tenant URL, for example, `https://my-org.console.spectrocloud.com.` If the issue persists after re-authenticating, remove the `~/.palette/palette.yaml` file that is auto-generated by the Palette CLI. Re-authenticate with the `login` command if other commands require it. | July 25, 2024 | CLI | | Adding new cloud providers, such as Nutanix, is currently unavailable. Private Cloud Gateway (PCG) deployments in new Nutanix environments fail to complete the installation. As a result, adding a new Nutanix environment to launch new host clusters is unavailable. This does not impact existing Nutanix deployments with a PCG deployed. | No workarounds are available. | July 20, 2024 | Clusters, Self-Hosted, PCG | | Single-node Private Cloud Gateway (PCG) clusters are experiencing an issue upgrading to 4.4.11. The vSphere CSI controller pod fails to start because there are no matching affinity rules. | Check out the [vSphere Controller Pod Fails to Start in Single Node PCG Cluster](../troubleshooting/pcg.md#scenario---vsphere-controller-pod-fails-to-start-in-single-node-pcg-cluster) guide for workaround steps. | July 20, 2024 | PCG | | When provisioning an Edge cluster, it's possible that some Operating System (OS) user credentials will be lost once the cluster is active. This is because the cloud-init stages from different sources merge during the deployment process, and sometimes, the same stages without distinct names overwrite each other. | Give each of your cloud-init stages in the OS pack and in the Edge installer **user-data** file a unique name. For more information about cloud-init stages and examples of cloud-init stages with names, refer to [Cloud-init Stages](../clusters/edge/edge-configuration/cloud-init.md). | July 17, 2024 | Edge | diff --git a/docs/docs-content/user-management/saml-sso/palette-sso-with-keycloak.md b/docs/docs-content/user-management/saml-sso/palette-sso-with-keycloak.md index 176c244288..543a45b6fa 100644 --- a/docs/docs-content/user-management/saml-sso/palette-sso-with-keycloak.md +++ b/docs/docs-content/user-management/saml-sso/palette-sso-with-keycloak.md @@ -137,7 +137,6 @@ up Keycloak as an OIDC provider for Palette. ![Client Authentication creation screen number two](/keycloak/user-management_saml-sso_keycloak-05-client-authentication.webp "Client Authentication") - 11. Fill out the following fields with the instructions provided in the table. | **Field** | **Description** | @@ -207,11 +206,10 @@ Use the following steps to validate the SSO configuration. ![Image of project roles highlighted](/keycloak/user-management_saml-sso_keycloak-15-palette-project.webp "Palette Project") - ### Sync Keycloak Groups and Palette Teams -1. Switch back to the Keycloak admin console and modify the **profile** Client Scope. Navigate to the left **Main Menu** and - select **Client Scope**. Click on the **Profile** button. +1. Switch back to the Keycloak admin console and modify the **profile** Client Scope. Navigate to the left **Main Menu** + and select **Client Scope**. Click on the **Profile** button. ![Image of keycloak mappers highlighted](/keycloak/user-management_oidc-sso-keycloak-19-keycloak-client-scopes.webp "Palette Project") @@ -227,7 +225,8 @@ Use the following steps to validate the SSO configuration. 6. Save the add mapper page. -You have now ensured that the groups for the Keycloak user are within the token attributes, ensure the Keycloak group and the Palette group match. +You have now ensured that the groups for the Keycloak user are within the token attributes, ensure the Keycloak group +and the Palette group match. ### Default Teams @@ -250,7 +249,6 @@ out the [Creating users](https://www.keycloak.org/docs/latest/server_admin/index.html#proc-creating-user_server_administration_guide) guide to learn how to create users in Keycloak. - ## Resources - [Keycloak Documentation](https://www.keycloak.org/documentation) From 8d8bc2af2947f3aafee8a55da9c29f27d896dd7f Mon Sep 17 00:00:00 2001 From: Lenny Chen <55669665+lennessyy@users.noreply.github.com> Date: Thu, 25 Jul 2024 16:45:44 -0700 Subject: [PATCH 3/3] docs: fix typo (#3469) Co-authored-by: Lenny Chen --- docs/docs-content/clusters/edge/edge-native-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs-content/clusters/edge/edge-native-lifecycle.md b/docs/docs-content/clusters/edge/edge-native-lifecycle.md index 2b7ac2359d..0ec87019d4 100644 --- a/docs/docs-content/clusters/edge/edge-native-lifecycle.md +++ b/docs/docs-content/clusters/edge/edge-native-lifecycle.md @@ -36,7 +36,7 @@ SaaS or a self-hosted instance. The following diagram represents the deployment static IP address, network proxy, and SSL certificates with site user data or Palette Terminal User Interface (TUI). For more information, refer to [Deploy Edge Hosts On-Site](./site-deployment/site-installation/site-installation.md). -5. **Cluster formation**. One an Edge host is registered with Palette, the Edge host can be used to form a new cluster +5. **Cluster formation**. Once an Edge host is registered with Palette, the Edge host can be used to form a new cluster or be added to an existing cluster. Each cluster uses a cluster profile modeled in the **Modeling** stage. For more information, refer to [Cluster Definition](./site-deployment/cluster-deployment.md).