မှတ်ချက်။ ဘာသာပြန်မူရင်းဆောင်းပါးကို CoreOS နှင့် Heptio ကဲ့သို့သော ကုမ္ပဏီများတွင် ယခင်က လုပ်ဆောင်ခဲ့သော VMware မှ ဗိသုကာပညာရှင် Josh Rosso မှ ရေးသားခဲ့ပြီး Kubernetes alb-ingress-controller ၏ တွဲဖက်ရေးသားသူလည်းဖြစ်သည်။ စာရေးသူသည် အောင်မြင်သော cloud ဇာတိခေတ်တွင်ပင် vim ကြိုက်နှစ်သက်သော "ကျောင်းဟောင်း" လည်ပတ်အင်ဂျင်နီယာများအတွက် အလွန်အသုံးဝင်နိုင်သော ဟင်းချက်နည်းလေးတစ်ခုကို မျှဝေထားပါသည်။
vim တွင် Kubernetes အတွက် YAML manifests ကိုရေးနေပါသလား။ ဤသတ်မှတ်ချက်တွင် နောက်အကွက်သည် မည်သည့်နေရာတွင်ရှိသင့်သည်ကို အဖြေရှာရန် နာရီပေါင်းမရေမတွက်နိုင်အောင် ကြိုးစားနေပါသလား။ သို့မဟုတ် ခြားနားချက်ကို အမြန်သတိပေးချက်ကို သင်သဘောပေါက်ပေမည်။ 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
နောက်ဆုံးအနေနဲ့၊ သင်က configuration နဲ့စတင်ချင်ဖွယ်ရှိပါလိမ့်မယ်။ coc-vim
၊ တင်ပြသည်
yaml-language-server detection ကို စနစ်ထည့်သွင်းခြင်း။
ထို coc
yaml-language-server ကိုသုံးနိုင်သည်၊ YAML ဖိုင်များကိုတည်းဖြတ်သောအခါ Kubernetes မှ schema ကိုဖွင့်ရန်တောင်းဆိုရန်လိုအပ်သည်။ တည်းဖြတ်ခြင်းဖြင့် လုပ်ဆောင်သည်။ coc-config
:
:CocConfig
configuration တွင်သင်ထည့်သွင်းရန်လိုအပ်လိမ့်မည်။ kubernetes
ဖိုင်အားလုံးအတွက် yaml
. ကျွန်ုပ်သည် ဘာသာစကားဆာဗာကို ထပ်မံ၍ အသုံးပြုပါသည်။ golang
ထို့ကြောင့် ကျွန်ုပ်၏ ယေဘူယျ config သည် ဤကဲ့သို့ ဖြစ်သည်-
{
"languageserver": {
"golang": {
"command": "gopls",
"rootPatterns": ["go.mod"],
"filetypes": ["go"]
}
},
"yaml.schemas": {
"kubernetes": "/*.yaml"
}
}
kubernetes
— သတ်မှတ်ထားသော URL မှ Kubernetes schema ကို ဒေါင်းလုဒ်လုပ်ရန် ဘာသာစကားဆာဗာအား သီးသန့်အကွက်တစ်ခု yaml.schemas
နောက်ထပ်အစီအစဥ်များကိုပံ့ပိုးရန် တိုးချဲ့နိုင်သည် - အသေးစိတ်အချက်အလက်များအတွက် ကြည့်ပါ။
ယခု သင်သည် YAML ဖိုင်ကို ဖန်တီးနိုင်ပြီး အလိုအလျောက် ဖြည့်သွင်းခြင်းကို စတင်အသုံးပြုနိုင်ပါသည်။ နှိပ်တယ်။ + နေရာ (သို့မဟုတ် vim တွင် ပြင်ဆင်ထားသော အခြားပေါင်းစပ်မှု) သည် လက်ရှိအခြေအနေအရ ရရှိနိုင်သော အကွက်များနှင့် စာရွက်စာတမ်းများကို ပြသသင့်သည်-
ဒီမှာအလုပ်လုပ်တယ်။ ငါစီစဉ်ထားသောကြောင့် +space inoremap <silent><expr> <c-space> coc#refresh()
. ဒါကို မလုပ်ရသေးရင် ကြည့်ပါ။
Kubernetes API ဗားရှင်းကို ရွေးချယ်ခြင်း။
ဤရေးသားမှုအရ yaml-language-server သည် Kubernetes 1.14.0 schemas ဖြင့် ပို့ဆောင်ပါသည်။ schema တစ်ခုကို dynamically ရွေးရန် နည်းလမ်းရှာမတွေ့သောကြောင့် ဖွင့်လိုက်ပါသည်။ 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
အဲဒီမှာ supporting circuits တွေ ပြောင်းသွားတယ်။
အပြောင်းအလဲက အကျိုးသက်ရောက်မှုရှိမရှိ စစ်ဆေးရန်၊ [ Kubernetes ၏ ယခင်ဗားရှင်းများ] တွင် ယခင်က မရှိခဲ့သော အကွက်တစ်ခု ပေါ်လာခြင်းရှိမရှိ ကြည့်ပါ။ ဥပမာအားဖြင့်၊ K8s 1.14 အတွက် ပုံကြမ်းတွင် မရှိပါ။
အကျဉ်းချုပ်
ဒီအခွင့်အရေးက ငါလုပ်ခဲ့သလောက် မင်းကျေနပ်မယ်လို့ ငါမျှော်လင့်တယ်။ ပျော်ရွှင်ဖွယ် YAMLing။ ဆောင်းပါးတွင်ဖော်ပြထားသော utilities များကို ပိုမိုကောင်းမွန်စွာနားလည်ရန် ဤသိုလှောင်ရုံများကို စစ်ဆေးကြည့်ရှုပါ-
- coc-vim-
https://github.com/neoclide/coc.nvim ; - coc-yaml-
https://github.com/neoclide/coc-yaml .
PS ဘာသာပြန်မှ
နောက်ပြီးတော့လည်း ရှိပါတယ်။
ကျွန်ုပ်တို့၏ဘလော့ဂ်တွင်လည်းဖတ်ပါ
- «
Kubernetes အတွက် kubebox နှင့် အခြားသော အခွံများ "; - «
Kubectl မှတစ်ဆင့် Kubernetes နှင့် လုပ်ဆောင်ရန်အတွက် ကွန်ဆိုးလ်အကူအညီများ "။
source: www.habr.com