werf 1.1 නිකුතුව: අද තනන්නාට වැඩිදියුණු කිරීම් සහ අනාගතය සඳහා සැලසුම්

werf 1.1 නිකුතුව: අද තනන්නාට වැඩිදියුණු කිරීම් සහ අනාගතය සඳහා සැලසුම්

werf Kubernetes වෙත යෙදුම් තැනීම සහ බෙදා හැරීම සඳහා අපගේ විවෘත මූලාශ්‍ර GitOps CLI උපයෝගීතාව වේ. පොරොන්දු වූ පරිදි, v1.0 අනුවාදය නිකුත් කිරීම werf වෙත නව විශේෂාංග එකතු කිරීමේ සහ සාම්ප්‍රදායික ප්‍රවේශයන් සංශෝධනය කිරීමේ ආරම්භය සනිටුහන් කළේය. සංවර්ධනයේ විශාල පියවරක් සහ අනාගතය සඳහා පදනමක් වන v1.1 නිකුතුව ඉදිරිපත් කිරීමට අපි දැන් සතුටු වෙමු එකතු කරන්නා werf අනුවාදය දැනට පවතී නාලිකාව 1.1 ea.

නිකුතුවේ පදනම වන්නේ වේදිකා ගබඩාවේ නව ගෘහ නිර්මාණ ශිල්පය සහ එකතුකරන්නන් දෙදෙනාගේම වැඩ ප්‍රශස්ත කිරීම (Stapel සහ Dockerfile සඳහා). නව ගබඩා ගෘහ නිර්මාණ ශිල්පය මඟින් බහු ධාරක වලින් බෙදා හරින ලද එකලස් කිරීම් සහ එකම ධාරකයේ සමාන්තර එකලස් කිරීම් ක්‍රියාත්මක කිරීමේ හැකියාව විවෘත කරයි.

වැඩ ප්‍රශස්තකරණයට වේදිකා අත්සන් ගණනය කිරීමේ අදියරේදී අනවශ්‍ය ගණනය කිරීම් ඉවත් කිරීම සහ ගොනු චෙක්සම් ගණනය කිරීමේ යාන්ත්‍රණ වඩාත් කාර්යක්ෂම ඒවාට වෙනස් කිරීම ඇතුළත් වේ. මෙම ප්‍රශස්තිකරණය werf භාවිතයෙන් ව්‍යාපෘති ගොඩනැගීමේ සාමාන්‍ය කාලය අඩු කරයි. සහ idle builds, සියලුම අදියර හැඹිලියේ පවතින විට අදියර-ගබඩා, දැන් ඇත්තටම වේගවත්. බොහෝ අවස්ථාවලදී, ගොඩනැගීම නැවත ආරම්භ කිරීමට තත්පර 1 කට වඩා අඩු කාලයක් ගතවනු ඇත! කණ්ඩායම් වැඩ කිරීමේ ක්‍රියාවලියේ අදියර සත්‍යාපනය කිරීමේ ක්‍රියා පටිපාටි සඳහා ද මෙය අදාළ වේ. werf deploy и werf run.

මෙම නිකුතුවේදී, අන්තර්ගතය අනුව පින්තූර ටැග් කිරීම සඳහා උපාය මාර්ගයක් දර්ශනය විය - අන්තර්ගතය මත පදනම් වූ ටැග් කිරීම, එය දැන් පෙරනිමියෙන් සක්‍රීය කර ඇති අතර නිර්දේශිත එකම එක.

අපි werf v1.1 හි ප්‍රධාන නවෝත්පාදනයන් දෙස සමීපව බලමු, ඒ සමඟම අනාගතය සඳහා සැලසුම් ගැන ඔබට කියමු.

werf v1.1 හි වෙනස් වී ඇත්තේ කුමක්ද?

හැඹිලියෙන් අදියර තෝරා ගැනීම සඳහා නව අදියර නම් කිරීමේ ආකෘතිය සහ ඇල්ගොරිතම

නව වේදිකා නාම උත්පාදන රීතිය. දැන් එක් එක් අදියර ගොඩනැගීම කොටස් 2කින් සමන්විත අද්විතීය වේදිකා නාමයක් ජනනය කරයි: අත්සනක් (එය v1.0 හි තිබූ පරිදි) සහ අද්විතීය තාවකාලික හඳුනාගැනීමක්.

උදාහරණයක් ලෙස, සම්පූර්ණ වේදිකා රූපයේ නම මේ වගේ විය හැකිය:

werf-stages-storage/myproject:d2c5ad3d2c9fcd9e57b50edd9cb26c32d156165eb355318cebc3412b-1582656767835

...හෝ පොදුවේ:

werf-stages-storage/PROJECT:SIGNATURE-TIMESTAMP_MILLISEC

