ویم د کوبرنیټس لپاره د YAML ملاتړ سره

نوټ. ژباړه: اصلي مقاله د VMware د معمار جوش روسو لخوا لیکل شوې وه چې دمخه یې په شرکتونو کې کار کاوه لکه CoreOS او Heptio، او د Kubernetes alb-ingress-controller همکار لیکوال هم دی. لیکوال یو کوچنی ترکیب شریکوي چې د "زاړه ښوونځي" عملیاتو انجینرانو لپاره خورا ګټور کیدی شي څوک چې حتی د بریالي بادل اصلي دور کې ویم غوره کوي.

ویم د کوبرنیټس لپاره د YAML ملاتړ سره

په ویم کې د کبرنیټس لپاره د YAML څرګندونه لیکل؟ بې شمیره ساعتونه یې د دې معلومولو هڅه وکړه چې راتلونکی ساحه باید پدې ځانګړتیا کې چیرته وي؟ یا شاید تاسو به د توپیر یو چټک یادښت ستاینه وکړئ args и command؟ ښه خبر دی! ویم د لینک کولو لپاره اسانه دی yaml-language-serverد اتوماتیک بشپړولو، تایید او نورو اسانتیاوو ترلاسه کولو لپاره. پدې مقاله کې به موږ د دې لپاره د ژبې سرور پیرودونکي تنظیم کولو څرنګوالي په اړه وغږیږو.

(اصلي مقاله هم یوه ویډیو شته؟، چیرې چې لیکوال خبرې کوي او د موادو مینځپانګه څرګندوي.)

د ژبې سرور

د ژبې سرورونه (د ژبې سرورونه) ایډیټورانو او IDEs ته د برنامې ژبې وړتیاو په اړه وغږیږئ ، د کوم لپاره چې دوی د ځانګړي پروتوکول په کارولو سره له یو بل سره اړیکه لري - د ژبې سرور پروټوکول (LSP). دا یو عالي طریقه ده ځکه چې دا یو پلي کولو ته اجازه ورکوي څو ډیری مدیرانو/IDEs ته په یوځل کې ډاټا چمتو کړي. زه لا دمخه لرم لیکلی په اړه gopls - د ګولنګ لپاره د ژبې سرور - او دا څنګه کارول کیدی شي vim. د Kubernetes لپاره په YAML کې د اتوماتیک بشپړتیا ترلاسه کولو مرحلې ورته دي.

ویم د کوبرنیټس لپاره د YAML ملاتړ سره

د دې لپاره چې ویم په بیان شوي طریقه کار وکړي، تاسو به د ژبې سرور پیرودونکي نصبولو ته اړتیا ولرئ. هغه دوه میتودونه چې زه یې پوهیږم د ژبې کلینټ-نیوم и coc.vim. په مقاله کې به زه په پام کې ونیسم coc.vim - دا په اوس وخت کې ترټولو مشهور پلگ ان دی. تاسو کولی شئ له لارې یې نصب کړئ vim-plug:

" Use release branch (Recommend)
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" Or build from source code by use yarn: https://yarnpkg.com
Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'}

د پیل لپاره coc (او په دې توګه د yaml-language-server) به node.js نصب ته اړتیا ولري:

curl -sL install-node.now.sh/lts | bash

کله چې coc.vim ترتیب شوی، د سرور توسیع نصب کړئ coc-yaml له ویم څخه:

:CocInstall coc-yaml

ویم د کوبرنیټس لپاره د YAML ملاتړ سره

په نهایت کې ، تاسو به ډیری احتمال غواړئ د ترتیب سره پیل وکړئ coc-vim، وړاندې شوی د مثال په توګه. په ځانګړې توګه، دا ترکیب فعالوي + ځای د اتوماتیک تکمیل غوښتنه کول.

د یامل - ژبې - سرور کشف تنظیم کول

چې coc د yaml-language-server کارول کیدی شي، دا باید د YAML فایلونو ایډیټ کولو پر مهال د کوبرنیټس څخه سکیما پورته کولو غوښتنه وشي. دا د ترمیم په واسطه ترسره کیږي coc-config:

:CocConfig

په ترتیب کې تاسو اړتیا لرئ اضافه کړئ kubernetes د ټولو فایلونو لپاره yaml. زه د دې لپاره د ژبې سرور هم کاروم golangنو زما عمومي ترتیب داسې ښکاري:

{
  "languageserver": {
      "golang": {
        "command": "gopls",
        "rootPatterns": ["go.mod"],
        "filetypes": ["go"]
      }
  },

  "yaml.schemas": {
      "kubernetes": "/*.yaml"
  }
}

