YAML-tugi Vim Kubernetes jaoks

MĂ€rkus tĂ”lke kohta.: algse artikli autor on Josh Rosso — VMware'i arhitekt, kes on varem töötanud sellistes ettevĂ”tetes nagu CoreOS ja Heptio, samuti on ta Kubernetes alb-ingress-controller'i kaasautor. Autor jagab vĂ€ikest retsepti, mis vĂ”ib olla vĂ€ga kasulik „vana kooli“ operatsioonitehnika inseneridele, kes eelistavad vim-i isegi pilvepĂ”hises ajastus.

YAML-tugi Vim Kubernetes jaoks

Kas kirjutate YAML-manifestide jaoks Kuberneteses vim-is? Olete veetnud lugematuid tunde, pĂŒĂŒdes aru saada, kus selles spetsifikatsioonis peaks olema jĂ€rgmine vĂ€li? VĂ”ib-olla olete Ă”nnelik kiire meenutuse ĂŒle erinevuse kohta. args ja kĂ€sk? Есть Ń…ĐŸŃ€ĐŸŃˆĐžĐ” ĐœĐŸĐČĐŸŃŃ‚Đž! Vim лДгĐșĐŸ проĐČŃĐ·Đ°Ń‚ŃŒ Đș yaml-language-server, et saada automaatset tĂ€iendamist, valideerimist ja muid mugavusi. Artiklis rÀÀgime sellest, kuidas seadistada keele serveri klienti selle jaoks.

(Algse artikli juurde kuulub ka video, kus autor rÀÀgib ja demonstreerib materjali sisu.)

Keele server

Keele serverid (language servers) annavad programmeerimiskeelte vĂ”imed redaktoritele ja IDE-dele, mille jaoks nad suhtlevad omavahel spetsiaalse protokolli kaudu — Language Server Protocol (LSP). See on suurepĂ€rane lĂ€henemine: see vĂ”imaldab ĂŒhel teostusel andmeid kohe mitmele redaktorile/IDE-le. Ma olen juba kirjutatud kohta gopls — keele server Golangile — ja kuidas seda saab kasutada vim-is.Tegevused automaatse tĂ€iendamise saamiseks YAML-i jaoks Kuberneteses on sarnased.

YAML-tugi Vim Kubernetes jaoks

Et vim töötaks kirjeldatud viisil, on vaja installida keele serveri klient. Kaks tuntud meetodit, mida ma tean, on LanguageClient-neovim ja coc.vim.Artiklis vaatan ĂŒle coc.vim. — see on praegu kĂ”ige populaarsem plugin. Seda saab installida lĂ€bi vim-plugi.:

" Kasutage vÀljaandmise haru (soovitatav)
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" VÔi ehitage allikakood yarn-i abil: https://yarnpkg.com
Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'}

KĂ€ivitamiseks coc (ja seega yaml-language-server'i) on vajalik, et oleksite installinud node.js:

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

Kui coc.vim. on seadistatud, installige serveri laiendus coc-yaml vim-ist:

:CocInstall coc-yaml

YAML-tugi Vim Kubernetes jaoks

LÔpuks soovite tÔenÀoliselt alustada konfigureerimisega coc-vim, mis esitatakse nÀitena.EelkÔige aktiveerib see kombinatsiooni +space automaatse tÀiendamise kutsumiseks.

yaml-language-server'i avastamise seadistamine.

Et coc sa saad kasutada yaml-language-serveri, paluge tal laadida kava Kuberneteselt YAML-failide redigeerimise ajal. See toimub redigeerimise teel coc-config:

:CocConfig

Konfiguratsioonis tuleb lisada kubernetes kĂ”igi failide jaoks yaml. Kasutan lisaks keele serverit golang, seega nĂ€eb minu ĂŒldine konfiguratsioon vĂ€lja selline:

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

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

kubernetes — reserveeritud vĂ€li, mis informeerib keeleserverit vajadusest laadida Kubernetes'i kava URL-ilt, mis on mÀÀratletud selles konŰłŰȘŰ§Ù†tis. yaml.schemas saab laiendada teiste kavadena — lisainfot leiate vastavast dokumentatsioonist.

NĂŒĂŒd saab luua YAML-faili ja alustada autokomplektiga. Vajutamine +space (vĂ”i mĂ”ni muu kombinatsioon, mis on vim'is seadistatud) peaks nĂ€itama saadaval olevaid vĂ€lju ja dokumentatsiooni vastavalt praegusele kontekstile:

YAML-tugi Vim Kubernetes jaoks
Siin töötab +tĂŒhik, kuna ma seadistasin inoremap coc#refresh(). Kui te ei ole seda teinud — vaadake coc.nvim README konfiguratsiooni nĂ€ite jaoks.

Kubernetes API versiooni valimine

KĂ€esoleva artikli kirjutamise hetkel tarnitakse yaml-language-server koos Kubernetes'e 1.14.0 kavadaga. Ma ei leidnud viisi kava dĂŒnaamiliseks valimiseks, seega avasin vastava GitHub'i kĂŒsimuse. Õnneks, kuna keele server on kirjutatud TypeScriptis, on ĂŒsna lihtne versiooni kĂ€sitsi muuta. Selleks on lihtsalt vaja leida fail server.ts.

Selle leidmiseks oma masinas avage lihtsalt YAML-fail vim'iga ja otsige protsessi, kus on 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

Meile on oluline protsess 2380: ainult seda kasutab vim YAML-faili redigeerimise ajal.

Kergesti nÀha, et fail asub /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Piisab, kui redigeerite seda, muutes vÀÀrtust KUBERNETES_SCHEMA_URL, nÀiteks versiooniks 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";

SÔltuvalt kasutatavast versioonist vÔib koodis olev muutuja asukoht olla erinev. Pange tÀhele, et muutsin ka hoidlat coc-yaml garethr instrumenta . Tundub, et on liikunud just seal skeemide toe juurde.. instrumenta on hakanud skeemide toetust just seal muutma.

Kuna kontrollida, et muudatus on jÔustunud, vaadake, kas ilmub vÀli, mida varem [Kubernetes varasemates versioonides] ei olnud. NÀiteks K8s 1.14 skeemis ei olnud. startupProbe:

YAML-tugi Vim Kubernetes jaoks

Elulookirjeldus

Loodan, et selline vĂ”imalus rÔÔmustas teid mitte vĂ€hem kui mind. Head YAML’imist! Ärge unustage tutvuda nende hoidlate kogumitega, et paremini aru saada artiklis mainitud tööriistadest:

P.S. tÔlkijalt

Ja veel on olemas vikube, vim-kubernetes ja vimkubectl.

Lugege ka meie blogist:

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster