Vim miaraka amin'ny fanohanana YAML ho an'ny Kubernetes

Fanamarihana. transl.: Ny lahatsoratra tany am-boalohany dia nosoratan'i Josh Rosso, mpanao mari-trano ao amin'ny VMware izay niasa taloha tao amin'ny orinasa toa an'i CoreOS sy Heptio, ary izy koa no mpiara-manoratra ny Kubernetes alb-ingress-controller. Ny mpanoratra dia mizara fomba fahandro kely izay mety ho tena ilaina ho an'ny "sekoly taloha" miasa injeniera izay tia vim na dia ao amin'ny vanim-potoana ny mpandresy rahona teratany.

Vim miaraka amin'ny fanohanana YAML ho an'ny Kubernetes

Manoratra YAML manifests ho an'ny Kubernetes amin'ny vim? Nandany ora tsy tambo isaina niezahana hamantatra hoe aiza no tokony hisy ny saha manaraka amin'ity famaritana ity? Na mety hankasitraka ny fampahatsiahivana haingana momba ny fahasamihafana ianao args ΠΈ command? Misy vaovao mahafaly! Vim dia mora mifandray yaml-language-serverhahazoana fahavitan'ny mandeha ho azy, fanamarinana ary fanamorana hafa. Ato amin'ity lahatsoratra ity dia hiresaka momba ny fomba fametrahana mpanjifa mpizara fiteny ho an'izany isika.

(Ny lahatsoratra tany am-boalohany koa misy video ve, izay iresahan’ny mpanoratra sy anehoana ny votoatin’ny fitaovana.)

Mpizara fiteny

Mpizara fiteny (mpizara amin'ny fiteny) miresaka momba ny fahaiza-manaon'ny fiteny fandaharana amin'ny tonian-dahatsoratra sy IDE, izay hifaneraseran'izy ireo amin'ny alΓ lan'ny protocol manokana - Protocol Server Server (LSP). Fomba lehibe izany satria mamela ny fampiharana iray hanome angon-drakitra ho an'ny mpamoaka lahatsoratra/IDE maro indray mandeha. efa manana aho nanoratra about gopls - mpizara fiteny ho an'ny Golang - sy ny fomba fampiasana azy vim. Mitovy ny dingana hahazoana autocompletion amin'ny YAML ho an'ny Kubernetes.

Vim miaraka amin'ny fanohanana YAML ho an'ny Kubernetes

Mba hahafahan'ny vim miasa amin'ny fomba voalaza dia mila mametraka mpanjifa mpizara fiteny ianao. Ny fomba roa fantatro dia LanguageClient-neovim ΠΈ coco.vim. Ao amin'ny lahatsoratra hodinihintsika coc.vim - Ity no plugin malaza indrindra amin'izao fotoana izao. Azonao atao ny mametraka azy amin'ny alΓ lan'ny 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'}

Ho fanombohana coc (ary noho izany ny yaml-language-server) dia mitaky ny fametrahana ny node.js:

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

rehefa coc.vim configured, mametraka ny fanitarana ny mpizara coc-yaml avy amin'ny vim:

:CocInstall coc-yaml

Vim miaraka amin'ny fanohanana YAML ho an'ny Kubernetes

Farany, mety te hanomboka amin'ny fanamboarana ianao coc-vim, aseho ho ohatra. Indrindra indrindra, dia manetsika ny fitambarana +space hiantso ny autocompletion.

Mametraka fitiliana yaml-language-server

fa coc Afaka mampiasa yaml-language-server, mila angatahina ny hampiditra ny schema avy amin'ny Kubernetes rehefa manitsy ny rakitra YAML. Atao amin'ny alalan'ny fanitsiana izany coc-config:

:CocConfig

Ao amin'ny fanamafisana dia mila ampiana ianao kubernetes ho an'ny rakitra rehetra yaml. Mampiasa mpizara fiteny ihany koa aho golangka toy izao ny config ankapohako:

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

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

kubernetes β€” saha voatokana izay milaza amin'ny mpizara fiteny mba hisintona ny tetika Kubernetes avy amin'ny URL voafaritra ao tsy miova ity. yaml.schemas azo itarina hanohanana tetika fanampiny - raha mila fanazavana fanampiny dia jereo antontan-taratasy mifandraika amin'izany.

Afaka mamorona rakitra YAML ianao izao ary manomboka mampiasa autocompletion. maika +space (na fitambarana hafa namboarina ao amin'ny vim) dia tokony hampiseho ireo saha sy antontan-taratasy misy araka ny toe-javatra misy ankehitriny:

Vim miaraka amin'ny fanohanana YAML ho an'ny Kubernetes
+Space dia miasa eto satria nataoko inoremap <silent><expr> <c-space> coc#refresh(). Raha mbola tsy nanao izany ianao dia jereo coc.nvim README ohatra ny configuration.

Mifidy ny Kubernetes API version

Hatramin'ny nanoratana ity, ny yaml-language-server dia mandeha miaraka amin'ny skema Kubernetes 1.14.0. Tsy nahita fomba hifidianana schema amin'ny fomba mavitrika aho, ka nanokatra aho olana GitHub mifanaraka amin'izany. Soa ihany fa satria nosoratana tamin'ny sora-baventy ny mpizara fiteny, dia mora ny manova ny dikan-teny. Mba hanaovana izany, tadiavo fotsiny ny rakitra server.ts.

Raha te hahalala izany amin'ny milinanao dia sokafy fotsiny ny rakitra YAML miaraka amin'ny vim ary tadiavo ny dingana miaraka amin'ny 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

Aminay dia ilaina ny process 2380: io no ampiasain'ny vim rehefa manova rakitra YAML.

Araka ny hitanao mora, ny rakitra dia hita ao /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Ahitsio fotsiny amin'ny fanovana ny sandany KUBERNETES_SCHEMA_URL, ohatra, ho an'ny version 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";

Arakaraka ny dikan-teny ampiasaina coc-yaml Mety tsy hitovy ny toerana misy ny variable ao amin'ny code. Azafady mariho ihany koa fa nanova ny tahiry avy amin'ny garethr amin'ny instrumenta. Toa izany garethr nivadika ho circuits mpanohana any.

Raha te hanamarina fa nisy fiantraikany ilay fanovana dia jereo raha toa ka misy saha tsy hita teo aloha [amin'ny dikan-teny Kubernetes teo aloha]. Ohatra, ao amin'ny kisary ho an'ny K8s 1.14 dia tsy nisy startupProbe:

Vim miaraka amin'ny fanohanana YAML ho an'ny Kubernetes

famintinana

Manantena aho fa ity fahafahana ity dia hampifaly anao tahaka ny nataoko. Happy YAMLing! Aza hadino ny mijery ireto tahiry ireto mba hahatakarana bebe kokoa ireo fitaovana voalaza ao amin'ny lahatsoratra:

PS avy amin'ny mpandika teny

Ary misy koa vikube, vim-kubernetes ΠΈ vimkubectl.

Vakio ihany koa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment