Kuby-core: Krane::FatalDeploymentError: Falha na validação do modelo

Criado em 11 ago. 2020  ·  13Comentários  ·  Fonte: getkuby/kuby-core

Ao implantar krane explode. Esta é uma implantação com v. 0.7.0

KUBY_DOCKER_TAG=latest bundle exec rake kuby:deploy --trace Eu defini a tag como mais recente para contornar o outro problema :)

Isto é o que eu recebo:

* Invoca kuby:deploy (first_time)* Executar kuby:deploy
Validando o recurso global, namespace 'my-app-production'
namespace/my-app-production configurado (dry run)
Implantando o namespace 'my-app-production'
namespace/my-app-production inalterado
[INFO][2020-08-11 09:15:10 +0200]
[INFO][2020-08-11 09:15:10 +0200] ---------------------------------- ---Fase 1: Inicializando a implantação--------------------------------------------------
[INFO][2020-08-11 09:15:11 +0200] Todos os parâmetros e arquivos necessários estão presentes
[INFO][2020-08-11 09:15:11 +0200] Descobrindo recursos:
[INFO][2020-08-11 09:15:13 +0200] - Implantação/my-app-web
[INFO][2020-08-11 09:15:13 +0200] - Secret/my-app-web-mysql-secret
[INFO][2020-08-11 09:15:13 +0200] - ServiceAccount/my-app-sa
[INFO][2020-08-11 09:15:13 +0200] - ConfigMap/my-app-config
[INFO][2020-08-11 09:15:13 +0200] - Secret/my-app-registry-secret
[INFO][2020-08-11 09:15:13 +0200] - Ingress/my-app-ingress
[INFO][2020-08-11 09:15:13 +0200] - Secret/my-app-secrets
[INFO][2020-08-11 09:15:13 +0200] - ClusterIssuer/letsencrypt-production
[INFO][2020-08-11 09:15:13 +0200] - MySQL/my-app-web-mysql
[INFO][2020-08-11 09:15:13 +0200] - Secret/my-app-web-mysql-secret
[INFO][2020-08-11 09:15:13 +0200] - MySQL/my-app-web-mysql
[INFO][2020-08-11 09:15:13 +0200] - Serviço/my-app-svc
[INFO][2020-08-11 09:15:15 +0200]
[INFO][2020-08-11 09:15:15 +0200] ---------------------------------- ---------Resultado: FALHA-------------------------------------- -----
[FATAL][2020-08-11 09:15:16 +0200] Falha na validação do modelo
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200] Modelo inválido: ClusterIssuer-letsencrypt-production20200811-60914-uybj4y.yml
[FATAL][2020-08-11 09:15:16 +0200] > Mensagem de erro:
[FATAL][2020-08-11 09:15:16 +0200] W0811 09:15:13.103161 60953 helpers.go:535] --dry-run está obsoleto e pode ser substituído por --dry-run=client.
[FATAL][2020-08-11 09:15:16 +0200] erro: não foi possível reconhecer "/var/folders/9l/3dw7rcl51pq4jfs0kjg99f7c0000gn/T/ClusterIssuer-letsencrypt-production20200811-60914-uybj4y.yml": não há correspondências para tipo "ClusterIssuer" na versão "cert-manager.io/v1alpha2"
[FATAL][2020-08-11 09:15:16 +0200] > Conteúdo do modelo:
[FATAL][2020-08-11 09:15:16 +0200] ---
[FATAL][2020-08-11 09:15:16 +0200] apiVersion: cert-manager.io/v1alpha2
[FATAL][2020-08-11 09:15:16 +0200] tipo: ClusterIssuer
[FATAL][2020-08-11 09:15:16 +0200] metadados:
[FATAL][2020-08-11 09:15:16 +0200] nome: letsencrypt-production
[FATAL][2020-08-11 09:15:16 +0200] namespace: cert-manager
[FATAL][2020-08-11 09:15:16 +0200] especificação:
[FATAL][2020-08-11 09:15:16 +0200] acme:
[FATAL][2020-08-11 09:15:16 +0200] servidor: https://acme-v02.api.letsencrypt.org/directory
[FATAL][2020-08-11 09:15:16 +0200] e-mail: [email protected]
[FATAL][2020-08-11 09:15:16 +0200] privateKeySecretRef:
[FATAL][2020-08-11 09:15:16 +0200] nome: letsencrypt-production
[FATAL][2020-08-11 09:15:16 +0200] solucionadores:
[FATAL][2020-08-11 09:15:16 +0200] - http01:
[FATAL][2020-08-11 09:15:16 +0200] entrada:
[FATAL][2020-08-11 09:15:16 +0200] classe: nginx
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200] Modelo inválido: MySQL-my-app-web-mysql20200811-60914-1rs7vqx.yml
[FATAL][2020-08-11 09:15:16 +0200] > Mensagem de erro:
[FATAL][2020-08-11 09:15:16 +0200] W0811 09:15:13.122295 60956 helpers.go:535] --dry-run está obsoleto e pode ser substituído por --dry-run=client.
[FATAL][2020-08-11 09:15:16 +0200] erro: não foi possível reconhecer "/var/folders/9l/3dw7rcl51pq4jfs0kjg99f7c0000gn/T/MySQL-my-app-web-mysql20200811-60914-1rs7vqx.yml" : não há correspondências para o tipo "MySQL" na versão "kubedb.com/v1alpha1"
[FATAL][2020-08-11 09:15:16 +0200] > Conteúdo do modelo:
[FATAL][2020-08-11 09:15:16 +0200] ---
[FATAL][2020-08-11 09:15:16 +0200] tipo: MySQL
[FATAL][2020-08-11 09:15:16 +0200] apiVersion: kubedb.com/v1alpha1
[FATAL][2020-08-11 09:15:16 +0200] especificação:
[FATAL][2020-08-11 09:15:16 +0200] rescisãoPolicy: DoNotTerminate
[FATAL][2020-08-11 09:15:16 +0200] tipo de armazenamento: Durável
[FATAL][2020-08-11 09:15:16 +0200] versão: 5.7-v2
[FATAL][2020-08-11 09:15:16 +0200] armazenamento:
[FATAL][2020-08-11 09:15:16 +0200] Modos de acesso:
[FATAL][2020-08-11 09:15:16 +0200] - ReadWriteOnce
[FATAL][2020-08-11 09:15:16 +0200] storageClassName: do-block-storage
[FATAL][2020-08-11 09:15:16 +0200] recursos:
[FATAL][2020-08-11 09:15:16 +0200] solicitações:
[FATAL][2020-08-11 09:15:16 +0200] armazenamento: 10Gi
[FATAL][2020-08-11 09:15:16 +0200] banco de dadosSegredo:
[FATAL][2020-08-11 09:15:16 +0200] secretName: my-app-web-mysql-secret
[FATAL][2020-08-11 09:15:16 +0200] metadados:
[FATAL][2020-08-11 09:15:16 +0200] nome: my-app-web-mysql
[FATAL][2020-08-11 09:15:16 +0200] namespace: my-app-production
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200]
[FATAL][2020-08-11 09:15:16 +0200] Modelo inválido: MySQL-my-app-web-mysql20200811-60914-1na8no.yml
[FATAL][2020-08-11 09:15:16 +0200] > Mensagem de erro:
[FATAL][2020-08-11 09:15:16 +0200] W0811 09:15:14.705164 60971 helpers.go:535] --dry-run está obsoleto e pode ser substituído por --dry-run=client.
[FATAL][2020-08-11 09:15:16 +0200] erro: não foi possível reconhecer "/var/folders/9l/3dw7rcl51pq4jfs0kjg99f7c0000gn/T/MySQL-my-app-web-mysql20200811-60914-1na8no.yml" : não há correspondências para o tipo "MySQL" na versão "kubedb.com/v1alpha1"
[FATAL][2020-08-11 09:15:16 +0200] > Conteúdo do modelo:
[FATAL][2020-08-11 09:15:16 +0200] ---
[FATAL][2020-08-11 09:15:16 +0200] tipo: MySQL
[FATAL][2020-08-11 09:15:16 +0200] apiVersion: kubedb.com/v1alpha1
[FATAL][2020-08-11 09:15:16 +0200] especificação:
[FATAL][2020-08-11 09:15:16 +0200] rescisãoPolicy: DoNotTerminate
[FATAL][2020-08-11 09:15:16 +0200] tipo de armazenamento: Durável
[FATAL][2020-08-11 09:15:16 +0200] versão: 5.7-v2
[FATAL][2020-08-11 09:15:16 +0200] armazenamento:
[FATAL][2020-08-11 09:15:16 +0200] Modos de acesso:
[FATAL][2020-08-11 09:15:16 +0200] - ReadWriteOnce
[FATAL][2020-08-11 09:15:16 +0200] storageClassName: do-block-storage
[FATAL][2020-08-11 09:15:16 +0200] recursos:
[FATAL][2020-08-11 09:15:16 +0200] solicitações:
[FATAL][2020-08-11 09:15:16 +0200] armazenamento: 10Gi
[FATAL][2020-08-11 09:15:16 +0200] banco de dadosSegredo:
[FATAL][2020-08-11 09:15:16 +0200] secretName: my-app-web-mysql-secret
[FATAL][2020-08-11 09:15:16 +0200] metadados:
[FATAL][2020-08-11 09:15:16 +0200] nome: my-app-web-mysql
[FATAL][2020-08-11 09:15:16 +0200] namespace: my-app-production
[FATAL][2020-08-11 09:15:16 +0200]
ancinho abortado!
Krane::FatalDeploymentError: Falha na validação do modelo

