{"id":76764,"date":"2020-04-04T13:42:24","date_gmt":"2020-04-04T11:42:24","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee"},"modified":"2020-04-04T13:42:24","modified_gmt":"2020-04-04T11:42:24","slug":"reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee","title":{"rendered":"A werf 1.1-es verzi\u00f3ja: fejleszt\u00e9sek a build rendszerben ma \u00e9s j\u00f6v\u0151beni tervek","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"A werf 1.1-es verzi\u00f3ja: fejleszt\u00e9sek a build rendszerben ma \u00e9s j\u00f6v\u0151beni tervek\" src=\"\/wp-content\/uploads\/2020\/04\/c7c26e4a0b7bddb90ba087a4db7175dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/werf.io\/\">werf<\/a><\/noindex> \u2014 a GitOps CLI utility with open source for building and delivering applications in Kubernetes. As promised, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/481306\/\">the release of version v1.0<\/a><\/noindex> marked the beginning of adding new features to werf and rethinking traditional approaches. Now we are pleased to present the release v1.1, which is a significant step forward and lays the foundation for the future <i>of the builder<\/i> werf. The version is currently available in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf#backward-compatibility-promise\">the 1.1 ea channel<\/a><\/noindex>.<\/p>\n<p>The core of the release is a new stages storage architecture and optimization of both builders (for Stapel and Dockerfile). The new storage architecture opens up opportunities for implementing distributed builds from multiple hosts and parallel builds on a single host.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>The optimization includes eliminating unnecessary computations at the stage signature calculation phase and changing the checksum calculation mechanisms for files to more efficient ones. This optimization reduces the average build time of a project using werf. Cold builds, when all stages exist in cache <i>stages-storage<\/i>, are now truly fast. In most cases, restarting the build will take less than 1 second! This also applies to stage verification procedures during the work of teams <code>werf deploy<\/code> \u00e9s <code>werf run<\/code>.<\/p>\n<p>Additionally, this release introduced a content-based image tagging strategy \u2014 <i>tartalmi alap\u00fa c\u00edmk\u00e9z\u00e9s<\/i>, which is now enabled by default and is the only recommended option.<\/p>\n<p>Let's take a closer look at the key innovations in werf v1.1, and at the same time, we will discuss future plans.<\/p>\n<h2>What has changed in werf v1.1?<\/h2>\n<p><\/p>\n<h3>A new naming format for stages and an algorithm for fetching stages from cache<\/h3>\n<p>\nA new rule for generating stage names. Now, each stage build generates a unique stage name, which consists of 2 parts: a signature (as it was in v1.0) plus a unique time identifier.<\/p>\n<p>For example, the full name of a stage image could look like this:<\/p>\n<p><code>werf-stages-storage\/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835<\/code><\/p>\n<p>\u2026 or in general form:<\/p>\n<p><code>werf-stages-storage\/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC<\/code><\/p>\n<p>Itt:<\/p>\n<ul>\n<li> <code>SIGNATURE<\/code> \u2014 is the stage signature, which represents the identifier of the stage's content and depends on the history of Git edits that led to this content;<\/li>\n<li> <code>TIMESTAMP_MILLISEC<\/code> \u2014 is a guaranteed unique image identifier generated at the time of building a new image.<\/li>\n<\/ul>\n<p>\nThe algorithm for fetching stages from cache is based on checking the lineage of Git commits:<\/p>\n<ol>\n<li> A Werf kisz\u00e1m\u00edtja egy bizonyos szakasz al\u00e1\u00edr\u00e1s\u00e1t.<\/li>\n<li> A <i>stages-storage<\/i> T\u00f6bb szakasz is l\u00e9tezhet ezen al\u00e1\u00edr\u00e1s alapj\u00e1n. A Werf kiv\u00e1lasztja az \u00f6sszes, al\u00e1\u00edr\u00e1s alapj\u00e1n megfelel\u0151 szakaszt.<\/li>\n<li> Ha az aktu\u00e1lis szakasz kapcsol\u00f3dik a Git-hez (git-arch\u00edvum, felhaszn\u00e1l\u00f3i szakasz Git-patch-ekkel: <code>install<\/code>, <code>beforeSetup<\/code>, <code>setup<\/code>; vagy git-legfrissebb-patch), akkor a Werf csak azokat a szakaszokat v\u00e1lasztja, amelyek kapcsol\u00f3dnak a jelenlegi commit \u0151s\u00e9hez (amelyre a build-et hajtj\u00e1k v\u00e9gre).<\/li>\n<li> A fennmarad\u00f3, megfelel\u0151 szakaszok k\u00f6z\u00fcl egyet v\u00e1laszt ki \u2014 a legkor\u00e1bban l\u00e9trehozottat.<\/li>\n<\/ol>\n<p>\nK\u00fcl\u00f6nb\u00f6z\u0151 Git \u00e1gak sz\u00e1m\u00e1ra azonos al\u00e1\u00edr\u00e1s\u00fa szakaszok l\u00e9tezhetnek. De a Werf megakad\u00e1lyozza, hogy a k\u00fcl\u00f6nb\u00f6z\u0151 \u00e1gak k\u00f6z\u00f6tti cache-vel kapcsolatos felhaszn\u00e1l\u00e1st v\u00e9gezzen, m\u00e9g akkor is, ha az al\u00e1\u00edr\u00e1sok egyeznek.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/reference\/stages_and_images.html#%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D0%B4%D0%B8%D0%B9\">\u2192 Dokument\u00e1ci\u00f3<\/a><\/noindex>.<\/p>\n<h3>\u00daj algoritmus a szakaszok l\u00e9trehoz\u00e1s\u00e1ra \u00e9s t\u00e1rol\u00e1s\u00e1ra a szakaszt\u00e1rol\u00f3ban<\/h3>\n<p>\nHa a Werf nem tal\u00e1l megfelel\u0151 szakaszt a cache-b\u0151l, akkor egy \u00faj szakasz build folyamat\u00e1t ind\u00edtja el.<\/p>\n<p>Megjegyezz\u00fck, hogy t\u00f6bb folyamat (egy vagy t\u00f6bb hoszton) egy \u00e9s ugyanazon szakasz buildel\u00e9s\u00e9be kezdhet kb. egyszerre. A Werf optimista z\u00e1rol\u00e1si algoritmust haszn\u00e1l <i>stages-storage<\/i> az \u00fajonnan \u00e9p\u00edtett image ment\u00e9sekor <i>stages-storage<\/i>. \u00cdgy, amikor \u00faj szakasz build-je elk\u00e9sz\u00fcl, a Werf z\u00e1rolja <i>stages-storage<\/i> \u00e9s csak akkor menti az \u00fajonnan \u00e9p\u00edtett image-t, ha ott m\u00e9g nem l\u00e9tezik megfelel\u0151 image <i>(al\u00e1\u00edr\u00e1s \u00e9s egy\u00e9b param\u00e9terek alapj\u00e1n \u2014 l\u00e1sd az \u00faj szakasz keres\u0151 algoritmust a cache-b\u0151l)<\/i>.<\/p>\n<p>Az \u00fajonnan \u00e9p\u00edtett image garant\u00e1ltan egyedi azonos\u00edt\u00f3val rendelkezik <code>TIMESTAMP_MILLISEC<\/code> <i>(l\u00e1sd az \u00faj szakaszn\u00e9v-form\u00e1tumot)<\/i>. Amennyiben a <i>stages-storage<\/i> -ban tal\u00e1lhat\u00f3 megfelel\u0151 image, a Werf elveti az \u00fajonnan \u00e9p\u00edtett image-t, \u00e9s a cache-b\u0151l l\u00e9v\u0151 image-et fogja haszn\u00e1lni.<\/p>\n<p>M\u00e1s szavakkal: az els\u0151 folyamat, amely befejezi az image \u00e9p\u00edt\u00e9s\u00e9t (a leggyorsabb), joga lesz azt elt\u00e1rolni a stages-storage-ban (\u00e9s ut\u00e1na ez az egyetlen image fog haszn\u00e1latban lenni minden build sor\u00e1n). A lassabb build folyamat soha nem fogja blokkolni a gyorsabb folyamatot az aktu\u00e1lis szakasz buildj\u00e9nek eredm\u00e9nyeinek ment\u00e9s\u00e9t\u0151l \u00e9s a k\u00f6vetkez\u0151 build-re val\u00f3 \u00e1tt\u00e9r\u00e9st\u0151l.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/reference\/stages_and_images.html#%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B0-%D0%B8-%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D0%B4%D0%B8%D0%B9\">\u2192 Dokument\u00e1ci\u00f3<\/a><\/noindex>.<\/p>\n<h3>Javult a Dockerfile buildel\u00e9si teljes\u00edtm\u00e9nye<\/h3>\n<p>\nJelenleg a Dockerfile-b\u00f3l \u00e9p\u00edtett image szakaszainak csatorn\u00e1ja egy szakaszb\u00f3l \u00e1ll \u2014 <code>dockerfile<\/code>. Az al\u00e1\u00edr\u00e1s sz\u00e1m\u00edt\u00e1sakor a f\u00e1jlok ellen\u0151rz\u0151\u00f6sszege ker\u00fcl figyelembev\u00e9telre. <code>context<\/code>, amelyeket a gy\u0171jt\u00e9s sor\u00e1n haszn\u00e1lnak. E fejleszt\u00e9s el\u0151tt a werf rekurz\u00edvan v\u00e9gigj\u00e1rta az \u00f6sszes f\u00e1jlt \u00e9s ellen\u0151rz\u0151 \u00f6sszeget kapott, a kontextus \u00e9s minden f\u00e1jl m\u00f3dj\u00e1nak \u00f6sszegz\u00e9s\u00e9vel. Az v1.1-es verzi\u00f3kt\u00f3l kezdve a werf haszn\u00e1lhatja a Git-reposzitoriumban t\u00e1rolt el\u0151re kisz\u00e1m\u00edtott ellen\u0151rz\u0151 \u00f6sszegeket.<\/p>\n<p>Az algoritmus alapja \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/git-scm.com\/docs\/git-ls-tree\">git ls-tree<\/a><\/noindex>. Az algoritmus figyelembe veszi a f\u00e1jlokban tal\u00e1lhat\u00f3 bejegyz\u00e9seket, <code>.dockerignore<\/code> \u00e9s csak sz\u00fcks\u00e9g eset\u00e9n j\u00e1rja be f\u00e1jlok f\u00e1j\u00e1t. Ezzel lev\u00e1lasztottuk a f\u00e1jlrendszer olvas\u00e1s\u00e1r\u00f3l, \u00e9s az algoritmus f\u00fcgg\u0151s\u00e9ge a m\u00e9rett\u0151l <code>context<\/code> nem l\u00e9nyeges.<\/p>\n<p>Az algoritmus azt is ellen\u0151rzi, hogy vannak-e nyomk\u00f6vetetlen f\u00e1jlok, \u00e9s ha sz\u00fcks\u00e9ges, figyelembe veszi \u0151ket az ellen\u0151rz\u0151 \u00f6sszegben.<\/p>\n<h3>Jav\u00edtva lett a f\u00e1jlok import\u00e1l\u00e1s\u00e1nak teljes\u00edtm\u00e9nye.<\/h3>\n<p>\nA werf v1.1-es verzi\u00f3j\u00e1ban rsync szervert haszn\u00e1lunk a <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/configuration\/stapel_image\/import_directive.html\">f\u00e1jlok import\u00e1l\u00e1s\u00e1hoz artefaktumokb\u00f3l \u00e9s k\u00e9pekb\u0151l.<\/a><\/noindex>Kor\u00e1bban az import\u00e1l\u00e1s k\u00e9t l\u00e9p\u00e9sben t\u00f6rt\u00e9nt, a host rendszer k\u00f6nyvt\u00e1r\u00e1nak csatol\u00e1s\u00e1val.<\/p>\n<p>Az import\u00e1l\u00e1s teljes\u00edtm\u00e9nye macOS-en m\u00e1r nem korl\u00e1toz\u00f3dik a Docker volumes-ra, \u00e9s az import\u00e1l\u00e1sok ugyanolyan sebess\u00e9ggel t\u00f6rt\u00e9nnek, mint Linuxon \u00e9s Windows-on.<\/p>\n<h3>Tartalom alap\u00fa c\u00edmk\u00e9z\u00e9s<\/h3>\n<p>\nA Werf v1.1 t\u00e1mogatja az \u00fagynevezett tartalom alap\u00fa c\u00edmk\u00e9z\u00e9st a k\u00e9pek eset\u00e9ben \u2014 <i>tartalmi alap\u00fa c\u00edmk\u00e9z\u00e9s<\/i>. A l\u00e9trej\u00f6v\u0151 Docker-k\u00e9pek c\u00edmk\u00e9i az ezen k\u00e9pek tartalm\u00e1t\u00f3l f\u00fcggenek.<\/p>\n<p>A parancs futtat\u00e1sakor <code>werf publish --tags-by-stages-signature<\/code> vagy <code>werf ci-env --tagging-strategy=stages-signature<\/code> a megjel\u00f6lt k\u00e9pek \u00fagynevezett <b>st\u00e1diumok al\u00e1\u00edr\u00e1sa szerint<\/b> lesznek. Minden k\u00e9pet a saj\u00e1t st\u00e1dium\u00e1nak al\u00e1\u00edr\u00e1sa c\u00edmk\u00e9z, amely ugyanazokkal a szab\u00e1lyokkal sz\u00e1m\u00edthat\u00f3, mint minden egyes st\u00e1dium norm\u00e1l al\u00e1\u00edr\u00e1sa, de egy \u00e1ltal\u00e1nos\u00edt\u00f3 azonos\u00edt\u00f3 a k\u00e9p sz\u00e1m\u00e1ra.<\/p>\n<p>A k\u00e9p st\u00e1dium\u00e1nak al\u00e1\u00edr\u00e1sa a k\u00f6vetkez\u0151kt\u0151l f\u00fcgg:<\/p>\n<ol>\n<li> ennek a k\u00e9pnek a tartalm\u00e1t\u00f3l;<\/li>\n<li> a Git-ben v\u00e9grehajtott m\u00f3dos\u00edt\u00e1sok t\u00f6rt\u00e9net\u00e9t\u0151l, amelyek ehhez a tartalomhoz vezettek.<\/li>\n<\/ol>\n<p>\nA Git-reposzitoriumban mindig vannak \u00fcres elk\u00f6telez\u0151d\u00e9seket, amelyek nem v\u00e1ltoztatj\u00e1k meg a k\u00e9pf\u00e1jlok tartalm\u00e1t. P\u00e9ld\u00e1ul, elk\u00f6telez\u00e9sek csak megjegyz\u00e9sekkel vagy merge-elk\u00f6telez\u00e9sek, vagy olyan elk\u00f6telez\u00e9sek, amelyek m\u00f3dos\u00edtj\u00e1k a Git f\u00e1jlokat, amelyeket nem fognak import\u00e1lni a k\u00e9pbe.<\/p>\n<p>A content-based tagging haszn\u00e1lat\u00e1val megoldhat\u00f3k a Kubernetes alkalmaz\u00e1s podjainak felesleges \u00fajraind\u00edt\u00e1sainak probl\u00e9m\u00e1i, amelyek a k\u00e9p nev\u00e9nek megv\u00e1ltoztat\u00e1s\u00e1b\u00f3l ad\u00f3dnak, m\u00e9g akkor is, ha a k\u00e9p tartalma nem v\u00e1ltozott. Egy\u00e9bk\u00e9nt ez az egyik oka annak, hogy t\u00f6bb mikroszolg\u00e1ltat\u00e1st neh\u00e9z egyetlen Git-t\u00e1rol\u00f3ban t\u00e1rolni.<\/p>\n<p>A content-based tagging emellett megb\u00edzhat\u00f3bb c\u00edmk\u00e9z\u00e9si m\u00f3dszer, mint a Git-\u00e1gak szerinti c\u00edmk\u00e9z\u00e9s, mivel a v\u00e9gs\u0151 k\u00e9pek tartalma nem f\u00fcgg a CI-rendszer pipeline-jainak v\u00e9grehajt\u00e1si sorrendj\u00e9t\u0151l, amikor t\u00f6bb commitot kell \u00f6sszegy\u0171jteni ugyanazon \u00e1gban.<\/p>\n<p><b>Fontos<\/b>: starting from this moment <i>stages-signature<\/i> \u2014 ez <b>the only recommended tagging strategy<\/b>. It will be used by default in the team <code>werf ci-env<\/code> (unless another tagging scheme is explicitly specified).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/reference\/publish_process.html#%D1%82%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2-%D0%BF%D0%BE-%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%BC%D1%83\">\u2192 Dokument\u00e1ci\u00f3<\/a><\/noindex>. This feature will also be addressed in a separate publication. <b>UPDATED<\/b> (April 3): Article with details <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/495112\/\">kiad\u00e1sra ker\u00fclt<\/a><\/noindex>.<\/p>\n<h3>Logging levels<\/h3>\n<p>\nThe user now has the ability to control the output, set the logging level, and work with debug information. Added options <code>--log-quiet<\/code>, <code>--log-verbose<\/code>, <code>--log-debug<\/code>.<\/p>\n<p>By default, the output contains minimal information:<\/p>\n<p><img decoding=\"async\" alt=\"A werf 1.1-es verzi\u00f3ja: fejleszt\u00e9sek a build rendszerben ma \u00e9s j\u00f6v\u0151beni tervek\" src=\"\/wp-content\/uploads\/2020\/04\/58e981b2e0c579ddde817eadc1732874.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWhen using detailed output (<code>--log-verbose<\/code>) you can trace how werf operates:<\/p>\n<p><img decoding=\"async\" alt=\"A werf 1.1-es verzi\u00f3ja: fejleszt\u00e9sek a build rendszerben ma \u00e9s j\u00f6v\u0151beni tervek\" src=\"\/wp-content\/uploads\/2020\/04\/487ed5dfc5df0178f7c09f8da697ceff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDetailed output (<code>--log-debug<\/code>), in addition to werf's debug information, also contains logs of the libraries used. For example, you can see how interaction with Docker Registry occurs, as well as pinpoint where significant time is spent:<\/p>\n<p><img decoding=\"async\" alt=\"A werf 1.1-es verzi\u00f3ja: fejleszt\u00e9sek a build rendszerben ma \u00e9s j\u00f6v\u0151beni tervek\" src=\"\/wp-content\/uploads\/2020\/04\/99c1f3c2ab3803ff11fae1f2d5c9a5af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Further plans<\/h2>\n<p>\n<b>Figyelem!<\/b> The features described below marked <b>v1.1<\/b> will be available in this version, many of them \u2014 in the near future. Updates will come via auto-updates <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/guides\/installation.html#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-1-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D0%B9-multiwerf\">when using multiwerf<\/a><\/noindex>. These features do not affect the stable part of the v1.1 functions, their appearance will not require manual intervention from the user in already existing configurations.<\/p>\n<h3>Full support for various Docker Registry implementations (NEW)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Timeline: March<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/2199\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nGoal \u2014 the user should be able to use any implementation without restrictions when using werf. <\/p>\n<p>Currently, we have identified the following set of solutions for which we plan to guarantee full support:<\/p>\n<ul>\n<li> Default (library\/registry)*,<\/li>\n<li> AWS ECR,<\/li>\n<li> Azure*,<\/li>\n<li> Docker Hub,<\/li>\n<li> GCR*,<\/li>\n<li> GitHub Packages,<\/li>\n<li> GitLab Registry*,<\/li>\n<li> Harbor*,<\/li>\n<li> Quay.<\/li>\n<\/ul>\n<p>\nSolutions marked with an asterisk are currently fully supported by werf. For others, support exists but with limitations.<\/p>\n<p>Two main issues can be highlighted:<\/p>\n<ul>\n<li> Some solutions do not support tag deletion via the Docker Registry API, preventing users from utilizing the automatic cleanup implemented in werf. This is true for AWS ECR, Docker Hub, and GitHub Packages.<\/li>\n<li> Egyes megold\u00e1sok nem t\u00e1mogatj\u00e1k az \u00fagynevezett, nested repositories-t (Docker Hub, GitHub Packages \u00e9s Quay), vagy t\u00e1mogatj\u00e1k, de a felhaszn\u00e1l\u00f3nak manu\u00e1lisan kell l\u00e9trehoznia \u0151ket UI vagy API seg\u00edts\u00e9g\u00e9vel (AWS ECR).<\/li>\n<\/ul>\n<p>\nEzeket \u00e9s egy\u00e9b probl\u00e9m\u00e1kat a nat\u00edv API-k felhaszn\u00e1l\u00e1s\u00e1val k\u00edv\u00e1njuk megoldani. Ebbe a feladatba beletartozik a werf teljes ciklus\u00e1nak tesztel\u00e9se mindegyik eset\u00e9ben.<\/p>\n<h3>Elosztott image-\u00f6sszeszerel\u00e9s (\u2191)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Verzi\u00f3: v1.2 v1.1 (a funkci\u00f3 megval\u00f3s\u00edt\u00e1s\u00e1nak priorit\u00e1sa n\u0151tt)<\/i><\/li>\n<li> <i>Id\u0151keret: m\u00e1rcius-\u00e1prilis m\u00e1rcius<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/1614\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nJelenleg a werf v1.0 \u00e9s v1.1 csak egy dedik\u00e1lt hoszton haszn\u00e1lhat\u00f3 az image-\u00f6sszeszerel\u00e9si \u00e9s publik\u00e1l\u00e1si m\u0171veletekhez, valamint az alkalmaz\u00e1s Kubernetes-be val\u00f3 telep\u00edt\u00e9s\u00e9hez.<\/p>\n<p>Ahhoz, hogy megnyissuk a werf elosztott m\u0171k\u00f6d\u00e9s\u00e9nek lehet\u0151s\u00e9geit, amikor az alkalmaz\u00e1sok \u00f6ssze\u00e1ll\u00edt\u00e1sa \u00e9s telep\u00edt\u00e9se a Kubernetes-ben t\u00f6bb tetsz\u0151leges hoszton t\u00f6rt\u00e9nik, \u00e9s ezek a hosztok nem \u0151rzik meg \u00e1llapotukat az \u00f6sszeszerel\u00e9sek k\u00f6z\u00f6tt (ideiglenes runner-ek), a werf-nek implement\u00e1lnia kell a Docker Registry-t mint szakaszok t\u00e1rol\u00f3j\u00e1t.<\/p>\n<p>Kor\u00e1bban, amikor a werf projekt m\u00e9g dapp n\u00e9ven futott, volt egy ilyen lehet\u0151s\u00e9g. Azonban sz\u00e1mos probl\u00e9m\u00e1val szembes\u00fclt\u00fcnk, amelyeket figyelembe kell venni a funkci\u00f3 werf-ben val\u00f3 megval\u00f3s\u00edt\u00e1sakor.<\/p>\n<p><b>Megjegyz\u00e9s<\/b>Ez a lehet\u0151s\u00e9g nem ig\u00e9nyli a buildel\u0151t a Kubernetes podjain bel\u00fcl, mivel ez elt\u00e1vol\u00edtja a helyi Docker-szerverre val\u00f3 f\u00fcgg\u0151s\u00e9get (a Kubernetes podban nincs hozz\u00e1f\u00e9r\u00e9s a helyi Docker-szerverhez, mivel a folyamat maga egy kont\u00e9nerben fut, \u00e9s a Docker-szerver h\u00e1l\u00f3zati el\u00e9r\u00e9se az werf nem t\u00e1mogatja \u00e9s nem is fogja t\u00e1mogatni). A Kubernetes t\u00e1mogat\u00e1sa k\u00fcl\u00f6n val\u00f3sul meg.<\/p>\n<h3>Hivatalos t\u00e1mogat\u00e1s a GitHub Actions-hoz (\u00daJ)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Timeline: March<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/2210\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nTartalmazza a werf dokument\u00e1ci\u00f3j\u00e1t (szakaszok <i>reference<\/i> \u00e9s <i>\u00fatmutat\u00f3<\/i>), valamint a hivatalos GitHub Action-t a werf-hez val\u00f3 munk\u00e1hoz.<\/p>\n<p>Ezen k\u00edv\u00fcl lehet\u0151v\u00e9 teszi az werf m\u0171k\u00f6d\u00e9s\u00e9t efemer futtat\u00f3kon.<\/p>\n<p>A felhaszn\u00e1l\u00f3 \u00e9s a CI-rendszer k\u00f6z\u00f6tti interakci\u00f3k a pull-requesteken t\u00f6rt\u00e9n\u0151 c\u00edmk\u00e9z\u00e9sek alapj\u00e1n t\u00f6rt\u00e9nnek, hogy bizonyos m\u0171veleteket ind\u00edtsanak el az alkalmaz\u00e1s buildel\u00e9s\u00e9hez\/telep\u00edt\u00e9s\u00e9hez.<\/p>\n<h3>Helyi fejleszt\u00e9s \u00e9s alkalmaz\u00e1sok telep\u00edt\u00e9se werf-fel (\u2193)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Id\u0151keret: janu\u00e1r-febru\u00e1r \u00e1prilis<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/1940\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nF\u0151 c\u00e9l \u2014 egy egys\u00e9ges, egys\u00e9ges\u00edtett konfigur\u00e1ci\u00f3 el\u00e9r\u00e9se az alkalmaz\u00e1sok telep\u00edt\u00e9s\u00e9hez, ak\u00e1r helyben, ak\u00e1r production k\u00f6rnyezetben, bonyolult l\u00e9p\u00e9sek n\u00e9lk\u00fcl, \u201edobozb\u00f3l ki\u201d,.<\/p>\n<p>A werf-t\u0151l elv\u00e1rj\u00e1k, hogy olyan m\u0171k\u00f6d\u00e9si m\u00f3dot biztos\u00edtson, amely lehet\u0151v\u00e9 teszi az alkalmaz\u00e1s k\u00f3dj\u00e1nak k\u00e9nyelmes szerkeszt\u00e9s\u00e9t, \u00e9s az alkalmaz\u00e1s m\u0171k\u00f6d\u00e9s\u00e9vel azonnali visszajelz\u00e9st kapjunk a hibakeres\u00e9shez.<\/p>\n<h3>\u00daj tiszt\u00edt\u00e1si algoritmus (\u00daJDONS\u00c1G)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Hat\u00e1rid\u0151k: \u00e1prilis<\/i><\/li>\n<li> <i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/issues\/2212\">Issue<\/a><\/noindex><\/i><\/li>\n<\/ul>\n<p>\nA jelenlegi werf v1.1 verzi\u00f3ban a <code>tiszt\u00edt\u00e1si folyamatban<\/code> nem rendelkezik tiszt\u00edt\u00e1si lehet\u0151s\u00e9ggel a tartalom-alap\u00fa c\u00edmk\u00e9z\u00e9si s\u00e9ma alapj\u00e1n, \u00edgy ezek az k\u00e9pek felhalmoz\u00f3dnak.<\/p>\n<p>A jelenlegi werf verzi\u00f3kban (v1.0 \u00e9s v1.1) elt\u00e9r\u0151 tiszt\u00edt\u00e1si politik\u00e1k \u00e9rv\u00e9nyesek a c\u00edmk\u00e9z\u00e9si s\u00e9m\u00e1k szerint publik\u00e1lt k\u00e9pekre: Git-\u00e1g, Git-c\u00edmke vagy Git-commit.<\/p>\n<p>Kital\u00e1lt\u00e1k az \u00f6sszes c\u00edmk\u00e9z\u00e9si s\u00e9ma sz\u00e1m\u00e1ra egys\u00e9ges k\u00e9ptiszt\u00edt\u00e1si algoritmust, amely a Git commitok t\u00f6rt\u00e9nete alapj\u00e1n m\u0171k\u00f6dik:<\/p>\n<ul>\n<li> Tartsunk meg legfeljebb N1 k\u00e9pet, amelyek a legutols\u00f3 N2 commit-hoz kapcsol\u00f3dnak minden git HEAD (\u00e1gak \u00e9s c\u00edmk\u00e9k) eset\u00e9n.<\/li>\n<li> Tartsunk meg legfeljebb N1 k\u00e9pk\u00e9nti szakaszt, amelyek a legutols\u00f3 N2 commit-hoz kapcsol\u00f3dnak minden git HEAD (\u00e1gak \u00e9s c\u00edmk\u00e9k) eset\u00e9n.<\/li>\n<li> Minden k\u00e9pet t\u00e1rolni kell, amelyeket a Kubernetes klaszter b\u00e1rmely er\u0151forr\u00e1s\u00e1ban haszn\u00e1lnak (minden kube-kont\u00e9xtus \u00e9s namespace a konfigur\u00e1ci\u00f3s f\u00e1jlban be lesz scanned; ezt a viselked\u00e9st speci\u00e1lis opci\u00f3kkal lehet korl\u00e1tozni).<\/li>\n<li> Tartsuk meg az \u00f6sszes k\u00e9pet, amelyet a Helm-kiad\u00e1sokban mentett er\u0151forr\u00e1sok konfigur\u00e1ci\u00f3s manifestjeiben haszn\u00e1lnak.<\/li>\n<li> A k\u00e9p elt\u00e1vol\u00edthat\u00f3, ha nem kapcsol\u00f3dik egyetlen git HEAD-hez sem (p\u00e9ld\u00e1ul mert az adott HEAD is elt\u00e1vol\u00edt\u00e1sra ker\u00fclt), \u00e9s nem haszn\u00e1lj\u00e1k a Kubernetes klaszterben vagy a Helm-kiad\u00e1sokban tal\u00e1lhat\u00f3 egyetlen manifestben sem.<\/li>\n<\/ul>\n<p><\/p>\n<h3>P\u00e1rhuzamos k\u00e9pszerkeszt\u00e9s (\u2193)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Version: v1.1<\/i><\/li>\n<li> <i>Hat\u00e1rid\u0151k: janu\u00e1r-febru\u00e1r \u00e1prilis*<\/i><\/li>\n<\/ul>\n<p>\nA jelenlegi werf verzi\u00f3 egym\u00e1s ut\u00e1n gy\u0171jti a k\u00e9peket \u00e9s artefaktumokat, amelyek a <code>werf.yaml<\/code>benne foglaltak. Sz\u00fcks\u00e9ges a f\u00fcggetlen k\u00e9pf\u00e1zisok \u00e9s artefaktumok gy\u00e1rt\u00e1si folyamat\u00e1nak p\u00e1rhuzamos\u00edt\u00e1sa, valamint k\u00e9nyelmes \u00e9s informat\u00edv kimenet biztos\u00edt\u00e1sa.<\/p>\n<p><i>* Megjegyz\u00e9s: a hat\u00e1rid\u0151 eltol\u00f3dott, mivel priorit\u00e1st \u00e9lvez a p\u00e1rhuzamos gy\u00e1rt\u00e1s megval\u00f3s\u00edt\u00e1sa, amely t\u00f6bb lehet\u0151s\u00e9get ad a horizont\u00e1lis sk\u00e1l\u00e1z\u00e1sra, valamint a werf haszn\u00e1lat\u00e1ra a GitHub Actions-szal. A p\u00e1rhuzamos gy\u00e1rt\u00e1s a k\u00f6vetkez\u0151 l\u00e9p\u00e9s az optimaliz\u00e1l\u00e1sban, amely vertik\u00e1lis sk\u00e1l\u00e1zhat\u00f3s\u00e1got eredm\u00e9nyez egyetlen projekt gy\u00e1rt\u00e1sa sor\u00e1n.<\/i><\/p>\n<h3>\u00c1t\u00e1ll\u00e1s a Helm 3-ra (\u2193)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Verzi\u00f3: v1.2<\/i><\/li>\n<li> <i>Hat\u00e1rid\u0151k: febru\u00e1r-m\u00e1rcius m\u00e1jus*<\/i><\/li>\n<\/ul>\n<p>\nTartalmazza az \u00faj k\u00f3dalapra val\u00f3 \u00e1tmenetet <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/news\/t\/475722\/\">Helm 3<\/a><\/noindex> \u00e9s egy tesztelt, k\u00e9nyelmes megold\u00e1st a megl\u00e9v\u0151 telep\u00edt\u00e9sek migr\u00e1l\u00e1s\u00e1ra.<\/p>\n<p><i>* Megjegyz\u00e9s: az \u00e1t\u00e1ll\u00e1s a Helm 3-ra nem ad jelent\u0151s \u00faj k\u00e9pess\u00e9geket a werf-hez, mivel a Helm 3 kulcsfontoss\u00e1g\u00fa funkci\u00f3i (3-way-merge \u00e9s a tiller hi\u00e1nya) m\u00e1r megval\u00f3sultak a werf-ben. S\u0151t, a werf rendelkezik <noindex><a rel=\"nofollow\" href=\"https:\/\/werf.io\/documentation\/reference\/deploy_process\/differences_with_helm.html\">tov\u00e1bbi lehet\u0151s\u00e9gekkel<\/a><\/noindex> is a felsoroltakon k\u00edv\u00fcl. Az \u00e1t\u00e1ll\u00e1s azonban a terveink k\u00f6z\u00f6tt szerepel \u00e9s meg fogjuk val\u00f3s\u00edtani.<\/i><\/p>\n<h3>Jsonnet a Kubernetes konfigur\u00e1ci\u00f3 le\u00edr\u00e1s\u00e1hoz (\u2193)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Verzi\u00f3: v1.2<\/i><\/li>\n<li> <i>Hat\u00e1rid\u0151k: janu\u00e1r-febru\u00e1r \u00e1prilis-m\u00e1jus<\/i><\/li>\n<\/ul>\n<p>\nA Werf t\u00e1mogatni fogja a Kubernetes konfigur\u00e1ci\u00f3 le\u00edr\u00e1s\u00e1t Jsonnet form\u00e1tumban. Emellett a werf tov\u00e1bbra is kompatibilis lesz a Helm-mel, \u00e9s lesz lehet\u0151s\u00e9g a le\u00edr\u00e1si form\u00e1tum v\u00e1laszt\u00e1s\u00e1ra.<\/p>\n<p>Az ok az, hogy sokak v\u00e9lem\u00e9nye szerint a Go nyelv mint\u00e1i magasan \u00e1ll\u00f3 bel\u00e9p\u00e9si k\u00fcsz\u00f6bbel rendelkeznek, \u00e9s a k\u00f3d \u00e9rthet\u0151s\u00e9ge is szenved a mint\u00e1k miatt.<\/p>\n<p>Tov\u00e1bb\u00e1 m\u00e1s Kubernetes konfigur\u00e1ci\u00f3s le\u00edr\u00f3 rendszerek (p\u00e9ld\u00e1ul Kustomize) bevezet\u00e9s\u00e9nek lehet\u0151s\u00e9ge is vizsg\u00e1lat alatt \u00e1ll.<\/p>\n<h3>Munkav\u00e9gz\u00e9s a Kubernetes-en bel\u00fcl (\u2193)<\/h3>\n<p><\/p>\n<ul>\n<li> <i>Verzi\u00f3: v1.2<\/i><\/li>\n<li> <i>Hat\u00e1rid\u0151k: \u00e1prilis-m\u00e1jus m\u00e1jus-j\u00fanius<\/i><\/li>\n<\/ul>\n<p>\nC\u00e9l: a k\u00e9pek \u00f6ssze\u00e1ll\u00edt\u00e1sa \u00e9s az alkalmaz\u00e1s sz\u00e1ll\u00edt\u00e1sa Kubernetes-ben runner-ek haszn\u00e1lat\u00e1val. Teh\u00e1t az \u00faj k\u00e9pek \u00f6ssze\u00e1ll\u00edt\u00e1sa, publik\u00e1l\u00e1sa, takar\u00edt\u00e1sa \u00e9s telep\u00edt\u00e9se k\u00f6zvetlen\u00fcl a Kubernetes pod-okb\u00f3l t\u00f6rt\u00e9nhet.<\/p>\n<p>Ehhez a lehet\u0151s\u00e9ghez els\u0151 l\u00e9p\u00e9sk\u00e9nt elengedhetetlen a k\u00e9pek elosztott \u00f6ssze\u00e1ll\u00edt\u00e1s\u00e1nak lehet\u0151s\u00e9ge <i>(l\u00e1sd a fenti pontot)<\/i>.<\/p>\n<p>Tov\u00e1bb\u00e1 sz\u00fcks\u00e9ges a compiler m\u0171k\u00f6d\u00e9s\u00e9nek t\u00e1mogat\u00e1sa Docker szerver n\u00e9lk\u00fcl (azaz Kaniko-szer\u0171 \u00e9p\u00edt\u00e9s vagy felhaszn\u00e1l\u00f3i t\u00e9rben t\u00f6rt\u00e9n\u0151 \u00e9p\u00edt\u00e9s).<\/p>\n<p>A Werf nemcsak Dockerfile, hanem saj\u00e1t Stapel compiler-j\u00e9vel is t\u00e1mogatni fogja a Kubernetes-ben t\u00f6rt\u00e9n\u0151 \u00f6ssze\u00e1ll\u00edt\u00e1st, amely inkrement\u00e1lis \u00fajra\u00e9p\u00edt\u00e9seket \u00e9s Ansible-t is tartalmaz.<\/p>\n<h2>L\u00e9p\u00e9s a ny\u00edlt fejleszt\u00e9s fel\u00e9<\/h2>\n<p>\nSzeretj\u00fck a k\u00f6z\u00f6ss\u00e9g\u00fcnket (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\">GitHub<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/werf_ru\">Telegram<\/a><\/noindex>) \u00e9s azt akarjuk, hogy egyre t\u00f6bb ember seg\u00edtse a werf jav\u00edt\u00e1s\u00e1t, \u00e9rts\u00e9k, merre tartunk, \u00e9s r\u00e9szt vegyenek a fejleszt\u00e9sben.<\/p>\n<p>Nemr\u00e9giben d\u00f6nt\u00e9st hoztunk az \u00e1t\u00e1ll\u00e1sr\u00f3l <noindex><a rel=\"nofollow\" href=\"https:\/\/help.github.com\/en\/github\/managing-your-work-on-github\/about-project-boards\">GitHub project boards<\/a><\/noindex> hogy nyitottabb\u00e1 tegy\u00fck a csapatunk munkafolyamat\u00e1t. Most m\u00e1r l\u00e1that\u00f3k a k\u00f6zelj\u00f6v\u0151 tervei, valamint a jelenlegi munk\u00e1k a k\u00f6vetkez\u0151 ter\u00fcleteken:<\/p>\n<ul>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/projects\/9\">Dokument\u00e1ci\u00f3 \u00e9s webhely<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/projects\/7\">Tesztel\u00e9s<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/projects\/6\">Hib\u00e1k \u00e9s Rossz UX<\/a><\/noindex>;<\/li>\n<li> <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\/projects\/5\">1.1<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nSok munk\u00e1t v\u00e9gezt\u00fcnk el az issues-zal kapcsolatban:<\/p>\n<ul>\n<li> A nem relev\u00e1nsak elt\u00e1vol\u00edt\u00e1sra ker\u00fcltek.<\/li>\n<li> A megl\u00e9v\u0151ket egys\u00e9ges form\u00e1tumba, elegend\u0151 r\u00e9szletess\u00e9ggel \u00e9s inform\u00e1ci\u00f3val l\u00e1ttuk el.<\/li>\n<li> \u00daj issues ker\u00fcltek hozz\u00e1ad\u00e1sra \u00f6tletekkel \u00e9s javaslatokkal.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Hogyan aktiv\u00e1lhat\u00f3 a v1.1-es verzi\u00f3<\/h2>\n<p>\nA verzi\u00f3 jelenleg el\u00e9rhet\u0151 a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf#backward-compatibility-promise\">the 1.1 ea channel<\/a><\/noindex> (csatorn\u00e1kban <i>stable<\/i> \u00e9s <i>rock-solid<\/i> kiad\u00e1sok \u00e9rkeznek, ahogy stabiliz\u00e1l\u00f3dik, azonban <i>ea<\/i> maga m\u00e1r el\u00e9g stabil haszn\u00e1latra, mivel \u00e1tment a csatorn\u00e1kon. <i>alpha<\/i> \u00e9s <i>beta<\/i>). Aktiv\u00e1lva <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/guides\/installation.html#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-1-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D0%B9-multiwerf\">a multiwerf-en kereszt\u00fcl<\/a><\/noindex> a k\u00f6vetkez\u0151 m\u00f3don:<\/p>\n<pre><code class=\"bash\">source $(multiwerf use 1.1 ea)\nwerf COMMAND ...<\/code><\/pre>\n<p><\/p>\n<h2>Z\u00e1r\u00e1s<\/h2>\n<p>\nAz \u00faj szakaszos t\u00e1rol\u00e1si architekt\u00fara \u00e9s a Stapel \u00e9s Dockerfile \u00e9p\u00edt\u0151k sz\u00e1m\u00e1ra optimaliz\u00e1lt munkafolyamat lehet\u0151v\u00e9 teszi a p\u00e1rhuzamos \u00e9s elosztott \u00e9p\u00edt\u00e9si feladatok megval\u00f3s\u00edt\u00e1s\u00e1t a werf-en bel\u00fcl. Ezek a lehet\u0151s\u00e9gek hamarosan el\u00e9rhet\u0151k lesznek az 1.1-es verzi\u00f3ban \u00e9s automatikusan el\u00e9rhet\u0151k lesznek az automatikus friss\u00edt\u00e9sek r\u00e9v\u00e9n (felhaszn\u00e1l\u00f3knak) <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.werf.io\/v1.1\/documentation\/guides\/installation.html#%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1-1-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D0%B9-multiwerf\">multiwerf<\/a><\/noindex>). <\/p>\n<p>Ebben a verzi\u00f3ban hozz\u00e1adtunk egy tartalom alap\u00fa c\u00edmk\u00e9z\u00e9si strat\u00e9gi\u00e1t \u2014 <i>tartalmi alap\u00fa c\u00edmk\u00e9z\u00e9s<\/i>, \u2014 amely az alap\u00e9rtelmezett strat\u00e9gi\u00e1v\u00e1 v\u00e1lt. \u00c1tdolgoztuk a f\u0151 parancsok napl\u00f3z\u00e1s\u00e1t is: <code>werf build<\/code>, <code>werf publish<\/code>, <code>werf deploy<\/code>, <code>werf dismiss<\/code>, <code>werf cleanup<\/code>.<\/p>\n<p>A k\u00f6vetkez\u0151 jelent\u0151s l\u00e9p\u00e9s az elosztott \u00e9p\u00edt\u00e9sek hozz\u00e1ad\u00e1sa lesz. Az elosztott \u00e9p\u00edt\u00e9sek a v1.0 \u00f3ta priorit\u00e1st kaptak a p\u00e1rhuzamos \u00e9p\u00edt\u00e9sekkel szemben, mivel nagyobb \u00e9rt\u00e9ket adnak a werf-nek: a gy\u00e1rt\u00f3k f\u00fcgg\u0151leges sk\u00e1l\u00e1z\u00e1s\u00e1t \u00e9s az efemer gy\u00e1rt\u00f3k t\u00e1mogat\u00e1s\u00e1t k\u00fcl\u00f6nb\u00f6z\u0151 CI\/CD rendszerekben, valamint a GitHub Actions hivatalos t\u00e1mogat\u00e1s\u00e1nak lehet\u0151s\u00e9g\u00e9t. Ez\u00e9rt a p\u00e1rhuzamos \u00e9p\u00edt\u00e9sek megval\u00f3s\u00edt\u00e1s\u00e1nak id\u0151pontj\u00e1t elhalasztottuk. Mindazon\u00e1ltal azon dolgozunk, hogy mindk\u00e9t lehet\u0151s\u00e9get mihamarabb megval\u00f3s\u00edtsuk.<\/p>\n<p>K\u00f6vessen minket a h\u00edrek\u00e9rt! Ne felejtsen el ell\u00e1togatni hozz\u00e1nk a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\">GitHub<\/a><\/noindex>, hogy l\u00e9trehozhasson issue-t, megtal\u00e1lhassa a m\u00e1r megl\u00e9v\u0151t \u00e9s pluszt adhasson hozz\u00e1, PR-t k\u00e9sz\u00edthessen, vagy egyszer\u0171en figyelemmel k\u00eds\u00e9rhesse a projekt fejl\u0151d\u00e9s\u00e9t.<\/p>\n<h2>P.S.<\/h2>\n<p>\nOlvasson tov\u00e1bbi inform\u00e1ci\u00f3kat a blogunkban:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/481306\/\">Bemutatjuk a werf 1.0 stabil verzi\u00f3j\u00e1t: mi k\u00f6ze van a GitOps-hoz, a st\u00e1tuszhoz \u00e9s a terveinkhez<\/a><\/noindex>\u00bb<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/460351\/\">werf \u2014 az eszk\u00f6z\u00fcnk CI\/CD-hez Kubernetes-ben (\u00e1ttekint\u00e9s \u00e9s a besz\u00e1mol\u00f3 vide\u00f3ja)<\/a><\/noindex>\u00bb;<\/li>\n<li> A werf \u00fajdons\u00e1gair\u00f3l sz\u00f3l\u00f3 jegyzetek ciklusa:\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/476646\/\">3-way merge a werf-ben: telep\u00edt\u00e9s Kubernetesre Helm \u201eszteroidokkal\u201d<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/468049\/\">A werf haszn\u00e1lata komplex Helm diagramok kiad\u00e1sa sor\u00e1n<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/465131\/\">Monorepo \u00e9s multirepo t\u00e1mogat\u00e1s a werf-ben, \u00e9s mi k\u00f6ze a Docker Registryhez<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/463613\/\">Most Docker images in werf can now be built using a regular Dockerfile<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/493170\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>werf \u2014 \u043d\u0430\u0448\u0430 GitOps CLI-\u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 Kubernetes. \u041a\u0430\u043a \u0438 \u043e\u0431\u0435\u0449\u0430\u043b\u0438, \u0432\u044b\u0445\u043e\u0434 \u0432\u0435\u0440\u0441\u0438\u0438 v1.0 \u0437\u043d\u0430\u043c\u0435\u043d\u043e\u0432\u0430\u043b \u043d\u0430\u0447\u0430\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 werf \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u0435\u0440\u0435\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0435\u043b\u0438\u0437 v1.1, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u0438 \u0437\u0430\u0434\u0435\u043b\u043e\u043c \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 werf. \u0412\u0435\u0440\u0441\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":76765,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-76764","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 werf 1.1: \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0438 \u043f\u043b\u0430\u043d\u044b \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-04T11:42:24+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-04T11:42:24+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47A werf 1.1 kiad\u00e1sa: fejleszt\u00e9sek az \u00e9p\u00edt\u0151ben ma \u00e9s j\u00f6v\u0151beli tervek | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 werf 1.1: \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0435 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0438 \u043f\u043b\u0430\u043d\u044b \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 | ProHoster","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/reliz-werf-1-1-uluchsheniya-v-sborshhike-segodnya-i-plany-na-budushhee","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-04T11:42:24+00:00","article:modified_time":"2020-04-04T11:42:24+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"76764","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:30:23","updated":"2022-09-28 14:39:02","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/76764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=76764"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/76764\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/76765"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=76764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=76764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=76764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}