Migrar Starters para Workflows
Nesta página você encontra um tutorial que orienta a como aproveitar Starters já publicados no seu Estúdio para criar Workflows do tipo Starter e do tipo Create, facilitando a criação de Aplicações e Infraestruturas.
Antes de Começar
Pré-requisitos
- Ter uma conta na StackSpot;
- Estar em um Estúdio com permissões de criação;
- Ter Starters já publicados no seu Estúdio;
- STK CLI instalado e logado;
- Permissão para criar conteúdo.
Verificar Starters Disponíveis
O comando a seguir exibe todas as Stacks do seu Estúdio que possuem ao menos um Starter. No comando você deve informar:
- O seu Estúdio;
- Uma Stack;
Após escolher a Stack que possui os Starters que você vai usar, salve as informações de "Estúdio/Stack" exibidas no terminal, para serem utilizadas a seguir no seu Workflow do tipo Starter.
stk list starter
Exemplo:
$ stk list starter
> Buscando informações dos estúdios da conta 'contadev'.
? Selecione o estúdio: dev-applications
> Buscando stacks do estúdio 'dev-applications'
? Selecione a stack: microservice-core
Estúdio/Stack: dev-applications/microservice-core@1.2.0
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Starter ┃ Tipo ┃ Descrição ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ app-microservice-module │ APP │ Starter with microservice Plugins │
└───────────────────────────────────────────────┴───────────────────────┴──────────────────────────────────────────────┘
Passo 1. Após a listagem no terminal, clique no nome do Starter ao mesmo tempo em que pressiona a tecla Ctrl para abrir a página do Starter;
Passo 2. Em seguida, clique no menu Plugins;
Passo 3. Para cada Plugin do Starer, clique no botão 'Abrir detalhes do plugin'.
1. Criar Workflow do tipo Starter
Com a lista de Plugins do Starter, agora você deve criar o Workflow que vai substituir o seu Starter na criação de Aplicações. Siga os passos a seguir:
Passo 1. Criar a estrutura do Workflow
Execute o comando a seguir:
stk create workflow
Responda as perguntas:
? Nomeie seu workflow: microservice-starter-workflow
? Descrição do workflow: Workflow do tipo starter para criar microsserviços
? Versão: 1.0.0
? Selecione o tipo de workflow: starter
? Você deseja iniciar um repositório git? No
Passo 2. Configurar o Arquivo workflow.yaml
Edite o arquivo workflow.yaml gerado:
Passo 1. Se necessário, adicione os inputs do Workflow dentro do campo 'spec:';
Passo 2. Crie o Job que vai aplicar os Plugins que eram do seu Starter;
Passo 3. Para cada Plugin, crie um Step do tipo plugin e o preencha conforme o exemplo a seguir:
type: use o tipo 'plugin';
name: nome do Plugin que vai ser aplicado pelo Step. Use o formato: nome-estudio/nome-plugin@1.0.0(versão semântica);
id: informe um nome como id identificador do Step;
label: nome exibido na tela de Atividades no log do Workflow;
when: (Opcional) parâmetro para usar um valor booleano como condicional para execução do Job ou Step;
inputs: preencha todos os inputs do Plugin. A sintaxe para preenchê-los é:
nome_do_input: "valor_do_input"
Para mais detalhes sobre o preenchimento do Step do tipo plugin, acesse a documentação sobre Steps do Workflow.
schema-version: v1
kind: workflow
metadata:
name: microservice-starter-workflow
display-name: Create Microservice with Starter
description: Workflow que utiliza starter pré-configurado para microsserviços
version: 1.0.0
spec:
type: starter
label: Microservice Starter Workflow
targets:
- app
docs:
en-us: docs/en_us/docs.md
pt-br: docs/pt_br/docs.md
inputs:
- label: Nome da Aplicação
name: app_name
type: text
required: true
help: Nome da aplicação que será criada
- label: Porta da API
name: api_port
type: int
default: 8080
required: true
- label: Tipo de Banco
name: database_type
type: select
items:
- PostgreSQL
- MySQL
- MongoDB
default: PostgreSQL
required: true
jobs:
- id: create_microservice
label: Create Microservice Application
steps:
- id: apply_starter_plugins
label: Apply Microservice Starter Plugins
name: dev-applications/app-microservice-plugin@1.2.0
type: plugin
inputs:
application_name: "{{inputs.app_name}}"
server_port: "{{inputs.api_port}}"
db_type: "{{inputs.database_type}}"
enable_swagger: true
enable_actuator: true
Passo 4. Publique o seu Workflow no seu Estúdio com o comando stk publish workflow.
Você pode executar esse Workflow localmente apenas pelo STK CLI com o comando de create app e informando a opção
--worklflow. Para que ele seja utilizado em produção para criar Aplicações e Infraestruturas, siga os passos a seguir:
2. Criar Workflow do Tipo Create
O Workflow do tipo create vai ser o responsável por executar a criação da sua Aplicação ou Infraestrutura e aplicar os Plugins do seu Workflow do tipo starter criado na seção anterior.
Passo 1. Criar a Estrutura do Workflow Create
stk create workflow
Exemplo:
? Nomeie seu workflow: microservice-workflow
? Descrição do workflow: Workflow para executar a criação de apps
? Versão: 1.0.0
? Selecione o tipo de workflow: create
Passo 2. Configurar o Workflow Create
Edite o arquivo workflow.yaml gerado:
Passo 1. Se necessário, adicione os inputs do Workflow dentro do campo 'spec:';
Passo 2. Crie o Job que vai executar o Step do tipo workflow;
Passo 3. Preencha o Step e informe o Workflow do tipo starter que você publicou no seu Estúdio;
Para os detalhes do preenchimento do Sets, acesse a página sobre Steps do Workflow.
schema-version: v1
kind: workflow
metadata:
name: microservice-workflow
display-name: Flexible Application Creator
description: Workflow que permite escolher starters dinamicamente
version: 1.0.0
spec:
type: create
label: Flexible App Creator
docs:
en-us: docs/en_us/docs.md
pt-br: docs/pt_br/docs.md
inputs:
- label: Nome da Aplicação
name: app_name
type: text
required: true
help: Nome da aplicação que será criada
- label: Porta da API
name: api_port
type: int
default: 8080
required: true
- label: Tipo de Banco
name: database_type
type: select
items:
- PostgreSQL
- MySQL
- MongoDB
default: PostgreSQL
required: true
jobs:
- id: job_create_app
label: "Criação do código da aplicação"
steps:
- id: step_create_code
name: dev-applications/microservice-starter-workflow@1.0.0
type: workflow
inputs:
application_name: "{{inputs.project_name}}"
server_port: "{{inputs.api_port}}"
db_type: "{{inputs.database_type}}"
Passo 4. Publique o seu Workflow no seu Estúdio com o comando stk publish workflow.
Passo 5. Use o seu Workflow para criar uma Aplicação na StackSpot.