Pular para o conteúdo principal

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

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:

Exemplo de acesso a conta 'contadev' e Estúdio 'dev-applications' do Starter da Stack 'microservice-core'.
$ 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:

Exemplo de Workflow com o nome 'microservice-starter-workflow'
? 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.

Exemplo do arquivo 'workflow.yaml' configurado com o Step do tipo 'plugin'.
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.