මෙන්න:

  • SIGNATURE වේදිකා අත්සනක් වන අතර, එය වේදිකා අන්තර්ගතයේ හඳුනාගැනීම නියෝජනය කරන අතර මෙම අන්තර්ගතයට හේතු වූ Git හි සංස්කරණ ඉතිහාසය මත රඳා පවතී;
  • TIMESTAMP_MILLISEC නව රූපයක් ගොඩනඟන අවස්ථාවේදී ජනනය වන සහතික කළ අද්විතීය රූප හඳුනාගැනීමකි.

හැඹිලියෙන් අදියර තෝරා ගැනීමේ ඇල්ගොරිතම පදනම් වී ඇත්තේ Git බැඳීම් වල සම්බන්ධතාවය පරීක්ෂා කිරීම මත ය:

  1. වර්ෆ් යම් අදියරක අත්සන ගණනය කරයි.
  2. В අදියර-ගබඩා දී ඇති අත්සන සඳහා අදියර කිහිපයක් තිබිය හැක. වර්ෆ් අත්සනට ගැලපෙන සියලුම අදියර තෝරා ගනී.
  3. වත්මන් අදියර Git වෙත සම්බන්ධ කර ඇත්නම් (git-archive, Git පැච් සහිත අභිරුචි අදියර: install, beforeSetup, setup; හෝ git-latest-patch), එවිට werf තෝරා ගන්නේ වත්මන් කැපවීමේ මුතුන්මිත්තෙකු වන (ඒ සඳහා ගොඩනැගීම හඳුන්වනු ලබන) කැපවීමකට සම්බන්ධ වූ එම අදියර පමණි.
  4. ඉතිරි සුදුසු අදියර වලින්, එකක් තෝරා ඇත - නිර්මාණය කළ දිනය අනුව පැරණිතම.

විවිධ Git ශාඛා සඳහා වේදිකාවකට එකම අත්සන තිබිය හැක. නමුත් අත්සන් ගැලපුනත්, විවිධ ශාඛා හා සම්බන්ධ හැඹිලිය මෙම ශාඛා අතර භාවිතා කිරීම werf වළක්වයි.

→ ලේඛන.

වේදිකා ගබඩාවේ අදියර නිර්මාණය කිරීම සහ සුරැකීම සඳහා නව ඇල්ගොරිතමයක්

හැඹිලියෙන් අදියර තෝරාගැනීමේදී, werf සුදුසු වේදිකාවක් සොයා නොගන්නේ නම්, නව අදියරක් එකලස් කිරීමේ ක්රියාවලිය ආරම්භ වේ.

බහු ක්‍රියාවලි (ධාරක එකක් හෝ වැඩි ගණනක් මත) ආසන්න වශයෙන් එකම අවස්ථාවේදීම එකම අදියර ගොඩනැගීම ආරම්භ කළ හැකි බව සලකන්න. වර්ෆ් ශුභවාදී අවහිර කිරීමේ ඇල්ගොරිතමයක් භාවිතා කරයි අදියර-ගබඩා අලුතින් එකතු කරන ලද රූපය සුරැකීමේ මොහොතේදී අදියර-ගබඩා. මේ ආකාරයට, නව අදියර ගොඩනැගීම සූදානම් වන විට, werf අවහිර වේ අදියර-ගබඩා සහ අලුතින් එකතු කරන ලද රූපයක් එහි සුරැකෙන්නේ සුදුසු රූපයක් තවදුරටත් එහි නොමැති නම් පමණි (අත්සන සහ අනෙකුත් පරාමිතීන් අනුව - හැඹිලියෙන් අදියර තේරීම සඳහා නව ඇල්ගොරිතම බලන්න).

අලුතින් එකලස් කරන ලද රූපයකට අනන්‍ය හඳුනාගැනීමක් තිබීම සහතික කෙරේ TIMESTAMP_MILLISEC (නව වේදිකා නාමකරණ ආකෘතිය බලන්න). නඩුවේදී අදියර-ගබඩා සුදුසු රූපයක් සොයා ගනු ඇත, werf විසින් නැවුම් ලෙස සම්පාදනය කරන ලද රූපය ඉවතලන අතර හැඹිලියෙන් රූපය භාවිතා කරනු ඇත.

වෙනත් වචන වලින් කිවහොත්: රූපය ගොඩනැගීම අවසන් කිරීමේ පළමු ක්‍රියාවලිය (වේගවත්ම එක) එය අදියර-ගබඩාව තුළ ගබඩා කිරීමේ අයිතිය ලබා ගනී (ඉන්පසු සියලුම ගොඩනැගීම් සඳහා භාවිතා කරනුයේ මෙම තනි රූපයයි). මන්දගාමී ගොඩනැගීමේ ක්‍රියාවලියක් කිසි විටෙකත් වේගවත් ක්‍රියාවලියක් වත්මන් අදියරේ ගොඩනැගීමේ ප්‍රතිඵල සුරැකීමෙන් සහ ඊළඟ ගොඩනැගීමට යාමෙන් අවහිර නොකරයි.

