Vim oo wata taageerada YAML ee Kubernetes

Ogow. turjumiMaqaalka asalka ah waxaa qoray Josh Rosso, oo ah naqshadeeye ka tirsan VMware oo horay uga soo shaqeeyay shirkado ay ka mid yihiin CoreOS iyo Heptio, sidoo kale waa qoraaga Kubernetes alb-ingress-controller. Qoraagu waxa uu la wadaagaa cunto karinta yar oo faa'iido badan u leh injineerada hawlgallada "dugsiga hore" kuwaas oo doorbidaya vim xitaa xilliga dhalashadii daruuraha guusha leh.

Vim oo wata taageerada YAML ee Kubernetes

Qorista YAML waxay muujineysaa Kubernetes gudaha vim? Ku qaatay saacado aan la tirin karin oo aad isku dayday in aad ogaato halka goobta xigta ay tahay in ay ku jirto qeexitaankan? Ama waxaa laga yaabaa inaad qadarin doonto xasuusin degdeg ah oo ku saabsan farqiga args ΠΈ command? Waxaa jira war wanaagsan! Vim way fududahay in lagu xidho yaml-luqad-serversi aad si toos ah u hesho dhamaystirka, ansixinta iyo waxyaabaha kale ee ku haboon Maqaalkan waxaan ka hadli doonaa sida loo sameeyo macmiilka luqadda tan.

(Maqaalka asalka ah sidoo kale ma muuqaal baa jira, halkaas oo uu qoraagu ka hadlayo oo uu ku muujiyo nuxurka qoraalka.)

Adeegaha luqadda

Adeegayaasha luqadaha (Serfar luuqadeed) kala hadal kartida luuqadaha barnaamijka ee tifaftirayaasha iyo IDE-yada, kuwaas oo ay la falgalaan midba midka kale iyaga oo isticmaalaya borotokool gaar ah - Borotokoolka Adeegga Afka (LSP). Tani waa hab aad u wanaagsan sababtoo ah waxay u oggolaaneysaa hal hirgelin inuu bixiyo xogta tifaftirayaasha / IDE-yada badan hal mar. hore ayaan u haystay ayuu qoray ku saabsan gopls - server-ka luqadda Golang - iyo sida loogu isticmaali karo sababtoo ah. Tallaabooyinka lagu helo dhammaystirka otomaatiga ee YAML ee Kubernetes waa la mid.

Vim oo wata taageerada YAML ee Kubernetes

Si vim uu ugu shaqeeyo habka lagu tilmaamay, waxaad u baahan doontaa inaad ku rakibto macmiil server luqadeed. Labada hab ee aan ogahay waa LanguageClient-neovim ΠΈ coc.vim. Maqaalka waxaan tixgelin doonaa coc.vim - Tani waa plugin ugu caansan xilligan. Waxaad ku rakiban kartaa via 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'}

Bilowga coc (oo markaa yaml-language-server) wuxuu u baahan doonaa node.js oo lagu rakibay:

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

Goorma coc.vim habaysan, rakib kordhinta serverka coc-yaml ka vim:

:CocInstall coc-yaml

Vim oo wata taageerada YAML ee Kubernetes

Ugu dambeyntii, waxay u badan tahay inaad rabto inaad ku bilowdo qaabeynta coc-vim, la soo bandhigay tusaale ahaan. Gaar ahaan, waxay kicisaa isku-dhafka + meel bannaan si aad u wacdo dhamaystirka.

Dejinta ogaanshaha yaml-language-server

in coc waxay isticmaali kartaa yaml-language-server, waxay u baahan tahay in la waydiiyo in laga soo raro schema Kubernetes marka la tafatiraynayo faylasha YAML. Tan waxaa lagu sameeyaa tafatirka coc-config:

:CocConfig

Qaabeynta waxaad u baahan doontaa inaad ku darto kubernetes dhammaan faylasha yaml. Waxa kale oo aan u isticmaalaa server-ka luqadda golangmarka qaabkayga guud wuxuu u egyahay sidan:

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

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

kubernetes - goob gaar ah oo u sheegaysa server-ka luqadda inuu ka soo dejiyo qorshaha Kubernetes URL-ka lagu qeexay tan joogtada ah. yaml.schemas waa la ballaarin karaa si loo taageero qorshayaal dheeraad ah - wixii faahfaahin dheeraad ah, eeg dukumeenti khuseeya.

Hadda waxaad abuuri kartaa faylka YAML oo waxaad bilaabi kartaa dhammaystirka otomaatiga. Cadaadiska + meel bannaan (ama isku-darka kale ee lagu habeeyay vim) waa inuu muujiyaa meelaha la heli karo iyo dukumentiyada iyadoo loo eegayo xaaladda hadda jirta:

Vim oo wata taageerada YAML ee Kubernetes
Halkan ka shaqeeya + meel bannaan sababtoo ah waxaan habeeyey inoremap <silent><expr> <c-space> coc#refresh(). Haddii aadan tan samayn, arag coc.nvim README tusaale ahaan qaabeynta.

Doorashada nooca Kubernetes API

Ilaa hadda qoraalkan, adeegaha luuqada-yaml waxa ay wataan qorshayaasha Kubernetes 1.14.0. Maan helin hab aan si firfircooni leh u doorto schema, markaa waan furay arrinta GitHub u dhiganta. Nasiib wanaag, maadaama server-ka luqadda uu ku qoran yahay far-qorista, way fududahay in gacanta lagu beddelo nooca. Si tan loo sameeyo, kaliya hel faylka server.ts.

Si aad u ogaato mashiinkaaga, si fudud u fur faylka YAML oo wata vim oo la hel habka 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

Habka ku habboon anaga waa habka 2380: waa waxa vim isticmaalo marka la tafatirayo faylka YAML.

Sida aad si fudud u arki karto, faylka ayaa ku yaal /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Kaliya wax ka beddel adiga oo beddelaya qiimaha KUBERNETES_SCHEMA_URL, tusaale ahaan, nooca 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";

Iyada oo ku xidhan nooca loo isticmaalo coc-yaml Meesha doorsoomiyaha koodka wuu kala duwanaan karaa. Fadlan sidoo kale ogow in aan ka bedelay kaydka garethr on instrumenta. Waxay u muuqataa in garethr u wareegay wareegyada taageeraya halkaas.

Si aad u hubiso in isbeddelku uu hirgalay, eeg haddii goob aan hore u jirin [noocyadii hore ee Kubernetes]. Tusaale ahaan, shaxda K8s 1.14 ma jirin startupProbe:

Vim oo wata taageerada YAML ee Kubernetes

Soo koobid

Waxaan rajeynayaa in fursadan ay aad uga farxiso sida ay aniga ila tahay. YAMLing farxad leh! Hubi inaad hubiso meelahan si aad sifiican ugu fahanto adeegyada lagu sheegay maqaalka:

PS ka turjumaan

Oo waxaa kaloo jira vikube, vim-kubernetes ΠΈ vimkubectl.

Sidoo kale ka akhri boggayaga:

Source: www.habr.com

Add a comment