เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต: เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเดพเดฏเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดชเตเดชเต‹เตพ เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟ

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดฒเต‡เด–เดจเด™เตเด™เตพ เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด•เดดเดฟเดตเตเด•เตพ เดŽเด™เตเด™เดจเต† เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดธเตเดตเดฏเด‚ เดŽเดดเตเดคเตเด•. เดˆ เดธเดฎเดฏเด‚ เดžเด™เตเด™เดณเตเดŸเต† เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดธเตŠเดฒเตเดฏเต‚เดทเตป เดจเดฟเด™เตเด™เดณเตเดŸเต† เดถเตเดฐเดฆเตเดงเดฏเดฟเตฝเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเตเดŸเต† เดธเตƒเดทเตเดŸเดฟเดฏเต† เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดคเดฒเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดชเต‹เด•เตเดจเตเดจเต - เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ!

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต?

เด’เดฐเต เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดŽเดจเตเดจ เด†เดถเดฏเด‚ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต: เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด‡เดตเดจเตเดฑเตเด•เตพ เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเตเดšเต†เดฏเตเดฏเตเด•, เดˆ เด‡เดตเดจเตเดฑเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด’เดฐเต เดฌเดพเดนเตเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•, เด‡เดตเดจเตเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเต:

เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต: เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเดพเดฏเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดชเตเดชเต‹เตพ เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟ

เด•เตเดฒเดธเตเดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดฎเดฏเดคเตเดคเต, เดถเดฐเดฟเดฏเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดถเดฐเดฟเด•เตเด•เตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดšเต†เดฑเดฟเดฏ เดœเต‹เดฒเดฟเด•เตพ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเดพเตป เดคเตเดŸเด™เตเด™เดฟเดฏเดชเตเดชเต‹เตพ เด…เดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดค เด‰เดฏเตผเดจเตเดจเต. เดˆ เดšเต†เดฑเดฟเดฏ เดœเต‹เดฒเดฟเด•เดณเต†เดฒเตเดฒเดพเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดฌเดพเดทเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเดคเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด—เตŠเดฒเดพเด‚เด—เดฟเตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดŽเดดเตเดคเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดตเตเดฏเด•เตเดคเดฎเดพเดฏเตเด‚, เด…เดคเตเดคเดฐเด‚ เด“เดฐเต‹ เดšเต†เดฑเดฟเดฏ เดœเต‹เดฒเดฟเด•เตเด•เตเด‚ เด’เดฐเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเดŸเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเด•เดธเดจเดคเตเดคเดฟเตฝ เดจเดฟเด•เตเดทเต‡เดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดซเดฒเดชเตเดฐเดฆเดฎเดฒเตเดฒ.

15 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ

เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดŽเดจเตเดคเตŠเด•เตเด•เต† เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเด‚, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดŽเด™เตเด™เดจเต† เดธเดนเดพเดฏเดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเต‹เด•เตเด•เดพเด‚. เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚: เดกเต‹เด•เตเด•เตผ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เดชเด•เตผเดคเตเดคเตเด•.

เด’เดฐเต เดธเตเดตเด•เดพเดฐเตเดฏ เดฐเดœเดฟเดธเตโ€ŒเดŸเตเดฐเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดชเต‹เดกเตเด•เดณเดฟเตฝ เดฐเดœเดฟเดธเตโ€ŒเดŸเตเดฐเดฟ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเตเดณเตเดณ เด’เดฐเต เดฐเดนเดธเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฒเดฟเด™เตเด•เต เด…เดตเดฏเตเดŸเต† เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เด“เดฐเต‹ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเตเด‚ เดชเต‹เดกเตโ€Œเดธเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดˆ เดฐเดนเดธเตเดฏเด‚ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เด‡เดคเต เดธเตเดตเดฎเต‡เดงเดฏเดพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เดชเด•เตเดทเต‡ เดžเด™เตเด™เตพ เดกเตˆเดจเดพเดฎเดฟเด•เต เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเตเด•เตพ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดฎเดพเดฑเตเด‚. เด•เต‚เดŸเดพเดคเต† 2-3 เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ... เดฐเดนเดธเตเดฏเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเดณเดฐเต† เดตเดฒเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เดฐเดนเดธเตเดฏเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด’เดฐเต เด•เดพเดฐเตเดฏเด‚ เด•เต‚เดŸเดฟ: เด•เดพเดฒเดพเด•เดพเดฒเด™เตเด™เดณเดฟเตฝ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด•เต€ เดฎเดพเดฑเตเดฑเดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดŸเตเดตเดฟเตฝ, เดฎเดพเดจเตเดตเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฏเดฟ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดซเดฒเดชเตเดฐเดฆเดฎเดฒเตเดฒ โ€” เดฐเดนเดธเตเดฏเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดžเด™เตเด™เตพ เด“เดŸเตเดŸเต‹เดฎเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดฒเดณเดฟเดคเดฎเดพเดฏ เด“เดŸเตเดŸเต‹เดฎเต‡เดทเตป

