matheusfols / backstage.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Desafio DevX

Este teste tem como objetivo habilitar a capacidade de provisionamento de recursos em nuvem por meio de uma plataforma, com a abstração dos conceitos de DevOps. Seguem as tarefas:

  • Provisionar o sistema Backstage (utilizado para abstrair as funcionalidades da plataforma).
  • Configurar o Backstage para possibilitar o provisionamento de um bucket (repositório de arquivos na nuvem).
  • Configurar o Backstage para habilitar o recurso de site estático no bucket mencionado.
  • Criar/configurar o Backstage para que possa provisionar um repositório Git destinado a receber os arquivos de um site estático.
  • Estabelecer/configurar um Pipeline de CI/CD para publicar o site estático no bucket especificado.

DOCUMENTAÇÃO DO BACKSTAGE: https://backstage.io

Antes de Usar

GitHub

É necessário configurar o provedor de autenticação no GitHub, como orientado na documentação: Documentação Autenticação Backstage Após obter o CLIENT ID e o CLIENT SECRET adicionar no .env (usar o .env.example para criar o seu .env)

Necessário criar o token de integração segundo a Documentação

AWS

Criar chaves de acesso ao usuário para obter ACCESS KEY e o SECRET KEY. Documentação

Para o funcionamento correto do aplicativo, é necessário configurar as seguintes permissões no seu serviço AWS:

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "VisualEditor0",
			"Effect": "Allow",
			"Action": [
				"s3:GetBucketPublicAccessBlock",
				"s3:PutAccountPublicAccessBlock",
				"s3:PutBucketPublicAccessBlock",
				"s3:CreateBucket",
				"s3:ListBucket",
				"s3:GetBucketPolicy",
				"s3express:GetBucketPolicy",
				"s3:PutObject",
				"s3:GetObject",
				"s3:GetAccountPublicAccessBlock",
				"s3express:CreateBucket",
				"s3:PutAccessPointPublicAccessBlock",
				"s3:PutBucketPolicy",
				"s3express:PutBucketPolicy"
			],
			"Resource": "*"
		}
	]
}

Por favor, certifique-se de que essas permissões estão corretamente configuradas antes de iniciar o aplicativo.

Como usar

Após baixar o repositório executar:

yarn install

Após a instalação das dependências, executar os testes:

yarn dev

Templates

  1. AWS S3 Create Static Website Esse plugin, cria o bucket na aws e configura para ser um site estático

image

  1. Static GitHub + Github Actions CI/CD Esse plugin cria o repositório no github, recebe o nome do bucket e no final sobre um exemplo de código estático no github, contendo um workflow. Esse workflow no momento que for executado irá criar o bucket na AWS, ajustando todas a politicas dele para ser um site estático e subir os arquivos no bucket

image

  1. S3 Static Website Esse template irá criar o repositório e o bucket via backstage. Irá criar o workflow que ao ser executado irá subir o html de exemplo

image

Obs.: é necessário configurar o secrets dentro do repositório com Key e Secret da AWS para poder enviar os arquivos.

About


Languages

Language:TypeScript 93.1%Language:Dockerfile 3.3%Language:HTML 3.2%Language:JavaScript 0.4%