Анхаарна уу. орчуулга.: Өгүүллийн эхийг CoreOS болон Heptio зэрэг компаниудад ажиллаж байсан VMware-ийн архитектор Жош Россо бичсэн бөгөөд мөн Kubernetes alb-ingress-controller-ийн хамтран зохиогч юм. Зохиогч нь ялгуусан үүлний эрин үед ч гэсэн vim-ийг илүүд үздэг "хуучин сургуулийн" үйл ажиллагааны инженерүүдэд маш хэрэгтэй жижиг жорыг хуваалцаж байна.
Vim дээр Kubernetes-д зориулж YAML манифест бичих үү? Энэ үзүүлэлтийн дараагийн талбар хаана байх ёстойг олохын тулд тоо томшгүй олон цагийг зарцуулсан уу? Эсвэл та ялгааг хурдан сануулбал талархах болно args
и command
? Сайн мэдээ байна! Vim-тэй холбогдоход хялбар байдаг
(Эх нийтлэл нь мөн
Хэлний сервер
Хэлний серверүүд (хэлний серверүүд) Тусгай протокол ашиглан бие биетэйгээ харьцдаг програмчлалын хэлний боломжуудын талаар редакторууд болон IDE-д ярих -
Vim-г тайлбарласан байдлаар ажиллуулахын тулд та хэлний серверийн клиентийг суулгах шаардлагатай болно. Миний мэдэх хоёр арга coc.vim
- Энэ бол одоогоор хамгийн алдартай залгаас юм. Та үүнийг ашиглан суулгаж болно
" 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'}
Эхлэхийн тулд coc
(мөн иймээс yaml-language-server) node.js суулгасан байх шаардлагатай:
curl -sL install-node.now.sh/lts | bash
Хэзээ coc.vim
тохируулсан бол серверийн өргөтгөлийг суулгана уу coc-yaml
vim-ээс:
:CocInstall coc-yaml
Эцэст нь та тохиргооноос эхлэхийг хүсэх байх coc-vim
, танилцуулсан
yaml-language-server илрүүлэх тохиргоог хийж байна
гэж coc
yaml-language-server ашиглаж болох тул YAML файлуудыг засварлахдаа Kubernetes-ээс схемийг ачаалахыг хүсэх шаардлагатай. Үүнийг засварлах замаар хийдэг coc-config
:
:CocConfig
Тохиргоонд та нэмэх хэрэгтэй болно kubernetes
бүх файлын хувьд yaml
. Би нэмэлт хэлний сервер ашигладаг golang
Тиймээс миний ерөнхий тохиргоо дараах байдалтай байна.
{
"languageserver": {
"golang": {
"command": "gopls",
"rootPatterns": ["go.mod"],
"filetypes": ["go"]
}
},
"yaml.schemas": {
"kubernetes": "/*.yaml"
}
}
kubernetes
--д тодорхойлсон URL-аас Kubernetes схемийг татаж авахыг хэлний серверт заадаг нөөцлөгдсөн талбар. yaml.schemas
нэмэлт схемүүдийг дэмжихийн тулд өргөжүүлж болно - дэлгэрэнгүй мэдээллийг үзнэ үү
Одоо та YAML файл үүсгэж, автоматаар гүйцээхийг ашиглаж эхлэх боломжтой. Дарж байна + орон зай (эсвэл vim-д тохируулсан бусад хослол) нь одоогийн нөхцөл байдлын дагуу байгаа талбарууд болон баримт бичгүүдийг харуулах ёстой:
Энд ажилладаг +зай, учир нь би тохируулсан inoremap <silent><expr> <c-space> coc#refresh()
. Хэрэв та үүнийг хийгээгүй бол үзнэ үү
Kubernetes API хувилбарыг сонгож байна
Үүнийг бичиж байх үед yaml-language-server нь Kubernetes 1.14.0 схемүүдтэй ирдэг. Би схемийг динамикаар сонгох аргыг олсонгүй, тиймээс би нээсэн server.ts
.
Үүнийг өөрийн машин дээр илрүүлэхийн тулд YAML файлыг vim-ээр нээж, процессыг олоход л хангалттай 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
Бидний хувьд холбогдох процесс бол процесс 2380: энэ нь YAML файлыг засварлахад vim ашигладаг зүйл юм.
Таны харж байгаагаар файл нь дотор байрладаг /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js
. Зүгээр л утгыг өөрчлөх замаар үүнийг засаарай KUBERNETES_SCHEMA_URL
жишээлбэл, 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";
Ашигласан хувилбараас хамаарна coc-yaml
Код дахь хувьсагчийн байршил өөр байж болно. Би хадгалах газрыг өөрчилсөн гэдгийг анхаарна уу garethr
тухай instrumenta
. Тийм юм шиг байна garethr
тэнд туслах хэлхээнд шилжсэн.
Өөрчлөлт хүчин төгөлдөр болсон эсэхийг шалгахын тулд [Kubernetes-ийн өмнөх хувилбаруудад] өмнө нь байгаагүй талбар гарч ирэх эсэхийг харна уу. Жишээлбэл, K8s 1.14-ийн диаграммд байхгүй байсан
Хураангуй
Энэ боломж надад таалагдсан шиг танд таалагдана гэж найдаж байна. Аз жаргалтай YAMLing! Өгүүлэлд дурдсан хэрэгслүүдийг илүү сайн ойлгохын тулд эдгээр хадгалах сангуудыг шалгахаа мартуузай.
- coc-vim:
https://github.com/neoclide/coc.nvim ; - coc-yaml:
https://github.com/neoclide/coc-yaml .
Орчуулагчийн жич
Мөн бас байдаг
Мөн манай блог дээрээс уншина уу:
- «
kubebox болон Kubernetes-д зориулсан бусад бүрхүүлүүд "; - «
kubectl-ээр дамжуулан Kubernetes-тэй ажиллахад зориулсан консолын туслахууд ".
Эх сурвалж: www.habr.com