→ ලේඛන.

වැඩි දියුණු කරන ලද ඩොකර්ෆයිල් සාදන්නන්ගේ කාර්ය සාධනය

මේ මොහොතේ, ඩොකර්ෆයිල් එකකින් සාදන ලද රූපයක් සඳහා අදියර නල මාර්ගය එක් අදියරකින් සමන්විත වේ - dockerfile. අත්සන ගණනය කිරීමේදී, ගොනු වල චෙක්සම් ගණනය කරනු ලැබේ context, එකලස් කිරීමේදී භාවිතා කරනු ඇත. මෙම වැඩිදියුණු කිරීමට පෙර, werf පුනරාවර්තන ලෙස සියලුම ගොනු හරහා ගමන් කර එක් එක් ගොනුවේ සන්දර්භය සහ මාදිලිය සාරාංශ කිරීමෙන් චෙක්සම් ලබා ගත්තේය. v1.1 සමඟින් පටන් ගෙන, werf හට Git ගබඩාවක ගබඩා කර ඇති ගණනය කළ චෙක්සම් භාවිතා කළ හැක.

ඇල්ගොරිතම පදනම් වේ git ls-tree. ඇල්ගොරිතමයේ වාර්තා සැලකිල්ලට ගනී .dockerignore අවශ්‍ය වූ විට පමණක් ප්‍රත්‍යාවර්තීව ගොනු ගස හරහා ගමන් කරයි. මේ අනුව, අපි ගොනු පද්ධතිය කියවීමෙන් සහ ඇල්ගොරිතමයේ ප්‍රමාණය මත යැපීම වෙන් කර ඇත. context සැලකිය යුතු නොවේ.

ඇල්ගොරිතම මගින් ලුහුබැඳ නොගත් ගොනු ද පරීක්ෂා කරන අතර, අවශ්ය නම්, චෙක්සම් තුළ ඒවා සැලකිල්ලට ගනී.

ගොනු ආයාත කිරීමේදී වැඩි දියුණු කළ කාර්ය සාධනය

werf v1.1 හි අනුවාද rsync සේවාදායකයක් භාවිතා කරන විට කෞතුක වස්තු සහ පින්තූර වලින් ගොනු ආනයනය කිරීම. මීට පෙර, ධාරක පද්ධතියෙන් බහලුම සවිකිරීමක් භාවිතයෙන් පියවර දෙකකින් ආනයනය කරන ලදී.

MacOS මත ආයාත කාර්ය සාධනය තවදුරටත් Docker වෙළුම්වලින් සීමා නොවන අතර, Linux සහ Windows මෙන් එකම කාලයකදී ආනයනය සම්පූර්ණ වේ.

අන්තර්ගතය මත පදනම් වූ ටැග් කිරීම

Werf v1.1 රූප අන්තර්ගතය අනුව ඊනියා ටැග් කිරීම සඳහා සහය දක්වයි - අන්තර්ගතය මත පදනම් වූ ටැග් කිරීම. ප්‍රතිඵලයක් ලෙස ලැබෙන ඩොකර් පින්තූරවල ටැග් මෙම පින්තූරවල අන්තර්ගතය මත රඳා පවතී.

විධානය ක්රියාත්මක කරන විට werf publish --tags-by-stages-signature හෝ werf ci-env --tagging-strategy=stages-signature ඊනියා පින්තූර ප්රකාශයට පත් කළේය අදියර අත්සන රූප. සෑම රූපයක්ම මෙම රූපයේ අදියරවල ස්වකීය අත්සන සමඟ ටැග් කර ඇත, එය එක් එක් අදියරෙහි නිත්‍ය අත්සන ලෙස වෙන වෙනම එකම නීතිවලට අනුව ගණනය කරනු ලැබේ, නමුත් රූපයේ සාමාන්‍ය හඳුනාගැනීමකි.

රූපයේ අදියරවල අත්සන රඳා පවතින්නේ:

  1. මෙම රූපයේ අන්තර්ගතය;
  2. මෙම අන්තර්ගතයට හේතු වූ Git වෙනස්කම් වල ඉතිහාසය.

Git ගබඩාවක සෑම විටම රූප ගොනු වල අන්තර්ගතය වෙනස් නොකරන ව්‍යාජ කැපවීම් ඇත. උදාහරණයක් ලෙස, අදහස් දැක්වීම් හෝ ඒකාබද්ධ කැපවීම් සමඟ පමණක් කැපවීම්, හෝ රූපයට ආයාත නොකරන Git හි ඇති එම ගොනු වෙනස් කරන කැපවීම්.

