เจจเฉเจ เจเจฐเฉเฅค เจ เจจเฉเจตเจพเจฆ: เจฎเฉเจฒ เจฒเฉเจ เจเฉเจธเจผ เจฐเฉเจธเฉ เจฆเฉเจเจฐเจพ เจฒเจฟเจเจฟเจ เจเจฟเจ เจธเฉ, เจเฉ เจเจฟ VMware เจฆเฉ เจเฉฑเจ เจเจฐเจเฉเจเฉเจเจ เจธเฉ เจเฉ เจชเจนเจฟเจฒเจพเจ CoreOS เจ เจคเฉ Heptio เจตเจฐเจเฉเจเจ เจเฉฐเจชเจจเฉเจเจ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจธเฉ, เจ เจคเฉ Kubernetes alb-ingress-controller เจฆเจพ เจธเจนเจฟ-เจฒเฉเจเจ เจตเฉ เจนเฉเฅค เจฒเฉเจเจ เจเฉฑเจ เจเฉเจเจพ เจเจฟเจนเจพ เจตเจฟเจ เฉฐเจเจจ เจธเจพเจเจเจพ เจเจฐเจฆเจพ เจนเฉ เจเฉ "เจชเฉเจฐเจพเจฃเฉ เจธเจเฉเจฒ" เจเจชเจฐเฉเจธเจผเจจ เจเฉฐเจเฉเจจเฉเจ เจฐเจพเจ เจฒเจ เจฌเจนเฉเจค เจฒเจพเจญเจฆเจพเจเจ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเฉ เจเฉเจคเฉ เจเจฒเจพเจเจก เจฎเฉเจฒ เจฆเฉ เจฏเฉเฉฑเจ เจตเจฟเฉฑเจ เจตเฉ เจตเจฟเจฎ เจจเฉเฉฐ เจคเจฐเจเฉเจน เจฆเจฟเฉฐเจฆเฉ เจนเจจเฅค
เจตเจฟเจฎ เจตเจฟเฉฑเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจฒเจ YAML เจฎเฉเจจเฉเจซเฉเจธเจ เจฒเจฟเจเจฃเจพ? เจเจน เจชเจคเจพ เจฒเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจตเจฟเฉฑเจ เจ
เจฃเจเจฟเจฃเจค เจเฉฐเจเฉ เจฌเจฟเจคเจพเจ เจเจฟ เจ
เจเจฒเจพ เจเฉเจคเจฐ เจเจฟเฉฑเจฅเฉ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจธ เจจเจฟเจฐเจงเจพเจฐเจจ เจตเจฟเฉฑเจ? เจเจพเจ เจนเฉ เจธเจเจฆเจพ เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจซเจฐเจ เจฆเฉ เจเฉฑเจ เจคเฉเจฐเฉฐเจค เจฐเฉเจฎเจพเจเจเจกเจฐ เจฆเฉ เจเจฆเจฐ เจเจฐเฉเจเฉ args
ะธ command
? เจเฉฐเจเฉ เจเจผเจฌเจฐ เจนเฉ! เจตเจฟเจฎ เจจเจพเจฒ เจฒเจฟเฉฐเจ เจเจฐเจจเจพ เจเจธเจพเจจ เจนเฉ
(เจฎเฉเจฒ เจฒเฉเจ เจตเฉ
เจญเจพเจธเจผเจพ เจธเจฐเจตเจฐ
เจญเจพเจธเจผเจพ เจธเจฐเจตเจฐ (เจญเจพเจธเจผเจพ เจธเจฐเจตเจฐ) เจธเฉฐเจชเจพเจฆเจเจพเจ เจ
เจคเฉ IDEs เจจเฉเฉฐ เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพเจตเจพเจ เจฆเฉเจเจ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเฉ, เจเจฟเจธ เจฒเจ เจเจน เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจฆเฉเจเฉ เจจเจพเจฒ เจเฉฑเจฒเจฌเจพเจค เจเจฐเจฆเฉ เจนเจจ -
เจตเจฟเจฎ เจจเฉเฉฐ เจตเจฐเจฃเจฟเจค เจคเจฐเฉเจเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจญเจพเจธเจผเจพ เจธเจฐเจตเจฐ เจเจฒเจพเจเฉฐเจ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเจเจเฉ. เจฎเฉเจจเฉเฉฐ เจชเจคเจพ เจนเฉ เจฆเฉ เจขเฉฐเจ เจนเจจ 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-เจญเจพเจธเจผเจพ-เจธเจฐเจตเจฐ เจเฉเจ เจจเฉเฉฐ เจธเฉเฉฑเจเจ เฉฑเจช เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
เจนเฉ, เจเฉ เจเจฟ 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 เจคเฉเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจธเจเฉเจฎเจพ เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจ เจฒเจ เจเจนเจฟเฉฐเจฆเจพ เจนเฉ yaml.schemas
เจตเจพเจงเฉ เจธเจเฉเจฎเจพเจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจจ เจฒเจ เจตเจฟเจธเจคเจพเจฐ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ - เจนเฉเจฐ เจตเฉเจฐเจตเจฟเจเจ เจฒเจ, เจตเฉเจเฉ
เจนเฉเจฃ เจคเฉเจธเฉเจ เจเฉฑเจ YAML เจซเจพเจเจฒ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเจเฉเจเฉฐเจชเจฒเฉเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจธเจผเฉเจฐเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจฆเจฌเจพ เจฐเจฟเจนเจพ เจนเฉ +เจธเจชเฉเจธ (เจเจพเจ vim เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจฟเจค เจเฉเจคเฉ เจนเฉเจฐ เจธเฉเจฎเฉเจฒ) เจจเฉเฉฐ เจฎเฉเจเฉเจฆเจพ เจธเฉฐเจฆเจฐเจญ เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจเจชเจฒเจฌเจง เจเฉเจคเจฐเจพเจ เจ เจคเฉ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจจเฉเฉฐ เจฆเจฟเจเจพเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ:
เจเฉฑเจฅเฉ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ +เจธเจชเฉเจธ เจเจฟเจเจเจเจฟ เจฎเฉเจ เจเฉเจเจซเจฟเจเจฐ เจเฉเจคเจพ เจนเฉ inoremap <silent><expr> <c-space> coc#refresh()
. เจเฉเจเจฐ เจคเฉเจธเฉเจ เจ
เจเจฟเจนเจพ เจจเจนเฉเจ เจเฉเจคเจพ เจนเฉ, เจคเจพเจ เจฆเฉเจเฉ
เจเฉเจฌเจฐเจจเฉเจเจธ API เจธเฉฐเจธเจเจฐเจฃ เจเฉเจฃเจจเจพ
เจเจธ เจฒเจฟเจเจค เจฆเฉ เจ
เจจเฉเจธเจพเจฐ, yaml-language-server เจเฉเจฌเจฐเจจเฉเจเจธ 1.14.0 เจธเจเฉเจฎเจพเจ เจฆเฉ เจจเจพเจฒ เจญเฉเจเจฆเจพ เจนเฉเฅค เจฎเฉเจจเฉเฉฐ เจเฉฑเจ เจธเจเฉเจฎเจพ เจจเฉเฉฐ เจเจคเฉเจธเจผเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉเจฃเจจ เจฆเจพ เจเฉเจ เจคเจฐเฉเจเจพ เจจเจนเฉเจ เจฎเจฟเจฒเจฟเจ, เจเจธเจฒเจ เจฎเฉเจ เจเฉเจฒเฉเจนเจฟเจ server.ts
.
เจเจธ เจจเฉเฉฐ เจเจชเจฃเฉ เจฎเจธเจผเฉเจจ 'เจคเฉ เจเฉเจเจฃ เจฒเจ, เจธเจฟเจฐเจซเจผ vim เจจเจพเจฒ YAML เจซเจพเจเจฒ เจเฉเจฒเฉเจนเฉ เจ
เจคเฉ เจเจธ เจจเจพเจฒ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฒเฉฑเจญเฉ 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 เจซเจพเจเจฒ เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจ เจตเฉเจฒเฉ เจตเจฐเจคเจฆเจพ เจนเฉ.
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจเจธเจพเจจเฉ เจจเจพเจฒ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ, เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจธเจฅเจฟเจค เจนเฉ /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 .
เจ เจจเฉเจตเจพเจฆเจ เจคเฉเจ เจชเฉ.เจเจธ
เจ
เจคเฉ เจเฉฑเจฅเฉ เจตเฉ เจนเฉ
เจธเจพเจกเฉ เจฌเจฒเฉเจ 'เจคเฉ เจตเฉ เจชเฉเฉเจนเฉ:
- ยซ
kubebox เจ เจคเฉ Kubernetes เจฒเจ เจนเฉเจฐ เจธเจผเฉเฉฑเจฒ "; - ยซ
kubectl เจฆเฉเจเจฐเจพ Kubernetes เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเฉฐเจธเฉเจฒ เจธเจนเจพเจเจ ".
เจธเจฐเฉเจค: www.habr.com