Ενσωματωμένα Αντικείμενα
Τα αντικείμενα μεταβιβάζονται σε ένα template από τη μηχανή template. Ο κώδικάς
σας μπορεί να μεταβιβάζει αντικείμενα (θα δούμε παραδείγματα όταν εξετάσουμε τις
δηλώσεις with και range). Υπάρχουν ακόμη και μερικοί τρόποι για να
δημιουργήσετε νέα αντικείμενα μέσα στα templates σας, όπως με τη συνάρτηση
tuple που θα δούμε αργότερα.
Τα αντικείμενα μπορεί να είναι απλά, με μία μόνο τιμή. Ή μπορεί να περιέχουν
άλλα αντικείμενα ή συναρτήσεις. Για παράδειγμα, το αντικείμενο Release
περιέχει πολλά αντικείμενα (όπως το Release.Name) και το αντικείμενο Files
έχει μερικές συναρτήσεις.
Στην προηγούμενη ενότητα, χρησιμοποιήσαμε το {{ .Release.Name }} για να
εισάγουμε το όνομα ενός release σε ένα template. Το Release είναι ένα από τα
αντικείμενα ανώτατου επιπέδου στα οποία μπορείτε να έχετε πρόσβαση στα templates
σας.
Release: Αυτό το αντικείμενο περιγράφει το ίδιο το release. Περιέχει πολλά αντικείμενα:Release.Name: Το όνομα του releaseRelease.Namespace: Το namespace στο οποίο θα γίνει η εγκατάσταση (αν το manifest δεν το παρακάμπτει)Release.IsUpgrade: Ορίζεται σεtrueαν η τρέχουσα λειτουργία είναι upgrade ή rollback.Release.IsInstall: Ορίζεται σεtrueαν η τρέχουσα λειτουργία είναι εγκατάσταση.Release.Revision: Ο αριθμός αναθεώρησης για αυτό το release. Κατά την εγκατάσταση είναι 1 και αυξάνεται με κάθε upgrade και rollback.Release.Service: Η υπηρεσία που αποδίδει το τρέχον template. Στο Helm, αυτό είναι πάνταHelm.
Values: Οι τιμές που μεταβιβάζονται στο template από το αρχείοvalues.yamlκαι από αρχεία που παρέχει ο χρήστης. Από προεπιλογή, τοValuesείναι κενό.Chart: Τα περιεχόμενα του αρχείουChart.yaml. Οποιαδήποτε δεδομένα στοChart.yamlείναι προσβάσιμα εδώ. Για παράδειγμα, το{{ .Chart.Name }}-{{ .Chart.Version }}θα εκτυπώσειmychart-0.1.0.- Τα διαθέσιμα πεδία παρατίθενται στον Οδηγό Charts
Subcharts: Παρέχει πρόσβαση στο εύρος (.Values, .Charts, .Releases κλπ.) των subcharts από το γονικό chart. Για παράδειγμα, το.Subcharts.mySubChart.myValueγια πρόσβαση στοmyValueτου chartmySubChart.Files: Παρέχει πρόσβαση σε όλα τα μη ειδικά αρχεία σε ένα chart. Δεν μπορείτε να το χρησιμοποιήσετε για πρόσβαση σε templates, αλλά μπορείτε να το χρησιμοποιήσετε για πρόσβαση σε άλλα αρχεία του chart. Δείτε την ενότητα Πρόσβαση σε Αρχεία για περισσότερα.Files.Getείναι μια συνάρτηση για λήψη ενός αρχείου με βάση το όνομά του (.Files.Get config.ini)Files.GetBytesείναι μια συνάρτηση για λήψη των περιεχομένων ενός αρχείου ως πίνακα bytes αντί για string. Αυτό είναι χρήσιμο για πράγματα όπως εικόνες.Files.Globείναι μια συνάρτηση που επιστρέφει μια λίστα αρχείων των οποίων τα ονόματα ταιριάζουν με το δοσμένο μοτίβο shell glob.Files.Linesείναι μια συνάρτηση που διαβάζει ένα αρχείο γραμμή προς γραμμή. Αυτό είναι χρήσιμο για επανάληψη σε κάθε γραμμή ενός αρχείου.Files.AsSecretsείναι μια συνάρτηση που επιστρέφει τα περιεχόμενα των αρχείων ως strings κωδικοποιημένα σε Base 64.Files.AsConfigείναι μια συνάρτηση που επιστρέφει τα περιεχόμενα των αρχείων ως YAML map.
Capabilities: Παρέχει πληροφορίες σχετικά με τις δυνατότητες που υποστηρίζει το Kubernetes cluster.Capabilities.APIVersionsείναι ένα σύνολο εκδόσεων.Capabilities.APIVersions.Has $versionυποδεικνύει αν μια έκδοση (π.χ.batch/v1) ή ένας πόρος (π.χ.apps/v1/Deployment) είναι διαθέσιμος στο cluster.Capabilities.KubeVersionκαιCapabilities.KubeVersion.Versionείναι η έκδοση του Kubernetes.Capabilities.KubeVersion.Majorείναι η κύρια έκδοση του Kubernetes.Capabilities.KubeVersion.Minorείναι η δευτερεύουσα έκδοση του Kubernetes.Capabilities.HelmVersionείναι το αντικείμενο που περιέχει τις λεπτομέρειες της έκδοσης Helm, ίδια έξοδος με την εντολήhelm version.Capabilities.HelmVersion.Versionείναι η τρέχουσα έκδοση Helm σε μορφή semver.Capabilities.HelmVersion.GitCommitείναι το Helm git sha1.Capabilities.HelmVersion.GitTreeStateείναι η κατάσταση του git tree του Helm.Capabilities.HelmVersion.GoVersionείναι η έκδοση του μεταγλωττιστή Go που χρησιμοποιήθηκε.
Template: Περιέχει πληροφορίες σχετικά με το τρέχον template που εκτελείταιTemplate.Name: Η διαδρομή αρχείου με namespace προς το τρέχον template (π.χ.mychart/templates/mytemplate.yaml)Template.BasePath: Η διαδρομή με namespace προς τον κατάλογο templates του τρέχοντος chart (π.χ.mychart/templates).
Τα ενσωματωμένα αντικείμενα ξεκινούν πάντα με κεφαλαίο γράμμα. Αυτό ακολουθεί τη σύμβαση ονομασίας της Go. Όταν δημιουργείτε τα δικά σας ονόματα, είστε ελεύθεροι να χρησιμοποιήσετε μια σύμβαση που ταιριάζει στην ομάδα σας. Ορισμένες ομάδες, όπως πολλές από αυτές των οποίων τα charts μπορείτε να δείτε στο Artifact Hub, επιλέγουν να χρησιμοποιούν μόνο αρχικά πεζά γράμματα για να διακρίνουν τα τοπικά ονόματα από τα ενσωματωμένα. Σε αυτόν τον οδηγό, ακολουθούμε αυτή τη σύμβαση.