අන්තර්ගතය මත පදනම් වූ ටැග් කිරීම භාවිතා කරන විට, රූපයේ අන්තර්ගතය වෙනස් වී නොමැති වුවද, රූපයේ නමේ වෙනස්වීම් හේතුවෙන් Kubernetes හි යෙදුම් පොඩ්ස් අනවශ්‍ය ලෙස නැවත ආරම්භ කිරීමේ ගැටළු විසඳනු ලැබේ. මාර්ගය වන විට, මෙය එක් යෙදුමක බොහෝ ක්ෂුද්‍ර සේවා එක් Git ගබඩාවක ගබඩා කිරීම වළක්වන එක් හේතුවකි.

එසේම, අන්තර්ගතය මත පදනම් වූ ටැගින් කිරීම Git ශාඛා මත ටැග් කිරීමට වඩා විශ්වාසදායක ටැගින් ක්‍රමයක් වේ, මක්නිසාද යත් ප්‍රතිඵලයක් ලෙස ලැබෙන පින්තූරවල අන්තර්ගතය එකම ශාඛාවේ බහු වගකීම් එකලස් කිරීම සඳහා CI පද්ධතිය තුළ නල මාර්ග ක්‍රියාත්මක වන අනුපිළිවෙල මත රඳා නොපවතී.

වැදගත්: දැන් පටන් අදියර-අත්සන - මෙය එකම නිර්දේශිත ටැග් කිරීමේ උපාය මාර්ගය. එය විධානයේ පෙරනිමියෙන් භාවිතා කරනු ඇත werf ci-env (ඔබ පැහැදිලිවම වෙනත් ටැග් කිරීමේ ක්‍රමයක් සඳහන් කරන්නේ නම් මිස).

→ ලේඛන. මෙම විශේෂාංගය සඳහා වෙනම ප්‍රකාශනයක් ද වෙන් කරනු ලැබේ. යාවත්කාලීන කරන ලදී (අප්රේල් 3): විස්තර සහිත ලිපිය පළ කර ඇත.

ලොග් මට්ටම්

පරිශීලකයාට දැන් ප්‍රතිදානය පාලනය කිරීමට, ලොග් මට්ටම සැකසීමට සහ දෝශ නිරාකරණ තොරතුරු සමඟ වැඩ කිරීමට අවස්ථාව තිබේ. විකල්ප එකතු කරන ලදී --log-quiet, --log-verbose, --log-debug.

පෙරනිමියෙන්, ප්‍රතිදානයේ අවම තොරතුරු අඩංගු වේ:

werf 1.1 නිකුතුව: අද තනන්නාට වැඩිදියුණු කිරීම් සහ අනාගතය සඳහා සැලසුම්

වාචික ප්‍රතිදානය භාවිතා කරන විට (--log-verbose) werf ක්‍රියා කරන ආකාරය ඔබට දැක ගත හැක:

werf 1.1 නිකුතුව: අද තනන්නාට වැඩිදියුණු කිරීම් සහ අනාගතය සඳහා සැලසුම්

සවිස්තරාත්මක ප්රතිදානය (--log-debug), werf debugging තොරතුරු වලට අමතරව, භාවිතා කරන ලද පුස්තකාල වල ලඝු-සටහන් ද අඩංගු වේ. උදාහරණයක් ලෙස, Docker Registry සමඟ අන්තර්ක්‍රියා සිදුවන ආකාරය ඔබට දැක ගත හැකි අතර, සැලකිය යුතු කාලයක් ගත කරන ස්ථාන ද වාර්තා කරන්න:

werf 1.1 නිකුතුව: අද තනන්නාට වැඩිදියුණු කිරීම් සහ අනාගතය සඳහා සැලසුම්

අනාගත සැලැස්ම

කරුණාකරලා! පහත විස්තර කර ඇති විකල්ප සලකුණු කර ඇත v1.1 මෙම අනුවාදයෙන් ලබා ගත හැකි වනු ඇත, ඒවායින් බොහොමයක් නුදුරු අනාගතයේ දී ය. යාවත්කාලීන ස්වයංක්‍රීය යාවත්කාලීන හරහා පැමිණෙනු ඇත multiwerf භාවිතා කරන විට. මෙම විශේෂාංග v1.1 ශ්‍රිතවල ස්ථායී කොටසට බලපාන්නේ නැත; ඒවායේ පෙනුම සඳහා පවතින වින්‍යාසයන්හි අතින් පරිශීලක මැදිහත්වීමක් අවශ්‍ය නොවේ.

විවිධ ඩොකර් රෙජිස්ට්‍රි ක්‍රියාත්මක කිරීම් සඳහා පූර්ණ සහාය (නව)

ඉලක්කය වන්නේ පරිශීලකයා werf භාවිතා කරන විට සීමාවකින් තොරව අභිරුචි ක්‍රියාත්මක කිරීමක් භාවිතා කිරීමයි.

