Vim Kubernetes-erako YAML euskarria duena

Ohar. itzul.: Jatorrizko artikulua Josh Rossok idatzi zuen, aurretik CoreOS eta Heptio bezalako enpresetan lan egin zuen VMwareko arkitektoak, eta Kubernetes alb-ingress-controller-en egilekidea ere bada. Egileak errezeta txiki bat partekatzen du, hodei garailearen natibo garaian ere vim nahiago duten "eskola zaharreko" operazio ingeniarientzat oso erabilgarria izan daitekeena.

Vim Kubernetes-erako YAML euskarria duena

Kubernetesentzako YAML manifestuak idazten vim-en? Ordu ugari eman dituzu zehaztapen honetan hurrengo eremua non egon behar den asmatzen saiatzen? Edo agian eskertuko duzu desberdintasunaren oroigarri azkar bat args ΠΈ command? Bada berri ona! Vim estekatzeko erraza da yaml-hizkuntza-zerbitzariaosaketa automatikoa, baliozkotzea eta beste erosotasun batzuk lortzeko. Artikulu honetan hizkuntza zerbitzariaren bezero bat nola konfiguratu hitz egingo dugu horretarako.

(Jatorrizko artikulua ere ba al dago bideorik, non egileak materialaren edukiak hitz egiten eta erakusten dituen.)

Hizkuntza zerbitzaria

Hizkuntza zerbitzariak (hizkuntza zerbitzariak) programazio-lengoaien gaitasunei buruz hitz egin editoreei eta IDEei, eta horretarako protokolo berezi bat erabiliz elkarreragiten dute - Hizkuntza Zerbitzariaren Protokoloa (LSP). Ikuspegi bikaina da, inplementazio batek editore/IDE askori aldi berean datuak emateko aukera ematen duelako. Dagoeneko daukat idatzi nuen buruz goplak - Golang-erako hizkuntza zerbitzaria - eta nola erabil daitekeen vim. Kubernetes-en YAML-n osatze automatikoa lortzeko urratsak antzekoak dira.

Vim Kubernetes-erako YAML euskarria duena

Vim-ek deskribatutako moduan funtziona dezan, hizkuntza-zerbitzariaren bezero bat instalatu beharko duzu. Ezagutzen ditudan bi metodoak dira LanguageClient-neovim ΠΈ coc.vim. Kontuan hartuko dudan artikuluan coc.vim - Hau da une honetan plugin ezagunena. bidez instalatu dezakezu vim-entxufea:

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

Hasteko coc (eta, beraz, yaml-language-server-ak) node.js instalatu beharko du:

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

Noiz coc.vim konfiguratuta, instalatu zerbitzariaren luzapena coc-yaml vim-etik:

:CocInstall coc-yaml

Vim Kubernetes-erako YAML euskarria duena

Azkenik, ziurrenik konfigurazioarekin hasi nahi izango duzu coc-vim, aurkeztua adibide gisa. Bereziki, konbinazioa aktibatzen du +espazioa osatze automatikoa deitzeko.

Yaml-language-server detekzioa konfiguratzea

That coc yaml-language-server erabil dezake, YAML fitxategiak editatzerakoan Kubernetes-etik eskema kargatzeko eskatu behar zaio. Hau editatuz egiten da coc-config:

:CocConfig

Konfigurazioan gehitu beharko duzu kubernetes fitxategi guztietarako yaml. Gainera, hizkuntza zerbitzari bat erabiltzen dut golangberaz, nire konfigurazio orokorra honelakoa da:

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

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

kubernetes β€” Hizkuntza-zerbitzariari Kubernetes eskema deskargatzeko aukera ematen dion eremu erreserbatua, zehaztutako URLtik konstante hori. yaml.schemas eskema osagarriak onartzeko heda daiteke - xehetasun gehiagorako, ikus dagokion dokumentazioa.

Orain YAML fitxategi bat sor dezakezu eta osatze automatikoa erabiltzen has zaitezke. Sakatuz +espazioa (edo vim-en konfiguratutako beste konbinazio batzuk) uneko testuinguruaren arabera dauden eremuak eta dokumentazioa erakutsi beharko lituzke:

Vim Kubernetes-erako YAML euskarria duena
Hemen dabil +espazioa konfiguratu dudalako inoremap <silent><expr> <c-space> coc#refresh(). Hau egin ez baduzu, ikusi coc.nvim IRAKURRI konfigurazio adibide baterako.

Kubernetes APIaren bertsioa hautatzea

Hau idazten den heinean, yaml-language-server Kubernetes 1.14.0 eskemekin dator. Ez nuen eskema dinamikoki hautatzeko modurik aurkitu, beraz, ireki nuen dagokion GitHub-en arazoa. Zorionez, hizkuntza zerbitzaria mekanografiaz idatzita dagoenez, nahiko erraza da bertsioa eskuz aldatzea. Horretarako, fitxategia bilatu besterik ez duzu server.ts.

Zure makinan detektatzeko, ireki YAML fitxategia vim-ekin eta aurkitu prozesua honekin 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

Guretzat dagokion prozesua 2380 prozesua da: vim-ek YAML fitxategi bat editatzerakoan erabiltzen duena da.

Erraz ikusten duzunez, fitxategia bertan dago /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Editatu besterik ez dago balioa aldatuz KUBERNETES_SCHEMA_URL, adibidez, 1.17.0 bertsiorako:

// 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";

Erabilitako bertsioaren arabera coc-yaml Aldagaiaren kokapena kodean alda daiteke. Kontuan izan, gainera, biltegia aldatu dudala garethr on instrumenta. Ematen du garethr bertan zirkuitu euskarrietara aldatu zen.

Aldaketak eragina izan duela egiaztatzeko, ikusi aurretik ez zegoen eremurik agertzen den [Kubernetes-en aurreko bertsioetan]. Adibidez, K8s 1.14 diagraman ez zegoen startupProbe:

Vim Kubernetes-erako YAML euskarria duena

Laburpena

Espero dut aukera honek niri bezainbeste atsegin izatea. Zorionak YAMling! Ziurtatu biltegi hauek begiratzen dituzula artikuluan aipatzen diren utilitateak hobeto ulertzeko:

PS itzultzailetik

Eta badago ere vikube, vim-kubernetes ΠΈ vimkubectl.

Irakurri ere gure blogean:

Iturria: www.habr.com

Gehitu iruzkin berria