This micro learning series will help you get familiar with Entando CLI (ENT) which simplifies building and deploying applications for Kubernetes.
- app Helps managing an EntandoApp
- app-info Displays information about an entando app
- diag Runs diagnostics and collects the related info in a tgz file
- help
- kubectl Helper for using kubectl in ent managed scenarios
- pod Displays information related to a set of pods
Syntax:
- ent app {command} ...
Commands:
- images print the images running in the current EntandoApp
- configmap prints the configmap used to deploy the current EntandoApp
- status prints status information about the current EntandoApp
$ ent app images
docker.io/entando/entando-component-manager:6.3.26
docker.io/entando/entando-de-app-wildfly:6.3.68
docker.io/entando/entando-k8s-composite-app-controller:6.3.11
docker.io/entando/entando-k8s-controller-coordinator:6.3.9
docker.io/entando/entando-k8s-service:6.3.4
docker.io/entando/entando-keycloak:6.3.9
These container images represent the Entando Component Repository, Entando App Engine, Entando Cluster Infrastructure, and Entando Identity Management.
Check out the Quickstart Environment blog post for more information on these images.
$ ent app configmap
data:
app-builder: '{"version":"6.3.93","executable-type":"n/a","registry":"docker.io","organization":"entando"}'
busybox: '{"version":"latest","executable-type":"jvm","registry":"docker.io","organization":"entando"}'
entando-avatar-plugin: '{"version":"6.0.5","executable-type":"jvm","registry":"docker.io","organization":"entando"}'
entando-component-manager: '{"version":"6.3.26","executable-type":"jvm","registry":"docker.io","organization":"entando"}'
...
$ ent app status
Version "/home/ubuntu/.entando/ent/v6.3.2/cli/v6.3.2" activated
➤ [I] | 2021-09-03 12-53-31 | NODES:
NAME STATUS ROLES AGE VERSION
entando Ready master 17d v1.19.11+k3s1
➤ [I] | 2021-09-03 12-53-32 | PODS:
NAME READY STATUS RESTARTS AGE
quickstart-composite-app-deployer-9097 0/1 Error 0 17d
quickstart-kc-server-deployment-5f9d7897c6-7sgzw 1/1 Running 9 17d
quickstart-eci-k8s-svc-deployment-76fb9cfb4d-srfsw 1/1 Running 73 17d
quickstart-server-deployment-68bf454dcc-v6c98 1/1 Running 8 17d
quickstart-ab-deployment-7d78b79c-qsdbt 1/1 Running 7 17d
quickstart-cm-deployment-546bc6b578-7nrnb 1/1 Running 18 17d
entando-operator-df5dff8dd-llqpm 1/1 Running 27 17d
➤ [I] | 2021-09-03 12-53-33 | Application Ingress path:
http://quickstart-entando.192.168.64.40.nip.io/entando-de-app/
Here, we can view:
ent app status
$ ent diag
Please provide the the namespace (entando): entando
## NODES
## CONFIG MAP
## CRD list
## POD list
## DNS rebinding protection TEST
## LOCAL INFO
## K8S INFO
> POD: quickstart-composite-app-deployer-9097
> CONTAINER: deployer
> POD: quickstart-kc-server-deployment-5f9d7897c6-7sgzw
> CONTAINER: server-container
...
> Collected diagdata available under "/Users/ed/.entando/reports/entando-diagdata-2021-09-03T20:05:31+0000" for consultation
> Collected diagdata available in archive "/Users/ed/.entando/reports/entando-diagdata-2021-09-03T20:05:31+0000.tgz"
Here’s a snapshot of the files it exports:
basics.txt
entando-operator-df5dff8dd-llqpm-operator.logs.txt
entando-operator-df5dff8dd-llqpm.describe.txt
quickstart-ab-deployment-7d78b79c-qsdbt-appbuilder-container.logs.txt
quickstart-ab-deployment-7d78b79c-qsdbt.describe.txt
quickstart-cm-deployment-546bc6b578-7nrnb-de-container.logs.txt
quickstart-cm-deployment-546bc6b578-7nrnb.describe.txt
quickstart-composite-app-deployer-9097-deployer.logs.txt
quickstart-composite-app-deployer-9097.describe.txt
quickstart-eci-k8s-svc-deployment-76fb9cfb4d-srfsw-k8s-svc-container.logs.txt
quickstart-eci-k8s-svc-deployment-76fb9cfb4d-srfsw.describe.txt
quickstart-kc-server-deployment-5f9d7897c6-7sgzw-server-container.logs.txt
quickstart-kc-server-deployment-5f9d7897c6-7sgzw.describe.txt
quickstart-server-deployment-68bf454dcc-v6c98-server-container.logs.txt
quickstart-server-deployment-68bf454dcc-v6c98.describe.txt
And a quick snapshot of one of the logs:
(In this example, we’re looking at the Keycloak logs.)
Added 'entando_keycloak_admin' to '/opt/jboss/keycloak/standalone/configuration/keycloak-add-user.json', restart server to load user
-b 0.0.0.0
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /opt/jboss/keycloak
JAVA: java
JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true
...
=========================================================================
As well as the description of the corresponding pod:
Name: quickstart-kc-server-deployment-5f9d7897c6-7sgzw
Namespace: entando
Priority: 0
Node: entando/192.168.64.40
Start Time: Tue, 17 Aug 2021 09:18:34 -0700
Labels: EntandoKeycloakServer=quickstart-kc
EntandoResourceKind=EntandoKeycloakServer
deployment=quickstart-kc-server
pod-template-hash=5f9d7897c6
Annotations:
Status: Running
IP: 10.42.0.71
IPs:
IP: 10.42.0.71
Controlled By: ReplicaSet/quickstart-kc-server-deployment-5f9d7897c6
Containers:
server-container:
Container ID: containerd://ef908aff91866242bab87ebe4c084a0f15742fd4fb6c50846af9322be2f5cbe7
Image: docker.io/entando/entando-keycloak:6.3.9
...
ent app --help
$ ent kubectl get pods
NAME READY STATUS RESTARTS AGE
quickstart-composite-app-deployer-9097 0/1 Error 0 17d
quickstart-kc-server-deployment-5f9d7897c6-7sgzw 1/1 Running 9 17d
quickstart-eci-k8s-svc-deployment-76fb9cfb4d-srfsw 1/1 Running 73 17d
...
This command automatically uses the kubeconfig file, context, and namespace configured in your ENT profile. (See: Working With Multiple Environments)
In the above example, even without a namespace specified, ent kubectl knows to only get pods from the entando namespace.
Syntax:
- ent pod {command} ...
Commands:
- grep greps the pods logs
- describe describes a pod
- list shows the list of pods
- shell run a shell into the pod
- logs show the logs of a pod
$ ent pod grep
Please provide the the log grep pattern: error
====================================================================================================
> POD: quickstart-composite-app-deployer-9097
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> CONTAINER: quickstart-composite-app-deployer-9097/deployer
exec java -Djava.util.logging.manager=org.jboss.logmanager.LogManager -XX:+ExitOnOutOfMemoryError -cp . -jar /deployments/app.jar
====================================================================================================
> POD: quickstart-kc-server-deployment-5f9d7897c6-7sgzw
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> CONTAINER: quickstart-kc-server-deployment-5f9d7897c6-7sgzw/server-container
18:04:28,061 INFO [org.jboss.resteasy.resteasy_jaxrs.i18n] (ServerService Thread Pool -- 65) RESTEASY002205: Adding provider class org.keycloak.services.error.KeycloakErrorHandler from Application class org.keycloak.services.resources.KeycloakApplication
$ ent pod describe
====================================================================================================
> POD: quickstart-composite-app-deployer-9097
Name: quickstart-composite-app-deployer-9097
Namespace: entando
Priority: 0
Node: entando/192.168.64.40
Start Time: Tue, 17 Aug 2021 09:18:08 -0700
Labels: EntandoCompositeApp=quickstart-composite-app
EntandoResourceKind=EntandoCompositeApp
EntandoResourceNamespace=entando
$ ent pod list
NAME READY STATUS RESTARTS AGE
quickstart-composite-app-deployer-9097 0/1 Error 0 17d
quickstart-kc-server-deployment-5f9d7897c6-7sgzw 1/1 Running 9 17d
quickstart-eci-k8s-svc-deployment-76fb9cfb4d-srfsw 1/1 Running 73 17d
quickstart-server-deployment-68bf454dcc-v6c98 1/1 Running 8 17d
quickstart-ab-deployment-7d78b79c-qsdbt 1/1 Running 7 17d
quickstart-cm-deployment-546bc6b578-7nrnb 1/1 Running 18 17d
entando-operator-df5dff8dd-llqpm 1/1 Running 28 17d
$ ent pod shell
1) quickstart-composite-app-deployer-9097
2) quickstart-kc-server-deployment-5f9d7897c6-7sgzw
3) quickstart-eci-k8s-svc-deployment-76fb9cfb4d-srfsw
4) quickstart-server-deployment-68bf454dcc-v6c98
5) quickstart-ab-deployment-7d78b79c-qsdbt
6) quickstart-cm-deployment-546bc6b578-7nrnb
7) entando-operator-df5dff8dd-llqpm
q) to quit
POD: 5
Opening shell for "quickstart-ab-deployment-7d78b79c-qsdbt/appbuilder-container"
sh-4.4$
$ ent pod logs -c
1) quickstart-composite-app-deployer-9097
2) quickstart-kc-server-deployment-5f9d7897c6-7sgzw
3) quickstart-eci-k8s-svc-deployment-76fb9cfb4d-srfsw
4) quickstart-server-deployment-68bf454dcc-v6c98
5) quickstart-ab-deployment-7d78b79c-qsdbt
6) quickstart-cm-deployment-546bc6b578-7nrnb
7) entando-operator-df5dff8dd-llqpm
q) to quit
POD: 4
Executing "logs" command against "quickstart-server-deployment-68bf454dcc-v6c98/server-container"
INFO Running wildfly/wildfly-centos7 image, version 17.0
-XX:+UseParallelOldGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m -XX:ParallelGCThreads=2 -Djava.util.concurrent.ForkJoinPool.common.parallelism=2 -XX:CICompilerCount=2 -XX:+ExitOnOutOfMemoryError
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /wildfly/
JAVA: /usr/lib/jvm/java-11/bin/java