ቪም ከ YAML ጋር ለ Kubernetes ድጋፍ

ማስታወሻ. ትርጉምዋናው መጣጥፍ የተጻፈው በቪኤምዌር አርክቴክት በጆሽ ሮስሶ ሲሆን ቀደም ሲል እንደ CoreOS እና Heptio ባሉ ኩባንያዎች ውስጥ ይሰራ ነበር እንዲሁም የኩበርኔትስ አልብ-ኢንግረስ-ተቆጣጣሪው ተባባሪ ደራሲ ነው። ደራሲው በአሸናፊው የደመና ተወላጅ ዘመን እንኳን ቪም ለሚመርጡ "የድሮ ትምህርት ቤት" ኦፕሬሽኖች መሐንዲሶች በጣም ጠቃሚ ሊሆን የሚችል ትንሽ የምግብ አሰራርን አካፍሏል።

ቪም ከ YAML ጋር ለ Kubernetes ድጋፍ

YAML መፃፍ ለ Kubernetes በቪም? በዚህ ዝርዝር ውስጥ ቀጣዩ መስክ የት መሆን እንዳለበት ለማወቅ ስፍር ቁጥር የሌላቸውን ሰዓታት አሳልፈዋል? ወይም ደግሞ ስለ ልዩነቱ ፈጣን ማሳሰቢያ ያደንቁ ይሆናል። args и command? መልካም ዜና አለ! ቪም ለማገናኘት ቀላል ነው yaml-ቋንቋ-አገልጋይአውቶማቲክ ማጠናቀቅ, ማረጋገጫ እና ሌሎች ምቾቶችን ለማግኘት. በዚህ ጽሑፍ ውስጥ ለዚህ የቋንቋ አገልጋይ ደንበኛን እንዴት ማዋቀር እንደሚቻል እንነጋገራለን.

(የመጀመሪያው ጽሑፍ እንዲሁ ቪዲዮ አለ?ደራሲው የጽሁፉን ይዘት የሚናገርበት እና የሚያሳይበት።)

የቋንቋ አገልጋይ

የቋንቋ አገልጋዮች (የቋንቋ አገልጋዮች) ልዩ ፕሮቶኮልን በመጠቀም እርስ በእርስ ስለሚገናኙባቸው የፕሮግራም ቋንቋዎች ለአርታዒዎች እና IDEዎች ችሎታዎች ይናገሩ - የቋንቋ አገልጋይ ፕሮቶኮል (ኤልኤስፒ) ይህ በጣም ጥሩ አቀራረብ ነው ምክንያቱም አንድ ትግበራ ለብዙ አርታኢዎች / IDEዎች በአንድ ጊዜ መረጃን ለማቅረብ ያስችላል. አስቀድሜ አለኝ ፃፈ ስለ ጎፕሎች - ለጎልአንግ የቋንቋ አገልጋይ - እና እንዴት ጥቅም ላይ ሊውል ይችላል። vim. በ YAML ለ Kubernetes አውቶማቲክ ማጠናቀቂያ እርምጃዎች ተመሳሳይ ናቸው።

ቪም ከ YAML ጋር ለ Kubernetes ድጋፍ

ቪም በተገለፀው መንገድ እንዲሰራ የቋንቋ አገልጋይ ደንበኛን መጫን ያስፈልግዎታል። የማውቃቸው ሁለቱ ዘዴዎች ናቸው። ቋንቋ ደንበኛ-neovim и coc.vim. በጽሁፉ ውስጥ እመለከተዋለሁ coc.vim - ይህ በአሁኑ ጊዜ በጣም ታዋቂው ተሰኪ ነው። በ በኩል መጫን ይችላሉ vim-plug:

" 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-ቋንቋ-አገልጋይ) node.js መጫን ያስፈልገዋል፡-

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

መቼ coc.vim የተዋቀረ፣ የአገልጋይ ቅጥያውን ይጫኑ coc-yaml ከቪም:

:CocInstall coc-yaml

