Vim le tacaíocht YAML do Kubernetes

Nóta. aistrigh.: Is é Josh Rosso, ailtire ag VMware a d'oibrigh roimhe seo ag cuideachtaí ar nós CoreOS agus Heptio, a scríobh an t-alt bunaidh, agus is comhúdar é freisin ar an Kubernetes alb-ingress-controller. Roinneann an t-údar oideas beag a d’fhéadfadh a bheith an-úsáideach d’innealtóirí oibríochtaí “seanscoile” ar fearr leo vim fiú i ré an dúchais scamall buacach.

Vim le tacaíocht YAML do Kubernetes

Ag scríobh YAML manifests do Kubernetes in vim? Chaith sé uaireanta gan áireamh ag iarraidh a dhéanamh amach cén áit ar cheart an chéad réimse eile a bheith sa tsonraíocht seo? Nó b'fhéidir go mbainfidh tú buíoch as meabhrúchán tapa ar an difríocht args и command? Tá dea-scéal ann! Is furasta nasc a dhéanamh le Vim yaml-teanga-freastalaíchun críochnú uathoibríoch, bailíochtú agus áiseanna eile a fháil. San Airteagal seo labhróimid faoi conas cliant freastalaí teanga a bhunú chuige seo.

(An bunalt freisin an bhfuil físeán ann, áit a labhraíonn an t-údar agus a léiríonn a bhfuil san ábhar.)

Freastalaí teanga

Freastalaithe teanga (freastalaithe teanga) labhairt faoi chumais na dteangacha ríomhchlárúcháin le heagarthóirí agus IDEanna, as a n-idirghníomhaíonn siad lena chéile ag baint úsáide as prótacal speisialta - Prótacal Freastalaí Teanga (LSP). Is cur chuige iontach é seo toisc go gceadaíonn sé feidhmchlár amháin sonraí a sholáthar do go leor eagarthóirí/IDEanna ag an am céanna. Tá agam cheana писал про gopls - freastalaí teanga do Golang - agus conas is féidir é a úsáid i vim. Is cosúla iad na céimeanna chun uathchríochnú a fháil in YAML do Kubernetes.

Vim le tacaíocht YAML do Kubernetes

Chun go n-oibreoidh vim ar an mbealach a thuairiscítear, beidh ort cliant freastalaí teanga a shuiteáil. Is iad an dá mhodh a bhfuil aithne agam orthu LanguageClient-nevim и coc.vim. San alt breithneoidh mé coc.vim - Is é seo an breiseán is mó tóir i láthair na huaire. Is féidir leat é a shuiteáil trí vim-breiseán:

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

Chun tús a chur coc (agus mar sin an yaml-language-server) beidh nód.js suiteáilte:

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

Nuair a coc.vim cumraithe, suiteáil an síneadh freastalaí coc-yaml ó vim:

:CocInstall coc-yaml

Vim le tacaíocht YAML do Kubernetes

Ar deireadh, is dóichí go mbeidh tú ag iarraidh tosú leis an gcumraíocht coc-vim, curtha i láthair mar shampla. Go háirithe, gníomhaíonn sé an teaglaim +spás uathchríochnú a ghlaoch.

Brath freastalaí yaml-language-a shocrú

Sin coc in ann yaml-language-server a úsáid, ní mór iarraidh air an scéimre ó Kubernetes a luchtú agus comhaid YAML á n-eagarthóireacht. Déantar é seo trí eagarthóireacht coc-config:

:CocConfig

Sa chumraíocht beidh ort a chur leis kubernetes do gach comhad yaml. Úsáidim freastalaí teanga freisin le haghaidh golangmar sin tá cuma mar seo ar mo chumraíocht ghinearálta:

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

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

kubernetes — réimse in áirithe a insíonn don fhreastalaí teanga scéimre Kubernetes a íoslódáil ón URL atá sainithe i an tairiseach seo. yaml.schemas a leathnú chun tacú le scéimeanna breise - le haghaidh tuilleadh sonraí, féach doiciméid ábhartha.

Anois is féidir leat comhad YAML a chruthú agus tosú ag baint úsáide as uathchríochnú. Ag brú +spás (nó teaglaim eile atá cumraithe in vim) na réimsí agus na doiciméid atá ar fáil a thaispeáint de réir an chomhthéacs reatha:

Vim le tacaíocht YAML do Kubernetes
Oibríonn anseo +spás mar gur chumraigh mé inoremap <silent><expr> <c-space> coc#refresh(). Mura bhfuil sé seo déanta agat, féach coc.nvim README le haghaidh cumraíocht shampla.

Ag roghnú an leagan Kubernetes API

Ó thaobh na scríbhneoireachta seo, tá yaml-teanga-freastalaí ag gabháil le scéimeanna Kubernetes 1.14.0. Níor aimsigh mé bealach chun scéimre a roghnú go dinimiciúil, mar sin d'oscail mé saincheist chomhfhreagrach GitHub. Ar ámharaí an tsaoil, ós rud é go bhfuil an freastalaí teanga scríofa i gclóscríbhinn, tá sé éasca go leor an leagan a athrú de láimh. Chun seo a dhéanamh, níl le déanamh ach an comhad a aimsiú server.ts.

Chun é a bhrath ar do ríomhaire, níl le déanamh ach an comhad YAML a oscailt le vim agus aimsigh an próiseas leis 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

Is é an próiseas ábhartha dúinn ná próiseas 2380: is é a úsáideann vim agus comhad YAML á chur in eagar aige.

Mar is féidir leat a fheiceáil go héasca, tá an comhad suite i /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js. Cuir in eagar é ach an luach a athrú KUBERNETES_SCHEMA_URL, mar shampla, le haghaidh leagan 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";

Ag brath ar an leagan a úsáidtear coc-yaml Féadfaidh suíomh na hathróige sa chód athrú. Tabhair faoi deara freisin gur athraigh mé an stór ó garethr ar instrumenta. Is cosúil go bhfuil garethr aistrigh go ciorcaid tacaíochta ansin.

Chun a sheiceáil go bhfuil an t-athrú i bhfeidhm, féach an bhfuil an chuma ar réimse nach raibh ann roimhe [i leaganacha roimhe seo de Kubernetes]. Mar shampla, sa léaráid do K8s 1.14 ní raibh aon tosaitheProbe:

Vim le tacaíocht YAML do Kubernetes

Achoimre

Tá súil agam go dtaitníonn an deis seo chomh mór libh agus a bhain mise. YAMLing Shona duit! Bí cinnte seiceáil amach na stórtha seo chun tuiscint níos fearr a fháil ar na fóntais a luaitear san alt:

PS ó aistritheoir

Agus tá freisin vibe, vim-kubernetes и vimkubectl.

Léigh freisin ar ár mblag:

Foinse: will.com

Add a comment