Salut les gars,
Je me demandais si la possibilité d'ajouter des annotations aux pods lancés par shinyproxy sur Kubernetes pouvait être ajoutée ? Cela nous permettrait d' attacher un rôle AWS IAM à un conteneur et d'utiliser les ressources AWS dans des applications brillantes.
Merci d'avance! Et merci pour tout le bon travail.
Acclamations,
Emélie
J'aimerais également ajouter des annotations aux pods lancés par un proxy brillant pour exactement la même raison. J'ai essayé de modifier le code à cette fin, mais mes compétences en Java ne sont pas assez bonnes.
Si quelqu'un maintient encore le projet, ce serait une fonctionnalité vraiment utile !
Au cas où quelqu'un d'autre aurait le même problème, j'ai trouvé une solution de contournement pour ajouter des annotations et des tolérances aux pods lancés par un proxy brillant.
Dans ma configuration, le proxy brillant lance les pods dans un espace de noms dédié. J'ai lancé un autre conteneur aux côtés de shinyproxy qui annote et corrige constamment tous les pods de cet espace de noms.
(dans la section spec
du déploiement) :
- 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
bonne idée! Parfait!
salut tout le monde
Merci pour votre RP !
Afin de ne pas avoir à implémenter toutes les fonctionnalités de Kubernetes dans ContainerProxy, nous avons décidé d'ajouter un moyen générique d'ajouter une configuration spécifique à Kubernetes à une application ContainerProxy. Cette fonctionnalité s'appelle kubernetes-pod-patches
et permet de patcher la spécification du Pod avant qu'il ne soit créé par ContainerProxy.
Plus d'informations sur cette fonctionnalité peuvent être trouvées ici (vous devez faire défiler un peu).
Cela devrait couvrir votre cas d'utilisation. N'hésitez pas à ouvrir un problème si vous rencontrez un problème avec cette fonctionnalité.
Le changement est inclus dans le ShinyProxy 2.4.0 juste
Encore merci pour votre contribution.
Merci @LEDfan , cette solution est vraiment géniale - voyez-la maintenant !
Après quelques essais et erreurs, j'ai réussi à le faire fonctionner pour ajouter des annotations de rôle IAM de la manière suivante :
- 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>" }
Commentaire le plus utile
Au cas où quelqu'un d'autre aurait le même problème, j'ai trouvé une solution de contournement pour ajouter des annotations et des tolérances aux pods lancés par un proxy brillant.
Dans ma configuration, le proxy brillant lance les pods dans un espace de noms dédié. J'ai lancé un autre conteneur aux côtés de shinyproxy qui annote et corrige constamment tous les pods de cet espace de noms.
(dans la section
spec
du déploiement) :