เด“เดฐเต‹ N เดธเต†เด•เตเด•เดจเตเดฑเดฟเดฒเตเด‚ เด’เดฐเดฟเด•เตเด•เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเดดเตเดคเดพเด‚, เด’เดฐเต เดฐเดนเดธเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต, เดฐเดนเดธเตเดฏเด‚ เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด…เดคเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. เดˆ เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดฏเต‹เดœเดจเด‚, เด‡เดคเต เด•เตเดฐเต‹เดฃเดฟเตฝ เด’เดฐเต เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต - เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเดฎเดพเดฏเดฟ เด’เดฐเต เด•เตเดฒเดพเดธเดฟเด•เต, เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเดตเตเดจเตเดจ เดธเดฎเต€เดชเดจเด‚. เด…เดคเดฟเดจเตเดฑเต† เดฒเต‹เดžเตเดšเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเดฒเตเดณเตเดณ เด‡เดŸเดตเต‡เดณเดฏเดฟเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเดคเตเดคเต‡เด•เตเด•เต เด…เดคเต เด’เดฐเต เดฐเดนเดธเตเดฏเดตเตเดฎเดฟเดฒเตเดฒเดพเดคเต† เดจเดฟเดฒเดจเดฟเตฝเด•เตเด•เตเด‚, เด‡เดคเต เดชเต‹เดกเตเด•เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดชเดฟเดถเด•เตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเด‚.

เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดณเตเดณ เด“เดŸเตเดŸเต‹เดฎเต‡เดทเตป

เดžเด™เตเด™เดณเตเดŸเต† เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด’เดฐเต เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เดšเต‡เตผเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด•เตเดฒเดพเดธเดฟเด•เต เด•เตเดฐเต‹เตบ เดฒเต‹เดžเตเดšเต เด’เดฐเต เดฒเต‹เดžเตเดšเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต: เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เดŽเด™เตเด™เดจเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚.

เด†เดฆเตเดฏเด‚, เดจเดฎเตเด•เตเด•เต เดคเดฟเดฐเด•เตเด•เดฅ เดจเต‹เด•เตเด•เดพเด‚. เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดชเดฆเด™เตเด™เดณเดฟเดฒเตเดณเตเดณ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เดณเต† เดนเตเด•เตเด•เตเด•เตพ เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เด•เตŠเดŸเดฟเดฏเตเดฎเดพเดฏเดฟ เด“เดŸเตเดฎเตเดชเต‹เตพ เด“เดฐเต‹ เด•เตŠเดณเตเดคเตเดคเตเด‚ --config เด…เดคเดฟเดจเตเดฑเต† เดฌเตˆเตปเดกเดฟเด‚เด—เตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเต† เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต. เดเดคเตŠเด•เตเด•เต† เด‡เดตเดจเตเดฑเตเด•เดณเดฟเดฒเดพเดฃเต เด‡เดคเต เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต. เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ onKubernetesEvent:

#!/bin/bash
if [[ $1 == "--config" ]] ; then
cat <<EOF
{
"onKubernetesEvent": [
  { "kind": "namespace",
    "event":["add"]
  }
]}
EOF
fi

เด‡เดตเดจเตเดฑเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เดจเตเดจเต เด‡เดตเดฟเดŸเต† เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเต (add) เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเดธเตเดคเตเด•เตเด•เตพ namespace.

เด‡เดตเดจเตเดฑเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด•เต‹เดกเต เดจเดฟเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

#!/bin/bash
if [[ $1 == "--config" ]] ; then
  # ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั
