Ei pessoal,
Eu queria saber se a possibilidade de adicionar anotações aos pods lançados pelo shinyproxy no Kubernetes poderia ser adicionada? Isso nos permitiria anexar uma função do AWS IAM a um contêiner e usar recursos da AWS em aplicativos brilhantes.
Muito obrigado antecipadamente! E obrigado por todo o excelente trabalho.
Saúde,
Emelie
Eu também gostaria de adicionar anotações aos pods lançados pelo proxy brilhante exatamente pelo mesmo motivo. Tentei alterar o código para esse fim, mas minhas habilidades em Java não são boas o suficiente.
Se alguém ainda está mantendo o projeto, este seria um recurso muito útil!
Caso alguém esteja tendo o mesmo problema, encontrei uma solução alternativa para adicionar anotações e tolerâncias a pods iniciados por proxy brilhante.
Na minha configuração, o proxy brilhante lança pods em um namespace dedicado. Eu lancei outro container junto com shinyproxy que constantemente anota e corrige qualquer pod nesse namespace.
(na seção spec
de implantação):
- name: shiny-role-spammer
image: zlabjp/kubernetes-resource
command:
- "/bin/bash"
- "-c"
- |
while [ 1 ]; do
# Add annotation for kube2iam
kubectl -n external annotate pods --all iam.amazonaws.com/role="arn:aws:iam::123456654321:role/shiny-external";
# Add tolerations
kubectl -n external get pods -o jsonpath='{.items[*].metadata.name}' | grep sp- | \
xargs kubectl -n external patch -p \
'{"spec":{"tolerations":[{"key":"purpose", "operator": "Equal", "value": "external", "effect": "NoSchedule"}]}}' \
pod
sleep 2;
done
boa ideia! Perfeito!
Olá a todos
Obrigado pelo seu PR!
Para não precisar implementar todos os recursos do Kubernetes no ContainerProxy, decidimos adicionar uma maneira genérica de adicionar uma configuração específica do Kubernetes a um aplicativo ContainerProxy. Esse recurso é chamado de kubernetes-pod-patches
e permite corrigir a especificação do Pod antes de ser criado pelo ContainerProxy.
Mais informações sobre esse recurso podem ser encontradas aqui (você precisa rolar um pouco para baixo).
Isso deve cobrir seu caso de uso. Sinta-se à vontade para abrir um problema se tiver algum problema com esse recurso.
A mudança está incluída apenas no ShinyProxy 2.4.0
Mais uma vez obrigado pela sua contribuição.
Obrigado @LEDfan esta solução é realmente ótima - veja agora!
Após algumas tentativas e erros, consegui fazê-lo funcionar para adicionar anotações de função do IAM da seguinte maneira:
- id: 01_hello
displayName: Hello Application
description: Application which demonstrates the basics of a Shiny app
containerCmd: ["R", "-e", "shinyproxy::run_01_hello()"]
containerImage: openanalytics/shinyproxy-demo
kubernetes-pod-patches: |
- op: add
path: /metadata/annotations
value: { "iam.amazonaws.com/role": "<YOUR-IAM-ROLE>" }
Comentários muito úteis
Caso alguém esteja tendo o mesmo problema, encontrei uma solução alternativa para adicionar anotações e tolerâncias a pods iniciados por proxy brilhante.
Na minha configuração, o proxy brilhante lança pods em um namespace dedicado. Eu lancei outro container junto com shinyproxy que constantemente anota e corrige qualquer pod nesse namespace.
(na seção
spec
de implantação):