Vim tare da tallafin YAML don Kubernetes

Lura. fassara: Josh Rosso, masanin gine-gine a VMware ne ya rubuta ainihin labarin wanda a baya ya yi aiki a kamfanoni irin su CoreOS da Heptio, kuma shi ne mawallafin marubucin Kubernetes alb-ingress-controller. Marubucin ya raba ɗan ƙaramin girke-girke wanda zai iya zama da amfani sosai ga injiniyoyin ayyukan "tsohuwar makaranta" waɗanda suka fi son vim har ma a zamanin ɗan ƙasa na girgije mai nasara.

Vim tare da tallafin YAML don Kubernetes

Rubutun YAML yana bayyana don Kubernetes a cikin vim? An kashe sa'o'i marasa adadi don gano inda filin na gaba ya kamata ya kasance a cikin wannan ƙayyadaddun bayanai? Ko wataƙila za ku yaba da saurin tunatarwa na bambancin args и command? Akwai labari mai dadi! Vim yana da sauƙin haɗi zuwa yaml-harshen-uwar garkendon samun cikawa ta atomatik, tabbatarwa da sauran abubuwan more rayuwa. A cikin wannan labarin za mu yi magana game da yadda ake saita abokin ciniki uwar garken harshe don wannan.

(Asali labarin kuma akwai bidiyo, inda marubucin yayi magana kuma ya nuna abubuwan da ke cikin abin.)

uwar garken harshe

Sabar harshe (sabar harshe) magana game da damar shirye-shiryen harsuna zuwa editoci da IDEs, wanda suke hulɗa da juna ta hanyar amfani da yarjejeniya ta musamman - Saitunan Harshe (LSP). Wannan babbar hanya ce domin tana ba da damar aiwatarwa don samar da bayanai ga masu gyara/IDE da yawa a lokaci ɗaya. Na riga ya rubuta game da gopls - uwar garken harshe don Golang - da kuma yadda za a iya amfani da shi a ciki vim. Matakan don samun cikawa ta atomatik a cikin YAML don Kubernetes iri ɗaya ne.

Vim tare da tallafin YAML don Kubernetes

Domin vim yayi aiki ta hanyar da aka bayyana, kuna buƙatar shigar da abokin ciniki uwar garken harshe. Hanyoyi biyu da na sani sune HarsheClient-neovim и kowa.vim. A cikin labarin zan yi la'akari coc.vim - Wannan shi ne mafi mashahuri plugin a halin yanzu. Kuna iya shigar da shi ta hanyar vim-toshe:

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

Don farawa coc (don haka uwar garken-harshen-yaml) zai buƙaci shigar node.js:

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

Lokacin coc.vim saita, shigar da tsawo na uwar garken coc-yaml daga vim:

:CocInstall coc-yaml

Vim tare da tallafin YAML don Kubernetes

A ƙarshe, ƙila za ku so farawa tare da daidaitawa coc-vim, gabatar a matsayin misali. Musamman, yana kunna haɗuwa + sarari don kira autocompletion.

Saita gano uwar garken yaml-harshen

cewa coc zai iya amfani da uwar garken-harshen-yaml, yana buƙatar a nemi ta loda tsarin daga Kubernetes lokacin da ake gyara fayilolin YAML. Ana yin hakan ta hanyar gyarawa coc-config:

:CocConfig

A cikin tsarin za ku buƙaci ƙarawa kubernetes ga duk fayiloli yaml. Ina kuma amfani da uwar garken harshe don golangdon haka babban tsari na yayi kama da haka:

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

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

kubernetes - filin da aka keɓe wanda ke gaya wa uwar garken harshe don zazzage tsarin Kubernetes daga URL ɗin da aka ayyana a ciki wannan akai-akai. yaml.schemas za a iya faɗaɗa don tallafawa ƙarin tsare-tsare - don ƙarin cikakkun bayanai, duba takardun da suka dace.

Yanzu zaku iya ƙirƙirar fayil ɗin YAML kuma fara amfani da kammalawa ta atomatik. Latsawa + sarari (ko wani haɗin da aka saita a cikin vim) yakamata ya nuna filayen da ke akwai da takaddun bisa ga mahallin yanzu:

Vim tare da tallafin YAML don Kubernetes
+Space yana aiki anan saboda na daidaita inoremap <silent><expr> <c-space> coc#refresh(). Idan baku yi wannan ba, duba coc.nvim KU KARANTA misali sanyi.

Zaɓi nau'in Kubernetes API

Har zuwa wannan rubutun, sabar-harshen-uwar garken jiragen ruwa tare da tsarin Kubernetes 1.14.0. Ban sami wata hanya ta zabar makirci ba, don haka na buɗe madaidaicin fitowar GitHub. Abin farin ciki, tun da an rubuta uwar garken harshe a cikin rubutun rubutu, yana da sauƙi a canza sigar da hannu. Don yin wannan, kawai nemo fayil ɗin server.ts.

Don gano shi akan injin ku, kawai buɗe fayil ɗin YAML tare da vim kuma nemo tsarin tare da 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

Tsarin da ya dace a gare mu shine tsari 2380: shine abin da vim ke amfani dashi lokacin gyara fayil ɗin YAML.

Kamar yadda kuke iya gani cikin sauƙi, fayil ɗin yana cikin ciki /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Kawai gyara shi ta canza ƙima KUBERNETES_SCHEMA_URL, misali, don sigar 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";

Dangane da sigar da aka yi amfani da ita coc-yaml Wurin canjin a cikin lambar na iya bambanta. Da fatan za a kuma lura cewa na canza ma'ajiyar daga garethr a kan instrumenta. Da alama haka garethr canza zuwa da'irori masu tallafawa a can.

Don duba cewa canjin ya yi tasiri, duba idan filin ya bayyana wanda baya can a baya [a cikin sigar Kubernetes da ta gabata]. Misali, a cikin zane na K8s 1.14 babu farawaProbe:

Vim tare da tallafin YAML don Kubernetes

Takaitaccen

Ina fatan wannan damar ta faranta muku rai kamar yadda ta yi mini. Happy YAMLing! Tabbatar duba waɗannan ma'ajin don ƙarin fahimtar abubuwan amfani da aka ambata a cikin labarin:

PS daga mai fassara

Kuma akwai kuma vikube, vim-kubernetes и vimkubectl.

Karanta kuma a kan shafinmu:

source: www.habr.com

Add a comment