දැනට, අපි සම්පූර්ණ සහාය සහතික කිරීමට යන පහත විසඳුම් මාලාව හඳුනාගෙන ඇත:

  • පෙරනිමි (පුස්තකාලය/රෙජිස්ට්‍රි)*,
  • AWS ECR
  • Azure*,
  • ඩොකර් හබ්
  • GCR*,
  • GitHub පැකේජ
  • GitLab රෙජිස්ට්රි*,
  • වරාය*,
  • ක්වේ.

දැනට werf විසින් සම්පුර්ණයෙන්ම සහාය දක්වන විසඳුම් තරු ලකුණකින් සලකුණු කර ඇත. අනෙක් අයට සහාය ඇත, නමුත් සීමාවන් ඇත.

ප්රධාන ගැටළු දෙකක් හඳුනාගත හැකිය:

  • සමහර විසඳුම් Docker Registry API භාවිතයෙන් ටැග් ඉවත් කිරීමට සහය නොදක්වයි, පරිශීලකයින් werf හි ස්වයංක්‍රීය පිරිසිදු කිරීම භාවිතා කිරීම වළක්වයි. AWS ECR, Docker Hub සහ GitHub පැකේජ සඳහා මෙය සත්‍ය වේ.
  • සමහර විසඳුම් ඊනියා කැදැලි ගබඩාවලට (Docker Hub, GitHub Packages සහ Quay) සහය නොදක්වයි, නමුත් පරිශීලකයා ඒවා UI හෝ API (AWS ECR) භාවිතයෙන් අතින් නිර්මාණය කළ යුතුය.

අපි විසඳුම්වල ස්වදේශීය API භාවිතයෙන් මෙම සහ වෙනත් ගැටළු විසඳීමට යන්නෙමු. මෙම කර්තව්‍යයට වර්ෆ් ක්‍රියාකාරිත්වයේ සම්පූර්ණ චක්‍රය ආවරණය කිරීම ද ඇතුළත් වේ.

බෙදා හරින ලද රූප ගොඩනැගීම (↑)

  • අනුවාදය: v1.2 v1.1 (මෙම විශේෂාංගය ක්‍රියාත්මක කිරීමේ ප්‍රමුඛතාවය වැඩි කර ඇත)
  • දිනයන්: මාර්තු-අප්රේල් මාර්තු
  • නිකුත් කිරීම

මේ මොහොතේ, werf v1.0 සහ v1.1 භාවිතා කළ හැක්කේ පින්තූර ගොඩනැගීමේ සහ ප්‍රකාශනය කිරීමේ සහ යෙදුම Kubernetes වෙත යෙදවීමේ මෙහෙයුම් සඳහා එක් කැපවූ ධාරකයක පමණි.

වර්ෆ්ගේ බෙදා හරින ලද කාර්යයේ හැකියාවන් විවෘත කිරීම සඳහා, Kubernetes හි යෙදුම් තැනීම සහ යෙදවීම අත්තනෝමතික ධාරක කිහිපයක් මත දියත් කරන විට සහ මෙම ධාරක ගොඩනැගීම් (තාවකාලික ධාවකයන්) අතර ඔවුන්ගේ තත්වය ඉතිරි නොකරන විට, භාවිතා කිරීමේ හැකියාව ක්‍රියාත්මක කිරීමට werf අවශ්‍ය වේ. වේදිකා ගබඩාවක් ලෙස ඩොකර් රෙජිස්ට්‍රිය.

මීට පෙර, werf ව්‍යාපෘතිය තවමත් dapp ලෙස හැඳින්වූ විට, එයට එවැනි අවස්ථාවක් තිබුණි. කෙසේ වෙතත්, werf හි මෙම ක්‍රියාකාරීත්වය ක්‍රියාත්මක කිරීමේදී සැලකිල්ලට ගත යුතු ගැටළු ගණනාවක් අපට හමු වී ඇත.

අදහස් දැක්වීම්. මෙම විශේෂාංගයට එකතු කරන්නාට Kubernetes කරල් තුළ වැඩ කිරීමට අවශ්‍ය නොවේ, මන්ද මෙය සිදු කිරීම සඳහා, ඔබ දේශීය ඩොකර් සේවාදායකය මත යැපීමෙන් මිදීමට අවශ්‍ය වේ (කුබර්නෙටස් පොඩ්හි දේශීය ඩොකර් සේවාදායකයට ප්‍රවේශයක් නොමැත, මන්ද ක්‍රියාවලියම කන්ටේනරයක ක්‍රියාත්මක වන අතර වර්ෆ් සහාය නොදක්වන අතර සහාය නොදක්වයි. ජාලය හරහා ඩොකර් සේවාදායකය සමඟ වැඩ කිරීම). Kubernetes ධාවනය සඳහා වන සහාය වෙන වෙනම ක්‍රියාත්මක කෙරේ.

