Fa'ailoga fa'avae i totonu o le werf collector: aisea ma fa'apefea ona aoga?

Fa'ailoga fa'avae i totonu o le werf collector: aisea ma fa'apefea ona aoga?

werf o la matou punaoa tatala GitOps CLI aoga mo le fausiaina ma le tuʻuina atu o talosaga i Kubernetes. IN tatala v1.1 o se vaega fou na faʻafeiloaʻi i le aoina o ata: faʻailoga ata e ala i mea e aofia ai poʻo fa'ailoga fa'avae i totonu. Seia oʻo mai i le taimi nei, o le faʻailoga masani i le werf e aofia ai le faʻailogaina o ata Docker e Git tag, Git lala poʻo Git commit. Ae o nei faiga uma e iai faʻaletonu e faʻamalieina atoatoa e le taʻiala fou. O faʻamatalaga e uiga i ai ma pe aisea e matua lelei ai o loʻo i lalo o le tipi.

Faʻasalalau se seti o microservices mai le tasi Git faleoloa

E masani ona tupu se tulaga pe a vaevaeina se talosaga i le tele pe itiiti foi auaunaga tutoatasi. O fa'amalologa o nei 'au'aunaga e mafai ona tuto'atasi: tasi pe sili atu au'aunaga e mafai ona tu'uina atu i le taimi, ae o isi e tatau ona fa'aauau pea ona galulue e aunoa ma ni suiga. Ae mai le vaaiga o le teuina o code ma le pulega o galuega faatino, e sili atu ona faigofie le teuina o ia auaunaga talosaga i totonu o se fale e tasi.

E iai tulaga pe a tuto'atasi au'aunaga ma e le o feso'ota'i ma se talosaga e tasi. I lenei tulaga, o le a tuʻuina i latou i galuega eseese ma o latou faʻamalolo o le a faʻatinoina i auala eseese CI / CD i totonu o poloketi taʻitasi.

Ae ui i lea, o le mea moni, e masani ona vaeluaina e le au atinaʻe se talosaga se tasi i le tele o microservices, ae o le fatuina o se fale teu oloa ma galuega faatino mo taʻitasi ... o se faʻamatalaga manino. O le tulaga lea o le a talanoaina atili: o le tele o ia microservices o loʻo tuʻuina i totonu o se fale faʻapipiʻi e tasi ma faʻasaʻolotoga e faia i se faiga e tasi i le CI / CD.

Fa'ailoga e le lala Git ma Git tag

Fa'apea o le ta'iala sili ona taatele e fa'aaogaina - fa'ailoga-po'o-la'au. Mo lala o Git, o ata e faailogaina i le igoa o le lala, aua e tasi le lala i le taimi e na o le tasi le ata lomia i le igoa o lena lala. Mo Git pine, o ata e faʻailogaina e tusa ai ma le igoa faʻailoga.

Pe a faia se Git tag fou-mo se faʻataʻitaʻiga, pe a faʻasalalau se faʻamatalaga fou-o le a faia se pine fou Docker mo ata uma o galuega i le Docker Registry:

  • myregistry.org/myproject/frontend:v1.1.10
  • myregistry.org/myproject/myservice1:v1.1.10
  • myregistry.org/myproject/myservice2:v1.1.10
  • myregistry.org/myproject/myservice3:v1.1.10
  • myregistry.org/myproject/myservice4:v1.1.10
  • myregistry.org/myproject/myservice5:v1.1.10
  • myregistry.org/myproject/database:v1.1.10

O nei igoa ata fou e pasi atu i fa'ata'ita'iga Helm i le fa'atulagaga Kubernetes. Pe a amata le faʻapipiʻiina ma le faʻatonuga werf deploy o lo'o fa'afouina le fanua image i le Kubernetes punaoa faʻaalia ma toe faʻafouina punaoa talafeagai ona o le suiga o le igoa ata.

faafitauli: i le tulaga pe a, o le mea moni, o mea o loʻo i totonu o le ata e leʻi suia talu mai le taʻavale muamua (Git tag), ae naʻo lona Docker tag, e tupu lenei mea fa'aopoopo toe amataina lenei talosaga ma, e tusa ai, o nisi taimi malolo e mafai. E ui lava e leai se mafuaaga moni e faia ai lenei toe amata.

