From 2669121d517ef9af2cd2cde76efcf91bfcfcbcd7 Mon Sep 17 00:00:00 2001 From: Muneeb Aijaz <43588696+MuneebAijaz@users.noreply.github.com> Date: Wed, 31 Jul 2024 17:50:38 +0500 Subject: [PATCH] Add user guide to interact with mto on eks (#115) --- content/changelog.md | 6 +- content/explanation/multi-tenancy-vault.md | 6 +- ...ng-secrets-using-sealed-secret-template.md | 2 +- .../how-to-guides/offboarding/uninstalling.md | 6 +- content/images/eks-access-config.png | Bin 0 -> 8279 bytes content/images/eks-access-entry.png | Bin 0 -> 53612 bytes content/images/eks-denied-ns-access.png | Bin 0 -> 40519 bytes content/images/eks-nodegroup.png | Bin 0 -> 22113 bytes content/index.md | 16 +- .../managed-kubernetes/aws-eks.md | 267 ++++++++++ .../managed-kubernetes/azure-aks.md | 484 ++++++++++++++++++ .../managed-kubernetes/overview.md | 8 + content/troubleshooting.md | 4 +- theme_override/mkdocs.yml | 8 +- 14 files changed, 784 insertions(+), 23 deletions(-) create mode 100644 content/images/eks-access-config.png create mode 100644 content/images/eks-access-entry.png create mode 100644 content/images/eks-denied-ns-access.png create mode 100644 content/images/eks-nodegroup.png create mode 100644 content/installation/managed-kubernetes/aws-eks.md create mode 100644 content/installation/managed-kubernetes/azure-aks.md create mode 100644 content/installation/managed-kubernetes/overview.md diff --git a/content/changelog.md b/content/changelog.md index ae1a9a67e..3878825e8 100644 --- a/content/changelog.md +++ b/content/changelog.md @@ -34,7 +34,7 @@ #### Enhanced - Updated Tenant CR to v1beta3, more details in [Tenant CRD](./crds-api-reference/tenant.md) -- Added custom pricing support for Opencost, more details in [Opencost](./crds-api-reference/integration-config.md#Custom-Pricing-Model) +- Added custom pricing support for Opencost, more details in [Opencost](./crds-api-reference/integration-config.md#custom-pricing-model) #### Fix @@ -237,7 +237,7 @@ ### v0.5.0 -- feat: Add support for tenant namespaces off-boarding. For more details check out [onDelete](./tutorials/tenant/deleting-tenant.md#retaining-tenant-namespaces-and-appproject-when-a-tenant-is-being-deleted) +- feat: Add support for tenant namespaces off-boarding. - feat: Add tenant webhook for spec validation - fix: TemplateGroupInstance now cleans up leftover Template resources from namespaces that are no longer part of TGI namespace selector @@ -460,7 +460,7 @@ ### v0.2.32 - refactor: Restructure integration config spec, more details in [relevant docs][def] -- feat: Allow users to input custom regex in certain fields inside of integration config, more details in [relevant docs](./crds-api-reference/integration-config.md#openshift) +- feat: Allow users to input custom regex in certain fields inside of integration config, more details in [relevant docs](./crds-api-reference/integration-config.md) ### v0.2.31 diff --git a/content/explanation/multi-tenancy-vault.md b/content/explanation/multi-tenancy-vault.md index d2ea37c58..a6acda7cf 100644 --- a/content/explanation/multi-tenancy-vault.md +++ b/content/explanation/multi-tenancy-vault.md @@ -20,11 +20,7 @@ The Diagram shows how MTO enables ServiceAccounts to read secrets from Vault. This requires a running `RHSSO(RedHat Single Sign On)` instance integrated with Vault over [OIDC](https://developer.hashicorp.com/vault/docs/auth/jwt) login method. -MTO integration with Vault and RHSSO provides a way for users to log in to Vault where they only have access to relevant tenant paths. - -Once both integrations are set up with [IntegrationConfig CR](../crds-api-reference/integration-config.md#rhsso-red-hat-single-sign-on), MTO links tenant users to specific client roles named after their tenant under Vault client in RHSSO. - -After that, MTO creates specific policies in Vault for its tenant users. +MTO creates specific policies in Vault for its tenant users. Mapping of tenant roles to Vault is shown below diff --git a/content/how-to-guides/distributing-secrets-using-sealed-secret-template.md b/content/how-to-guides/distributing-secrets-using-sealed-secret-template.md index b769aa2ae..c85832c0a 100644 --- a/content/how-to-guides/distributing-secrets-using-sealed-secret-template.md +++ b/content/how-to-guides/distributing-secrets-using-sealed-secret-template.md @@ -29,7 +29,7 @@ resources: ``` Once the template has been created, Bill has to edit the `Tenant` to add unique label to namespaces in which the secret has to be deployed. -For this, he can use the support for [common](../tutorials/tenant/assigning-metadata.md#distributing-common-labels-and-annotations-to-tenant-namespaces-via-tenant-custom-resource) and [specific](../tutorials/tenant/assigning-metadata.md#distributing-specific-labels-and-annotations-to-tenant-namespaces-via-tenant-custom-resource) labels across namespaces. +For this, he can use the support for [common](../tutorials/tenant/assigning-metadata.md#distributing-common-labels-and-annotations) and [specific](../tutorials/tenant/assigning-metadata.md#distributing-specific-labels-and-annotations) labels across namespaces. Bill has to specify a label on namespaces in which he needs the secret. He can add it to all namespaces inside a tenant or some specific namespaces depending on the use case. diff --git a/content/how-to-guides/offboarding/uninstalling.md b/content/how-to-guides/offboarding/uninstalling.md index 5513a0208..b0c240dff 100644 --- a/content/how-to-guides/offboarding/uninstalling.md +++ b/content/how-to-guides/offboarding/uninstalling.md @@ -2,9 +2,11 @@ You can uninstall MTO by following these steps: -* Decide on whether you want to retain tenant namespaces and ArgoCD AppProjects or not. If yes, please set `spec.onDelete.cleanNamespaces` to `false` for all those tenants whose namespaces you want to retain, and `spec.onDelete.cleanAppProject` to `false` for all those tenants whose AppProject you want to retain. For more details check out [onDelete](../../tutorials/tenant/deleting-tenant.md#retaining-tenant-namespaces-and-appproject-when-a-tenant-is-being-deleted) +* Decide on whether you want to retain tenant namespaces and ArgoCD AppProjects or not. +For more details check out [onDeletePurgeNamespaces](../../tutorials/tenant/deleting-tenant.md#configuration-for-retaining-resources) +[onDeletePurgeAppProject](../../crds-api-reference/extensions.md#configuring-argocd-integration) -* In case you have enabled console, you will have to disable it first by navigating to `Search` -> `IntegrationConfig` -> `tenant-operator-config` and set `spec.provision.console` and `spec.provision.showback` to `false`. +* In case you have enabled console and showback, you will have to disable it first by navigating to `Search` -> `IntegrationConfig` -> `tenant-operator-config` and set `spec.components.console` and `spec.components.showback` to `false`. * Remove IntegrationConfig CR from the cluster by navigating to `Search` -> `IntegrationConfig` -> `tenant-operator-config` and select `Delete` from actions dropdown. diff --git a/content/images/eks-access-config.png b/content/images/eks-access-config.png new file mode 100644 index 0000000000000000000000000000000000000000..4e4e14249270a59a8ff03fa576243a82a25470e4 GIT binary patch literal 8279 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

PS}_Vj;0V`hN8WIJxr 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 literal 0 HcmV?d00001 diff --git a/content/images/eks-denied-ns-access.png b/content/images/eks-denied-ns-access.png new file mode 100644 index 0000000000000000000000000000000000000000..bd6ed124598f9c7f29c2c79f45c4460b196a60e0 GIT binary patch literal 40519 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 T!c*JqO~8dTN1K(Kx?TJ~xRv|O literal 0 HcmV?d00001 diff --git a/content/images/eks-nodegroup.png b/content/images/eks-nodegroup.png new file mode 100644 index 0000000000000000000000000000000000000000..0039dbcbb821b08c7dab7681dd1236cef6fa93f0 GIT binary patch literal 22113 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:user/test-benzema-mto`. +This user has a policy attached to be able to get cluster info + +```json +{ + "Statement": [ + { + "Action": "eks:DescribeCluster", + "Effect": "Allow", + "Resource": "*" + } + ], + "Version": "2012-10-17" +} +``` + +We have mapped this user in `aws-auth` configmap in `kube-system` namespace. + +```yaml + mapUsers: + - groups: + - iam-devteam + userarn: arn:aws:iam:::user/test-benzema-mto + username: test-benzema-mto +``` + +Using this [AWS guide](https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html), we will ask the user to update its kubeconfig and try to access the cluster. + +Since we haven't attached any RBAC with this user at the moment, trying to access anything in the cluster would throw an error + +```terminal +$ kubectl get svc + +Error from server (Forbidden): services is forbidden: User "test-benzema-mto" cannot list resource "services" in API group "" in the namespace "default" +``` + +### SSO Users + +For SSO Users, we will map a role `arn:aws:iam:::role/aws-reserved/sso.amazonaws.com/eu-north-1/AWSReservedSSO_PowerUserAccess_b0ad9936c75e5bcc`, that is attached by default with Users on SSO login to the AWS console and `awscli`, in `aws-auth` configmap in `kube-system` namespace. + +```yaml + mapRoles: + - groups: + - sso-devteam + rolearn: arn:aws:iam:::role/AWSReservedSSO_PowerUserAccess_b0ad9936c75e5bcc + username: sso-devteam:{{SessionName}} +``` + +Since this user also doesn't have attached RBAC, trying to access anything in the cluster would throw an error + +```terminal +$ kubectl get svc + +Error from server (Forbidden): services is forbidden: User "sso-devteam:random-user-stakater.com" cannot list resource "services" in API group "" in the namespace "default" +``` + +### Setting up Tenant for Users + +Now, we will set tenants for the above-mentioned users. + +We will start by creating a `Quota CR` with some resource limits + +```yaml +kubectl apply -f - <", + "jobTitle": null, + "mail": null, + "mobilePhone": null, + "officeLocation": null, + "preferredLanguage": null, + "surname": null, + "userPrincipalName": "" +} +``` + +The user-id will be used later to add our user in the admin group for MTO. + +Create a group called `mto-admins`: + +```terminal +az ad group create --display-name mto-admins --mail-nickname mto-admins +``` + +Using the above user-id, link user to the newly created group: + +```terminal +az ad group member add --group mto-admins --member-id +``` + +Use this command to get admin-group-id, this will later be used while provisioning the cluster: + +```terminal +$ az ad group show --group mto-admins + +{ + ********** + "description": null, + "displayName": "mto-admins", + "expirationDateTime": null, + "groupTypes": [], + "id": "", + "isAssignableToRole": null, + ********** +} +``` + +## Create an AKS Cluster + +Create a Resource Group by using the `az group create` command in your preferred Azure location: + +```terminal +az group create --name myResourceGroup --location westus2 +``` + +Create a small cluster: + +```terminal +az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --vm-set-type VirtualMachineScaleSets --enable-cluster-autoscaler --min-count 1 --max-count 3 --enable-aad --aad-admin-group-object-ids +``` + +### Create test groups in `Entra ID` + +First, store the ID of your AKS cluster in a variable named AKS_ID: + +```terminal +AKS_ID=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query id -o tsv) +``` + +Create your first test group named appdev using group command and assign its ID to APPDEV_ID variable: + +```terminal +APPDEV_ID=$(az ad group create --display-name appdev --mail-nickname appdev --query id -o tsv) +``` + +Allow the appdev group to interact with the AKS cluster using kubectl by assigning them the Azure Kubernetes Service Cluster User Role: + +```terminal +az role assignment create --assignee $APPDEV_ID --role "Azure Kubernetes Service Cluster User Role" --scope $AKS_ID +``` + +Create your second test group named opssre using the command and assign its ID to the OPSSRE_ID variable: + +```terminal +OPSSRE_ID=$(az ad group create --display-name opssre --mail-nickname opssre --query id -o tsv) +``` + +Allow the opssre group to interact with the AKS cluster using kubectl by assigning them the Azure Kubernetes Service Cluster User Role: + +```terminal +az role assignment create --assignee $OPSSRE_ID --role "Azure Kubernetes Service Cluster User Role" --scope $AKS_ID +``` + +### Create test users in `Entra ID` + +Set User Principal Name (UPN) and password for your users. The UPN must include the verified domain name of your tenant, for example user@company.com. + +Following command reads the UPN for the appdev group and stores it in the AAD_DEV_UPN variable: + +```terminal +echo "Please enter the UPN for application developers: " && read AAD_DEV_UPN +``` + +For this scope of this blog, we will assume that the entered UPN was aksdev@company.com. + +Following command reads the password for your user and stores it in the AAD_DEV_PW variable: + +```terminal +echo "Please enter the secure password for application developers: " && read AAD_DEV_PW +``` + +Create the user `AKS Dev` using the previously created variables: + +```terminal +AKSDEV_ID=$(az ad user create --display-name "AKS Dev" --user-principal-name $AAD_DEV_UPN --password $AAD_DEV_PW --query id -o tsv) +``` + +Add this user to the `appdev` group that was previously created: + +```terminal +az ad group member add --group appdev --member-id $AKSDEV_ID +``` + +Repeat the steps for `OPS SRE` user. + +The following command reads the UPN for your user and stores it in the AAD_SRE_UPN variable: + +```terminal +echo "Please enter the UPN for SREs: " && read AAD_SRE_UPN +``` + +For this scope of this blog, we will assume that the entered UPN was opssre@company.com. + +The following command reads the password for your user and stores it in the AAD_SRE_PW variable: + +```terminal +echo "Please enter the secure password for SREs: " && read AAD_SRE_PW +``` + +Create the user `AKS SRE` using above variables + +```terminal +AKSSRE_ID=$(az ad user create --display-name "AKS SRE" --user-principal-name $AAD_SRE_UPN --password $AAD_SRE_PW --query id -o tsv) +``` + +Add this user to the `opssre` group that was previously created: + +```terminal +az ad group member add --group opssre --member-id $AKSSRE_ID +``` + +## Installing Cert Manager and MTO + +In this section, we will install Multi Tenant Operator (MTO) for tenancy between different users and groups. MTO has several webhooks which need certificates. For automated handling of certs, we will install Cert Manager as a prerequisite. + +Start by logging in to Azure from CLI by running the following command: + +```terminal +kubectl get pods +``` + +Executing the command will take you to a browser window where you can log in from your test-admin-user. + +Running `kubectl auth whoami` will show you the user info: + +```terminal +$ kubectl auth whoami + +ATTRIBUTE VALUE +Username test-admin-user +Groups [ system:authenticated] +Extra: oid [] +``` + +You will notice that the `mto-admins` group ID is attached with our test-admin-user user. This user will be used for all the cluster admin level operations. + +### Install Cert Manager + +Install Cert Manager in the cluster for automated handling of operator webhook certs: + +```terminal +kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.4/cert-manager.yaml +``` + +Let's wait for the pods to be up: + +```terminal +$ kubectl get pods -n cert-manager --watch + +NAME READY STATUS RESTARTS AGE +cert-manager-7fb948f468-wgcbx 1/1 Running 0 7m18s +cert-manager-cainjector-75c5fc965c-wxtkp 1/1 Running 0 7m18s +cert-manager-webhook-757c9d4bb7-wd9g8 1/1 Running 0 7m18s +``` + +### Install MTO using Helm + +Helm will be used to install MTO as it is the only available way of installing it on Kubernetes Clusters. + +Use helm install command to install MTO helm chart. Here, `bypassedGroups` has to be set as `system:masters` as it is used by masterclient of AKS and ``as it is used by test-admin-user: + +```terminal +helm install tenant-operator oci://ghcr.io/stakater/public/charts/multi-tenant-operator --version 0.12.62 --namespace multi-tenant-operator --create-namespace --set bypassedGroups='system:masters\,' +``` + +Wait for the pods to come to a running state: + +```terminal +$ kubectl get pods -n multi-tenant-operator --watch + +NAME READY STATUS RESTARTS AGE +tenant-operator-namespace-controller-768f9459c4-758kb 2/2 Running 0 2m +tenant-operator-pilot-controller-7c96f6589c-d979f 2/2 Running 0 2m +tenant-operator-resourcesupervisor-controller-566f59d57b-xbkws 2/2 Running 0 2m +tenant-operator-template-quota-intconfig-controller-7fc99462dz6 2/2 Running 0 2m +tenant-operator-templategroupinstance-controller-75cf68c872pljv 2/2 Running 0 2m +tenant-operator-templateinstance-controller-d996b6fd-cx2dz 2/2 Running 0 2m +tenant-operator-tenant-controller-57fb885c84-7ps92 2/2 Running 0 2m +tenant-operator-webhook-5f8f675549-jv9n8 2/2 Running 0 2m +``` + +Setting up Tenant for Users +Start by getting IDs for opssre and appdev groups by running `az ad group show` command: + +```terminal +$ az ad group show --group appdev + +{ + *********** + "displayName": "opssre", + "expirationDateTime": null, + "groupTypes": [], + "id": "", + "isAssignableToRole": null, + ************ +} +``` + +```terminal +$ az ad group show --group appdev + +{ + *********** + "displayName": "appdev", + "expirationDateTime": null, + "groupTypes": [], + "id": "", + "isAssignableToRole": null, + ************ +} +``` + +Create a `Quota CR` with some resource limits: + +```terminal +$ kubectl apply -f - < + quota: small +EOF +``` + +```terminal +$ kubectl apply -f - < + quota: small +EOF +``` + +Notice that the only difference in both tenant specs are the groups. + +Check if the tenant namespaces have been created: + +```terminal +$ kubectl get namespaces + +NAME STATUS AGE +cert-manager Active 4h26m +default Active 5h25m +kube-node-lease Active 5h25m +kube-public Active 5h25m +kube-system Active 5h25m +multi-tenant-operator Active 3h55m +tenant-a-build Active 10m +tenant-a-dev Active 10m +tenant-b-build Active 10m +tenant-b-dev Active 10m +``` + +Notice that MTO has created two namespaces under each tenant. + +## Users Interaction with the Cluster + +### AppDev group + +AppDev is one of the previously created groups, its scope is limited to Tenant A namespaces as we mentioned its group ID in Tenant A. Start by clearing token of test-admin-user: + +```terminal +kubelogin remove-tokens +``` + +Use the aksdev user from appdev group to log in to the cluster: + +```terminal +kubectl get pods +``` + +This will take you to devicelogin page. After entering the correct code, it will redirect you to Microsoft Login page, here you will enter the email and password of aksdev user created at the start of the article. + +After successful log in, it will show you the output of your kubectl command: + +```terminal +Error from server (Forbidden): pods is forbidden: User "aksdev@company.com" cannot list resource "pods" in API group "" in the namespace "default" +``` + +This user does not have access to default namespace. + +Now try accessing the resources in its tenant namespaces which are under Tenant A: + +```terminal +$ kubectl get pods -n tenant-a-dev + +No resources found in tenant-a-dev namespace. +``` + +Create an `nginx` pod in the same namespace + +```terminal +$ kubectl run nginx --image=nginx -n tenant-a-dev + +pod/nginx created +``` + +Now try the same operation in other namespace of Tenant B: + +```terminal +$ kubectl run nginx --image=nginx -n tenant-b-dev + +Error from server (Forbidden): pods is forbidden: User "aksdev@company.com" cannot create resource "pods" in API group "" in the namespace "tenant-b-dev" +``` + +This operation fails with an error showing strict controls in their Tenants. + +### OpsSre group + +OpsSre is the second group created at the start of this article, its scope is limited to Tenant B namespaces as we mentioned its group ID in Tenant B. + +Start by clearing token of appdev user: + +```terminal +kubelogin remove-tokens +``` + +Use the opssre user from opssre group to log in to the cluster: + +```terminal +kubectl get pods +``` + +This will take you to devicelogin page. After entering the correct code, it will redirect you to Microsoft Login page, here you will enter the email and password of opssre user created at the start of the article. + +After successful log in, it will show you the output of your kubectl command: + +```terminal +Error from server (Forbidden): pods is forbidden: User "opssre@company.com" cannot list resource "pods" in API group "" in the namespace "default" +``` + +This user does not have access to default namespace + +Now try accessing the resources in its tenant namespaces which are under Tenant B: + +```terminal +$ kubectl get pods -n tenant-b-dev + +No resources found in tenant-b-dev namespace. +``` + +Create an `nginx` pod in the same namespace: + +```terminal +$ kubectl run nginx --image=nginx -n tenant-b-dev + +pod/nginx created +``` + +Now try the same operation in other namespace of Tenant A: + +```terminal +$ kubectl run nginx --image=nginx -n tenant-a-dev + +Error from server (Forbidden): pods is forbidden: User "opssre@company.com" cannot create resource "pods" in API group "" in the namespace "tenant-a-dev" +``` + +This operation fails with an error showing strict controls in their Tenants. + +## Cleanup Resources + +Cleanup the users, groups, AKS Cluster and Resource Group created for this blog. +Run the following set of commands to remove resources created in above sections: + +```terminal +# Delete the Azure AD user accounts for aksdev and akssre. + +$ az ad user delete --id $AKSDEV_ID +$ az ad user delete --id $AKSSRE_ID + +# Delete the Azure AD groups for `appdev`,`opssre` and `mto-admins`. This also deletes the Azure role assignments. + +$ az ad group delete --group appdev +$ az ad group delete --group opssre +$ az ad group delete --group mto-admins + +# Delete the Resource Group which will also delete the underlying AKS test cluster and related resources + +$ az group delete --name myResourceGroup +``` diff --git a/content/installation/managed-kubernetes/overview.md b/content/installation/managed-kubernetes/overview.md new file mode 100644 index 000000000..eedd07c64 --- /dev/null +++ b/content/installation/managed-kubernetes/overview.md @@ -0,0 +1,8 @@ +# Overview + +This section provides more info about how to use Multi Tenant Operator with different Kubernetes distributions provided by cloud providers such as AWS, Azure and GCP. + +Tutorials for following Managed Kubernetes Clusters have been shared for users to follow, to get a hands-on on how Multi Tenant Operator can be linked with their existing users in Cloud: + +- [Multi Tenant Operator in Microsoft Azure Kubernetes Service](./azure-aks.md) +- [Multi Tenant Operator in Amazon Elastic Kubernetes Service](./aws-eks.md) diff --git a/content/troubleshooting.md b/content/troubleshooting.md index ffa7ec091..fbd77f469 100644 --- a/content/troubleshooting.md +++ b/content/troubleshooting.md @@ -49,7 +49,7 @@ If the user needs to be added immediately and it is not feasible to wait for nex unable to find annotation openshift.io/sa.scc.uid-range ``` -**Answer.** OpenShift recently updated its process of handling SCC, and it's now managed by annotations like `openshift.io/sa.scc.uid-range` on the namespaces. Absence of them wont let pods schedule. The fix for the above error is to make sure ServiceAccount `system:serviceaccount:openshift-infra.` regex is always mentioned in `Privileged.serviceAccounts` section of `IntegrationConfig`. This regex will allow operations from all `ServiceAccounts` present in `openshift-infra` namespace. More info at [Privileged Service Accounts](./crds-api-reference/integration-config.md#privileged-serviceaccounts) +**Answer.** OpenShift recently updated its process of handling SCC, and it's now managed by annotations like `openshift.io/sa.scc.uid-range` on the namespaces. Absence of them wont let pods schedule. The fix for the above error is to make sure ServiceAccount `system:serviceaccount:openshift-infra.` regex is always mentioned in `Privileged.serviceAccounts` section of `IntegrationConfig`. This regex will allow operations from all `ServiceAccounts` present in `openshift-infra` namespace. More info at [Privileged Service Accounts](./crds-api-reference/integration-config.md#privileged) ## Namespace Admission Webhook @@ -88,7 +88,7 @@ The fix is to create namespaces with `kubectl create` instead. ### Q. How do I deploy cluster-scoped resource via the ArgoCD integration? -**Answer.** Multi-Tenant Operator's ArgoCD Integration allows configuration of which cluster-scoped resources can be deployed, both globally and on a per-tenant basis. For a global allow-list that applies to all tenants, you can add both resource `group` and `kind` to the [IntegrationConfig's](./crds-api-reference/integration-config.md#argocd) `spec.integrations.argocd.clusterResourceWhitelist` field. Alternatively, you can set this up on a tenant level by configuring the same details within a [Tenant's](./crds-api-reference/tenant.md) `spec.integrations.argocd.appProject.clusterResourceWhitelist` field. For more details, check out the [ArgoCD integration use cases](./how-to-guides/enabling-multi-tenancy-argocd.md#allow-argocd-to-sync-certain-cluster-wide-resources) +**Answer.** Multi-Tenant Operator's ArgoCD Integration allows configuration of which cluster-scoped resources can be deployed, both globally and on a per-tenant basis. For a global allow-list that applies to all tenants, you can add both resource `group` and `kind` to the [IntegrationConfig's](./crds-api-reference/integration-config.md#argocd) `spec.integrations.argocd.clusterResourceWhitelist` field. Alternatively, you can set this up on a tenant level by configuring the same details within a [Tenant's](./crds-api-reference/tenant.md) `spec.integrations.argocd.appProject.clusterResourceWhitelist` field. For more details, check out the [ArgoCD integration use cases](./how-to-guides/enabling-multi-tenancy-argocd.md#allowing-argocd-to-sync-certain-cluster-wide-resources) ### Q. InvalidSpecError: application repo \ is not permitted in project \ diff --git a/theme_override/mkdocs.yml b/theme_override/mkdocs.yml index 0a4e0906a..da5d329b0 100644 --- a/theme_override/mkdocs.yml +++ b/theme_override/mkdocs.yml @@ -18,6 +18,10 @@ nav: - installation/kubernetes.md - installation/helm-values.md - installation/basic-vs-enterprise-tier.md + - Managed Kubernetes: + - installation/managed-kubernetes/overview.md + - installation/managed-kubernetes/azure-aks.md + - installation/managed-kubernetes/aws-eks.md - Tutorials: - Configuring Tenants: - tutorials/tenant/create-tenant.md @@ -59,10 +63,10 @@ nav: - explanation/templated-metadata-values.md - explanation/multi-tenancy-vault.md - CRDs API Reference: - - crds-api-reference/extensions.md - - crds-api-reference/integration-config.md - crds-api-reference/quota.md - crds-api-reference/tenant.md + - crds-api-reference/integration-config.md + - crds-api-reference/extensions.md - crds-api-reference/template.md - crds-api-reference/template-instance.md - crds-api-reference/template-group-instance.md