GitHub ක්‍රියා සඳහා නිල සහාය (නව)

වර්ෆ් ලේඛන ඇතුළත් වේ (අංශ යොමුව и මඟ පෙන්වීමක්), මෙන්ම werf සමඟ වැඩ කිරීම සඳහා නිල GitHub ක්‍රියාව.

ඊට අමතරව, එය එෆීමර් ධාවකයන් මත වැඩ කිරීමට werf හට ඉඩ සලසයි.

CI පද්ධතිය සමඟ පරිශීලක අන්තර්ක්‍රියා යාන්ත්‍ර විද්‍යාව පදනම් වන්නේ යෙදුම ගොඩනැගීමට/හැරීමට යම් යම් ක්‍රියා ආරම්භ කිරීමට ඇදීමේ ඉල්ලීම් මත ලේබල් තැබීම මතය.

දේශීය සංවර්ධනය සහ werf (↓) සමඟ යෙදුම් යෙදවීම

ප්‍රධාන ඉලක්කය වන්නේ සංකීර්ණ ක්‍රියාවලින් තොරව දේශීයව සහ නිෂ්පාදනයේදී යෙදුම් යෙදවීම සඳහා තනි ඒකාබද්ධ වින්‍යාසයක් සාක්ෂාත් කර ගැනීමයි.

යෙදුම් කේතය සංස්කරණය කිරීමට සහ නිදොස්කරණය සඳහා ක්‍රියාත්මක වන යෙදුමෙන් ක්ෂණිකව ප්‍රතිපෝෂණ ලබා ගැනීමට පහසු වන මෙහෙයුම් ආකාරයක් werf සතුව තිබීම අවශ්‍ය වේ.

නව පිරිසිදු කිරීමේ ඇල්ගොරිතම (නව)

ක්‍රියා පටිපාටියේ werf v1.1 හි වත්මන් අනුවාදයේ cleanup අන්තර්ගතය මත පදනම් වූ ටැග් කිරීමේ යෝජනා ක්‍රමය සඳහා පින්තූර පිරිසිදු කිරීම සඳහා ප්‍රතිපාදන නොමැත - මෙම පින්තූර එකතු වනු ඇත.

එසේම, werf හි වත්මන් අනුවාදය (v1.0 සහ v1.1) ටැග් කිරීමේ යෝජනා ක්‍රම යටතේ ප්‍රකාශිත පින්තූර සඳහා විවිධ පිරිසිදු කිරීමේ ප්‍රතිපත්ති භාවිතා කරයි: Git ශාඛාව, Git ටැගය හෝ Git commit.

සියලුම ටැග් කිරීමේ යෝජනා ක්‍රම සඳහා ඒකාබද්ධ වූ Git හි කැපවීම්වල ඉතිහාසය මත පදනම්ව පින්තූර පිරිසිදු කිරීම සඳහා නව ඇල්ගොරිතමයක් නිර්මාණය කර ඇත:

  • එක් එක් git HEAD (ශාඛා සහ ටැග්) සඳහා N1 නවතම කැපවීම් හා සම්බන්ධ N2 ​​රූපවලට වඩා තබා නොගන්න.
  • එක් එක් git HEAD (ශාඛා සහ ටැග්) සඳහා N1 නවතම කැපවීම් හා සම්බන්ධ N2 ​​අදියර රූප ගබඩා නොකරන්න.
  • ඕනෑම Kubernetes පොකුරු සම්පත් වල භාවිතා වන සියලුම පින්තූර ගබඩා කරන්න (වින්‍යාස ගොනුවේ සියලුම kube සන්දර්භයන් සහ නාම අවකාශයන් පරිලෝකනය කර ඇත; ඔබට මෙම හැසිරීම විශේෂ විකල්ප සමඟ සීමා කළ හැක).
  • Helm නිකුතු වල සුරකින ලද සම්පත් වින්‍යාස මැනිෆෙස්ට් වල භාවිතා වන සියලුම පින්තූර ගබඩා කරන්න.
  • රූපයක් git වෙතින් කිසිදු HEAD සමඟ සම්බන්ධ නොවන්නේ නම් (උදාහරණයක් ලෙස, අනුරූප HEAD මකා දැමූ නිසා) සහ Kubernetes පොකුරේ සහ Helm නිකුතුවල කිසිදු මැනිෆෙස්ට් එකක භාවිතා නොකළහොත් එය මකා දැමිය හැක.

සමාන්තර රූප ගොඩනැගීම (↓)

  • අනුවාදය: v1.1
  • දින: ජනවාරි-පෙබරවාරි අප්රේල්*

