Vim ngenkxaso ye-YAML ye-Kubernetes

Phawula. transl.: Inqaku lokuqala labhalwa nguJosh Rosso, umakhi we-VMware owayesebenza ngaphambili kwiinkampani ezifana ne-CoreOS kunye ne-Heptio, kwaye ungumbhali-mbhali we-Kubernetes alb-ingress-controller. Umbhali wabelana ngeresiphi encinci enokuba luncedo kakhulu kwiinjineli zemisebenzi "yesikolo esidala" ezikhetha i-vim nakwixesha lemveli yelifu eloyisileyo.

Vim ngenkxaso ye-YAML ye-Kubernetes

Ukubhala i-YAML ibonakalisa i-Kubernetes kwi-vim? Uchithe iiyure ezininzi uzama ukufumanisa ukuba intsimi elandelayo ifanele ibe phi kule nkcazelo? Okanye mhlawumbi uya kuxabisa isikhumbuzo esikhawulezayo somahluko args ΠΈ command? Kukho iindaba ezimnandi! Vim kulula ukudibanisa iseva yolwimi-yamlukufumana ugqibo oluzenzekelayo, ukuqinisekiswa kunye nezinye izinto eziluncedo. Kweli nqaku siza kuthetha ngendlela yokuseta umxhasi weseva yolwimi kule nto.

(Inqaku lokuqala nalo ikhona ividiyo, apho umbhali athetha aze abonise imixholo yombandela.)

Umncedisi wolwimi

Abancedisi bolwimi (abancedisi bolwimi) Thetha malunga nobuchule beelwimi zeprogram kubahleli kunye nee-IDE, apho banxibelelana omnye nomnye usebenzisa iprotocol ekhethekileyo - Umgaqo-nkqubo weServer yoLwimi (LSP). Le yindlela enhle kakhulu kuba ivumela ukuphunyezwa okunye ukubonelela ngedatha kubahleli abaninzi / ii-IDE ngaxeshanye. Sele ndinayo wabhala malunga iigopls - iseva yolwimi yeGolang - kunye nendlela enokusetyenziswa ngayo vΓ­m. Amanyathelo okufumana ugqibo oluzenzekelayo kwi-YAML ye-Kubernetes iyafana.

Vim ngenkxaso ye-YAML ye-Kubernetes

Ukuze i-vim isebenze ngendlela echazwe ngayo, kuya kufuneka ufakele umxhasi womncedisi wolwimi. Zimbini iindlela endizaziyo ngazo LanguageClient-neovim ΠΈ coc.vim. Kwinqaku endiza kuliqwalasela coc.vim -Le yeyona plugin idumileyo okwangoku. Ungayifaka ngokusebenzisa 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'}

Okokuqala coc (kwaye ngoko i-yaml-language-server) iyakufuna i-node.js efakiweyo:

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

Xa coc.vim iqwalaselwe, faka ulwandiso lomncedisi coc-yaml ukusuka kwi-vim:

:CocInstall coc-yaml

Vim ngenkxaso ye-YAML ye-Kubernetes

Ekugqibeleni, uya kufuna ukuqala ngoqwalaselo coc-vim, inikezelwe njengomzekelo. Ngokukodwa, ivula indibaniselwano + indawo ukubiza ukugqibezela okuzenzekelayo.

Ukucwangcisa i-yaml-language-server ubhaqo

ukuba coc inokusebenzisa i-yaml-language-server, ifuna ukucelwa ukuba ilayishe i-schema esuka kwi-Kubernetes xa uhlela iifayile ze-YAML. Oku kwenziwa ngokuhlela coc-config:

:CocConfig

Kubumbeko kuya kufuneka udibanise kubernetes kuzo zonke iifayile yaml. Ndisebenzisa kwakhona iseva yolwimi golangngoko uqwalaselo lwam ngokubanzi lujongeka ngolu hlobo:

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

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

kubernetes - indawo egciniweyo exelela umncedisi wolwimi ukuba akhuphele i-Kubernetes schema kwi-URL echazwe kuyo oku rhoqo. yaml.schemas inokwandiswa ukuxhasa izikimu ezongezelelweyo-ukufumana iinkcukacha ezithe vetshe, bona amaxwebhu afanelekileyo.

Ngoku unokwenza ifayile ye-YAML kwaye uqale ukusebenzisa ukugqibezela ngokuzenzekelayo. Ukucinezela + indawo (okanye enye indibaniselwano eqwalaselweyo kwi-vim) kufuneka ibonise imihlaba ekhoyo kunye noxwebhu ngokwemeko yangoku:

Vim ngenkxaso ye-YAML ye-Kubernetes
Isebenza apha +Isithuba ngenxa yokuba ndiqwalasele inoremap <silent><expr> <c-space> coc#refresh(). Ukuba awukwenzanga oku, yabona coc.nvim FUNDA kuqwalaselo lomzekelo.

Ukukhetha i-Kubernetes API version

Ukusukela koku kubhalwa, iinqanawa ze-yaml-language-server ezine-Kubernetes 1.14.0 schemas. Khange ndifumane indlela yokukhetha i-schema, ndiye ndavula umba ohambelana neGitHub. Ngethamsanqa, kuba iseva yolwimi ibhalwe ngokuchwetheza, kulula kakhulu ukuyitshintsha ngesandla inguqulelo. Ukwenza oku, fumana nje ifayile server.ts.

Ukuyibona kumatshini wakho, vula ngokulula ifayile ye-YAML nge-vim kwaye ufumane inkqubo nayo 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

Inkqubo efanelekileyo kuthi yinkqubo 2380: yeyona nto isetyenziswa yivim xa uhlela ifayile yeYAML.

Njengoko unokubona ngokulula, ifayile ikhona /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Yihlele nje ngokutshintsha ixabiso KUBERNETES_SCHEMA_URL, umzekelo, kuguqulelo 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";

Kuxhomekeke kwinguqulelo esetyenzisiweyo coc-yaml Indawo yokuguquguquka kwikhowudi inokwahluka. Nceda uqaphele ukuba nditshintshe indawo yokugcina ukusuka garethr phezu instrumenta. Kubonakala ngathi garethr itshintshelwe kwiisekethe ezixhasayo apho.

Ukujonga ukuba utshintsho luye lwasebenza, jonga ukuba intsimi ibonakala ibingekho ngaphambili [kwiinguqulelo zangaphambili zeKubernetes]. Umzekelo, kwidayagram ye-K8s 1.14 kwakungekho ukuqalaProbe:

Vim ngenkxaso ye-YAML ye-Kubernetes

Isishwankathelo

Ndiyathemba ukuba eli thuba liyakukholisa wena njengokuba linjalo kum. Happy YAMLing! Qiniseka ukuba ujonga ezi ndawo zokugcina ukuze uqonde ngcono izinto eziluncedo ezikhankanywe kwinqaku:

PS evela kumguquleli

Kwaye kukho kwakhona vikube, vim-kubernetes ΠΈ vimkubectl.

Funda nakwibhlog yethu:

umthombo: www.habr.com

Yongeza izimvo