Vim ine YAML rutsigiro rweKubernetes

Cherechedza. transl.: Chinyorwa chekutanga chakanyorwa naJosh Rosso, mugadziri weVMware aimboshanda kumakambani akadai seCoreOS neHeptio, uye ariwo munyori pamwe chete weKubernetes alb-ingress-controller. Munyori anogovera diki resipi inogona kubatsira zvakanyanya kune "chekare chikoro" mainjiniya anosarudza vim kunyangwe munguva yekukunda kwegore.

Vim ine YAML rutsigiro rweKubernetes

Kunyora YAML inoratidza Kubernetes mu vim? Akapedza maawa asingaverengeki achiedza kufunga kuti iyo inotevera ndima inofanira kunge iri kupi mune iyi yakatarwa? Kana kuti zvimwe uchafarira chiyeuchidzo chinokurumidza chemusiyano args ΠΈ command? Kune mashoko akanaka! Vim iri nyore kubatanidza nayo yaml-language-serverkuwana otomatiki kupedzisa, kusimbiswa uye zvimwe zviri nyore. Muchikamu chino tichataura nezve nzira yekumisikidza mutauro server mutengi kune izvi.

(Chinyorwa chekutanga zvakare pane vhidhiyo, apo munyori anotaura uye anoratidza zviri mukati memashoko acho.)

Sevha yemutauro

Maseva emutauro (maseva emitauro) taura nezve kugona kwemitauro yekuronga kune vapepeti uye IDE, iyo yavanodyidzana vachishandisa yakakosha protocol - Mutauro Server Protocol (LSP). Iyi inzira yakanaka nekuti inobvumira kuita kumwe chete kupa data kune akawanda edhita / maIDE kamwechete. Ndatova nayo akanyora pamusoro gopls - sevha yemutauro yeGolang - uye kuti inogona kushandiswa sei mukati vim. Matanho ekuwana otomatiki muYAML yeKubernetes akafanana.

Vim ine YAML rutsigiro rweKubernetes

Kuti vim ishande nenzira yakatsanangurwa, iwe uchafanirwa kuisa mutauro server mutengi. Nzira mbiri dzandinoziva ndidzo MutauroClient-neovim ΠΈ coc.vim. Muchinyorwa chandichafunga coc.vim - Iyi ndiyo inonyanya kufarirwa plugin panguva ino. Unogona kuiisa kuburikidza 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'}

For start coc (uye nokudaro iyo yaml-language-server) inoda node.js yakaiswa:

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

When coc.vim yakagadziridzwa, isa sevha yekuwedzera coc-yaml kubva vim:

:CocInstall coc-yaml

Vim ine YAML rutsigiro rweKubernetes

Pakupedzisira, iwe ungangoda kutanga nekugadzirisa coc-vim, zvakaratidzwa semuenzaniso. Kunyanya, inomutsa kusanganiswa + nzvimbo kudaidza autocompletion.

Kumisikidza yaml-language-server yekuona

kuti coc inogona kushandisa yaml-language-server, inoda kukumbirwa kurodha schema kubva Kubernetes kana uchigadzirisa mafaera eYAML. Izvi zvinoitwa nekugadzirisa coc-config:

:CocConfig

Mukugadzirisa iwe uchada kuwedzera kubernetes kune ese mafaera yaml. Ini zvakare ndinoshandisa sevha yemutauro ye golangsaka yangu general config inoita seizvi:

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

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

kubernetes - munda wakachengetwa unoudza sevha yemutauro kurodha Kubernetes schema kubva kuURL yakatsanangurwa mukati nguva dzose izvi. yaml.schemas inogona kuwedzerwa kuti itsigire zvimwe zvirongwa - kuti uwane rumwe ruzivo, ona magwaro akakodzera.

Iye zvino unogona kugadzira YAML faira uye wotanga kushandisa autocompletion. Kudzvanya + nzvimbo (kana kumwe kusanganiswa kwakagadziridzwa mu vim) kunofanirwa kuratidza minda iripo uye zvinyorwa zvinoenderana nezviri kuitika:

Vim ine YAML rutsigiro rweKubernetes
Inoshanda pano + nzvimbo nekuti ini ndakagadzira inoremap <silent><expr> <c-space> coc#refresh(). Kana usati waita izvi, maona coc.nvim README kune muenzaniso configuration.

Kusarudza iyo Kubernetes API vhezheni

Nezvekunyora uku, yaml-mutauro-server ngarava dzine Kubernetes 1.14.0 schemas. Ini handina kuwana nzira yekusarudza zvine simba schema, saka ndakavhura inoenderana neGitHub nyaya. Sezvineiwo, sezvo sevha yemutauro yakanyorwa mumanyorero, zviri nyore kuti uchinje vhezheni yacho. Kuti uite izvi, ingotsvaga faira server.ts.

Kuti uzvione pamushini wako, ingovhura iyo YAML faira ne vim uye uwane maitiro 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

Maitiro akakodzera kwatiri ndeyekuita 2380: ndiyo inoshandiswa nevim pakurongedza faira reYAML.

Sezvauri kuona zviri nyore, iyo faira iri mukati /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Ingozvigadzirisa nekushandura kukosha KUBERNETES_SCHEMA_URL, semuenzaniso, yevhezheni 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";

Zvichienderana neshanduro yakashandiswa coc-yaml Nzvimbo yekuchinja mukodhi inogona kusiyana. Ndokumbirawo muone kuti ndakachinja repository kubva garethr pamusoro instrumenta. Zvinoita sokuti garethr akachinjirwa kumaseketi anotsigira ipapo.

Kuti utarise kuti shanduko yatanga here, tarisa kana munda uchionekwa wanga usipo kare [mushanduro dzakapfuura dzeKubernetes]. Semuenzaniso, mumufananidzo weK8s 1.14 pakanga pasina startupProbe:

Vim ine YAML rutsigiro rweKubernetes

Summary

Ndinovimba mukana uyu unokufadzai sezvawakaita ini. Happy YAMLing! Iva nechokwadi chekutarisa idzi repositori kuti unzwisise zviri nani zvishandiso zvinotaurwa muchinyorwa:

PS kubva kumushanduri

Uye pane zvakare vikube, vim-kubernetes ΠΈ vimkubectl.

Verenga zvakare pablog yedu:

Source: www.habr.com

Voeg