This blog series will help you get familiar with Entando's CLI (ENT) which simplifies building and deploying applications for Kubernetes. ENT CLI is your starting point and guide to all development on the Entando platform.
In this lesson, we’ll learn how ENT CLI creates profiles to make it easy to work with multiple Entando applications across one or more Kubernetes clusters.
This is useful when working with multiple clusters for development and when developing multiple Entando applications for different clients or stakeholders.
Today, we’ll explore the ent profile command.
Syntax:
- ent profile {command} ...
Commands:
- use selects the profile that ent should use
- print-first-use-readme prints the first-use readme
- new create a new profile
- set set the EntandoApp and namespace
- delete delete the given profile
- list prints a list of the available profiles
- link links the current profile to a kube context
Profiles allow you to switch between Kubernetes clusters, namespaces, contexts (i.e., cluster, user, namespace), kubeconfig files, and Entando applications with a single command.
The list command displays the available profiles.
$ ent profile list
qs-entando
If you’ve installed the quickstart environment, you'll see the profile that ENT automatically created for you (qs-entando).
ENT stores the configuration for your profiles in the $HOME/.entando folder:
$HOME/.entando/profiles/qs-entando/w/.cfg
# The name of your Entando application
ENTANDO_APPNAME=quickstart
THIS_PROFILE=qs-entando
# kubeconfig of your Kubernetes cluster
DESIGNATED_KUBECONFIG=/Users/ed/.entando/ent/quickstart/cli/v6.3.2/w/.kubeconf
DESIGNATED_VM=entando
DESIGNATED_VM_NAMESPACE=entando
# Kubernetes namespace where your Entando application is installed
ENTANDO_NAMESPACE=entando
LATEST_URL_SCHEME=http
Here's the contents of the kubeconfig file referenced above.
$HOME/.entando/ent/quickstart/cli/v6.3.2/w/.kubeconf
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ...
server: https://192.168.64.40:6443
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
user:
client-certificate-data: ...
client-key-data: ...
Configurations go hand-in-hand with profiles. Profiles are a set of configurations.
Let’s take a look at the ent config command.
$ ent config --help
> Arguments:
--default selects the default ent configuration
--print print the configuration (default)
--edit edits the configuration
--set sets a specific configuration parameter
--get gets a specific configuration parameter
If we print the configurations for our quickstart environment profile (qs-entando), ENT CLI will display all of the configurations for that profile.
$ ent config --print
➤ [I] | 2021-09-03 08-51-01 | Configuration of the profile "qs-entando"
ENTANDO_APPNAME=quickstart
DESIGNATED_KUBECONFIG=/Users/ed/.entando/ent/quickstart/cli/v6.3.2/w/.kubeconf
DESIGNATED_VM=entando
DESIGNATED_VM_NAMESPACE=entando
ENTANDO_NAMESPACE=entando
LATEST_URL_SCHEME=http
THIS_PROFILE=qs-entando
ENT also provides convenience commands to attach and detach a kubernetes cluster, kubernetes context or VM.
# Attach current profile to a kubeconfig file
ent attach-kubeconfig {file}
ent detach-kubeconfig
# Attach current profile to a local Kubernetes cluster running in a VM
ent attach-vm {vm-name}
ent detach-vm
We can use the new command to create new profiles.
$ ent pro new
Please provide the profile name: test
Please provide the EntandoApp name (test): TestEntandoApp
Please provide the default namespace (test): test
➤ [I] | 2021-09-02 22-55-11 | Application profile "test" created
➤ [I] | 2021-09-02 22-55-12 | Application profile "test" activated
And the list command to see our newly added profile.
$ ent profile list
qs-entando
test
If we need to change the name of our Entando application or Kubernetes namsepace later on, ENT makes it easy to do that using the profile set command.
$ ent profile set
Please provide the EntandoApp name: EntandoApp2
Please provide the default namespace: namespace2
Once you've set up your profiles, you can easily work across different clusters and Entando applications with the use command.
ent profile use my_profile
Simply change profiles, and deploy updates to your cluster as you normally would with the ent prj commands.
# Deploy frontend components
ent prj fe-build
ent prj fe-push
# Deploy backend components
ent prj be-build
ent prj be-push
If you want to use a specific profile for the current terminal session, ENT also includes a “source” command.
ent profile use my-profile ⬅ globally
source ent profile use my-profile ⬅ only for the current tty
. ent profile use my-profile ⬅ shorthand for source