cat <<EOF
{
"onKubernetesEvent": [
{ "kind": "namespace",
  "event":["add"]
}
]}
EOF
else
  # ั€ะตะฐะบั†ะธั:
  # ัƒะทะฝะฐั‚ัŒ, ะบะฐะบะพะน namespace ะฟะพัะฒะธะปัั
  createdNamespace=$(jq -r '.[0].resourceName' $BINDING_CONTEXT_PATH)
  # ัะพะทะดะฐั‚ัŒ ะฒ ะฝั‘ะผ ะฝัƒะถะฝั‹ะน ัะตะบั€ะตั‚
  kubectl create -n ${createdNamespace} -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
  ...
data:
  ...
EOF
fi

เด•เตŠเดณเตเดณเดพเด‚! เดซเดฒเด‚ เดšเต†เดฑเตเดคเตเด‚ เดฎเดจเต‹เดนเดฐเดตเตเดฎเดพเดฏ เด’เดฐเต เดคเดฟเดฐเด•เตเด•เดฅเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด‡เดคเต "เดชเตเดจเดฐเตเดœเตเดœเต€เดตเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป", เดฐเดฃเตเดŸเต เด˜เดŸเตเดŸเด™เตเด™เตพ เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเต: เดšเดฟเดคเตเดฐเด‚ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•.

เด’เดฐเต เดนเตเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดšเดฟเดคเตเดฐเด‚ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เตเดจเตเดจเต

เดจเดฟเด™เตเด™เตพ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดจเต‹เด•เตเด•เดฟเดฏเดพเตฝ, เด•เดฎเดพเตปเดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚ kubectl ะธ jq. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚: เดžเด™เตเด™เดณเตเดŸเต† เดนเตเด•เตเด•เต, เด‡เดตเดจเตเดฑเตเด•เตพ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดนเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ, เดนเตเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เดฎเดพเตปเดกเตเด•เตพ (kubectl, jq). Hub.docker.com-เตฝ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ, kubectl, jq เดŽเดจเตเดจเดฟเดต เดชเดพเด•เตเด•เต‡เดœเตเดšเต†เดฏเตโ€Œเดค เด’เดฐเต เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เด‡เดฎเต‡เดœเต เด‰เดฃเตเดŸเต. เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดนเตเด•เตเด•เต เดšเต‡เตผเด•เตเด•เดพเตป เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเดคเต Dockerfile:

$ cat Dockerfile
FROM flant/shell-operator:v1.0.0-beta.1-alpine3.9
ADD namespace-hook.sh /hooks

$ docker build -t registry.example.com/my-operator:v1 . 
$ docker push registry.example.com/my-operator:v1

เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต

เดจเดฎเตเด•เตเด•เต เดตเต€เดฃเตเดŸเตเด‚ เดนเตเด•เตเด•เต เดจเต‹เด•เตเด•เดพเด‚, เดˆ เดธเดฎเดฏเด‚ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดŽเดจเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เดเดคเตŠเด•เตเด•เต† เดตเดธเตเดคเตเด•เตเด•เดณเดพเดฃเต เด…เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดŽเดจเตเดจเต เดŽเดดเตเดคเตเด•:

  1. เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตฝ เด‡เดตเดจเตเดฑเตเด•เตพ เดธเดฌเตเดธเตเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต;
  2. เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดฟเดŸเดคเตเดคเต เด’เดดเดฟเด•เต†เดฏเตเดณเตเดณ เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเตเด•เดณเดฟเตฝ เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต.

เดžเด™เตเด™เดณเตเดŸเต† เด‡เดฎเต‡เดœเต เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดชเต‹เดกเดฟเดจเต เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด…เดจเตเดฎเดคเดฟเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเตเดจเตเดจเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดธเตผเดตเต€เดธเต เด…เด•เตเด•เต—เดฃเตเดŸเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เด…เดจเตเดฎเดคเดฟ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดฑเต‹เตพ, เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดฑเต‹เตพ เดฌเตˆเตปเดกเดฟเด‚เด—เต เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดฐเต‚เดชเดคเตเดคเดฟเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚, เด•เดพเดฐเดฃเด‚ เดฎเตเดดเตเดตเตป เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดฎเตเดณเตเดณ เดตเดธเตเดคเตเด•เตเด•เดณเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต.

YAML-เดฒเต† เด…เดตเดธเดพเดจ เดตเดฟเดตเดฐเดฃเด‚ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚:

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: monitor-namespaces-acc

