ويم ڪبرنيٽس لاءِ YAML سپورٽ سان

نوٽ. ترجمو: اصل مضمون Josh Rosso پاران لکيو ويو آهي، جيڪو VMware ۾ هڪ معمار آهي، جيڪو اڳ ۾ ڪمپنيون جهڙوڪ CoreOS ۽ Heptio ۾ ڪم ڪري چڪو آهي، ۽ پڻ Kubernetes alb-ingress-controller جو همعصر ليکڪ آهي. ليکڪ هڪ ننڍڙو نسخو شيئر ڪري ٿو جيڪو تمام ڪارائتو ٿي سگهي ٿو ”پراڻي اسڪول“ آپريشن انجنيئرن لاءِ جيڪي ويم کي ترجيح ڏين ٿا جيتوڻيڪ فاتح بادل جي دور ۾.

ويم ڪبرنيٽس لاءِ YAML سپورٽ سان

ويم ۾ ڪبرنيٽس لاءِ YAML منشور لکڻ؟ بيشمار ڪلاڪ خرچ ڪرڻ جي ڪوشش ڪري رهيا آهن ته ايندڙ فيلڊ هن وضاحت ۾ ڪٿي هجڻ گهرجي؟ يا ٿي سگهي ٿو ته توهان فرق جي جلدي ياد ڏياريندڙ جي ساراهه ڪندا args и command؟ سٺي خبر آهي! Vim سان ڳنڍڻ آسان آهي yaml-ٻولي-سرورخودڪار مڪمل ٿيڻ، تصديق ۽ ٻيون سهولتون حاصل ڪرڻ لاءِ. هن آرٽيڪل ۾ اسين ڳالهائينداسين ته ڪيئن سيٽ اپ ڪرڻ لاءِ ٻولي سرور ڪلائنٽ هن لاءِ.

(اصل مضمون پڻ اتي هڪ وڊيو آهي، جتي ليکڪ ڳالهائي ٿو ۽ مواد جي مواد کي ظاهر ڪري ٿو.)

ٻولي سرور

ٻولي سرورز (ٻولي سرور) پروگرامنگ ٻولين جي صلاحيتن بابت ايڊيٽرن ۽ IDEs جي باري ۾ ڳالهايو، جنهن لاءِ اهي هڪ خاص پروٽوڪول استعمال ڪندي هڪ ٻئي سان رابطو ڪن ٿا. ٻوليء جو سرور پروٹوکول (LSP). اهو هڪ بهترين طريقو آهي ڇاڪاڻ ته اهو هڪ عمل درآمد ڪرڻ جي اجازت ڏئي ٿو ڪيترن ئي ايڊيٽرن/IDEs کي هڪ ئي وقت ۾ ڊيٽا مهيا ڪرڻ. مون وٽ اڳ ۾ ئي آهي لکيو جي باري ۾ گوپلس - گولانگ لاءِ هڪ ٻولي سرور - ۽ اهو ڪيئن استعمال ڪري سگهجي ٿو vim. ڪبرنيٽس لاءِ YAML ۾ خودڪار مڪمل ٿيڻ جا قدم ساڳيا آهن.

ويم ڪبرنيٽس لاءِ YAML سپورٽ سان

بيان ڪيل طريقي سان ڪم ڪرڻ لاءِ ويم لاءِ، توهان کي انسٽال ڪرڻو پوندو ٻولي سرور ڪلائنٽ. ٻن طريقن جي مون کي خبر آهي LanguageClient-neovim и 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 vim کان:

:CocInstall coc-yaml

ويم ڪبرنيٽس لاءِ YAML سپورٽ سان

آخرڪار، توهان گهڻو ڪري ترتيب سان شروع ڪرڻ چاهيندا coc-vim، پيش ڪيل مثال طور. خاص طور تي، اهو ميلاپ کي چالو ڪري ٿو + خلا خودڪار مڪمل ٿيڻ کي سڏڻ لاء.

yaml-ٻولي-سرور جي سڃاڻپ کي ترتيب ڏيڻ

ته 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 سپورٽ سان
هتي ڪم ڪري ٿو +space ڇاڪاڻ ته مون ترتيب ڏني inoremap <silent><expr> <c-space> coc#refresh(). جيڪڏهن توهان اهو نه ڪيو آهي، ڏسو coc.nvim README مثال جي تشڪيل لاء.

Kubernetes API ورزن کي چونڊيو

هن لکڻ جي طور تي، yaml-ٻولي-سرور ٻيڙيون Kubernetes 1.14.0 اسڪيمن سان. مون کي متحرڪ طور تي هڪ اسڪيما چونڊڻ جو طريقو نه مليو، تنهنڪري مون کوليو لاڳاپيل GitHub مسئلو. خوشقسمتيءَ سان، جيئن ته ٻوليءَ جو سرور ٽائپ اسڪرپٽ ۾ لکيل آهي، ان ڪري دستي طور ورجن کي تبديل ڪرڻ بلڪل آسان آهي. هن کي ڪرڻ لاء، صرف فائل ڳولهيو server.ts.

توهان جي مشين تي ان کي ڳولڻ لاء، صرف کوليو YAML فائل سان گڏ ۽ عمل سان ڳولهيو 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 اتي سپورٽ سرڪٽس ڏانهن تبديل ڪيو ويو.

چيڪ ڪرڻ لاءِ ته تبديلي اثرائتو ٿي چڪي آهي، ڏسو ته ڇا ڪو فيلڊ ظاهر ٿئي ٿو جيڪو اڳ موجود نه هو [Kubernetes جي پوئين ورزن ۾]. مثال طور، K8s 1.14 لاء ڊراگرام ۾ ڪو به نه هو startupProbe:

ويم ڪبرنيٽس لاءِ YAML سپورٽ سان

خلاصو

مون کي اميد آهي ته هي موقعو توهان کي خوش ڪري ٿو جيترو اهو مون ڪيو هو. خوش ٿيو YAMLing! مضمون ۾ ذڪر ڪيل افاديت کي بهتر سمجهڻ لاءِ انهن ذخيرن کي چيڪ ڪرڻ جي پڪ ڪريو:

پي ايس مترجم کان

۽ اتي پڻ آهي vikube, vim-kubernetes и vimkubectl.

اسان جي بلاگ تي پڻ پڙهو:

جو ذريعو: www.habr.com

تبصرو شامل ڪريو