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.
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.
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
... 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.