Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rafaelpontezup/855e75a6ee08a831b1b8d8289c8fbaa0 to your computer and use it in GitHub Desktop.
Save rafaelpontezup/855e75a6ee08a831b1b8d8289c8fbaa0 to your computer and use it in GitHub Desktop.
StackSpot Quick Command: Generate Terraform template from Mermaid diagrams

Quick Command: generate-terraform-from-mermaid

O objetivo deste Quick Command é gerar templates Terraform para provisionar infraestrutura a partir de diagramas Mermaid seguindo um conjunto de regras do time ou empresa. Este conjunto de regras é configurado como Knowledge Source em alguns passos do Quick Command.

Para criar o Quick Command, basta configurá-lo com o passos abaixo:

Start

Name: generate-terraform-from-mermaid
Description: > 
  Gera arquivos Terraform a partir de um diagrama Mermaid.
  A ideia é selecionar a representação textual do Mermaid e pedir para AI gerar código Terraform.

Step 01: step-01-gerar-terraform

Prompt_name: step-01-gerar-terraform
Prompt_content: > 
  Com base no código Mermaid abaixo, gere templates Terraform para provisionar infraestrutura na AWS.
  """code
   {{selected_code}} 
  """

Step 02: step-02-ajustar-terraform

Prompt_name: step-02-ajustar-terraform
Prompt_content: > 
  Agora, ajuste o código Terraform seguindo os padrões do Itau.
Knowledged_sources:
  - boas-praticas-de-terraform-no-itau

Step 03: step-03-validar-terraform

Prompt_name: step-03-validar-terraform
Prompt_content: > 
  Por fim, valide se o código Terraform gerado e ajustado segue os padrões do Itau. 
  Isto é, se ele segue todas as regras obrigatórias. Siga as instruções:

  1. Se o código Terraform está de acordo com regras simplesmente responda com "Sem erros de validação";
  2. Caso contrário, liste as regras incorretas ou ausentes do código;
Knowledged_sources:
  - boas-praticas-de-terraform-no-itau

End

Output: Chat
Use_chat_context: No
Final_result: > 
  # Passo 1: Gerar Terraform
  {{step-01-gerar-terraform.answer}} 

  # Passo 2: Ajustar Terraform
  {{step-02-ajustar-terraform.answer}} 

  # Passo 3:  Validar Terraform
  {{step-03-validar-terraform.answer}} 

Knowledge Source: boas-praticas-de-terraform-no-itau

Este Knowledged Source contém todas as regras e boas práticas do time ou empresa para construção e escrita de templates Terraform.

Name: Boas práticas de Terraform no Itau
Slug: boas-praticas-de-terraform-no-itau
Description: >
  Knowledged Source com boas práticas e regras obrigatórias e opcionais de Terraform no Itau.
Content: >
 # Boas práticas de Terraform no Itau
 
  Dentro do Itau, todos os templates Terraform devem seguir um padrão de tags, Ou seja, todo script Terraform  
  deve conter as seguintes tags obrigatórias:

  """yaml
  owner_team_email
  tech_team_email
  """

Mermaid samples

Examplos de diagramas de arquitetura Mermaid que podem ser utilizados nas DEMOs de StackSpot AI.

Frontend estático:

Prompts-01: site estático

p1: Usando Mermaid, construa uma diagrama para hospedar um frontend estático utilizando os serviços da AWS, como Cloudfront e S3.

p2: Agora, com base no diagrama do Mermaid selecionado, gere os arquivos Terraform para provisionar a infraestrutura na AWS.

graph TD
    A[Usuário] -->|Acessa| B[CloudFront]
    B -->|Distribui| C[S3 Bucket]
    C -->|Armazena| D[Arquivos Estáticos]

    subgraph AWS
        B
        C
    end
Loading

Frontend Application:

Prompts-02: site estático + lambda

p1: Usando Mermaid, construa uma diagrama para uma aplicação frontend utilizando os serviços da AWS, como Cloudfront e S3.

p2: Agora, com base no diagrama do Mermaid selecionado, gere os arquivos Terraform para provisionar a infra estrutura na AWS.

graph TD;
    A[Usuário] -->|Acessa| B[CloudFront]
    B -->|Distribui conteúdo| C[S3 Bucket]
    B -->|Distribui conteúdo| D[Lambda@Edge]
    D -->|Processa requisições| C
    C -->|Armazena arquivos estáticos| E[Arquivos Estáticos]
    C -->|Armazena dados| F[Dados da Aplicação]
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment