Instalador do Sensedia Service Mesh

Sobre o instalador

O instalador do Sensedia Service Mesh agora está mais simples.

Em 3 passos, você já terá o Sensedia Service Mesh instalado em seu cluster.

Requisitos

  • Um cluster Kubernetes.

    • As versões do Kubernetes suportadas são 1.22 - 1.25.

  • Quaisquer ferramentas necessárias para interagir com o seu Kubernetes ou fornecedor de ambiente em nuvem. Normalmente, isso inclui uma ferramenta de interface de linha de comando. Aqui estão alguns links úteis para obter essas ferramentas, bem como para verificar a documentação do seu fornecedor caso necessite de informações mais detalhadas:

  • Docker, para executar o instalador.

  • Cert-Manager (o gerenciador de certificados nativo do Kubernetes)

  • Provedor OpenId Connect

  • Uma conexão com o Keycloak

Passo 01: Obtenha os arquivos de configuração

Dentro do diretório desejado, execute o seguinte comando para obter os arquivos de configuração a serem utilizados pelo instalador:

curl -L https://sensedia-mesh-installer.sensedia.com/ | sh -

Se a execução do comando acima for bem-sucedida, o diretório sensedia-mesh-config será criado no local onde ele foi executado. Esse diretório contém os seguintes arquivos:

.
├── .env
├── setup.sh
└── values
    └── sensedia
        ├── keycloak-adp-values.yaml
        ├── manager-values.yaml
        └── operator-values.yaml

Os arquivos .env, keycloak-adp-values.yaml e manager-values.yaml deverão ser alterados no passo seguinte.

O arquivo operator-values.yaml deverá, a princípio, permanecer vazio. Caso necessário, a equipe da Sensedia fornecerá informações para serem adicionadas a ele.

Passo 02: Realizando as configurações de instalação

A instalação do Sensedia Service Mesh requer que algumas configurações sejam realizadas.

Para realizá-las, os seguintes arquivos contidos no diretório sensedia-mesh-config deverão ser modificados:

  • .env

  • values/sensedia/keycloak-adp-values.yaml

  • values/sensedia/manager-values.yaml

As subseções a seguir trazem instruções sobre como realizar as configurações de instalação.

Informe a URL do repositório Helm

  1. Entre em contato com a Sensedia para obter a URL do repositório Helm;

  2. Substitua o parâmetro <HELMR> do arquivo .env pela URL que você obteve:

# Helm repository for Sensedia Mesh
SENSEDIA_HELM_REPO=<HELMR>

# Attention!!! Be careful when changing the value to true! It will be used to remove Istio and Sensedia Mesh
FORCE_UNINSTALL_SERVICES=false

O instalador não solicita confirmação antes de remover os serviços.

Por isso, para evitar que os serviços sejam removidos por acidente, o valor predefinido de FORCE_UNINSTALL_SERVICES é false.

Configure o Keycloak para o gerenciamento das permissões de usuário

No arquivo values/sensedia/keycloak-adp-values.yaml, substitua os valores indicados por <EDIT> pelos valores correspondentes a sua conexão com o Keycloak:

# -- Enable to install Sensedia Mesh Keycloak Adapter
enabled: true

# -- keycloak connection parameters
keycloak:
  # -- The base url for connecting to a Keycloak Admin API. It should contain the scheme, host and port, but not path. For example: https://keycloak.mydomain.com/
  baseUrl: <EDIT>
  # -- Sensedia Service Mesh Client Id for authenticating when using Keycloak Admin Apis with the OAuth2 Client Credentials Protocol
  clientId: <EDIT>
  # -- Sensedia Service Mesh Client Secret for authenticating when using Keycloak Admin Apis with the OAuth2 Client Credentials Protocol
  clientSecret: <EDIT>
  # -- The Keycloak realm that Sensedia Mesh will authenticate to. All Sensedia Mesh client configuration and its users should belong to this realm
  realm: <EDIT>
Com o valor do campo enabled especificado como true, o Keycloak Adapter será instalado.

Autenticação

O Sensedia Service Mesh requer um provedor OpenId Connect para autenticação.

Para configurar o OpenId Connect, você precisará criar um novo Client no seu provedor OpenId e obter dele as seguintes informações:

  • Client Secret

  • Client Id

  • URL do provedor

De posse dessas informações, substitua os valores indicados por <EDIT> nos campos manager.openid.baseUrl, manager.oauth.client.id e manager.oauth.client.secret do arquivo values/sensedia/manager-values.yaml:

webUI:
  host: <EDIT>
  scheme: "http"

manager:
  sensediaAuth:
    enabled: false
  openid:
    enabled: true
    baseUrl: <EDIT>
    scopes: profile;email
  oauth:
    client:
      id: <EDIT>
      secret: <EDIT>
  iam:
    adapter: keycloak

ingress:
  enabled: true
  host: <EDIT>
  tls: true
  annotations: <EDIT>