O le i'uga, fa'atasi ai ma le fa'ailoga o lo'o i ai nei, e mana'omia le pa puipui o ni fale teu oloa eseese a Git ma o le fa'afitauli e tula'i mai i le fa'atulagaina o le ta'aiga o nei fale teu oloa. I se tulaga lautele, o sea faiga e foliga mai e sili atu le mamafa ma faigata. E sili atu le tuʻufaʻatasia o le tele o auʻaunaga i totonu o se fale teu oloa e tasi ma fatuina pine Docker ina ia leai se toe amataina.

Fa'ailogaina e Git commit

werf e iai foʻi se taʻiala faʻailoga e fesoʻotaʻi ma Git commits.

Git-commit o se faʻamatalaga mo mea o loʻo i totonu o le Git repository ma faʻalagolago i le tala faʻasolopito o faila i le Git repository, o lea e foliga mai e talafeagai le faʻaaogaina mo le faʻailogaina o ata i le Docker Registry.

Ae ui i lea, o le faʻailogaina e le Git commit e tutusa lelei ma le faʻailogaina e Git lala poʻo Git tags:

  • E mafai ona faia se tautinoga gaogao e le suia ai soʻo se faila, ae o le Docker tag o le ata o le a suia.
  • E mafai ona faia se tuʻufaʻatasiga tuʻufaʻatasia e le suia ai faila, ae o le Docker tag o le ata o le a suia.
  • E mafai ona faia se tautinoga e suia ai na faila i Git e le o faaulufale mai i totonu o le ata, ma o le Docker tag o le ata o le a toe suia.

O le fa'ailogaina o le igoa o le lala o le Git e le atagia ai le ata

O loʻo i ai se isi faʻafitauli e fesoʻotaʻi ma le faʻailoga mo lala Git.

O le fa'ailogaina o le igoa o le lala e aoga pe afai o tautinoga i lena lala e aoina faasolosolo i le faasologa o taimi.

Afai i le polokalame o loʻo i ai nei e amata e le tagata faʻaoga ona toe fausia se tautinoga tuai e fesoʻotaʻi ma se lala, ona toe tusi lea e werf le ata e faʻaaoga ai le Docker tag tutusa ma se faʻailoga fou o le ata mo le tautinoga tuai. O le faʻaaogaina o lenei pine mai le taimi nei e ono lamatia ai le tosoina o se isi faʻaaliga o le ata pe a toe amataina pods, o se taunuuga o le a le maua ai e le matou talosaga le fesoʻotaʻiga ma le CI system ma faʻaleagaina.

E le gata i lea, faatasi ai ma le solosolo solo i totonu o le lala e tasi ma sina taimi puupuu i le va o latou, o le tautinoga tuai e mafai ona tuufaatasia mulimuli ane nai lo le mea fou: o le ata tuai o le ata o le a suia ai le mea fou e faʻaaoga ai le pine o le lala Git. O ia faʻafitauli e mafai ona foia e le CI / CD system (mo se faʻataʻitaʻiga, i le GitLab CI o le paipa o le laina mulimuli o loʻo faʻalauiloaina mo se faasologa o tautinoga). Ae ui i lea, e le o polokalama uma e lagolagoina lenei mea ma e tatau ona i ai se auala sili atu ona faʻatuatuaina e puipuia ai se faʻafitauli taua.

O le a le fa'ailoga fa'avae i totonu?

O lea la, o le a le faʻailoga faʻavae i totonu - faʻailoga ata e ala i mea.

Ina ia fatuina pine Docker, e le o Git primitives (Git lala, Git tag ...) o loʻo faʻaaogaina, ae o se siaki e fesoʻotaʻi ma:

  • mea i totonu o le ata. O le fa'ailoga ID ata e atagia ai lona anotusi. Pe a fausia se lomiga fou, o le a le suia lenei faʻamatalaga pe a fai e leʻi suia faila i le ata;
  • talafaasolopito o le fatuina o lenei ata i Git. O ata e fesoʻotaʻi ma lala Git eseese ma tala faʻasolopito eseese e ala i le werf o le ai ai faʻailoga ID eseese.

O sea fa'ailoga fa'ailoga e ta'ua ata saini tulaga.

O ata ta'itasi e iai se seti o laasaga: from, before-install, git-archive, install, imports-after-install, before-setup, ... git-latest-patch ma isi. O vaega ta'itasi e iai se fa'amatalaga e fa'aalia ai mea o lo'o i totonu − saini tulaga (saini tulaga).

O le ata mulimuli, e aofia ai nei laʻasaga, ua faʻailogaina i le saini e taʻua o le seti o nei laasaga - saini vaega, - lea e fa'alauteleina mo vaega uma o le ata.

