Support pro monorepo et multirepo in werf et quid habet Docker Registry facere cum eo?

Support pro monorepo et multirepo in werf et quid habet Docker Registry facere cum eo?

Thema mono-repositorii plus semel ac fere tractatum est controversiam acerrimam. per partum werf * sicut instrumentum apertum fons designatur ad emendandum processum aedificandi applicationis codicis a Git ad Docker imagines (et deinde eas Kubernetes tradens), non multum cogitamus de quibus electio optima est. Nobis, primum est omnia necessaria suffragantibus diversarum opinionum praebere (si hoc sane communi sensui non contradicit).

werf recentis mono-repo fulcimentum bonum huius exempli est. Sed primum inspiciamus quomodo haec subsidia generaliter ad werf utentes et quid Docker Subcriptio ad rem pertineat.

Exitus

Talem rem cogitemus. Societas multas iunctiones evolutionis habet in inceptis independentibus laborantes. Pleraque applicationes in Kubernetes currunt et ideo continenti sunt. Ad vasa, imagines reponendas, registro opus est (subcriptio). Ut tali registro, societas Docker Hub cum una ratione utitur COMPANY. Similes plerisque auctoritatibus codici systemata repono; Docker Hub non patitur nested repositio hierarchiae, ut COMPANY/PROJECT/IMAGE. In hoc casu… quomodo potes applicationes non monoliticas in registro cum hac limitatione condere, sine causa separata pro singulis propositis creandis?

Support pro monorepo et multirepo in werf et quid habet Docker Registry facere cum eo?

Fortasse res descriptae alicui notae notae sunt, sed consideremus eventum de repositione ordinandi in genere, i.e. sine exemplo et Docker Hub.

Vias autem solution

Si application monolithicvenit in unam imaginem, tunc non sunt quaestiones et nos simpliciter, nisi imagines in registro continentis project.

Cum applicatio exhibetur ut plures partes; microservicesquaedam accessio requiritur. Ad exemplum applicationis typici ex duabus imaginibus constans: frontend ΠΈ backend - Optiones possibilis sunt:

  1. Reponunt imagines in repositoria separata nidos:

    Support pro monorepo et multirepo in werf et quid habet Docker Registry facere cum eo?

  2. Omnia in unum repositorium reconde, et imaginem nominis in tag considera, exempli gratia, hoc modo:

    Support pro monorepo et multirepo in werf et quid habet Docker Registry facere cum eo?

NBProfecto alia est optio salutaris in diversis repositoriis; PROJECT-frontend ΠΈ PROJECT-backendsed propter multiplicitatem subsidii, dispositionis et distributionis iurium inter utentes non consideramus.

werf firmamentum

Initio, werf se limitat ad repositoria nidificanda - feliciter, pleraque registria hanc plumam sustinent. Incipiens a versione v1.0.4-alpha.3, adiecit opus cum registris in quo nidificans non praebeturet Docker Hub una ex eis. Inde usor electionem habet quomodo applicationes imagines condere.

Exsecutionem available per optionem --images-repo-mode=multirepo|monorepo (Annum multirepo, i.e. reposita in nested repositoria). Exemplaria definit, quibus imagines in registro reponuntur. Satis est modum optatum eligere cum praecepta fundamentalia utens, et omnia alia immutata manent.

Quia maxime werf options possunt profectus amet variables, in CI/CD systemata, modus repositionis facilis est, ut globaliter pro toto proposito ponatur. Exempli gratia apud GitLab iustus addere environment variabilis in project occasus: Optiones -> CI / CD -> Variabiles: WERF_IMAGES_REPO_MODE: multirepo|monorepo.

Si loquimur de imaginibus evulgandis et applicationibus evolvendis (de his processibus singillatim legere potes in documentis articulis pertinentibus; Processus publicare ΠΈ Processus explicandam) , modus tantummodo formulam constituit qua cum imagine operari potes.

Diabolus est in singulis

Differentia et praecipua difficultas cum novam methodum repositionis addit in processu purgandi registri (Ad purgationem features auxilium werf, vide Purgato processus).

Cum purgatio, werf ratio imaginum usui in racemis Kubernetes cogitat, ac rationes ab utentis conformatae. Politiae divisione tags in strategies nituntur. Insidijs in statu sustentata:

  1. 3 Insidijs primitivis conjuncti Git ut tag, ramus, et committo;
  2. 1 consilium pro arbitraria consuetudine tags.

Informationes de tag consilio servamus cum imaginem in pittaciis ultimae imaginis divulgabo. Sensus ipse sic dictus est meta tag - Velit aliquam lobortis. Exempli gratia, cum ramum vel tag ex repositorio Git delendo, logicum est affinem delere insueta imagines ex registro, quod pars nostra lobortis tegitur.

Salvus in reposito (monorepo), in imagine tag, praeter meta tag, nomen imaginis etiam condi potest; PROJECT:frontend-META-TAG. Ad ea separanda non introduximus aliquem separatorem specificum, sed simpliciter valorem necessarium ad titulus imaginis finalis in divulgando adiecit.

NB: Si interest inspicere omnia quae in werf fonte codice descripta sunt, tunc initium esse potest PR 1684.

In hoc articulo non magis attendemus quaestiones et iustificationem adventus nostri: circa consilia tagging, notitia in pittaciis recondendos et totum processum evulgandi - haec omnia in recenti relatione per Dmitry Stolyarov singillatim descripta sunt: ​​"werf instrumentum nostrum est CI/CD in Kubernetes".

summatimque

Defectus subsidii pro registribus unnestis non fuit nobis obturans factor vel usorum werf nobis notus - tamen semper potes subcriptio imaginum separatum (vel flectendum subcriptio conditionalis in Google Cloud) ... Sed talis restrictio removenda videbatur logica ut instrumentum communitatis DevOps latioris commodius fieret. Exsequens eam, difficultas principalis obeimus in relaborando continentis subcriptio tersus mechanismum. Nunc omnia parata esse, suus 'nice est scire quod quis facilior factus est, et nos (sicut principales tincidunt rei) non habemus aliquas notabiles difficultates in hoc pluma ulterius sustinendo.

Mane nobiscum et brevissime tibi de aliis innovationibus dicemus werf *!

PS

Lege etiam in nostro diario:

Source: www.habr.com