Além desses campos, há também os campos manager.openid.scopes e manager.openid.extraParams, que são opcionais.

A configuração de manager.openid.scopes permite ao Sensedia Service Mesh obter o nome de usuário e o endereço de e-mail e utilizá-los para exibir informações do usuário na interface gráfica do produto.

O valor de manager.openid.extraParams é específico a cada provedor OpenId. Ele pode ser usado para especificar parâmetros query à URL de autenticação OpenID, no formato chave=valor. Por exemplo, ao usar extraParams: "hd=sensedia.com", estamos solicitando ao provedor que aceite apenas contas sensedia.com para iniciar uma sessão.

Expondo a interface Web do Sensedia Service Mesh

A instalação do Sensedia Service Mesh não expõe a aplicação para fora do cluster Kubernetes. A razão disso é permitir que cada usuário decida qual abordagem utilizar para fazê-lo.

O ponto de entrada da aplicação é o serviço mesh-router do namespace sensedia-system. Para expor a aplicação, basta expor esse serviço.

Para informações detalhadas para cada Provedor de Serviços de Nuvem, consulte as seguintes documentações:

No arquivo values/sensedia/manager-values.yaml você deve informar:

  • O host do seu ambiente provisionado nos campos webUI.host e ingress.host;

  • As anotações específicas do seu Provedor de Serviços de Nuvem no campo ingress.annotations.

(Opcional) Configurando uma instância do MongoDB própria

O instalador já possui uma instância do MongoDB pré-configurada.

Caso deseje utilizar as configurações de sua própria instância, edite o arquivo values/sensedia/manager-values.yaml incluindo as informações correspondentes como a seguir:

  manager:
    mongodb: # parameters for MongoDB connection
      host: "mesh-manager-mongodb"
      port: "27017"
      database: "mesh-manager"
      user: "admin" # application's database user, used by mesh-manager
      password: "admin"
      migrationUser: "admin" # migration's database user with "dbAdmin" role, used to create the required collections and indexes for the application
      migrationPassword: "admin"
  mongodb: # demo feature. Creates a database automatically
    auth:
      rootPassword: "root" # sets the password for the root user
      databases: ["mesh-manager"] # database's name
      usernames: ["admin"] # initializes database with these users
      passwords: ["admin"] # sets the password for the users above, respectively

Passo 03: Instalando o Sensedia Service Mesh

  1. Acesse o cluster Kubernetes onde o Sensedia Service Mesh será instalado.

  2. Certifique-se de possuir as permissões necessárias para acessar esse cluster. Para isso, você pode tentar executar o seguinte comando:

    kubectl get po -A
  3. No diretório sensedia-mesh-config, execute o seguinte comando para instalar o Sensedia Service Mesh e suas dependências:

    ./setup.sh

Verificando a instalação

Você pode usar o seguinte comando para verificar se as aplicações helm estão instaladas:

helm list -n sensedia-system

NAME          NAMESPACE       REVISION UPDATED                        STATUS   CHART                        APP VERSION
mesh-init     sensedia-system 1        2022-03-08 16:04:25 -0300 -03  deployed sensedia-mesh-init-1.4.0     1.4.0.0
mesh-manager  sensedia-system 1        2022-03-08 16:50:28 -0300 -03  deployed sensedia-mesh-manager-1.4.0  1.4.0.0
mesh-operator sensedia-system 1        2022-03-08 16:04:25 -0300 -03  deployed sensedia-mesh-operator-1.4.0 1.4.0.0

Caso haja algum erro, tente repetir o processo ou entre em contato com o suporte da Sensedia.

Acessando a interface Web de usuário

Obtenha o ingress mesh-manager com este comando:

kubectl get ingress sensedia-mesh-manager -n sensedia-system

NAME                    HOSTS                                                         ADDRESS                                                                  PORTS     AGE
sensedia-mesh-manager   manager-sensedia-mesh-api-platform-testing.sensedia-eng.com   e1a0fd59-sensediasystem-se-6385-1406950746.us-east-1.elb.amazonaws.com   80, 443   43m

O host deve corresponder ao host configurado anteriormente quando da instalação do manager. Em seguida, poderá acessar a interface de usuário pelo seu navegador.

Se todo o processo tiver ocorrido bem, você verá todas as suas malhas (meshes) na tela principal.

successful install
Tela principal da interface gráfica do Sensedia Service Mesh

Desinstalação

  1. No arquivo .env do diretório sensedia-mesh-config, altere para true o valor da variável FORCE_UNINSTALL_SERVICES.

  2. Execute o seguinte comando no diretório sensedia-mesh-config (isso irá desinstalar o Sensedia Service Mesh e suas dependências):

./setup.sh uninstallAll
O instalador não solicita confirmação antes de remover os serviços.
Thanks for your feedback!
EDIT
How useful was this article to you?