Εξαρτήσεις
Αυτός ο τομέας του οδηγού καλύπτει τις βέλτιστες πρακτικές για τις dependencies που δηλώνονται στο Chart.yaml.
Εκδόσεις
Όπου είναι δυνατό, χρησιμοποιήστε ένα εύρος εκδόσεων αντί να καρφώνετε σε κάποια συγκεκριμένη έκδοση. Η συνιστώμενη προεπιλογή είναι να χρησιμοποιείτε ταίριασμα σε επίπεδο patch:
version: ~1.2.3
Αυτό θα ταιριάξει με την έκδοση 1.2.3 και όλα τα patches αυτής της έκδοσης. Με άλλα λόγια, το ~1.2.3 είναι ισοδύναμο με >= 1.2.3, < 1.3.0
Για την πλήρη σύνταξη του ταιριάσματος εκδόσεων, παρακαλούμε δείτε την τεκμηρίωση του semver.
Prerelease εκδόσεις
Οι παραπάνω περιορισμοί έκδοσης δεν θα ταιριάξουν με prerelease εκδόσεις. Για παράδειγμα, το version: ~1.2.3 θα ταιριάξει με το version: ~1.2.4 αλλά όχι με το version: ~1.2.3-1. Το παρακάτω παρέχει ταίριασμα τόσο για prerelease όσο και σε επίπεδο patch:
version: ~1.2.3-0
URLs των Repositories
Όπου είναι δυνατό, χρησιμοποιήστε https:// URLs για τα repositories, και στη συνέχεια http:// URLs.
Αν το repository έχει προστεθεί στο αρχείο index του repository, το όνομα του repository μπορεί να χρησιμοποιηθεί ως alias του URL. Χρησιμοποιήστε alias: ή @ ακολουθούμενο από το όνομα του repository.
Τα file URLs (file://...) θεωρούνται ως «ειδική περίπτωση» για charts τα οποία συναρμολογούνται από ένα σταθερό deployment pipeline.
Όταν χρησιμοποιείτε downloader plugins, το URL scheme θα είναι συγκεκριμένο για το plugin. Σημειώστε ότι ένας χρήστης του chart θα πρέπει να έχει εγκατεστημένο ένα plugin που υποστηρίζει το scheme για να ενημερώσει ή να δημιουργήσει την εξάρτηση.
Το Helm δεν μπορεί να εκτελέσει λειτουργίες διαχείρισης εξαρτήσεων στην εξάρτηση όταν το πεδίο repository παραμένει κενό. Σε αυτήν την περίπτωση, το Helm θα υποθέσει ότι η εξάρτηση βρίσκεται σε έναν υποφάκελο του φακέλου charts με το ίδιο όνομα με την ιδιότητα name της εξάρτησης.
Συνθήκες και Tags
Οι συνθήκες ή τα tags θα πρέπει να προστίθενται σε εξαρτήσεις που είναι προαιρετικές. Σημειώστε ότι από προεπιλογή ένα condition είναι true.
Η προτιμώμενη μορφή μίας συνθήκης (condition) είναι η ακόλουθη:
condition: somechart.enabled
Όπου το somechart είναι το όνομα του chart της εξάρτησης.
Όταν πολλαπλά subcharts (εξαρτήσεις) παρέχουν μαζί ένα προαιρετικό ή ανταλλάξιμο feature, αυτά τα charts θα πρέπει να μοιράζονται τα ίδια tags.
Για παράδειγμα, αν τόσο το nginx όσο και το memcached παρέχουν βελτιστοποιήσεις απόδοσης για την κύρια εφαρμογή του chart, και απαιτούνται και τα δύο όταν αυτό το feature είναι ενεργοποιημένο, τότε θα πρέπει να έχουν και τα δύο έναν τομέα με tags κάπως έτσι:
tags:
- webaccelerator
Αυτό επιτρέπει στον χρήστη να ενεργοποιεί και να απενεργοποιεί αυτό το feature με ένα tag.