Mo ata taitasi mai le faatulagaga werf.yaml i le tulaga lautele, o le ai ai lana lava saini ma, e tusa ai, se Docker tag.

O le saini o le laasaga e foia uma nei faafitauli:

  • Tetee i le gaogao Git commits.
  • Resistant to Git faia e suia faila e le talafeagai i le ata.
  • E le taʻitaʻia ai le faʻafitauli o le toe faʻaleleia o le ata o loʻo i ai nei pe a toe amataina le fausiaina mo le Git tuai na faia se lala.

Ole taimi nei ole ta'iala fautuaina ma ole faaletonu ile werf mo faiga CI uma.

Faʻafefea ona mafai ma faʻaoga ile werf

O le poloaiga ua i ai nei se filifiliga talafeagai werf publish: --tag-by-stages-signature=true|false

I totonu o se faiga CI, o le taʻaloga taʻiala e faʻamaonia e le faʻatonuga werf ci-env. I le taimi muamua, na faʻamalamalamaina le parakalafa mo ia werf ci-env --tagging-strategy=tag-or-branch. Ia, afai e te faʻamaonia werf ci-env --tagging-strategy=stages-signature po'o le le fa'ama'oti mai lea filifiliga, o le a fa'aogaina e werf le ta'iala e ala i le fa'aletonu stages-signature. Au werf ci-env o le a otometi lava ona seti fuʻa talafeagai mo le poloaiga werf build-and-publish (po o werf publish), o lea e leai ni filifiliga faaopoopo e manaʻomia ona faʻamaonia mo nei poloaiga.

Mo se faʻataʻitaʻiga, o le poloaiga:

werf publish --stages-storage :local --images-repo registry.hello.com/web/core/system --tag-by-stages-signature

...e mafai ona fatuina ata nei:

  • registry.hello.com/web/core/system/backend:4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d
  • registry.hello.com/web/core/system/frontend:f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6

o 4ef339f84ca22247f01fb335bb19f46c4434014d8daa3d5d6f0e386d o se saini o tulaga o le ata backendma f44206457e0a4c8a54655543f749799d10a9fe945896dab1c16996c6 - saini o tulaga ata frontend.

Pe a faʻaaogaina galuega faʻapitoa werf_container_image и werf_container_env E leai se mea e mana'omia e sui ai se mea i totonu o fa'ata'ita'iga Helm: o nei galuega e otometi lava ona fa'atupu igoa sa'o ata.

Fa'ata'ita'iga fa'atulagaina i se faiga CI:

type multiwerf && source <(multiwerf use 1.1 beta)
type werf && source <(werf ci-env gitlab)
werf build-and-publish|deploy

O lo'o maua nisi fa'amatalaga i le fa'atulagaga i totonu o fa'amaumauga:

Aofaʻi

  • Filifiliga fou werf publish --tag-by-stages-signature=true|false.
  • Tau filifiliga fou werf ci-env --tagging-strategy=stages-signature|tag-or-branch (afai e le o faʻamaonia, o le faaletonu o le stages-signature).
  • Afai na e faʻaaogaina muamua le faʻailoga filifiliga mo Git commits (WERF_TAG_GIT_COMMIT po'o le filifiliga werf publish --tag-git-commit COMMIT), ia mautinoa e sui i le ta'iala o le fa'ailoga vaega-saini.
  • E sili le sui vave o poloketi fou i le faʻailoga fou.
  • Pe a faʻafeiloaʻi i le werf 1.1, e fautuaina e sui galuega tuai i le faʻailoga fou, ae o le tuai. fa'ailoga-po'o-la'au o loo lagolagoina pea.

O fa'ailoga fa'avae i totonu e fo'ia uma fa'afitauli o lo'o aofia i le tusiga:

  • Docker tag igoa tetee i le gaogao Git commits.
  • O le maufetuuna'i o le igoa Docker tag i le Git e faia e suia faila e le talafeagai i le ata.
  • E le taʻitaʻia ai le faʻafitauli o le toe faʻaleleia o le ata o loʻo i ai nei pe a toe amataina le fausiaina mo le Git tuai na faia mo lala Git.

Fa'aaoga! Ma aua nei galo e asiasi mai ia i matou i GitHube fatu ai se mataupu pe su'e se mea o iai, fa'aopoopo se fa'aopoopo, fai se PR pe na o le matamata i le atina'eina o le poloketi.

SALA

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga