Pular para o conteúdo principal

Registrar destroy da Aplicação

Nesta seção, você encontra como fazer o deploy da Aplicação na sua Pipeline e registrar na StackSpot EDP.


Visão Geral

Para destruir a versão Aplicação na StackSpot, você precisa utilizar sua própria pipeline. E para que você consiga acompanhar todos os Workflows da Aplicação dentro da plataforma StackSpot, você deve registrar o destroy por meio do STK CLI.

Para isso, execute o comando stk register app-destroy em um dos passos do workflow que destrói a Aplicação em um ambiente.

Dessa forma, você consegue:

  1. Monitorar e acompanhar a execução desses workflows diretamente na Plataforma, sem precisar sair dela. As atividades relacionadas ao destroy serão exibidas como Atividades dentro da Aplicação.
Atenção!

Para visualizar todos os logs do Workflow do repositório da sua Aplicação no Workspace, você precisa configurar um Webhook dentro do GitHub. Para fazer isso, siga os passos no guia Configurar Webhook para registrar atividades do repositório na tela de Atividades

  1. Visualizar no header da Aplicação que as diferentes versões de Infraestrutura e de Aplicação foram destruídas dentro do Workspace no Portal da StackSpot;

  2. Com o destroy registrado de todas as versões da Aplicação, em todos os ambientes, é possível apagar sua aplicação por completo da plataforma StackSpot.

Confira o fluxo completo de destroy no diagrama a seguir:

Diagrama de fluxo de deployDiagrama de fluxo de deploy
Atenção!

Como o deploy da infraestrutura da sua Aplicação é feito via Self-hosted**:

  1. Você precisa destruir as peças de infraestrutura na sua pipeline;
  2. Executar um deploy vazio, ou seja, com os componentes de infraestrutura destruídos;

Com isso, você sobe uma versão de Infraestrutura vazia para a StackSpot EDP e, assim, é possível apagar a sua Aplicação pelo Portal.

Confira os passos para integrar os comandos à sua Pipeline:

Configurar integração na sua Pipeline

Execute o comando stk register app-destroy em um dos passos do workflow que destrói a Aplicação em um ambiente na sua Pipeline. Confira um exemplo à seguir:

stk register app-destroy --environment dev --status success 

Existem duas formas de fazer essa integração dos comandos com a sua Pipeline:

Automatizada, por meio de uma Action (recomendado); ou Manualmente.

Confira a seguir os passos para as duas maneiras:

1. Integrar comandos na Pipeline via Action (recomendado)

A Action se encontra no Marketplace da StackSpot e performa as seguintes automações na sua pipeline:

  • Instala o STK CLI na sua pipeline (caso ainda não esteja instalada);
  • Autentica com Client_ID, Client_KEY e REALM;
  • Integra e executa os comandos stk register app-deploy, stk register app-destroy e stk delete app;

Para utilizá-la, siga os passos:

Passo 1. Configure as chaves de autenticação CI/CD no repositório onde está a sua Aplicação. Para isso, siga os passos no guia Autenticar via CI/CD.

Passo 2. Adicione a Action no workflow de deploy da sua Aplicação. Para isso, copie o snippet de código abaixo e cole no seu arquivo:

  • Destroy com status sucesso:
- uses: stack-spot/cli-github-action-run-command@v1.0.0
id: stk-register-app-destroy-success
with:
client_id: ${{ secrets.CLIENT_ID }}
client_key: ${{ secrets.CLIENT_KEY }}
realm: ${{ secrets.REALM }}
command_stk: "register app-destroy --target my-app/ --env dev --status success"
  • Destroy com status failed:
- uses: stack-spot/cli-github-action-run-command@v1.0.0
id: stk-register-app-destroy-success
with:
client_id: ${{ secrets.CLIENT_ID }}
client_key: ${{ secrets.CLIENT_KEY }}
realm: ${{ secrets.REALM }}
command_stk: "register app-destroy --target my-app/ --env dev --status failed"

Passo 3. Configure as flags do comando stk register app-destroy com as variáveis corretas:

  • target: caminho do diretório da aplicação;
  • version: versão da aplicação que está sendo destruída;
  • env: ambiente do deploy;
  • status: status do deploy (failed, success)

Para mais informações, acesse a página do comando `stk register-app destroy

Informação Adicional

Para registrar o destroy da Aplicação, você precisa estar dentro de um Workspace. Para executar comandos que precisam de um Workspace ativo, antes desses comandos, adicione o comando command_stk: "use workspace [workspace-name]" como no exemplo a seguir::

- uses: stack-spot/cli-github-action-run-command@v1.0.0
id: stk-delete-app
with:
client_id: ${{ secrets.CLIENT_ID }}
client_key: ${{ secrets.CLIENT_KEY }}
realm: ${{ secrets.REALM }}
command_stk: "use workspace my-workspace-name"
command_stk: "register app-deploy --target my-app/ --version 1.0.0 --env dev --status failed"

Pronto!

2. Integrar comandos na Pipeline Manualmente

Pré-requisitos:

Para a sua comodidade, a StackSpot recomenda o uso da Action. Mas você pode configurar os passos manualmente em sua pipeline.

Pré-requisitos:

  • Cadastrar os dados de Client_ID, Client_Key e Realm do seu Access Token como GitHub secrets.
  • STK CLI instalado na sua pipeline;
  • Autenticar na Pipeline;
  • Ter Workspace ativo na sua Pipeline.

Após seguir os passos anteriores, o arquivo da pipeline deve ser como no exemplo a seguir:

Atenção!

O trecho da pipeline a seguir é apenas um exemplo. Se você utiliza o runner ubuntu-latest as ferramentas jq, git e curl não são necessárias, caso contrário você deve instalá-las.

.github/workflows/run-cli-commands.yml
name: Run CLI Commands

on: [push]

jobs:
deploy:
runs-on: ubuntu-latest
env:
LANG: C.UTF-8
LANGUAGE: C.UTF-8
LC_ALL: C.UTF-8
PYTHONIOENCODING: utf-8

steps:
- name: Check out repository code
uses: actions/checkout@v4

- name: Download STK CLI
shell: bash
run: |
curl \
--fail \
--http2-prior-knowledge \
--location \
--output /tmp/stk.deb \
--silent \
--show-error \
--tlsv1.3 \
https://stk.stackspot.com/installer/linux/stk.deb

- name: Install STK CLI
shell: bash
run: |
sudo dpkg --install /tmp/stk.deb || echo "Installation failed with exit code: $?"

- name: Authenticate StackSpot
run: |
$HOME/.stk/bin/stk login --client-id ${{ secrets.CLIENT_ID }} --client-key ${{ secrets.CLIENT_KEY }} --realm ${{ secrets.CLIENT_REALM }}

- name: Use your Workspace
run: |
$HOME/.stk/bin/stk use workspace <workspace>

Após configurar todos os passos, adicione como próxima step na pipeline a execução do comando a seguir para registrar o deploy da sua Aplicação:

- name: Register App Destroy 
run: |
stk register app-destroy --target my-app/ --status success

Próximos passos