werf හි වත්මන් අනුවාදය විස්තර කර ඇති පින්තූර සහ පුරාවස්තු එකතු කරයි werf.yaml, අනුපිළිවෙලින්. රූප සහ කෞතුක භාණ්ඩවල ස්වාධීන අවධීන් එකලස් කිරීමේ ක්රියාවලිය සමාන්තරගත කිරීම මෙන්ම පහසු සහ තොරතුරු ප්රතිදානය සැපයීම අවශ්ය වේ.

* සටහන: බෙදා හරින ලද එකලස් කිරීම ක්‍රියාත්මක කිරීම සඳහා වැඩි ප්‍රමුඛතාවයක් හේතුවෙන් නියමිත කාලසීමාව මාරු කර ඇත, එමඟින් වඩාත් තිරස් පරිමාණ කිරීමේ හැකියාවන් මෙන්ම GitHub ක්‍රියා සමඟ werf භාවිතය ද එකතු වේ. සමාන්තර එකලස් කිරීම ඊළඟ ප්‍රශස්තිකරණ පියවර වන අතර, එක් ව්‍යාපෘතියක් එකලස් කිරීමේදී සිරස් පරිමාණය සපයයි.

හෙල්ම් 3 වෙත සංක්‍රමණය (↓)

  • අනුවාදය: v1.2
  • දින: පෙබරවාරි-මාර්තු මැයි*

නව කේත පදනම වෙත සංක්‍රමණය ඇතුළත් වේ හෙල්ම් 3 සහ දැනට පවතින ස්ථාපනයන් සංක්‍රමණය කිරීමට ඔප්පු කළ හැකි පහසු ක්‍රමයක්.

* සටහන: Helm 3 වෙත මාරු වීම werf වෙත සැලකිය යුතු විශේෂාංග එක් නොකරනු ඇත, මන්ද Helm 3 හි සියලුම ප්‍රධාන ලක්ෂණ (3-මාර්ග ඒකාබද්ධ කිරීම සහ ටිලර් නැත) දැනටමත් werf හි ක්‍රියාත්මක කර ඇත. එපමණක්ද නොව, werf සතුව ඇත අමතර විශේෂාංග දක්වා ඇති ඒවාට අමතරව. කෙසේ වෙතත්, මෙම සංක්‍රාන්තිය අපගේ සැලසුම්වල පවතින අතර එය ක්‍රියාත්මක කරනු ඇත.

Kubernetes වින්‍යාසය විස්තර කිරීම සඳහා Jsonnet (↓)

  • අනුවාදය: v1.2
  • දිනයන්: ජනවාරි-පෙබරවාරි අප්රේල්-මැයි

Jsonnet ආකෘතියෙන් Kubernetes සඳහා වින්‍යාස විස්තර සඳහා Werf සහාය දක්වයි. ඒ අතරම, werf Helm සමඟ අනුකූලව පවතිනු ඇති අතර විස්තර ආකෘතියේ තේරීමක් ඇත.

හේතුව බොහෝ දෙනෙකුට අනුව Go templates වලට ඉහල ඇතුල්වීමේ බාධකයක් ඇති අතර, මෙම සැකිලි වල code වල අවබෝධයද දුක් විඳීමයි.

අනෙකුත් Kubernetes වින්‍යාස විස්තර පද්ධති (උදාහරණයක් ලෙස, Kustomize) හඳුන්වා දීමේ හැකියාව ද සලකා බලමින් පවතී.

Kubernetes (↓) තුළ වැඩ කිරීම

  • අනුවාදය: v1.2
  • දිනයන්: අප්රේල්-මැයි මැයි-ජුනි

අරමුණ: Kubernetes හි ධාවකයන් භාවිතයෙන් පින්තූර ගොඩනගා ඇති බවත් යෙදුම ලබා දෙන බවත් සහතික කර ගන්න. එම. නව පින්තූර Kubernetes කරල් වලින් කෙලින්ම ගොඩනගා, ප්‍රකාශනය, පිරිසිදු කිරීම සහ යෙදවිය හැක.

මෙම හැකියාව ක්රියාත්මක කිරීම සඳහා, ඔබ මුලින්ම බෙදා හරින ලද පින්තූර ගොඩනගා ගත යුතුය (ඉහත කරුණ බලන්න).

එයට Docker සේවාදායකයක් නොමැතිව (එනම් Kaniko-like build or build in userpace) තනන්නාගේ මෙහෙයුම් ආකාරය සඳහා සහය අවශ්‍ය වේ.

ඩොකර්ෆයිල් සමඟ පමණක් නොව, වර්‍ෆ් නැවත ගොඩනැංවීම් සහ ඇන්සිබල් සමඟ එහි ස්ටැපල් බිල්ඩර් සමඟ ද කුබර්නෙටස් මත ගොඩනැඟීමට වර්ෆ් සහාය වනු ඇත.

විවෘත සංවර්ධනය සඳහා පියවරක්