kubernetes - یو خوندي ساحه چې د ژبې سرور ته وايي چې د کوبرنیټس سکیما له URL څخه ډاونلوډ کړي چې په کې تعریف شوي دا ثابت. yaml.schemas د اضافي سکیمونو مالتړ لپاره پراخ کیدی شي - د نورو جزیاتو لپاره، وګورئ اړونده اسناد.

اوس تاسو کولی شئ د YAML فایل جوړ کړئ او د اتوماتیک بشپړولو کارول پیل کړئ. فشارول + ځای (یا په ویم کې ترتیب شوی بل ترکیب) باید د اوسني شرایطو سره سم موجود ساحې او اسناد وښیې:

ویم د کوبرنیټس لپاره د YAML ملاتړ سره
دلته کار کوي + ځای ځکه چې ما تنظیم کړی inoremap <silent><expr> <c-space> coc#refresh(). که تاسو دا کار نه دی کړی، وګورئ coc.nvim README د مثال په توګه ترتیب.

د Kubernetes API نسخه غوره کول

د دې لیکنې سره سم، یامل-ژبه-سرور د کوبرنیټس 1.14.0 سکیمونو سره لیږدول کیږي. ما په متحرک ډول د سکیما غوره کولو لپاره لاره ونه موندله، نو ما خلاص کړ اړونده GitHub مسله. خوشبختانه ، له هغه وخته چې د ژبې سرور په ټایپ سکریپټ کې لیکل شوی ، نو په لاسي ډول نسخه بدلول خورا اسانه دي. د دې کولو لپاره، یوازې فایل ومومئ server.ts.

ستاسو په ماشین کې د دې کشف کولو لپاره ، په ساده ډول د YAML فایل د vim سره خلاص کړئ او پروسه یې ومومئ yaml-language-server.

ps aux | grep -i yaml-language-server

joshrosso         2380  45.9  0.2  5586084  69324   ??  S     9:32PM   0:00.43 /usr/local/Cellar/node/13.5.0/bin/node /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js --node-ipc --node-ipc --clientProcessId=2379
joshrosso         2382   0.0  0.0  4399352    788 s001  S+    9:32PM   0:00.00 grep -i yaml-language-server

زموږ لپاره اړونده پروسه 2380 پروسه ده: دا هغه څه دي چې ویم د YAML فایل ترمیم کولو پرمهال کاروي.

لکه څنګه چې تاسو په اسانۍ سره لیدلی شئ، فایل په کې موقعیت لري /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. یوازې د ارزښت په بدلولو سره یې سم کړئ KUBERNETES_SCHEMA_URLد مثال په توګه، د 1.17.0 نسخه لپاره:

// old 1.14.0 schema
//exports.KUBERNETES_SCHEMA_URL = "https://raw.githubusercontent.com/garethr/kubernetes-json-schema/master/v1.14.0-standalone-strict/all.json";
// new 1.17.0 schema in instrumenta repo
exports.KUBERNETES_SCHEMA_URL = "https://raw.githubusercontent.com/instrumenta/kubernetes-json-schema/master/v1.17.0-standalone-strict/all.json";

د کارول شوي نسخې پورې اړه لري coc-yaml په کوډ کې د متغیر موقعیت ممکن توپیر ولري. مهرباني وکړئ دا هم په یاد ولرئ چې ما له څخه ذخیره بدله کړه garethr په instrumenta. داسې ښکاري چې garethr هلته ملاتړي سرکټونو ته واړول شو.

د دې لپاره چې وګورو چې بدلون اغیزمن شوی، وګورئ چې یو ساحه ښکاري چې مخکې نه وه [د کوبرنیټس په پخوانیو نسخو کې]. د مثال په توګه، د K8s 1.14 لپاره په ډیاګرام کې هیڅ شتون نلري startupProbe:

ویم د کوبرنیټس لپاره د YAML ملاتړ سره

لنډیز

زه امید لرم چې دا فرصت به تاسو خوښ کړي لکه څنګه چې ما کړی. YAMLing مبارک شه! ډاډ ترلاسه کړئ چې دا ذخیره چیک کړئ ترڅو په مقاله کې ذکر شوي اسانتیاوې ښه پوه شي:

PS د ژباړونکي څخه

او هم شته vikube, vim-kubernetes и vimkubectl.

زموږ په بلاګ کې هم ولولئ:

سرچینه: www.habr.com

Add a comment