සටහන. පරිවර්තනය.: මුල් ලිපිය ලියා ඇත්තේ මීට පෙර CoreOS සහ Heptio වැනි සමාගම්වල සේවය කළ සහ Kubernetes alb-ingress-controller හි සම-කර්තෘ වන VMware හි ගෘහ නිර්මාණ ශිල්පියෙකු වන Josh Rosso විසිනි. ජයග්රාහී වලාකුළු ස්වදේශික යුගයේ පවා 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 schema බාගත කරන ලෙස භාෂා සේවාදායකයට පවසන වෙන් කළ ක්ෂේත්රයක් yaml.schemas
අමතර යෝජනා ක්රම සඳහා සහාය වීම සඳහා පුළුල් කළ හැක - වැඩි විස්තර සඳහා, බලන්න
දැන් ඔබට YAML ගොනුවක් සාදා ස්වයං සම්පුර්ණ කිරීම භාවිතා කිරීම ආරම්භ කළ හැක. එබීම +අවකාශය (හෝ vim හි වින්යාස කර ඇති වෙනත් සංයෝජනයක්) වත්මන් සන්දර්භය අනුව පවතින ක්ෂේත්ර සහ ලේඛන පෙන්විය යුතුය:
මෙහි වැඩ කරයි +අවකාශය මම වින්යාස කළ නිසා inoremap <silent><expr> <c-space> coc#refresh()
. ඔබ මෙය කර නොමැති නම්, බලන්න
Kubernetes API අනුවාදය තේරීම
මෙම ලියන විට, yaml-language-server නැව්ගත කරන්නේ Kubernetes 1.14.0 schemas සමඟිනි. මම ස්කීමාවක් ගතිකව තෝරා ගැනීමට ක්රමයක් සොයා නොගත් නිසා මම විවෘත කළෙමි 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
එහි ආධාරක පරිපථ වෙත මාරු විය.
වෙනස ක්රියාත්මක වී ඇත්දැයි පරීක්ෂා කිරීමට, [කුබර්නෙටස් හි පෙර අනුවාදවල] පෙර නොතිබූ ක්ෂේත්රයක් දිස්වන්නේ දැයි බලන්න. උදාහරණයක් ලෙස, K8s 1.14 සඳහා රූප සටහනේ නැත
සාරාංශය
මෙම අවස්ථාව මා මෙන් ඔබ සතුටු කරනු ඇතැයි මම බලාපොරොත්තු වෙමි. සුභ YAMLing! ලිපියේ සඳහන් කර ඇති උපයෝගිතා හොඳින් අවබෝධ කර ගැනීම සඳහා මෙම ගබඩාවන් පරීක්ෂා කිරීමට වග බලා ගන්න:
- coc-vim:
https://github.com/neoclide/coc.nvim ; - coc-yaml:
https://github.com/neoclide/coc-yaml .
පරිවර්තකගෙන් PS
ඒ වගේම තියෙනවා
අපගේ බ්ලොග් අඩවියේ ද කියවන්න:
- «
kubebox සහ Kubernetes සඳහා වෙනත් ෂෙල් වෙඩි »; - «
Kubectl හරහා Kubernetes සමඟ වැඩ කිරීම සඳහා කොන්සෝල සහායකයින් ".
මූලාශ්රය: www.habr.com