අපි අපේ ප්රජාවට ආදරෙයි (GitHub, විදුලි පණිවුඩ) සහ වර්ෆ් වඩා හොඳ කිරීමට, අප ගමන් කරන දිශාව තේරුම් ගැනීමට සහ සංවර්ධනයට සහභාගී වීමට වැඩි වැඩියෙන් මිනිසුන්ට උදව් කිරීමට අපට අවශ්‍යය.

වෙත මාරු වීමට ඉතා මෑතකදී තීරණය විය GitHub ව්‍යාපෘති පුවරු අපගේ කණ්ඩායමේ වැඩ කිරීමේ ක්රියාවලිය හෙළිදරව් කිරීම සඳහා. දැන් ඔබට පහත සඳහන් ක්ෂේත්‍රවල ක්ෂණික සැලසුම් මෙන්ම වත්මන් වැඩ දැක ගත හැකිය:

ගැටළු සමඟ බොහෝ වැඩ කර ඇත:

  • අදාල නැති ඒවා අයින් කලා.
  • පවතින ඒවා ප්රමාණවත් තරම් විස්තර සහ විස්තර සහිතව, තනි ආකෘතියකට ගෙන එනු ලැබේ.
  • අදහස් සහ යෝජනා සමඟ නව ගැටළු එකතු කර ඇත.

v1.1 අනුවාදය සබල කරන්නේ කෙසේද

අනුවාදය දැනට පවතී නාලිකාව 1.1 ea (නාලිකා වල ස්ථාවර и ගල්-ඝන කෙසේ වෙතත්, ස්ථායීකරණය සිදු වන විට නිකුත් කිරීම් දිස්වනු ඇත ea එය දැනටමත් භාවිතයට ප්‍රමාණවත් තරම් ස්ථායී වේ, මන්ද නාලිකා හරහා ගියා ඇල්ෆා и බීටා) සක්රිය කර ඇත multiwerf හරහා පහත ආකාරයෙන්:

source $(multiwerf use 1.1 ea)
werf COMMAND ...

නිගමනය

Stapel සහ Dockerfile සාදන්නන් සඳහා නව අදියර ගබඩා ගෘහ නිර්මාණ ශිල්පය සහ ඉදිකිරීම් ප්‍රශස්තිකරණය werf හි බෙදා හරින ලද සහ සමාන්තර ගොඩනැගීම් ක්‍රියාත්මක කිරීමේ හැකියාව විවෘත කරයි. මෙම විශේෂාංග ඉක්මනින්ම එම v1.1 නිකුතුවේ දිස්වනු ඇති අතර ස්වයංක්‍රීය යාවත්කාලීන යාන්ත්‍රණය හරහා (පරිශීලකයින් සඳහා) ස්වයංක්‍රීයව ලබා ගත හැක. බහුකාර්ය).

මෙම නිකුතුවේදී, රූප අන්තර්ගතය මත පදනම් වූ ටැග් කිරීමේ උපාය මාර්ගයක් එක් කර ඇත - අන්තර්ගතය මත පදනම් වූ ටැග් කිරීම, පෙරනිමි උපාය මාර්ගය බවට පත්ව ඇත. ප්‍රධාන විධාන ලොගය ද නැවත සකස් කර ඇත: werf build, werf publish, werf deploy, werf dismiss, werf cleanup.

ඊළඟ වැදගත් පියවර වන්නේ බෙදා හරින ලද එක්රැස්වීම් එකතු කිරීමයි. බෙදා හරින ලද ගොඩනැගීම් v1.0 සිට සමාන්තර ගොඩනැගීමට වඩා ඉහළ ප්‍රමුඛතාවයක් බවට පත් වී ඇත්තේ ඒවා werf වෙත වැඩි වටිනාකමක් එක් කරන බැවිනි: තනන්නන්ගේ සිරස් පරිමාණය සහ විවිධ CI/CD පද්ධතිවල එෆීමර් තනන්නන් සඳහා සහය මෙන්ම GitHub ක්‍රියා සඳහා නිල සහාය ලබා දීමේ හැකියාව. . එබැවින්, සමාන්තර රැස්වීම් සඳහා ක්රියාත්මක කිරීමේ කාලසීමාවන් මාරු කරන ලදී. කෙසේ වෙතත්, හැකි ඉක්මනින් එම අවස්ථා දෙකම ක්‍රියාත්මක කිරීමට අපි කටයුතු කරමින් සිටිමු.

පුවත් අනුගමනය කරන්න! ඒ වගේම අපිව බලන්න අමතක කරන්න එපා GitHubගැටලුවක් නිර්මාණය කිරීමට, පවතින එකක් සොයාගෙන එකතු කිරීමක් එකතු කරන්න, PR එකක් සාදන්න, නැතහොත් ව්‍යාපෘතියේ සංවර්ධනය නැරඹීමට.

ප්රාදේශීය සභා

අපගේ බ්ලොග් අඩවියේ ද කියවන්න:

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න