OpenShift - Tekton
Last updated
Last updated
Ο αρχικός συγγραφέας αυτής της σελίδας είναι Haroun
Σύμφωνα με το έγγραφο: Το Tekton είναι ένα ισχυρό και ευέλικτο ανοιχτού κώδικα πλαίσιο για τη δημιουργία συστημάτων CI/CD, επιτρέποντας στους προγραμματιστές να κατασκευάζουν, να δοκιμάζουν και να αναπτύσσουν σε παρόχους cloud και σε τοπικά συστήματα. Και οι δύο Jenkins και Tekton μπορούν να χρησιμοποιηθούν για να δοκιμάσουν, να κατασκευάσουν και να αναπτύξουν εφαρμογές, ωστόσο το Tekton είναι Cloud Native.
Με το Tekton, όλα εκπροσωπούνται από αρχεία YAML. Οι προγραμματιστές μπορούν να δημιουργήσουν Custom Resources (CR) τύπου Pipelines
και να καθορίσουν πολλαπλά Tasks
σε αυτά που θέλουν να εκτελέσουν. Για να εκτελέσετε μια Pipeline, πρέπει να δημιουργηθούν πόροι τύπου PipelineRun
.
Όταν εγκατασταθεί το tekton, δημιουργείται ένας λογαριασμός υπηρεσίας (sa) που ονομάζεται pipeline σε κάθε namespace. Όταν εκτελείται μια Pipeline, θα δημιουργηθεί ένα pod χρησιμοποιώντας αυτόν τον sa που ονομάζεται pipeline
για να εκτελέσει τις εργασίες που ορίζονται στο αρχείο YAML.
Από προεπιλογή, ο λογαριασμός υπηρεσίας pipeline μπορεί να χρησιμοποιήσει τη δυνατότητα pipelines-scc
. Αυτό οφείλεται στη παγκόσμια προεπιλεγμένη ρύθμιση του tekton. Στην πραγματικότητα, η παγκόσμια ρύθμιση του tekton είναι επίσης ένα YAML σε ένα αντικείμενο openshift που ονομάζεται TektonConfig
που μπορεί να δει αν έχετε κάποιους ρόλους αναγνωστών στο cluster.
Σε οποιοδήποτε namespace, αν μπορέσετε να αποκτήσετε το token του pipeline service account, θα μπορείτε να χρησιμοποιήσετε το pipelines-scc
.
Το πρόβλημα είναι ότι το προεπιλεγμένο scc που μπορεί να χρησιμοποιήσει το pipeline sa είναι ελεγχόμενο από τον χρήστη. Αυτό μπορεί να γίνει χρησιμοποιώντας μια ετικέτα στον ορισμό του namespace. Για παράδειγμα, αν μπορώ να δημιουργήσω ένα namespace με τον παρακάτω ορισμό yaml:
Ο τεκτονικός χειριστής θα δώσει στον λογαριασμό υπηρεσίας pipeline στο test-namespace
τη δυνατότητα να χρησιμοποιεί το scc privileged. Αυτό θα επιτρέψει την τοποθέτηση του κόμβου.
Τα έγγραφα του Tekton σχετικά με το πώς να περιορίσετε την υπέρβαση του scc προσθέτοντας μια ετικέτα στο αντικείμενο TektonConfig
.
Αυτή η ετικέτα ονομάζεται max-allowed