Skip to main content
Version: 3.19.0

Ενσωματωμένα Αντικείμενα

Τα αντικείμενα μεταβιβάζονται σε ένα template από τη μηχανή template. Ο κώδικάς σας μπορεί να μεταβιβάζει αντικείμενα (θα δούμε παραδείγματα όταν εξετάσουμε τις δηλώσεις with και range). Υπάρχουν ακόμη και μερικοί τρόποι για να δημιουργήσετε νέα αντικείμενα μέσα στα templates σας, όπως με τη συνάρτηση tuple που θα δούμε αργότερα.

Τα αντικείμενα μπορεί να είναι απλά, με μία μόνο τιμή. Ή μπορεί να περιέχουν άλλα αντικείμενα ή συναρτήσεις. Για παράδειγμα, το αντικείμενο Release περιέχει πολλά αντικείμενα (όπως το Release.Name) και το αντικείμενο Files έχει μερικές συναρτήσεις.

Στην προηγούμενη ενότητα, χρησιμοποιήσαμε το {{ .Release.Name }} για να εισάγουμε το όνομα ενός release σε ένα template. Το Release είναι ένα από τα αντικείμενα ανώτατου επιπέδου στα οποία μπορείτε να έχετε πρόσβαση στα templates σας.

  • Release: Αυτό το αντικείμενο περιγράφει το ίδιο το release. Περιέχει πολλά αντικείμενα:
    • Release.Name: Το όνομα του release
    • Release.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 του chart mySubChart.
  • 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, επιλέγουν να χρησιμοποιούν μόνο αρχικά πεζά γράμματα για να διακρίνουν τα τοπικά ονόματα από τα ενσωματωμένα. Σε αυτόν τον οδηγό, ακολουθούμε αυτή τη σύμβαση.