---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: monitor-namespaces
rules:
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["get", "watch", "list"]
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get", "list", "create", "patch"]

---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: monitor-namespaces
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: monitor-namespaces
subjects:
  - kind: ServiceAccount
    name: monitor-namespaces-acc
    namespace: example-monitor-namespaces

เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดตเดฟเดจเตเดฏเดพเดธเดฎเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดธเด‚เดฌเดฟเตพ เดšเต†เดฏเตเดค เดšเดฟเดคเตเดฐเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเด‚:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-operator
spec:
  template:
    spec:
      containers:
      - name: my-operator
        image: registry.example.com/my-operator:v1
      serviceAccountName: monitor-namespaces-acc

เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดจเต†เดฏเดฟเด‚เดธเตเดชเต‡เดธเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต:

$ kubectl create ns example-monitor-namespaces
$ kubectl -n example-monitor-namespaces apply -f rbac.yaml
$ kubectl -n example-monitor-namespaces apply -f deployment.yaml

เด…เดคเตเดฐเดฏเต‡เดฏเตเดณเตเดณเต‚: เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด‚, เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต‡เดธเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตฝ เด‡เดตเดจเตเดฑเตเด•เตพ เดธเดฌเตโ€Œเดธเตโ€Œเด•เตเดฐเตˆเดฌเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดชเตเดชเต‹เตพ เดนเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.

เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต: เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเดพเดฏเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดชเตเดชเต‹เตพ เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟ

เด…เด™เตเด™เดจเต†, เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดฑเต† เดฏเดฅเดพเตผเดคเตเดฅ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดพเดฏเดฟ เดฎเดพเดฑเดฟ เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เด—เต‹เดฒเดพเด™เตเด™เดฟเตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเดฒเตเดฒเดพเดคเต† เด‡เดคเต†เดฒเตเดฒเดพเด‚:

เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต: เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเดพเดฏเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดชเตเดชเต‹เตพ เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟ

เดˆ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดฆเตƒเดทเตเดŸเดพเดจเตเดคเดฎเตเดฃเตเดŸเต...เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต: เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเดพเดฏเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดชเตเดชเต‹เตพ เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟ

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเดฒเตŠเดจเตเดจเดฟเตฝ เดžเด™เตเด™เตพ เด…เดคเดฟเดจเตเดฑเต† เด…เตผเดคเตเดฅเด‚ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚.

เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเด‚เด—เต

เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเตเด•เตพ เดŸเตเดฐเดพเด•เตเด•เตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดจเดฒเตเดฒเดคเดพเดฃเต, เดชเด•เตเดทเต‡ เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดชเตเดฐเดคเดฟเด•เดฐเดฟเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเตเดฃเตเดŸเต เดšเดฟเดฒ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดฒเต† เดชเด•เตผเดชเตเดชเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต‹ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดฒเต‡เดฌเดฒเตเด•เตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต‹.

เด’เดฐเต เด‡เดตเดจเตเดฑเต เดŽเดคเตเดคเตเดฎเตเดชเต‹เตพ, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด’เดฌเตเดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† JSON เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ JSON-เตฝ เดจเดฎเตเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณ เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต เดนเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚ เดฎเดพเดคเตเดฐเด‚ เด…เดตเตผ เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ. เด‡เดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดฎเตˆเดคเดพเดจเดฎเตเดฃเตเดŸเต jqFilter, JSON เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ jq เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดจเดฟเด™เตเด™เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดฟเดจเตเดฏเดพเดธ เดตเดธเตเดคเตเด•เตเด•เตพเด•เตเด•เตเดณเตเดณ เดฒเต‡เดฌเดฒเตเด•เดณเดฟเดฒเต† เดฎเดพเดฑเตเดฑเด™เตเด™เดณเต‹เดŸเต เดชเตเดฐเดคเดฟเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดซเต€เตฝเดกเต เดซเดฟเตฝเดŸเตเดŸเตผ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต labels เดตเดฏเดฒเดฟเดจเต เดชเตเดฑเดคเตเดคเต metadata. เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚:

cat <<EOF
{
"onKubernetesEvent": [
{ "kind": "deployment",
  "event":["update"],
  "jqFilter": ".metadata.labels"
}
]}
EOF