Todos 13 comentários

Parece que seu cluster não conhece os objetos ClusterIssuer ou MySQL . Você executou rake kuby:setup antes de implantar?

Ahhh, faltou aquele passo do guia! Obrigado!

@traels você conseguiu fazer as coisas funcionarem?

Desculpe - esqueci de voltar para você!
Consegui executar kuby:setup - então meu cluster travou no Digital Ocean, então agora acho que preciso criar um novo cluster kubernetes para tentar novamente. Espero ter mais tempo para jogar na próxima semana.

@traels oh droga, uau! O que aconteceu, se posso perguntar?

Não sei - Kuby acabou de dizer que o kubernetes não estava respondendo. Tentei reiniciar em DO, mas isso não ajudou.

Hmm interessante. Eu definitivamente vi trava ao tentar se comunicar com clusters DOKS. Geralmente se conserta em uma hora ou mais. Experiência muito ruim, talvez Linode seria melhor?

Levantei cedo hoje - e agora meu cluster funciona, e a implantação foi um sucesso :)
... próxima edição, como lidar com os ativos do Rails no docker? todos os meus bens estão faltando

Hmm, isso é curioso... os ativos devem ser compilados na imagem do Docker. Ah, mas aposto que nada está servindo a eles! Você pode tentar definir config.public_file_server.enabled = true no seu production.rb? Isso deve consertar as coisas. Vou registrar um bug também, já que isso provavelmente deve funcionar imediatamente :)

Então, no kubernetes, as pessoas servem ativos com o servidor web ruby?

Não, mas essa é a solução mais rápida que consegui pensar hehe. Kuby deve ter uma opção melhor, mas vai dar algum trabalho.

Eu deveria expandir um pouco: a maioria das pessoas com aplicativos Rails com qualquer tipo de escala tendem a servir ativos estáticos de uma CDN. A origem desses ativos geralmente é algo como um bucket do S3, mas pode ser o próprio aplicativo Rails. Como 99% das vezes o CDN servirá os ativos, consultar o aplicativo Rails por eles inicialmente não deve afetar muito o desempenho.

Apresentou um problema ontem para rastrear isso: https://github.com/getkuby/kuby-core/issues/12

O Kuby v0.8.0 vem com um servidor de ativos totalmente funcional (nginx), portanto, não há mais necessidade de o próprio aplicativo servir ativos :)

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

kingdonb picture kingdonb  ·  6Comentários

hovancik picture hovancik  ·  5Comentários

practicingruby picture practicingruby  ·  6Comentários

wincent picture wincent  ·  9Comentários

radar picture radar  ·  5Comentários