Description
O Akoflow Client deve ser expandido para incluir uma funcionalidade adicional no namespace akoflow install on gke
. Essa funcionalidade permitirá:
- Verificação de Credenciais: Validar as credenciais fornecidas do Google Cloud Platform (GCP), garantindo que possuem os acessos necessários para operar recursos do Google Kubernetes Engine (GKE).
- Criação e Gerenciamento de Clusters: Verificar se o cluster especificado já existe. Caso contrário, criar um novo cluster no GKE.
- Deploy do Akoflow Engine: Após a criação do cluster, realizar automaticamente a instalação do Akoflow Engine e retornar o IP público da aplicação para o cliente.
Requisitos
-
Namespace Dedicado:
- Todos os comandos e parâmetros dessa funcionalidade devem ser agrupados no namespace
akoflow install on gke
. - No futuro, esse namespace será estendido para suportar outros provedores de nuvem (AWS, Azure, etc.).
- Todos os comandos e parâmetros dessa funcionalidade devem ser agrupados no namespace
-
Verificação de Credenciais:
- Validar as credenciais do GCP.
- Garantir que as permissões necessárias estão presentes para criar e gerenciar clusters no GKE.
-
Verificação e Criação de Cluster:
- Conferir se o cluster já existe.
- Caso não exista, criar um novo cluster com as configurações fornecidas.
-
Deploy e Instalação do Akoflow Engine:
- Realizar o deploy do Akoflow Engine no cluster recém-criado.
- Monitorar o processo até a conclusão e retornar o IP público do serviço.
-
Design Escalável:
- A solução deve ser modular e extensível, pronta para suportar novos provedores de nuvem no futuro.
Entregáveis
- Implementação de uma nova funcionalidade no Akoflow Client dentro do namespace
akoflow install on gke
. - Validação e retorno detalhado de todas as etapas, incluindo logs do processo de instalação.
- Preparação do código para suportar múltiplos provedores de nuvem com mínimo esforço de adaptação.
O Akoflow Client deverá permitir o fornecimento das credenciais do Google Cloud através de um arquivo JSON, utilizando o seguinte formato de comando:
akoflow install on gke --credentials=file.json
Esse arquivo JSON corresponderá a uma Service Account com todos os acessos necessários para criação e gerenciamento de clusters no GKE.
Detalhes Técnicos
-
Formato do Comando:
- O parâmetro
--credentials
será utilizado para especificar o caminho do arquivo JSON contendo as credenciais da Service Account. - Exemplo:
akoflow install on gke --credentials=/path/to/service-account.json
- O parâmetro
-
Validação de Credenciais:
- O Akoflow Client deverá validar se o arquivo JSON fornecido contém uma Service Account válida.
- Verificar se as permissões necessárias estão presentes para criar clusters no GKE.
-
Gerenciamento de Acessos (Futuro):
- Futuramente, o Akoflow Client poderá incluir uma funcionalidade para gerenciar e verificar todos os acessos necessários diretamente, alertando o usuário sobre permissões ausentes ou incorretas.
Além de fornecer as credenciais, o Akoflow Client deverá permitir a definição de detalhes específicos sobre o cluster e os nodes que serão criados. Os parâmetros necessários e as opções padrão para a criação do cluster serão descritos abaixo.
Parâmetros para Configuração do Cluster
-
Nome do Cluster
- Parâmetro:
--cluster-name
- Descrição: Define o nome do cluster que será criado.
- Exemplo:
--cluster-name=akoflow-cluster
- Parâmetro:
-
Número de Máquinas
- Parâmetro:
--num-nodes
- Descrição: Define a quantidade de máquinas (nodes) que o cluster terá.
- Exemplo:
--num-nodes=3
- Parâmetro:
-
Tipo de Máquina
- Parâmetro:
--machine-type
- Descrição: Define o tipo das máquinas a serem usadas no node pool do cluster.
- Exemplo:
--machine-type=e2-medium
- Referência de tipos de máquina no GCP
- Parâmetro:
-
Zona do Cluster
- Parâmetro:
--zone
- Descrição: Especifica a zona onde o cluster será criado.
- Exemplo:
--zone=us-central1-a
- Parâmetro:
Comando Exemplo
akoflow install on gke --credentials=file.json --cluster-name=akoflow-cluster --num-nodes=3 --machine-type=e2-medium --zone=us-central1-a
Comportamento Padrão
- Node Pool Padrão:
- O Akoflow Client sempre criará um Node Pool inicial com os parâmetros definidos pelo usuário.
- O cluster será configurado com os nodes especificados no comando.