ቪም ከ YAML ጋር ለ Kubernetes ድጋፍ

በመጨረሻም፣ በጣም አይቀርም በማዋቀር መጀመር ትፈልጋለህ coc-vim፣ አቅርቧል ለአብነት ያህል. በተለይም ጥምሩን ያንቀሳቅሰዋል + ቦታ አውቶማቲክ ማጠናቀቅን ለመጥራት.

የ yaml-ቋንቋ-አገልጋይ ማወቂያን በማዘጋጀት ላይ

coc Yaml-ቋንቋ-አገልጋይ ሊጠቀም ይችላል፣የ YAML ፋይሎችን በሚያርትዑበት ጊዜ ከኩበርኔትስ ንድፉን እንዲጭን መጠየቅ ያስፈልጋል። ይህ በአርትዖት ይከናወናል coc-config:

:CocConfig

በማዋቀሩ ውስጥ መጨመር ያስፈልግዎታል kubernetes ለሁሉም ፋይሎች yaml. እኔ በተጨማሪ የቋንቋ አገልጋይ እጠቀማለሁ። golangስለዚህ የእኔ አጠቃላይ መዋቅር ይህንን ይመስላል

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

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

kubernetes - የቋንቋ አገልጋዩ የ Kubernetes ን ንድፍ ከተገለጸው ዩአርኤል እንዲያወርድ የሚናገር የተጠበቀ መስክ ይህ ቋሚ. yaml.schemas ተጨማሪ እቅዶችን ለመደገፍ ሊሰፋ ይችላል - ለተጨማሪ ዝርዝሮች, ይመልከቱ ተዛማጅ ሰነዶች.

አሁን የ YAML ፋይል መፍጠር እና ራስ-አጠናቅቅን መጠቀም መጀመር ይችላሉ። በመጫን ላይ + ቦታ (ወይም በቪም ውስጥ የተዋቀረ ሌላ ጥምረት) አሁን ባለው አውድ መሰረት ያሉትን መስኮች እና ሰነዶች ማሳየት አለበት፡

ቪም ከ YAML ጋር ለ Kubernetes ድጋፍ
እዚህ ይሰራል + ቦታ ስላዋቀርኩ ነው። inoremap <silent><expr> <c-space> coc#refresh(). ይህን ካላደረጉት ይመልከቱ coc.nvim README ለምሳሌ ውቅር.

የ Kubernetes ኤፒአይ ስሪት መምረጥ

እስከዚህ ጽሑፍ ድረስ፣ የያምል ቋንቋ-አገልጋይ ከኩበርኔትስ 1.14.0 መርሃግብሮች ጋር ይጓዛሉ። በተለዋዋጭ ንድፍ የምመርጥበት መንገድ አላገኘሁም፣ ስለዚህ ከፈትኩ። ተዛማጅ GitHub እትም. እንደ እድል ሆኖ፣ የቋንቋ አገልጋዩ በአጻጻፍ ስልት ስለተፃፈ ስሪቱን በእጅ መቀየር በጣም ቀላል ነው። ይህንን ለማድረግ ፋይሉን ማግኘት ብቻ ነው server.ts.

በማሽንዎ ላይ ለማግኘት በቀላሉ የ 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 በሥዕላዊ መግለጫው ውስጥ የለም startupProbe:

ቪም ከ YAML ጋር ለ Kubernetes ድጋፍ

ማጠቃለያ

ይህ እድል እኔን እንዳስደሰተኝ ተስፋ አደርጋለሁ። መልካም YAMLing! በአንቀጹ ውስጥ የተጠቀሱትን መገልገያዎች የበለጠ ለመረዳት እነዚህን ማከማቻዎች መመልከትዎን ያረጋግጡ፡-

PS ከተርጓሚ

እና ደግሞ አለ vikube, vim-kubernetes и vimkubectl.

በብሎጋችን ላይ ያንብቡ፡-

ምንጭ: hab.com

አስተያየት ያክሉ