web-dev-qa-db-fra.com

graphique de barre avec requirements.yaml, n'a pas trouvé de cartes locales

mes graphiques ont des dépendances elasticsearch et mongdb, et dans mes graphiques, la structure comme ceci:

├── [-rw-rw-r--]  Chart.yaml
├── [drwxrwxr-x]  dependency_charts
│   ├── [drwxrwxr-x]  elasticsearch
│   └── [drwxrwxr-x]  mongodb
├── [-rw-rw-r--]  deploy.sh
├── [-rw-rw-r--]  requirements.yaml
├── [-rw-rw-r--]  values.yaml
├── [drwxrwxr-x]  templates
│   ├── [-rw-rw-r--]  proj-deploy.yaml
│   └── [-rw-rw-r--]  proj-svc.yaml

mais quand j'essaierai d'installer ma carte, elle dira:

Error: found in requirements.yaml, but missing in charts/ directory: elasticsearch, mongodb

et quand j'exécute des dépêches de barre, il montre le statut manquant

$ helm dep list
NAME            VERSION REPOSITORY                              STATUS
elasticsearch   6.5.1   file://dependency_charts/elasticsearch  missing
mongodb         4.0.3   file://dependency_charts/mongodb        missing

la version est appVersion, et j'ai également changé la version en version graphique, cela ne fonctionne pas.

c'est le document officiel: https://github.com/helm/helm/blob/master/docs/helm/helm_dependency.mdhttps://docs.helm.sh/ chart_best_practices/# repository-urls

c'est la version de barre

$ helm version
Client: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.10.0", GitCommit:"9ad53aac42165a5fadc6c87be0dea6b115f93090", GitTreeState:"clean"}

Et je peux mettre ces graphiques dans un dossier charts, mais si je le fais, helm installera mongodb et elasticsearch dans les mêmes graphiques, ce n'est pas prévu, ce que j'attends est sous le même espace de noms a trois graphiques : myproj, elasticsearch, mongodb.

Quelqu'un a une idée de ce que je fais mal? Merci.

5
jolla

Vous devez exécuter helm dep update. Cela placera les sous-graphiques dans le dossier ./charts et créera le fichier ./requirements.lock. Ensuite, vous pouvez installer.

4
abinet
helm dep update

ne fonctionne que lorsque la liste de dépôt est vide. Vérifier helm repo list, si cela retourne quelque chose, les dépendances locales ne seront pas résolues. Essayez de supprimer le référentiel à l'aide de la commande helm repo remove REPO_NAME

1
Shivang Gupta

... ce que j'attends est sous le même espace de noms a trois graphiques: myproj, elasticsearch, mongodb.

Vous devez exécuter helm install trois fois pour obtenir cet effet.


Le requirements.yaml le mécanisme oblige Helm à installer plusieurs sous-graphiques dans une seule version de Helm. helm list afficherait simplement myproj, mais en interne, il aurait également les ressources Kubernetes pour les autres composants. Si vous kubectl get service vous verrez alors des objets Service comme unusual-animal-myproj et unusual-animal-mongodb, géré par la même version de Helm. Si vous helm del unusual-animal, il supprimerait les trois composants ensemble.

Si c'est le comportement que vous souhaitez, le message d'erreur que vous obtenez signifie ce qu'il dit: les graphiques locaux doivent être dans un sous-répertoire nommé exactement charts. Fonctionnement helm dep up ou helm dep build les copiera là-bas.

1
David Maze