เดˆ jqFilter เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฑเต† เดจเต€เดฃเตเดŸ JSON เดฎเดพเดจเดฟเดซเต†เดธเตเดฑเตเดฑเดฟเดจเต† เดฒเต‡เดฌเดฒเตเด•เดณเตเดณเตเดณ เดนเตเดฐเดธเตเดต JSON เด†เด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต:

เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต: เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเดพเดฏเดฟ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเดฐเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดชเตเดชเต‹เตพ เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟ

เดˆ เดนเตเดฐเดธเตเดต JSON เดฎเดพเดฑเตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดนเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚, เดฎเดฑเตเดฑเต เดชเตเดฐเต‹เดชเตเดชเตผเดŸเตเดŸเดฟเด•เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เด…เดตเด—เดฃเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚.

เดนเตเด•เตเด•เต เดฒเต‹เดžเตเดšเต เดธเดจเตเดฆเตผเดญเด‚

เด‡เดตเดจเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เด“เดชเตเดทเดจเตเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เดนเตเด•เตเด•เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต - เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด‡เดตเดจเตเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ 2 เด“เดชเตโ€Œเดทเดจเตเด•เดณเตเด‚ 2 เดทเต†เดกเตเดฏเต‚เดณเตเด•เดณเตเด‚:

{"onKubernetesEvent":[
  {"name":"OnCreatePod",
  "kind": "pod",
  "event":["add"]
  },
  {"name":"OnModifiedNamespace",
  "kind": "namespace",
  "event":["update"],
  "jqFilter": ".metadata.labels"
  }
],
"schedule": [
{ "name":"every 10 min",
  "crontab":"* */10 * * * *"
}, {"name":"on Mondays at 12:10",
"crontab": "* 10 12 * * 1"
]}

เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดตเตเดฏเดคเดฟเดšเดฒเดจเด‚: เด…เดคเต†, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต เด•เตเดฐเต‹เดฃเตเดŸเดพเดฌเต เดถเตˆเดฒเดฟเดฏเดฟเดฒเตเดณเตเดณ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚ เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดนเตเด•เตเด•เต เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเดคเต†เดจเตเดจเต เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ เด’เดฐเต เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดค เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดนเตเด•เตเด•เดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. BINDING_CONTEXT_TYPE. เดซเดฏเดฒเดฟเตฝ เดนเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดพเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† JSON เดตเดฟเดตเดฐเดฃเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด“เดฐเต‹ 10 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเตเด‚ เดนเตเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดณเตเดณเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด‚:

[{ "binding": "every 10 min"}]

... เดคเดฟเด™เตเด•เดณเดพเดดเตโ€Œเดš เด‡เดคเต เด‡เด™เตเด™เดจเต† เดคเตเดŸเด™เตเด™เตเด‚:

[{ "binding": "every 10 min"}, { "binding": "on Mondays at 12:10"}]

เดตเต‡เดฃเตเดŸเดฟ onKubernetesEvent เด•เต‚เดŸเตเดคเตฝ JSON เดŸเตเดฐเดฟเด—เดฑเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เตเด‚, เด•เดพเดฐเดฃเด‚ เด…เดคเดฟเตฝ เดตเดธเตเดคเตเดตเดฟเดจเตเดฑเต† เด’เดฐเต เดตเดฟเดตเดฐเดฃเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

[
 {
 "binding": "onCreatePod",
 "resourceEvent": "add",
 "resourceKind": "pod",
 "resourceName": "foo",
 "resourceNamespace": "bar"
 }
]

เดซเต€เตฝเดกเตเด•เดณเตเดŸเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เด…เดตเดฏเตเดŸเต† เดชเต‡เดฐเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเดจเตเด‚ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เดตเดพเดฏเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚ เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚. เด’เดฐเต เดซเต€เตฝเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดฑเดฟเดธเต‹เดดเตเดธเต เดจเดพเดฎเด‚ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ resourceName jq เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดฐเดนเดธเตเดฏเด™เตเด™เตพ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดนเตเด•เตเด•เดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

jq -r '.[0].resourceName' $BINDING_CONTEXT_PATH

เดธเดฎเดพเดจเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดฑเตเดฑเต เดซเต€เตฝเดกเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเด‚.

เด…เดŸเตเดคเตเดคเดคเต เดŽเดจเตเดคเต?

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเตฝ, เด‡เตป / เด‰เดฆเดพเดนเดฐเดฃ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเด•เตพ, เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฏ เด•เตŠเดณเตเดคเตเดคเตเด•เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเดฃเตเดŸเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด•เตŠเดณเตเดคเตเดคเตเด•เตพ เดŽเดดเตเดคเตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เดชเตเดฐเต‹เดฎเดฟเดคเตเดฏเต‚เดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดฃเตเดŸเต - เดฒเดญเตเดฏเดฎเดพเดฏ เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดฎเต†เดŸเตเดฐเดฟเด•เตเดธเต.

เดจเดฟเด™เตเด™เตพ เดŠเดนเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดทเต†เตฝ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผ Go- เตฝ เดŽเดดเตเดคเตเด•เดฏเตเด‚ เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดฒเตˆเดธเตปเดธเดฟเดจเต เด•เต€เดดเดฟเตฝ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด…เดชเตเดชเดพเดšเตเดšเต† 2.0). เดเดคเต เดตเดฟเด•เดธเดจ เดธเดนเดพเดฏเดคเตเดคเดฟเดจเตเด‚ เดžเด™เตเด™เตพ เดจเดจเตเดฆเดฟเดฏเตเดณเตเดณเดตเดฐเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ GitHub-เดฒเต† เดชเดฆเตเดงเดคเดฟ: เด’เดชเตเดชเด‚ เดจเด•เตเดทเดคเตเดฐเด™เตเด™เดณเตเด‚, เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเด‚, เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเด‚ เดตเดฒเดฟเดšเตเดšเดฟเดŸเตเด•.

เดฐเดนเดธเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดฎเต‚เดŸเตเดชเดŸเด‚ เด‰เดฏเตผเดคเตเดคเดฟ, เดทเต†เตฝ เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเดพเดฃเต†เดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเต† เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเด‚ เดšเต†เดฑเดฟเดฏ Kubernetes เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เด†เดกเต-เด“เดฃเตเด•เตพ เด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเดจเตเด‚ เดตเดฟเดตเดฟเดง เดธเตเดตเดฏเดฎเต‡เดตเดฏเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดจเดŸเดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเดจเตเดจ เดžเด™เตเด™เดณเตเดŸเต† เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดญเดพเด—เด‚. เดˆ เดธเด‚เดตเดฟเดงเดพเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เตเด• เดชเดฑเดžเตเดžเต เด…เด•เตเดทเดฐเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดคเดฟเด™เตเด•เดณเดพเดดเตเดš เดธเต†เดจเตเดฑเต เดชเต€เดฑเตเดฑเต‡เดดเตโ€Œเดธเตเดฌเตผเด—เดฟเดฒเต† HighLoad++ 2019-เตฝ - เดˆ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เดตเต€เดกเดฟเดฏเต‹เดฏเตเด‚ เดŸเตเดฐเดพเตปเดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด‚ เดžเด™เตเด™เตพ เด‰เดŸเตป เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเด‚.

เดˆ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เดฌเดพเด•เตเด•เดฟ เดญเดพเด—เด‚ เดคเตเดฑเด•เตเด•เดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดชเตเดฒเดพเดจเตเดฃเตเดŸเต: เด†เดกเตเด“เตบ-เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฑเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดนเตเด•เตเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดถเต‡เด–เดฐเด‚. เดตเดดเดฟเดฏเดฟเตฝ, addon-operator เด‡เดคเดฟเดจเด•เด‚ เด‰เดฃเตเดŸเต github-เตฝ เดฒเดญเตเดฏเดฎเดพเดฃเต, เดŽเดจเตเดจเดพเตฝ เด…เดคเดฟเดจเตเดณเตเดณ เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เด‡เดชเตเดชเต‹เดดเตเด‚ เดตเดดเดฟเดฏเดฟเดฒเดพเดฃเต. เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เดถเต‡เด–เดฐเดคเตเดคเดฟเดจเตเดฑเต† เดฑเดฟเดฒเต€เดธเต เดตเต‡เดจเตฝเด•เตเด•เดพเดฒเดคเตเดคเต เด†เดธเต‚เดคเตเดฐเดฃเด‚ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เด‡เดตเดฟเดŸเต†เดคเตเดคเดจเตเดจเต† เดจเดฟเตฝเด•เตเด•เตเด•!

เดชเดฟ.เดŽเดธเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด•:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•