kubernetes: build with an initContainer or a Job
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- kubernetes, terraform
- Domínio
- cloud, infrastructure
Direção de pesquisa
Nenhum arquivo ou teste é indicado. Comece revisando o deployment atual do Kubernetes e os recursos do Terraform; em seguida, rastreie como o envbuilder realiza os builds durante a inicialização do workspace. O trabalho estará concluído quando uma proposta tiver sido escolhida e implementada, a transferência da referência da imagem tiver sido validada e o streaming dos logs de build tiver sido tratado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Context
Currently, envbuilder runs at the start up of a workspace, exposing elements of the buildtime to the runtime and vice-versa:
- Build secrets (e.g. dockerconfig)
- Environment variables (#91)
- Mounts (#187)
- Privileges (#181)
- Container layers are downloaded in each container rather than on the nodes
- ... (feel free to grow the list)
Proposal 1: initContainer
- Envbuilder would build the image as an initContainer and push it to a container registry
- The main container would pull and run the image (todo: validate that the pod can be created without the image existing yet)
This would require to generate/know the image reference ahead of time.
Proposal 2: Kubernetes Job
Entire decoupling of buildtime and runtime:
- Envbuilder runs as Kubernetes
Jobto build and push the container image - It writes a
ConfigMapwith the reference of the built image - Terraform waits for completion of the
Job - Terraform reads the
ConfigMapwithkubernetes_config_mapdatasource (explicitly depending on theJobcreation) - The image reference from the
ConfigMapis then used to create aDeployment - A short
ttl_seconds_after_finishedwould allow clean up of the Job for it to be recreated on the nextterraform apply
The ConfigMap could be used to share of information between envbuilder and Terraform (#121), like the volumes defined in the devcontainer.json (#220)
Detail to consider: I believe the Coder server starts streaming the logs from the deployment after the terraform apply has finished, it would need to be able to do it for the Job while the apply is running to expose the build logs to the user.
Is it something that has been thought of/done but not documented yet?
- Linguagem predominante
- Go
- Estrelas
- 301
- Forks
- 64
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de coder/envbuilder
-
bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
coder/envbuilder#506 ·
-
bug envbuilder needs-investigation
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
coder/envbuilder#495 ·
-
envbuilder Feature
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 56/100
coder/envbuilder#492 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
coder/envbuilder#484 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 38/100
coder/envbuilder#483 ·
Todas as issues de coder/envbuilder
Issues semelhantes
-
cvss-severity:high devguard l3montree-cybersecurity/devguard/devguard pkg:golang/github.com/l3montree-dev/devguard risk:low state:open
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
l3montree-dev/devguard#3146 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
CLI
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
databricks/cli#6910 ·
Mantenedores costumam responder em até 1 dia
-
Table presenter appends a spurious ", ..." to the FIX column when all fix versions are already shownAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
canonical/microceph#900 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
vulncheck or vulndb
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia