Vim me te tautoko YAML mo Kubernetes

Tuhipoka. whakamaori.: Ko te tuhinga taketake i tuhia e Josh Rosso, he kaihoahoa i VMware i mahi i mua i nga kamupene penei i a CoreOS me Heptio, a ko ia ano te kaituhi o te Kubernetes alb-ingress-controller. Ka tohatohahia e te kaituhi tetahi tohutaka iti ka taea te whai hua mo nga miihini whakahaere "kura tawhito" e pai ana ki te vim ahakoa i te waa o te tangata whenua o te kapua.

Vim me te tautoko YAML mo Kubernetes

Te tuhi i nga whakaaturanga YAML mo nga Kubernetes i roto i te vim? He maha nga haora i pau e ngana ana ki te mohio kei hea te mara e whai ake nei i roto i tenei waahanga? Ka pai pea koe ki te whakamahara tere mo te rereketanga args и command? He rongo pai! He ngawari te hono a Vim yaml-reo-tūmauki te whiwhi whakaoti aunoa, whakamana me etahi atu mea pai. I roto i tenei tuhinga ka korero tatou me pehea te whakarite i tetahi kaihoko kaitoro reo mo tenei.

(Ko te tuhinga taketake hoki he ataata, i reira te kaituhi e korero ai, e whakaatu ana i nga mea o roto i nga korero.)

Tūmau reo

Nga tūmau reo (tūmau reo) korero mo nga kaha o nga reo whakamaoritanga ki nga kaiwhakatikatika me nga IDE, mo te taunekeneke ki a raatau ano ma te whakamahi i tetahi kawa motuhake - Kawa Tūmau Reo (LSP). He huarahi pai tenei na te mea ka taea e te whakatinanatanga kotahi te tuku raraunga ki te maha o nga kaiwhakatika / IDE i te wa kotahi. kua oti ano i ahau i tuhi e pā ana ki gopls - he tūmau reo mo Golang - me pehea te whakamahi i roto VIM. He rite tonu nga hikoi ki te whakaoti aunoa i YAML mo Kubernetes.

Vim me te tautoko YAML mo Kubernetes

Kia pai ai te mahi a vim i runga i te huarahi kua whakamaramatia, me whakauru e koe he kiritaki tūmau reo. Ko nga tikanga e rua e mohio ana ahau LanguageClient-neovim и coc.vim. I roto i te tuhinga ka whakaaro ahau coc.vim - Koinei te mono tino rongonui i tenei wa. Ka taea e koe te whakauru ma te vim-mono:

" 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'}

Hei tiimatanga coc (a na te yaml-language-server) me whakauru node.js:

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

Ahea coc.vim whirihora, tāuta te toronga tūmau coc-yaml mai i te vim:

:CocInstall coc-yaml

Vim me te tautoko YAML mo Kubernetes

Ka mutu, ka hiahia koe ki te timata me te whirihoranga coc-vim, ka whakaatuhia hei tauira. Ina koa, ka whakahohehia te huinga + mokowā ki te karanga whakaoti aunoa.

Te whakarite i te rapunga yaml-language-server

e coc Ka taea te whakamahi i te yaml-language-server, me tono kia utaina te aronuinga mai i Kubernetes i te wa e whakatika ana i nga konae YAML. Ka mahia tenei ma te whakatika coc-config:

:CocConfig

I roto i te whirihoranga ka hiahia koe ki te taapiri kubernetes mo nga kōnae katoa yaml. Ka whakamahi ano ahau i te tūmau reo mo golangno reira he penei taku whirihora whanui:

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

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

kubernetes — he mara kua rahuitia e kii ana ki te tūmau reo ki te tango i te aronuinga Kubernetes mai i te URL kua tautuhia ki roto tenei tonu. yaml.schemas Ka taea te whakawhānui ake hei tautoko i etahi atu kaupapa - mo etahi atu korero, tirohia tuhinga whai take.

Inaianei ka taea e koe te hanga i tetahi konae YAML ka tiimata ki te whakamahi autocompletion. Te pehi + mokowā (me etahi atu huinga kua whirihorahia ki te vim) me whakaatu nga mara me nga tuhinga e waatea ana kia rite ki te horopaki o naianei:

Vim me te tautoko YAML mo Kubernetes
Mahi i konei +mokowā nā te mea i whirihora e au inoremap <silent><expr> <c-space> coc#refresh(). Mena kaore koe i mahi i tenei, tirohia coc.nvim README mo te whirihoranga tauira.

Te whiriwhiri i te putanga API Kubernetes

I tenei wa e tuhi ana, ka tukuna nga kaipuke-tumau reo-yaml me nga kaupapa Kubernetes 1.14.0. Kare au i kitea he huarahi ki te kowhiri i tetahi aronuinga, na reira i whakatuwheratia e au take GitHub e hāngai ana. Waimarie, i te mea kua tuhia te tūmau reo ki te momotuhi, he ngawari noa te huri i te putanga. Ki te mahi i tenei, kimi noa i te konae server.ts.

Ki te kitea i runga i to miihini, whakatuwhera noa i te konae YAML me te vim ka kitea te tukanga me te 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

Ko te tukanga e tika ana mo matou ko te tukanga 2380: ko ta vim te whakamahi ina whakatika i te konae YAML.

Ka kitea e koe, kei roto te konae /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Whakatikatika noa ma te huri i te uara KUBERNETES_SCHEMA_URL, hei tauira, mo te putanga 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";

I runga i te putanga i whakamahia coc-yaml Ko te waahi o te taurangi i roto i te waehere ka rereke pea. Kia mahara ano kua hurihia e ahau te putunga mai i garethr i runga i instrumenta. Te ahua nei garethr ka huri ki te tautoko iahiko i reira.

Hei tirotiro kua whai mana te huringa, tirohia mena ka puta he mara kaore i kona i mua [i nga putanga o mua o Kubernetes]. Hei tauira, i te hoahoa mo K8s 1.14 kahore startupProbe:

Vim me te tautoko YAML mo Kubernetes

Whakarāpopoto

Te ti'aturi nei au e pai ana tenei waahi ki a koe kia rite ki ahau. Kia hari YAMLing! Kia mahara ki te tirotiro i enei putunga kia pai ake te maarama ki nga taputapu kua whakahuahia i roto i te tuhinga:

PS mai i te kaiwhakamaori

A tera ano hoki vikube, vim-kubernetes и vimkubectl.

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero