diff --git a/vuepress/docs/.vuepress/next.js b/vuepress/docs/.vuepress/next.js index 7d7a6f5e32..3c04a4fd1e 100644 --- a/vuepress/docs/.vuepress/next.js +++ b/vuepress/docs/.vuepress/next.js @@ -278,6 +278,10 @@ module.exports = { title: 'Kubernetes', path: path + 'getting-started/kubernetes-install.md' }, + { + title: 'Install on Mac M1/M2 CPU', + path: path + 'getting-started/arm-install.md' + }, ] } ] diff --git a/vuepress/docs/.vuepress/v73.js b/vuepress/docs/.vuepress/v73.js index 7d7a6f5e32..3c04a4fd1e 100644 --- a/vuepress/docs/.vuepress/v73.js +++ b/vuepress/docs/.vuepress/v73.js @@ -278,6 +278,10 @@ module.exports = { title: 'Kubernetes', path: path + 'getting-started/kubernetes-install.md' }, + { + title: 'Install on Mac M1/M2 CPU', + path: path + 'getting-started/arm-install.md' + }, ] } ] diff --git a/vuepress/docs/next/docs/getting-started/README.md b/vuepress/docs/next/docs/getting-started/README.md index b97e1cff07..2eb64b4885 100644 --- a/vuepress/docs/next/docs/getting-started/README.md +++ b/vuepress/docs/next/docs/getting-started/README.md @@ -9,6 +9,9 @@ You can set up Entando in two simple steps or install it manually to meet your s * [Automatic Install](#automatic-install): The fastest way to locally install and start up Entando in Kubernetes. * [Manual Install](#manual-install): Useful if you want a shared cluster or a custom local instance. +>Installation on ARM: +To install Entando on Mac systems running ARM64 architecture, see this alternate [Getting Started](../../tutorials/getting-started/arm-install.md) guide. + ## Automatic Install Automatically install Entando via the Entando command-line interface (CLI) and prepare a local developer environment with default settings. The following steps launch an Ubuntu VM via Multipass, install Kubernetes, then deploy Entando to it. diff --git a/vuepress/docs/next/tutorials/README.md b/vuepress/docs/next/tutorials/README.md index 6384ad7275..8301947361 100644 --- a/vuepress/docs/next/tutorials/README.md +++ b/vuepress/docs/next/tutorials/README.md @@ -53,7 +53,8 @@ table th:nth-of-type(3) { | [Set Up Entando on Azure Kubernetes Service (AKS)](./getting-started/azure-install.md) | [Install the Standard Demo Application](./solution/install-standard-demo.md) | [Install a Bundle from a Private Image Registry](./curate/bundle-private-images.md) | [Set Up Entando on Google Kubernetes Engine (GKE)](./getting-started/gke-install.md) | [Configure the Entando Operator](./consume/entando-operator.md) | [Install Bundle Microservices from a Private Registry](./curate/ms-private-images.md) | [Set Up Entando on Red Hat OpenShift](./getting-started/openshift-install.md) | [Manage NGINX](./devops/manage-nginx.md) | [Set Up Plugin Profiles](./devops/plugin-configuration.md) | -| [Entando Installation on Kubernetes](./getting-started/kubernetes-install.md) | [Add a GitHub Actions CI Workflow](./create/pb/github-actions-workflow.md) | | +| [Entando Installation on Kubernetes](./getting-started/kubernetes-install.md) | [Add a GitHub Actions CI Workflow](./create/pb/github-actions-workflow.md) | [Redis Integration](./consume/redis.md) | +| [Entando Installation on Mac M1/M2](./getting-started/arm-install.md) | [Use Env Variables to Customize Microservices](./devops/plugin-environment-variables.md) | [Connect to an External Keycloak Instance](./consume/external-id-management.md) | | [Entando CLI Reference](../docs/getting-started/entando-cli.md) | | diff --git a/vuepress/docs/next/tutorials/getting-started/arm-install.md b/vuepress/docs/next/tutorials/getting-started/arm-install.md new file mode 100644 index 0000000000..3b82fa5650 --- /dev/null +++ b/vuepress/docs/next/tutorials/getting-started/arm-install.md @@ -0,0 +1,265 @@ + +# Install Entando on Macs with M1/M2 Processors + +This tutorial guides you through the steps required to install Entando on a Mac M1/M2 ARM64 system using the QEMU emulator as the backend driver. + +## Step 1. Setup Minikube +1. Install the QEMU emulator to create the virtual model: +``` sh +brew install qemu +``` +2. Setup the `socket_vmnet` service: +``` sh +brew install socket_vmnet +brew tap homebrew/services +HOMEBREW=$(which brew) && sudo ${HOMEBREW} services start socket_vmnet +``` + +3. Install Minikube: +``` sh +brew install minikube +``` + +## Step 2. Start Minikube + +1. Start Minikube with the QEMU driver, socket_vmnet, and the K8s profile: + +``` sh +minikube start --cpus=4 --memory=8G --profile=k8s-126 --driver=qemu --network=socket_vmnet --addons=ingress,default-storageclass,storage-provisioner --kubernetes-version=v1.26.9 +``` + +> Using a profile is an easy way to switch between different versions of Kubernetes or different Entando projects. + +Once completed, `minikube profile list` should return a table similar to this: +``` sh +$ minikube profile list +|----------------|-----------|---------|--------------|------|---------|---------|-------|--------| +| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active | +|----------------|-----------|---------|--------------|------|---------|---------|-------|--------| +| blockchain | docker | docker | 192.168.67.2 | 8443 | v1.26.9 | Unknown | 1 | * | +| k8s-126 | docker | docker | 192.168.49.2 | 8443 | v1.26.9 | Unknown | 1 | | +| metacontroller | docker | docker | 192.168.58.2 | 8443 | v1.26.9 | Unknown | 1 | | +|----------------|-----------|---------|--------------|------|---------|---------|-------|--------| +``` +2. Set the current profile to `k8s-126`: +``` sh +$ minikube profile k8s-126 +✅ minikube profile was successfully set to k8s-126 +``` +Confirm that `k8s-126` is activated by using the command `minikube profile list`. + +> You must activate the profile, even if it is the only one listed. Otherwise, you will not be able to connect to the cluster. + +## Step 3. Install Entando +1. Install the custom resource definitions (CRDs) for Entando: +``` sh +kubectl apply -f https://raw.githubusercontent.com/entando/entando-releases/v7.3.0/dist/ge-1-1-6/namespace-scoped-deployment/cluster-resources.yaml +``` + +2. Create the `entando` namespace or choose another for your target namespace: +``` sh +kubectl create ns YOUR-NAMESPACE +``` +3. Download the Entando Operator `ConfigMap`: +``` sh +curl -LJO https://raw.githubusercontent.com/entando/entando-releases/v7.3.0/dist/ge-1-1-6/samples/entando-operator-config.yaml +``` + +4. Add two properties to the `entando-operator-config.yaml` file: +``` sh +echo -e ' entando.requires.filesystem.group.override: "true"' >> entando-operator-config.yaml +echo -e ' entando.ingress.class: "nginx"' >> entando-operator-config.yaml +``` +5. Apply the Entando Operator ConfigMap to your namespace: +``` sh +kubectl -n YOUR-NAMESPACE apply -f entando-operator-config.yaml +``` +6. Install the namespace-scoped custom resources: +``` sh +kubectl -n YOUR-NAMESPACE apply -f https://raw.githubusercontent.com/entando/entando-releases/v7.3.0/dist/ge-1-1-6/namespace-scoped-deployment/namespace-resources.yaml +``` + +7. Generate the EntandoApp configuration file, using your namespace: +``` sh +export ns=YOUR-NAMESPACE +export minikube_ip=$(minikube ip) +export ingress_hostname="$ns.$minikube_ip.nip.io" +``` + +8. Generate the base EntandoApp manifest: +``` sh +cat >entando-"${ns}"-app.yaml <What does a successful startup look like? + +- The `entando-operator` and `entando-k8s-service` start when you apply the namespace resources above, so they should already be in the `Running` status by the time you reach this point +- When you apply the `entando-app.yaml`, the `quickstart-deployer` starts and kicks off a series of deployments, beginning with the Keycloak deployment via the `default-sso-in-namespace-deployer` + +**Jobs / Deployments** +- Some Pods, like `quickstart-deployer`, run to completion and then shutdown; they should eventually show `READY`: `0/1` and `STATUS`: `Completed` +- Other deployments, like `quickstart-ab-deployment` or `quickstart-deployment`, should eventually show `READY`: `1/1` and `STATUS`: `Running` + +**Lifecycle Events** +- Each line represents an event: `Pending`, `ContainerCreating`, `Running` or `Completed` +- Restarts should ideally be `0`; otherwise, there may be a resource problem (slow network, not enough CPU or memory, etc.) with your cluster, and Kubernetes is trying to self-heal +- This is a partial history for a typical install. +``` shell-session +NAME READY STATUS RESTARTS AGE +entando-operator-5b5465788b-s6wjh 1/1 Running 0 99m +entando-k8s-service-86f8954d56-lp5nl 1/1 Running 0 99m +quickstart-deployer-7217 0/1 ContainerCreating 0 7s +quickstart-deployer-7217 1/1 Running 0 14s +default-sso-in-namespace-deployer-2045 0/1 Pending 0 0s +default-sso-in-namespace-deployer-2045 0/1 Pending 0 0s +default-sso-in-namespace-deployer-2045 0/1 ContainerCreating 0 0s +default-sso-in-namespace-deployer-2045 1/1 Running 0 4s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 Pending 0 0s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 Pending 0 5s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 ContainerCreating 0 5s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 Running 0 88s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 Running 0 114s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 1/1 Running 0 115s +default-sso-in-namespace-deployer-2045 0/1 Completed 0 2m6s +default-sso-in-namespace-deployer-2045 0/1 Terminating 0 2m6s +default-sso-in-namespace-deployer-2045 0/1 Terminating 0 2m6s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 Pending 0 0s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 Pending 0 0s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 ContainerCreating 0 0s +quickstart-deployment-667859b44d-nnk79 0/1 Pending 0 0s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 Pending 0 0s +quickstart-deployment-667859b44d-nnk79 0/1 Pending 0 2s +quickstart-deployment-667859b44d-nnk79 0/1 ContainerCreating 0 2s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 Pending 0 2s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 ContainerCreating 0 3s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 Running 0 88s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 Running 0 102s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 Running 0 2m +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 Running 0 2m3s +quickstart-ab-deployment-5b5c7c4f5c-w774v 1/1 Running 0 2m10s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 1/1 Running 0 2m12s +quickstart-deployment-667859b44d-nnk79 0/1 Running 0 3m29s +quickstart-deployment-667859b44d-nnk79 0/1 Running 0 4m50s +quickstart-deployment-667859b44d-nnk79 1/1 Running 0 4m52s +quickstart-deployer-7217 0/1 Completed 0 7m17s +quickstart-deployer-7217 0/1 Terminating 0 7m17s +quickstart-deployer-7217 0/1 Terminating 0 7m17s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Pending 0 0s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Pending 0 0s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 ContainerCreating 0 0s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Pending 0 0s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Pending 0 0s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 ContainerCreating 0 0s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 1/1 Running 0 12s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 Pending 0 0s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 1/1 Running 0 16s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 Pending 0 5s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 ContainerCreating 0 5s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 Running 0 40s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 Running 0 53s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 1/1 Running 0 54s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Completed 0 69s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Completed 0 70s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Completed 0 71s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Terminating 0 71s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Terminating 0 71s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Completed 0 72s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Terminating 0 72s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Terminating 0 72s + +``` + + + +--- + +
What Pods come out of the box? + +``` bash +kubectl get pods -n YOUR-NAMESPACE +``` + +``` shell-session +NAME READY STATUS RESTARTS AGE +entando-operator-cf499c46c-r2bhn 1/1 Running 0 13m +entando-k8s-service-6c94495c87-j9p7b 1/1 Running 0 13m +default-postgresql-dbms-in-namespace-deployment-ddf96f9c6-k46w4 1/1 Running 0 13m +default-sso-in-namespace-deployment-59d6cd795b-pgvth 1/1 Running 0 13m +quickstart-ab-deployment-7cd5c9987b-v96sv 1/1 Running 0 13m +quickstart-cm-deployment-5896d4f8c5-sl8pg 1/1 Running 0 13m +quickstart-deployment-57864cdfdf-n699w 1/1 Running 0 13m +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 1/1 Running 0 13m +``` + +
+ +--- + +## Step 4. Log in to Entando + +Now that you've installed Entando, log in to the Entando App Builder. + +The URL of your running Entando instance is http://ingressHostName/app-builder/. + + +- Example URL + +``` bash +quickstart.192.168.64.33.nip.io/app-builder/ +``` + +![login window](../../docs/getting-started/img/entando-login.png) + +- Username: `admin` +- Password: `adminadmin` + +After logging in, change your password to activate your account. + +>Note: If the login process hangs for more than 5 seconds, refresh the browser. + +![Entando App Builder](../../docs/getting-started/img/entando-app-builder.png) + +In the App Builder, applications are composed from various components, including micro frontends and CMS content. + +::: tip Congratulations! +You now have Entando up and running in your local environment. +::: + +## End the Minikube Session +To start, shutdown or delete the Minikube environment: + +* Shutdown the local K8s cluster for later use: `minikube stop` +* Delete the local cluster (can be restarted to a blank state): `minikube delete` +* To restart the cluster with the latest used profile: `minikube start` + +## Next Steps + +* **Try a Tutorial:** Take advantage of the [Learning Paths](../../tutorials/), which organize a few of the most popular tutorials by user type. + +* **Dig Deeper into Entando Concepts:** Review the [Docs](../) sections to understand the Entando building blocks. + +* **Learn about the Quickstart Environment:** See the [Quickstart Tips](../../docs/reference/local-tips-and-tricks.md) for more information on how to manage your Getting Started or quickstart environment. \ No newline at end of file diff --git a/vuepress/docs/v7.3/docs/getting-started/README.md b/vuepress/docs/v7.3/docs/getting-started/README.md index b97e1cff07..5d313de2df 100644 --- a/vuepress/docs/v7.3/docs/getting-started/README.md +++ b/vuepress/docs/v7.3/docs/getting-started/README.md @@ -9,6 +9,9 @@ You can set up Entando in two simple steps or install it manually to meet your s * [Automatic Install](#automatic-install): The fastest way to locally install and start up Entando in Kubernetes. * [Manual Install](#manual-install): Useful if you want a shared cluster or a custom local instance. +>Installation on Mac M1/M2 systems: +To install Entando on Mac systems running ARM64 architecture, see this alternate [Getting Started](../../tutorials/getting-started/arm-install.md) guide. + ## Automatic Install Automatically install Entando via the Entando command-line interface (CLI) and prepare a local developer environment with default settings. The following steps launch an Ubuntu VM via Multipass, install Kubernetes, then deploy Entando to it. diff --git a/vuepress/docs/v7.3/docs/releases/README.md b/vuepress/docs/v7.3/docs/releases/README.md index c8d99e65ec..b9bc0462f4 100644 --- a/vuepress/docs/v7.3/docs/releases/README.md +++ b/vuepress/docs/v7.3/docs/releases/README.md @@ -8,7 +8,7 @@ Entando 7.3 is an essential feature release with significant advances for Multit ## Summary - [Multitenancy 2.0](#multitenancy-2-0) adds full bundle functionality and access to registries independently across tenants. -- Cloud ARM systems and ARM64-based architecture is now supported, including MacBooks with an M1 or M2 chip. +- Cloud ARM systems and ARM64-based architecture is now supported, including MacBooks with an M1 or M2 chip. [Install Entando on ARM based system](../../tutorials/getting-started/arm-install.md). - App Builder enhances the distributed editorial system by redesigning the page tree composition. - New bundle features were added to automate the upgrade process to docker-based bundles and request basic resources for microservices. The bundle uninstall process was also improved with internal references to minimize technical debt. - APISIX is now supported on Entando, including authentication, authorization, rate-limiting, and improved security features out of the box. @@ -90,10 +90,9 @@ Entando 7.3 is an essential feature release with significant advances for Multit ### Infrastructure - Upgraded Entando integration with support for Kubernetes 1.26 on Entando 6.5, 7.1, 7.2, and 7.3 -- Added support for MacBook with an M1 or M2 chip and is now compatible with the ARM64-based architecture - Upgraded OLM support for Tomcat web server - Integrated and auto-provisioned APISIX gateway to better manage microservices, security, and scalability -- Added ARM support for GKE, AKS, EKS, OpenShift and K3s installations +- Added ARM support for GKE, AKS, EKS, OpenShift and K3s installations - Oracle DB can now be configured for Keycloak and auto-provisioned for all databases by the Entando Operator - Fixed an issue with the K8s service API that prevented the initial installation of a microservice because it searched for the configuration from the instance itself, which cannot exist yet, forcing the user to repeat the installation @@ -111,6 +110,7 @@ Entando 7.3 is an essential feature release with significant advances for Multit ## Known Issues - In a multitenant application, errors occur when several database backups are created for the primary and its tenants. The temporary workaround is to Refresh the page. +- Currently, `ent bundle` commands `pack` and `publish` are not operable for Entando running on ARM architecture systems. You may use other frameworks to create the docker images (i.e. buildx), then resume the normal process to deploy and install the bundles. ## Deprecation Warnings - Support for Kubernetes 1.23 is deprecated on Entando 6.5, 7.1, 7.2, and 7.3 diff --git a/vuepress/docs/v7.3/tutorials/README.md b/vuepress/docs/v7.3/tutorials/README.md index f8f97fb806..54b8a839fb 100644 --- a/vuepress/docs/v7.3/tutorials/README.md +++ b/vuepress/docs/v7.3/tutorials/README.md @@ -48,7 +48,8 @@ table th:nth-of-type(3) { | [Set Up Entando on Azure Kubernetes Service (AKS)](./getting-started/azure-install.md) | [Install the Standard Demo Application](./solution/install-standard-demo.md) | [Install a Bundle from a Private Image Registry](./curate/bundle-private-images.md) | [Set Up Entando on Google Kubernetes Engine (GKE)](./getting-started/gke-install.md) | [Configure the Entando Operator](./consume/entando-operator.md) | [Install Bundle Microservices from a Private Registry](./curate/ms-private-images.md) | [Set Up Entando on Red Hat OpenShift](./getting-started/openshift-install.md) | [Manage NGINX](./devops/manage-nginx.md) | [Set Up Plugin Profiles](./devops/plugin-configuration.md) | -| [Entando Installation on Kubernetes](./getting-started/kubernetes-install.md) | [Add a GitHub Actions CI Workflow](./create/pb/github-actions-workflow.md) | | +| [Entando Installation on Kubernetes](./getting-started/kubernetes-install.md) | [Add a GitHub Actions CI Workflow](./create/pb/github-actions-workflow.md) | [Redis Integration](./consume/redis.md) | +| [Entando Installation on Mac M1/M2](./getting-started/arm-install.md) | [Use Env Variables to Customize Microservices](./devops/plugin-environment-variables.md) | [Connect to an External Keycloak Instance](./consume/external-id-management.md) | | [Entando CLI Reference](../docs/getting-started/entando-cli.md) | | diff --git a/vuepress/docs/v7.3/tutorials/getting-started/arm-install.md b/vuepress/docs/v7.3/tutorials/getting-started/arm-install.md new file mode 100644 index 0000000000..fffeb3dc4f --- /dev/null +++ b/vuepress/docs/v7.3/tutorials/getting-started/arm-install.md @@ -0,0 +1,265 @@ + +# Install Entando on Macs with M1/M2 Processors + +This tutorial guides you through the steps required to install Entando on a Mac M1/M2 ARM64 system using the QEMU emulator as the backend driver. + +## Step 1. Setup Minikube +1. Install the QEMU emulator to create the virtual model: +``` sh +brew install qemu +``` +2. Setup the `socket_vmnet` service: +``` sh +brew install socket_vmnet +brew tap homebrew/services +HOMEBREW=$(which brew) && sudo ${HOMEBREW} services start socket_vmnet +``` + +3. Install Minikube: +``` sh +brew install minikube +``` + +## Step 2. Start Minikube + +1. Start Minikube with the QEMU driver, socket_vmnet, and the K8s profile: + +``` sh +minikube start --cpus=4 --memory=8G --profile=k8s-126 --driver=qemu --network=socket_vmnet --addons=ingress,default-storageclass,storage-provisioner --kubernetes-version=v1.26.9 +``` + +> Using a profile is an easy way to switch between different versions of Kubernetes or different Entando projects. + +Once completed, `minikube profile list` should return a table similar to this: +``` sh +$ minikube profile list +|----------------|-----------|---------|--------------|------|---------|---------|-------|--------| +| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active | +|----------------|-----------|---------|--------------|------|---------|---------|-------|--------| +| blockchain | docker | docker | 192.168.67.2 | 8443 | v1.26.9 | Unknown | 1 | * | +| k8s-126 | docker | docker | 192.168.49.2 | 8443 | v1.26.9 | Unknown | 1 | | +| metacontroller | docker | docker | 192.168.58.2 | 8443 | v1.26.9 | Unknown | 1 | | +|----------------|-----------|---------|--------------|------|---------|---------|-------|--------| +``` +2. Set the current profile to `k8s-126`: +``` sh +$ minikube profile k8s-126 +✅ minikube profile was successfully set to k8s-126 +``` +Confirm that `k8s-126` is activated by using the command `minikube profile list`. + +> You must activate the profile, even if it is the only one listed. Otherwise, you will not be able to connect to the cluster. + +## Step 3. Install Entando +1. Install the custom resource definitions (CRDs) for Entando: +``` sh +kubectl apply -f https://raw.githubusercontent.com/entando/entando-releases/v7.3.0/dist/ge-1-1-6/namespace-scoped-deployment/cluster-resources.yaml +``` + +2. Create the `entando` namespace or choose another for your target namespace: +``` sh +kubectl create ns YOUR-NAMESPACE +``` +3. Download the Entando Operator `ConfigMap`: +``` sh +curl -LJO https://raw.githubusercontent.com/entando/entando-releases/v7.3.0/dist/ge-1-1-6/samples/entando-operator-config.yaml +``` + +4. Add two properties to the `entando-operator-config.yaml` file: +``` sh +echo -e ' entando.requires.filesystem.group.override: "true"' >> entando-operator-config.yaml +echo -e ' entando.ingress.class: "nginx"' >> entando-operator-config.yaml +``` +5. Apply the Entando Operator ConfigMap to your namespace: +``` sh +kubectl -n YOUR-NAMESPACE apply -f entando-operator-config.yaml +``` +6. Install the namespace-scoped custom resources: +``` sh +kubectl -n YOUR-NAMESPACE apply -f https://raw.githubusercontent.com/entando/entando-releases/v7.3.0/dist/ge-1-1-6/namespace-scoped-deployment/namespace-resources.yaml +``` + +7. Generate the EntandoApp configuration file, using your namespace: +``` sh +export ns=YOUR-NAMESPACE +export minikube_ip=$(minikube ip) +export ingress_hostname="$ns.$minikube_ip.nip.io" +``` + +8. Generate the base EntandoApp manifest: +``` sh +cat >entando-"${ns}"-app.yaml <What does a successful startup look like? + +- The `entando-operator` and `entando-k8s-service` start when you apply the namespace resources above, so they should already be in the `Running` status by the time you reach this point +- When you apply the `entando-app.yaml`, the `quickstart-deployer` starts and kicks off a series of deployments, beginning with the Keycloak deployment via the `default-sso-in-namespace-deployer` + +**Jobs / Deployments** +- Some Pods, like `quickstart-deployer`, run to completion and then shutdown; they should eventually show `READY`: `0/1` and `STATUS`: `Completed` +- Other deployments, like `quickstart-ab-deployment` or `quickstart-deployment`, should eventually show `READY`: `1/1` and `STATUS`: `Running` + +**Lifecycle Events** +- Each line represents an event: `Pending`, `ContainerCreating`, `Running` or `Completed` +- Restarts should ideally be `0`; otherwise, there may be a resource problem (slow network, not enough CPU or memory, etc.) with your cluster, and Kubernetes is trying to self-heal +- This is a partial history for a typical install. +``` shell-session +NAME READY STATUS RESTARTS AGE +entando-operator-5b5465788b-s6wjh 1/1 Running 0 99m +entando-k8s-service-86f8954d56-lp5nl 1/1 Running 0 99m +quickstart-deployer-7217 0/1 ContainerCreating 0 7s +quickstart-deployer-7217 1/1 Running 0 14s +default-sso-in-namespace-deployer-2045 0/1 Pending 0 0s +default-sso-in-namespace-deployer-2045 0/1 Pending 0 0s +default-sso-in-namespace-deployer-2045 0/1 ContainerCreating 0 0s +default-sso-in-namespace-deployer-2045 1/1 Running 0 4s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 Pending 0 0s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 Pending 0 5s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 ContainerCreating 0 5s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 Running 0 88s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 0/1 Running 0 114s +default-sso-in-namespace-deployment-7ddc5d44f-bsq7w 1/1 Running 0 115s +default-sso-in-namespace-deployer-2045 0/1 Completed 0 2m6s +default-sso-in-namespace-deployer-2045 0/1 Terminating 0 2m6s +default-sso-in-namespace-deployer-2045 0/1 Terminating 0 2m6s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 Pending 0 0s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 Pending 0 0s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 ContainerCreating 0 0s +quickstart-deployment-667859b44d-nnk79 0/1 Pending 0 0s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 Pending 0 0s +quickstart-deployment-667859b44d-nnk79 0/1 Pending 0 2s +quickstart-deployment-667859b44d-nnk79 0/1 ContainerCreating 0 2s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 Pending 0 2s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 ContainerCreating 0 3s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 Running 0 88s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 Running 0 102s +quickstart-ab-deployment-5b5c7c4f5c-w774v 0/1 Running 0 2m +quickstart-cm-deployment-69bb5f9fd8-ll8dk 0/1 Running 0 2m3s +quickstart-ab-deployment-5b5c7c4f5c-w774v 1/1 Running 0 2m10s +quickstart-cm-deployment-69bb5f9fd8-ll8dk 1/1 Running 0 2m12s +quickstart-deployment-667859b44d-nnk79 0/1 Running 0 3m29s +quickstart-deployment-667859b44d-nnk79 0/1 Running 0 4m50s +quickstart-deployment-667859b44d-nnk79 1/1 Running 0 4m52s +quickstart-deployer-7217 0/1 Completed 0 7m17s +quickstart-deployer-7217 0/1 Terminating 0 7m17s +quickstart-deployer-7217 0/1 Terminating 0 7m17s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Pending 0 0s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Pending 0 0s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 ContainerCreating 0 0s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Pending 0 0s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Pending 0 0s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 ContainerCreating 0 0s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 1/1 Running 0 12s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 Pending 0 0s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 1/1 Running 0 16s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 Pending 0 5s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 ContainerCreating 0 5s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 Running 0 40s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 0/1 Running 0 53s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 1/1 Running 0 54s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Completed 0 69s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Completed 0 70s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Completed 0 71s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Terminating 0 71s +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deployer-6999 0/1 Terminating 0 71s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Completed 0 72s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Terminating 0 72s +quickstart-pn-3c07adf0-fac54a9f-entando-app-builder-menu-b-link-deployer-2017 0/1 Terminating 0 72s + +``` + + + +--- + +
What Pods come out of the box? + +``` bash +kubectl get pods -n YOUR-NAMESPACE +``` + +``` shell-session +NAME READY STATUS RESTARTS AGE +entando-operator-cf499c46c-r2bhn 1/1 Running 0 13m +entando-k8s-service-6c94495c87-j9p7b 1/1 Running 0 13m +default-postgresql-dbms-in-namespace-deployment-ddf96f9c6-k46w4 1/1 Running 0 13m +default-sso-in-namespace-deployment-59d6cd795b-pgvth 1/1 Running 0 13m +quickstart-ab-deployment-7cd5c9987b-v96sv 1/1 Running 0 13m +quickstart-cm-deployment-5896d4f8c5-sl8pg 1/1 Running 0 13m +quickstart-deployment-57864cdfdf-n699w 1/1 Running 0 13m +pn-3c07adf0-fac54a9f-entando-app-builder-menu-bff-deploymep6j87 1/1 Running 0 13m +``` + +
+ +--- + +## Step 4. Log in to Entando + +Now that you've installed Entando, log in to the Entando App Builder. + +The URL of your running Entando instance is http://ingressHostName/app-builder/. + + +- Example URL + +``` bash +quickstart.192.168.64.33.nip.io/app-builder/ +``` + +![login window](../../docs/getting-started/img/entando-login.png) + +- Username: `admin` +- Password: `adminadmin` + +After logging in, change your password to activate your account. + +>Note: If the login process hangs for more than 5 seconds, refresh the browser. + +![Entando App Builder](../../docs/getting-started/img/entando-app-builder.png) + +In the App Builder, applications are composed from various components, including micro frontends and CMS content. + +::: tip Congratulations! +You now have Entando up and running in your local environment. +::: + +## End the Minikube Session +To start, shutdown or delete the Minikube environment: + +* Shutdown the local K8s cluster for later use: `minikube stop` +* Delete the local cluster (can be restarted to a blank state): `minikube delete` +* To restart the cluster with the latest used profile: `minikube start` + +## Next Steps + +* **Try a Tutorial:** Take advantage of the [Learning Paths](../../tutorials/), which organize a few of the most popular tutorials by user type. + +* **Dig Deeper into Entando Concepts:** Review the [Docs](../) sections to understand the Entando building blocks. + +* **Learn about the Quickstart Environment:** See the [Quickstart Tips](../../docs/reference/local-tips-and-tricks.md) for more information on how to manage your Getting Started or quickstart environment. \ No newline at end of file