Criar Stackfiles
O que são Stackfiles?
Stackfiles são bundles, ou seja, um conjunto de Templates e Plugins predefinidos de uma Stack que será aplicado no comando stk-legacy create app
).
Quando você utiliza um Stackfile, você pode aplicar um conjunto de Plugins com um único comando do STK CLI
ao criar um app
.
Quando usar Stackfiles?
- Em cenários onde um bundle de Template/Plugin é frequentemente usado dentro de uma Stack.
- Os Stackfiles são utéis para evitar que você utilize vários comandos para criar um projeto. Por isso, você pode criar um bundle de Templates e Plugins predefinidos e colocá-los dentro do contexto de um projeto.
Como criar Stackfiles?
Siga os passos abaixo:
Passo 1. Criar uma pasta com o nome 'stackfiles' dentro do repositório da sua Stack
Passo 2. Executar o comando
Dentro da pasta Stackfiles, execute o comando abaixo e escolha um nome para o seu Stackfile:
stk-legacy create stackfile <nome-stackfile>
Passo 3. Editar e definir o arquivo <nome-stackfile>.yaml
O arquivo yaml
é criado com o nome que você definiu no passo anterior.
Procure a pasta e abra o arquivo. Você verá algo parecido com a estrutura abaixo:
type: app
description: Create a Stackfile Example
display-name: Example Portal Stackfile
template: example-portal-stack/example-portal-template
inputs:
project_version: "1.0.0"
project_description: "Example"
author_name: "John Doe"
author_email: "johndoe@mail.com"
plugins:
- plugin: example-portal-stack/example-portal-plugin
Você deve editar e definir os itens abaixo:
- O Template que será usado.
- Os Plugins que serão aplicados.
A sequência de aplicação de Plugins é definida no arquivo.
Atributos Mandatórios:
Atributo | Descrição |
---|---|
type | Indica que o Stackfile será usado em um stk-legacy create app . |
Atributos Opcionais
Atributo | Descrição |
---|---|
description | Descrição do Stackfile que será apresentada no comando stk-legacy list stackfile . |
template | Template usado para criar o app no formato nome-stack/nome-template . |
inputs | Objetos com os valores dos inputs que serão passados para o Template. Ele não é obrigatório e caso algum valor de input definido no Template não seja informado, a pergunta é feita para o usuário. |
plugins | Lista de objetos que indicam os Plugins que serão aplicados. O Plugin deve ser informado no formato nome-stack/nome-plugin . |
Confira um exemplo da estrutura de um Stackfile já preenchida:
type: app
description: Python Rest API using flask
display-name: Example Portal Stackfile
template: stack-python/python-app-template
inputs:
source_folder: src
plugins:
- plugin: stack-python/flask-api-plugin
inputs:
enable_cors: true
- plugin: stack-python/zappa-deploy-plugin
Se você atualizar o Template e/ou o Plugin utilizados no Stackfile, não é necessário deletar e criar o Stackfile novamente. As atualizações são carregadas automaticamente, desde que o Template e o Plugin mantenham o mesmo nome usado anteriormente.
Passo 4. Adicionar o arquivo no Git
Siga os passos abaixo:
Adicione o arquivo
yaml
do Stackfile no Git e faça o push da Stack;Logo depois o seu Stackfile será publicado.
Confira abaixo o exemplo do layout de um repositório com Stackfiles:
/stack-python
stack.yaml
/python-app-template/
template.yaml
/templates/
...
/flask-api-plugin/
plugin.yaml
/templates/
...
/zappa-deploy-plugin/
plugin.yaml
/templates/
...
/stackfiles/
default.yaml
flask-serverless-api.yaml
Como utilizar os Stackfiles?
Os Stackfiles podem ser utilizados com o comando:
Para Stackfiles incluídos na própria Stack use a sintaxe:
stk-legacy create app nome-app --stackfile <nome-stack>/<nome-stackfile>
- Quando você utilizar o Stackfile, o Template e o Plugin já definidos, o app será aplicado com as mesmas definições.
O nome do Stackfile é opcional e pode ser omitido. Neste caso é usado o Stackfile default da Stack, representado pelo arquivo default.yaml
.
Exemplos
Exemplo de aplicação de um Stackfile default:
stk-legacy create app nome-app --stackfile <nome-stack>
Você pode utilizar um Stackfile customizado, ou seja, que não está dentro da pasta Stackfiles de uma Stack. Informe o caminho para arquivo yaml
da especificação.
Exemplo de aplicação de um Stackfile customizado:
stk-legacy create app nome-app --stackfile /home/user/custom-stackfile.yaml
Esta página foi útil?