
เดนเดพเดฏเต! เดกเตเดเตเดเตผ เดเดฎเตเดเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เดฎเดฟเดเดเตเด เดเดเตเดเตเดฎเตเดทเตป เดเดชเดเดฐเดฃเดเตเดเตพ เด เดเตเดคเตเดคเดฟเดเต เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. เด เดคเดฟเดจเดพเตฝ, เดเดพเตป GitLab-เดฎเดพเดฏเดฟ เดเดณเดฟเดเตเดเดพเดจเตเด เด เดคเดฟเดจเตเดฑเต เดเดดเดฟเดตเตเดเตพ เดธเดฎเดเตเดฐเดฎเดพเดฏเดฟ เดชเดฐเตเดฏเดตเตเดเตเดทเดฃเด เดเตเดฏเตเดฏเดพเดจเตเด เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เดเดฐเต เดชเตเดชเตเดชเตโเดฒเตเตป เดธเตเดฅเดพเดชเดฟเดเตเดเดพเดจเตเด เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต.
เด เดเตเดคเดฟเดฏเตเดเต เดชเตเดฐเดเตเดฆเดจเด เดตเตเดฌเตเดธเตเดฑเตเดฑเต เดเดฏเดฟเดฐเตเดจเตเดจเต , เดเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดธเตเดตเดฏเดฎเตเดต, เด เดฏเดฏเตเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดเตเดเตเด, เดฑเตเดฌเตเดเตเดเต เดจเดฟเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดเตเดชเตเดชเด เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต เดเดฐเต เดชเตเดฐเดฟเดตเตเดฏเต เดชเดคเดฟเดชเตเดชเต เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดเดพเดฃเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดฒเดฟเดเตเดเต เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดธเดฎเดพเดจเดฎเดพเดฏ เดเดฐเต เดชเตเดฐเดเตเดฐเดฟเดฏ เดเดพเตป เดเดฆเตเดฏเด เดฎเตเดคเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเต, เดชเดเตเดทเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด Gitlab CI เดฏเดฟเดฒเตเด Kubernetes-เดฒเตเดเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป เดเดพเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดชเตเดชเตบ เดธเตเดดเตโเดธเต เดเดชเดเดฐเดฃเดเตเดเดณเดฟเดฒเตเด เด เดงเดฟเดทเตเด เดฟเดคเดฎเดพเดฏเดพเดฃเต เดเดคเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต. เดเดจเตเดจเต, เด เดตเดฏเตเดเตเดเตเดฑเดฟเดเตเดเต เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดเดพเตป เดจเดฟเดเตเดเดณเตเดเต เดชเดฑเดฏเตเด.
เดฒเตเดเดจเด เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเตเดชเตเดฒเตเดณเตเดณ เดเดชเดเดฐเดฃเดเตเดเตพ เดเตพเดเตเดเตเดณเตเดณเตเด:
เดนเตเดฏเตเดเต, qbec, เดเดพเดฃเดฟเดเตเดเต, git-crypt ะธ เดเดฟเดฑเตเดฑเตโเดฒเดพเดฌเต เดธเดฟ.เด เดเดฒเดจเดพเดคเตเดฎเดเดฎเดพเดฏ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเดณเตเดเต เดธเตเดทเตเดเดฟเดฏเตเดเต.
เดเดณเตเดณเดเดเตเดเด
1. เดนเตเดฏเตเดเตเดฏเต เด เดฑเดฟเดฏเตเด
เดเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ, เดนเตเดฏเตเดเตเดฏเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเด เดเดฐเต เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดชเดฌเตเดฒเดฟเดทเดฟเดเดเต เดตเตเดฌเตโเดธเตเดฑเตเดฑเต เดเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเด. เดนเตเดฏเตเดเต เดเดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดเดฃเตเดเดจเตเดฑเต เดเดจเดฑเตเดฑเตเดฑเดฑเดพเดฃเต.
เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดเดจเดฑเตเดฑเตเดฑเดฑเตเดเดณเต เดเตเดฑเดฟเดเตเดเต เดชเดฐเดฟเดเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดตเตผเดเตเดเดพเดฏเดฟ, เดเดพเตป เด เดต เดเตเดฑเดเตเดเตเดเตเดเดฟ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดถเดฆเตเดเดฐเดฟเดเตเดเดพเด. เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเด เดเดฟเดฒ PHP-เดฏเตเด เดเดณเตเดณ เดชเดฐเดฎเตเดชเดฐเดพเดเดค เดตเตเดฌเตโเดธเตเดฑเตเดฑเต เดเดเตเดเดฟเดจเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต เด เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดฐเดเดพเดฐเด เดชเตเดเตเดเตเดจเตเดจเต เดชเตเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดต, เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดเดจเดฑเตเดฑเตเดฑเดฑเตเดเตพ เด เดฒเตเดชเด เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดฐเตเดชเดเตฝเดชเตเดชเดจ เดเตเดฏเตโเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดธเตเดดเตโเดธเต เดเตเดกเต, เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดฐเต เดเตเดเตเดเด เดฎเดพเตผเดเตเดเตเดกเตเตบ เดซเดฏเดฒเตเดเดณเตเด เดคเตเด เดเตเดเดชเตเดฒเตเดฑเตเดฑเตเดเดณเตเด เดเดเตเดคเตเดคเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดฏ เดเดฐเต เดตเตเดฌเตโเดธเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดเดเดชเตเตฝ เดเตเดฏเตเดฏเดพเตป เด เดต เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดเดคเดฟเดจเตผเดคเตเดฅเด เดเดเตเดเตโเดชเตเดเตเดเต เดเดฐเต เดกเดฏเดฑเดเตโเดเดฑเดฟ เดเดเดจเดฏเตเด เดเดจเดฑเตเดฑเตเดฑเตเดเตเดฏเตโเดค HTML เดซเดฏเดฒเตเดเดณเตเดเต เดเดฐเต เดเตเดเตเดเดตเตเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เด เดคเต เดจเดฟเดเตเดเตพเดเตเดเต เดตเดฟเดฒเดเตเดฑเดเตเด เดเดฐเต เดนเตเดธเตเดฑเตเดฑเดฟเดเดเต เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เด เดชเตโเดฒเตเดกเต เดเตเดฏเตโเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดตเตเดฌเตโเดธเตเดฑเตเดฑเต เดธเตเดทเตโเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด.
เดจเดฟเดเตเดเตพเดเตเดเต เดนเตเดฏเตเดเต เดฒเตเดเตเดเดฒเดพเดฏเดฟ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเต เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดเตเดเดพเด:
เดเดฐเต เดชเตเดคเดฟเดฏ เดธเตเดฑเตเดฑเต เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต:
hugo new site docs.example.orgเดเตเดเดพเดคเต เดเดฐเต เดเดฟเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเตเด:
cd docs.example.org
git initเดเดชเตเดชเตเตพ, เดเดเตเดเดณเตเดเต เดธเตเดฑเตเดฑเต เดชเตเดฐเดพเดเตเดคเดฎเดพเดฃเต, เด เดคเดฟเตฝ เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดฆเตเดถเตเดฏเดฎเดพเดเดฃเดฎเตเดเตเดเดฟเตฝ, เดเดฆเตเดฏเด เดเดฐเต เดคเตเด เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดฐเต เดคเตเด เดเดจเตเดจเดคเต เดเดเตเดเดณเตเดเต เดธเตเดฑเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจ เดเตเดเดชเตเดฒเตเดฑเตเดฑเตเดเดณเตเดเตเดฏเตเด เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดจเดฟเดฏเดฎเดเตเดเดณเตเดเตเดฏเตเด เดเดฐเต เดเตเดเตเดเดฎเดพเดฃเต.
เดเดฐเต เดตเดฟเดทเดฏเดฎเดพเดฏเดฟ เดจเดฎเตเดฎเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด , เดเดจเตเดฑเต เด เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, เดเดฐเต เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดธเตเดฑเตเดฑเดฟเดจเต เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏเดคเต.
เดเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเตฝ เดคเตเด เดซเดฏเดฒเตเดเตพ เดธเตเดตเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดฒเตเดฒ เดเดจเตเดจ เดตเดธเตเดคเตเดคเดฏเดฟเดฒเตเดเตเดเต เดเดเตเดเตพ เดชเตเดฐเดคเตเดฏเตเด เดถเตเดฐเดฆเตเดง เดเตเดฒเตเดคเตเดคเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต, เดชเดเดฐเด เดจเดฎเตเดเตเดเต เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด เดเดฟเดฑเตเดฑเต เดธเดฌเตเดฎเตเดกเตเดฏเตเตพ:
git submodule add https://github.com/matcornic/hugo-theme-learn themes/learnเด เดฐเตเดคเดฟเดฏเดฟเตฝ, เดเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดฎเดพเดฏเดฟ เดจเตเดฐเดฟเดเตเดเต เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดซเดฏเดฒเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดเดเตเดเดณเตเดเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเตฝ เดเดฃเตเดเดพเดเต, เดเตเดเดพเดคเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเด เดคเตเด เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดฒเดฟเดเตเดเดพเดฏเดฟ เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเดเดฏเตเด เด เดคเดฟเตฝ เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด, เด เดคเดพเดฏเดคเต เดชเตเดฐเตเดคเตเดคเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดฎเดพเดฑเตเดฑเดเตเดเดณเต เดญเดฏเดชเตเดชเตเดเดพเดคเต เด เดคเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดฏเดฅเดพเตผเดคเตเดฅ เดเดฑเดตเดฟเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฟเตปเดตเดฒเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด.
เดจเดฎเตเดเตเดเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดถเดฐเดฟเดฏเดพเดเตเดเดพเด เดเตเตบเดซเดฟเดเต.เดเตเดเตฝ:
baseURL = "http://docs.example.org/"
languageCode = "en-us"
title = "My Docs Site"
theme = "learn"เด เดเดเตเดเดคเตเดคเดฟเตฝ เดคเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
hugo serverเดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดเตเดเดณเตเดเต เดชเตเดคเตเดคเดพเดฏเดฟ เดธเตเดทเตเดเดฟเดเตเด เดตเตเดฌเตเดธเตเดฑเตเดฑเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด; เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเตฝ เดตเดฐเตเดคเตเดคเดฟเดฏ เดเดฒเตเดฒเดพ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเด เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดคเตเดฑเดจเตเดจ เดชเตเดเต เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด. เดตเดณเดฐเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเด!
เดเดฐเต เดคเดฒเดเตเดเตเดเตเดเต เดชเตเดเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด เดเดณเตเดณเดเดเตเดเด/_เดเตปเดกเตเดเตเดธเต.เดเดเดกเดฟ:
# My docs site
## Welcome to the docs!
You will be very smart :-)เดชเตเดคเตเดคเดพเดฏเดฟ เดธเตเดทเตเดเดฟเดเตเด เดชเตเดเดฟเดจเตเดฑเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

เดเดฐเต เดตเตเดฌเตเดธเตเดฑเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป, เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด:
hugoเดกเดฏเดฑเดเตเดเดฑเดฟ เดเดณเตเดณเดเดเตเดเดเตเดเตพ เดชเตเดคเต/ เดจเดฟเดเตเดเดณเตเดเต เดตเตเดฌเตโเดธเตเดฑเตเดฑเดพเดฏเดฟเดฐเดฟเดเตเดเตเด.
เด
เดคเต, เดตเดดเดฟเดฏเดฟเตฝ, เดจเดฎเตเดเตเดเต เด
เดคเต เดเดเตป เดเตเตผเดเตเดเดพเด. .เดเดฟเดฑเตเดฑเดฟเดเตเดจเตเตผ:
echo /public > .gitignoreเดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
git add .
git commit -m "New site created"2. เดกเตเดเตเดเตผ เดซเดฏเตฝ เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตเดจเตเดจเต
เดจเดฎเตเดฎเตเดเต เดธเดเดญเดฐเดฃเดฟเดฏเตเดเต เดเดเดจ เดจเดฟเตผเดตเดเดฟเดเตเดเตเดฃเตเด เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต. เดเดพเตป เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดคเตเดชเตเดฒเตเดจเตเดจเต เดเดชเดฏเตเดเดฟเดเตเดเดพเดฑเตเดฃเตเดเต:
.
โโโ deploy
โ โโโ app1
โ โโโ app2
โโโ dockerfiles
โโโ image1
โโโ image2- เดกเตเดเตเดเตผเดซเดฏเดฒเตเดเตพ/ โ เดกเตเดเตเดเตผเดซเดฏเดฒเตเดเตพ เดเดณเตเดณ เดกเดฏเดฑเดเตเดเดฑเดฟเดเดณเตเด เดเดเตเดเดณเตเดเต เดกเตเดเตเดเตผ เดเดฎเตเดเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดฒเตเดฒเดพเด เดเตพเดเตเดเตเดณเตเดณเตเดจเตเดจเต.
- เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด/ โ เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดกเดฏเดฑเดเตเดเดฑเดฟเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เด เดชเตเดชเตเตพ เดจเดฎเตเดฎเตพ เดจเดฎเตเดฎเตเดเต เดเดฆเตเดฏเดคเตเดคเต เดกเตเดเตเดเตผ เดซเดฏเตฝ เดชเดพเดคเดฏเดฟเดฒเตเดเต เดธเตเดทเตเดเดฟเดเตเดเตเด. เดกเตเดเตเดเตผเดซเดฏเดฒเตเดเตพ/เดตเตเดฌเตโเดธเตเดฑเตเดฑเต/เดกเตเดเตเดเตผเดซเดฏเตฝ
FROM alpine:3.11 as builder
ARG HUGO_VERSION=0.62.0
RUN wget -O- https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-64bit.tar.gz | tar -xz -C /usr/local/bin
ADD . /src
RUN hugo -s /src
FROM alpine:3.11
RUN apk add --no-cache darkhttpd
COPY --from=builder /src/public /var/www
ENTRYPOINT [ "/usr/bin/darkhttpd" ]
CMD [ "/var/www" ]เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดกเตเดเตเดเตผเดซเดฏเดฒเดฟเตฝ เดฐเดฃเตเดเต เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต FROM, เด เด
เดตเดธเดฐเดคเตเดคเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต เดเตเดเดพเดคเต เด
เดจเตเดคเดฟเดฎ เดกเตเดเตเดเตผ เดเดฎเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เด
เดจเดพเดตเดถเตเดฏเดฎเดพเดฏ เดเดฒเตเดฒเดพเด เดเดดเดฟเดตเดพเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เด
เดเตเดเดจเต, เดจเดฎเตเดฎเตเดเต เด
เดจเตเดคเดฟเดฎ เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเต เดเดฐเตเดฃเตเดhttpd (เดญเดพเดฐเด เดเตเดฑเดเตเด HTTP เดธเตเตผเดตเตผ) เดเตเดเดพเดคเต เดชเตเดคเต/ โ เดเดเตเดเดณเตเดเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเตเดเต เดเดฏเดฟ เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดค เดตเตเดฌเตโเดธเตเดฑเตเดฑเดฟเดจเตเดฑเต เดเดณเตเดณเดเดเตเดเด.
เดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
git add dockerfiles/website
git commit -m "Add Dockerfile for website"3. เดเดฃเดฟเดเตเดเตเดฏเต เด เดฑเดฟเดฏเตเด
เดเดฐเต เดกเตเดเตเดเตผ เดเดฎเตเดเต เดฌเดฟเตฝเดกเตผ เดเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดเดพเตป เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต , เดเดพเดฐเดฃเด เดเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดฐเต เดกเตเดเตเดเตผ เดกเตเดฎเตบ เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เดเตเดเดพเดคเต เดฌเดฟเตฝเดกเต เดคเดจเตเดจเต เดเดคเต เดฎเตเดทเตเดจเดฟเดฒเตเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเดจเตเด เดเดพเดทเต เดจเตเดฐเดฟเดเตเดเต เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเดฟเตฝ เดธเตเดเตเดทเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด, เด เดคเตเดตเดดเดฟ เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเดฐเต เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดธเดเดญเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดค เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดเดฎเตเดเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป, เดเดฐเต เดเดฃเตเดเตเดฏเตเดจเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตฝ เดฎเดคเดฟเดฏเดพเดเตเด เดเดฃเดฟเดเตเดเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเตผ เดจเดฟเดฒเดตเดฟเดฒเต เดฌเดฟเตฝเดกเต เดธเดจเตเดฆเตผเดญเด เด เดคเดฟเดจเต เดเตเดฎเดพเดฑเตเด; เดเดคเต เดกเตเดเตเดเตผ เดตเดดเดฟ เดชเตเดฐเดพเดฆเตเดถเดฟเดเดฎเดพเดฏเดฟ เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด:
docker run -ti --rm
-v $PWD:/workspace
-v ~/.docker/config.json:/kaniko/.docker/config.json:ro
gcr.io/kaniko-project/executor:v0.15.0
--cache
--dockerfile=dockerfiles/website/Dockerfile
--destination=registry.gitlab.com/kvaps/docs.example.org/website:v0.0.1เดเดตเดฟเดเตเดฏเดพเดฃเต registry.gitlab.com/kvaps/docs.example.org/เดตเตเดฌเตโเดธเตเดฑเตเดฑเต โ เดจเดฟเดเตเดเดณเตเดเต เดกเตเดเตเดเตผ เดเดฎเตเดเดฟเดจเตเดฑเต เดชเตเดฐเต; เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดเดดเดฟเดเตเดเดพเตฝ, เด เดคเต เดกเตเดเตเดเตผ เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเดฟเดฒเตเดเตเดเต เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดฒเตเดเตเดเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเด.
เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ โเดเดพเดทเต เดกเตเดเตเดเตผ เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเดฟเตฝ เดฒเตเดฏเดฑเตเดเตพ เดเดพเดทเต เดเตเดฏเตเดฏเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต, เดจเตฝเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เด เดต เดธเดเดญเดฐเดฟเดเตเดเดชเตเดชเตเดเตเด registry.gitlab.com/kvaps/docs.example.org/website/cache, เดชเดเตเดทเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดฎเดฑเตเดฑเตเดฐเต เดชเดพเดค เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเด โเดเดพเดทเต-เดฑเดฟเดชเตเดชเต.
เดกเตเดเตเดเตผ-เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเตเดเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

4. เดเตเดฏเตเดฌเดฟเดเดธเดฟเดฏเต เด เดฑเดฟเดฏเตเด
เดจเดฟเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเตเดเดณเต เดกเดฟเดเตเดฒเดฑเตเดฑเตเดฑเตเดตเต เดเดฏเดฟ เดตเดฟเดตเดฐเดฟเดเตเดเดพเดจเตเด เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเดจเตเด เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดตเดฟเดจเตเดฏเดพเดธ เดเดชเดเดฐเดฃเดฎเดพเดฃเต. เดชเตเดฐเดพเดฅเดฎเดฟเด เดตเดพเดเตเดฏเดเดเดจเดฏเดพเดฏเดฟ Jsonnet เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเดณเดฟเดฒเตเดเดจเตเดณเดฎเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเดเตเดเตพ เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดตเดณเดฐเตเดฏเดงเดฟเดเด เดฒเดณเดฟเดคเดฎเดพเดเตเดเตเดเดฏเตเด เดเตเดกเต เดเดตเตผเดคเตเดคเดจเด เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเดณเตเดณ เดเดจเตเดจเดฟเดฒเดงเดฟเดเด เดเตเดฒเดธเตเดฑเตเดฑเดฑเตเดเดณเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดฃเตเดเดฟเดตเดฐเตเดฎเตเดชเตเตพ, เด เดตเดฏเต Git-เตฝ เดชเตเดฐเดเตเดฏเดพเดชเดจเดชเดฐเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจ เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเตฝ เดเดคเต เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด เดชเตเดฐเดธเดเตเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด.
เดนเตเตฝเด เดเดพเตผเดเตเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดจเตฝเดเดฟเดเตเดเตเดฃเตเดเต เด เดต เดฑเตเตปเดกเตผ เดเตเดฏเตเดฏเดพเดจเตเด, เดคเตเดเตผเดจเตเดจเต เด เดตเดฏเดฟเตฝ เดตเดฟเดตเดฟเดง เดฎเตเดฏเตเดเตเดเตเดทเดจเตเดเตพ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเตพเดชเตเดชเตเดเต, เดชเดคเดฟเดตเต เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเตเดเตพ เดชเตเดฒเต เด เดตเดฏเต เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดพเดจเตเด Qbec เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเดคเต เดเดพเตผเดเตเดเต เดฎเตเดฏเตเดธเดฟเดฏเดคเตเดคเดฟเดจเตเดฑเต เดเดตเดถเตเดฏเดเดค เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเต. เด เดคเดพเดฏเดคเต, เดเดพเตผเดเตเดเตเดเตพ เดเตพเดชเตเดชเตเดเตเดจเตเดจ Git-เตฝ เดจเดฟเดจเตเดจเต เดจเตเดฐเดฟเดเตเดเต เดธเดเดญเดฐเดฟเดเตเดเดพเดจเตเด เดฑเตเตปเดกเตผ เดเตเดฏเตเดฏเดพเดจเตเด เดจเดฟเดเตเดเตพเดเตเดเต เดเดดเดฟเดฏเตเด.
เดเดพเตป เดฎเตเดฎเตเดชเต เดชเดฑเดเตเดเดคเตเดชเตเดฒเต, เดเดเตเดเตพ เดเดฒเตเดฒเดพ เดตเดฟเดจเตเดฏเดพเดธเดเตเดเดณเตเด เดเดฐเต เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเตฝ เดธเตเดเตเดทเดฟเดเตเดเตเด. เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด/:
mkdir deploy
cd deployเดจเดฎเตเดฎเตเดเต เดเดฆเตเดฏ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดจเดฟเดทเตเดฏเดฒเตเดธเต เดเตเดฏเตเดฏเดพเด:
qbec init website
cd websiteเดจเดฟเดฒเดตเดฟเตฝ, เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดเดเดจ เดเดคเตเดชเตเดฒเตเดฏเดพเดฃเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเดคเต:
.
โโโ components
โโโ environments
โ โโโ base.libsonnet
โ โโโ default.libsonnet
โโโ params.libsonnet
โโโ qbec.yamlเดจเดฎเตเดเตเดเต เดซเดฏเตฝ เดจเตเดเตเดเดพเด. เดเตเดฏเตเดฌเตเดเต.เดฏเดพเดฎเตฝ:
apiVersion: qbec.io/v1alpha1
kind: App
metadata:
name: website
spec:
environments:
default:
defaultNamespace: docs
server: https://kubernetes.example.org:8443
vars: {}เดเดตเดฟเดเต เดจเดฎเตเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดณเตเดณเดคเต เดชเตเดฐเดพเดฅเดฎเดฟเดเดฎเดพเดฏเดฟ เดธเตเดชเตเดเต.เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดเตพ, qbec เดจเดฎเตเดเตเดเดพเดฏเดฟ เดเดฐเต เดกเดฟเดซเตเตพเดเตเดเต เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเต เดเดดเดฟเดเตเดเต, เดเตเดเดพเดคเต เดจเดฎเตเดฎเตเดเต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ kubeconfig-เตฝ เดจเดฟเดจเตเดจเต เดธเตเตผเดตเตผ เดตเดฟเดฒเดพเดธเดตเตเด เดจเตเดฏเดฟเดเดธเตโเดชเตเดฏเตโเดธเตเด เดเดเตเดคเตเดคเต.
เดเดชเตเดชเตเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดฎเตเดชเตเตพ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ environment-เตฝ, qbec เดเดฒเตเดฒเดพเดฏเตโเดชเตเดชเตเดดเตเด เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด Kubernetes เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเตเด เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดจเตเดฏเดฟเดเดธเตโเดชเตเดฏเตโเดธเดฟเดฒเตเดเตเดเตเด เดฎเดพเดคเตเดฐเดฎเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเต, เด
เดคเดพเดฏเดคเต เดเดฐเต เดตเดฟเดจเตเดฏเดพเดธเด เดจเดเดคเตเดคเดพเตป เดจเดฟเดเตเดเตพ เดเดจเดฟ เดเตเตบเดเตเดเตโเดธเตเดฑเตเดฑเตเดเตพเดเตเดเตเด เดจเตเดฏเดฟเดเดธเตโเดชเตเดฏเตโเดธเตเดเตพเดเตเดเตเด เดเดเดฏเดฟเตฝ เดฎเดพเดฑเตเดฃเตเดเดคเดฟเดฒเตเดฒ.
เดเดตเดถเตเดฏเดฎเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เด เดซเดฏเดฒเดฟเดฒเต เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เด
เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด.
เดจเดฟเดเตเดเดณเตเดเต เดเดฒเตเดฒเดพ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเดณเตเด เดเดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต เดเตเดฏเตเดฌเตเดเต.เดฏเดพเดฎเตฝ, เดซเดฏเดฒเดฟเดฒเตเด params.libsonnet - เดเตเดฒเตเดกเดฟเตฝ เดเตบเดฒเตเดจเดฟเตฝ, เด เดตเดฏเตเดเตเดเตเดณเตเดณ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเดตเดฟเดเต เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดเตเดเตเดฎเตเดจเตเดจเต เด เดคเดฟเตฝ เดชเดฑเดฏเตเดจเตเดจเต.
เด เดเตเดคเตเดคเดคเดพเดฏเดฟ เดจเดฎเตเดฎเตพ เดฐเดฃเตเดเต เดกเดฏเดฑเดเตเดเดฑเดฟเดเตพ เดเดพเดฃเตเดจเตเดจเต:
- เดเดเดเดเตเดเตพ/ โ เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดพเดฏเตเดณเตเดณ เดเดฒเตเดฒเดพ เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเตเดเดณเตเด เดเดตเดฟเดเต เดธเตเดเตเดทเดฟเดเตเดเตเด; เด เดต jsonnet เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดธเดพเดงเดพเดฐเดฃ yaml เดซเดฏเดฒเตเดเดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดพเด.
- เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ/ โ เดเดตเดฟเดเต เดจเดฎเตเดฎเตเดเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเตพเดเตเดเดพเดฏเตเดณเตเดณ เดเดฒเตเดฒเดพ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเด (เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ) เดตเดฟเดตเดฐเดฟเดเตเดเตเด.
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดจเดฎเตเดเตเดเต เดฐเดฃเตเดเต เดซเดฏเดฒเตเดเตพ เดเดฃเตเดเต:
- เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเตเดเตพ/base.libsonnet - เดเดฒเตเดฒเดพ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเตพเดเตเดเตเด เดชเตเดคเตเดตเดพเดฏ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเดคเดฟเตฝ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเด.
- เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเตเดเตพ/เดกเดฟเดซเดพเตพเดเตเดเต.เดฒเดฟเดฌเตโเดธเดฃเตเดฑเตเดฑเต โ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดเตเดเดพเดฏเดฟ เดชเตเดจเตผเดจเดฟเตผเดตเดเดฟเดเตเด เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ
เดจเดฎเตเดเตเดเต เด เดคเต เดคเตเดฑเดเตเดเดพเด. เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเตเดเตพ/base.libsonnet เด เดตเดฟเดเต เดจเดฎเตเดฎเตเดเต เดเดฆเตเดฏเดคเตเดคเต เดเดเดเดคเตเดคเดฟเดจเดพเดฏเดฟ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเตเตผเดเตเดเตเด:
{
components: {
website: {
name: 'example-docs',
image: 'registry.gitlab.com/kvaps/docs.example.org/website:v0.0.1',
replicas: 1,
containerPort: 80,
servicePort: 80,
nodeSelector: {},
tolerations: [],
ingressClass: 'nginx',
domain: 'docs.example.org',
},
},
}เดจเดฎเตเดเตเดเต เดจเดฎเตเดฎเตเดเต เดเดฆเตเดฏเดคเตเดคเต เดเดเดเด เดธเตเดทเตเดเดฟเดเตเดเดพเด. เดเดเดเดเตเดเตพ/เดตเตเดฌเตโเดธเตเดฑเตเดฑเต.เดเตเดธเตเดฃเตเดฑเตเดฑเต:
local env = {
name: std.extVar('qbec.io/env'),
namespace: std.extVar('qbec.io/defaultNs'),
};
local p = import '../params.libsonnet';
local params = p.components.website;
[
{
apiVersion: 'apps/v1',
kind: 'Deployment',
metadata: {
labels: { app: params.name },
name: params.name,
},
spec: {
replicas: params.replicas,
selector: {
matchLabels: {
app: params.name,
},
},
template: {
metadata: {
labels: { app: params.name },
},
spec: {
containers: [
{
name: 'darkhttpd',
image: params.image,
ports: [
{
containerPort: params.containerPort,
},
],
},
],
nodeSelector: params.nodeSelector,
tolerations: params.tolerations,
imagePullSecrets: [{ name: 'regsecret' }],
},
},
},
},
{
apiVersion: 'v1',
kind: 'Service',
metadata: {
labels: { app: params.name },
name: params.name,
},
spec: {
selector: {
app: params.name,
},
ports: [
{
port: params.servicePort,
targetPort: params.containerPort,
},
],
},
},
{
apiVersion: 'extensions/v1beta1',
kind: 'Ingress',
metadata: {
annotations: {
'kubernetes.io/ingress.class': params.ingressClass,
},
labels: { app: params.name },
name: params.name,
},
spec: {
rules: [
{
host: params.domain,
http: {
paths: [
{
backend: {
serviceName: params.name,
servicePort: params.servicePort,
},
},
],
},
},
],
},
},
]เด เดซเดฏเดฒเดฟเตฝ, เดเดเตเดเตพ เดเดฐเตเดธเดฎเดฏเด เดฎเตเดจเตเดจเต เดเตเดฌเตเตผเดจเตเดฑเตเดฑเตเดธเต เดเดจเตเดฑเดฟเดฑเตเดฑเดฟเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเต เดตเดฟเดตเดฐเดฟเดเตเดเต: เดตเดฟเดจเตเดฏเดพเดธ, เดธเตเดตเดจเด ะธ เดคเตเดเดฐเตเดเดจเดฎเตเดเตเดเต เดตเตเดฃเดฎเตเดเตเดเดฟเตฝ เด เดตเดฏเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดเดเดเดเตเดเดณเดพเดฏเดฟ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเดพเด, เดเดจเตเดจเดพเตฝ เด เดเดเตเดเดคเตเดคเดฟเตฝ เดเดจเตเดจเต เดฎเดคเดฟเดฏเดพเดเตเด.
เดตเดพเดเตเดฏเดเดเดจ เดเตเดธเตเดฃเตเดฑเตเดฑเต เดเดคเต เดธเดพเดงเดพเดฐเดฃ JSON-เดจเตเดเต เดตเดณเดฐเต เดธเดพเดฎเตเดฏเดฎเตเดณเตเดณเดคเดพเดฃเต, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดธเดพเดงเดพเดฐเดฃ JSON เดเดคเดฟเดจเดเด เดคเดจเตเดจเต เดธเดพเดงเตเดตเดพเดฏ เดเดฐเต JSONnet เดเดฃเต, เด เดคเดฟเดจเดพเตฝ เดเดฆเตเดฏเด เดจเดฟเดเตเดเตพเดเตเดเต เดเตบเดฒเตเตป เดธเตเดตเดจเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, yaml2json (เดเตปเดกเตเดฐเตเดฏเดฟเดกเต) เดจเดฟเดเตเดเดณเตเดเต เดธเดพเดงเดพเดฐเดฃ YAML-เดจเต JSON-เดฒเตเดเตเดเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดฏเดพเตป, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเดณเตเดเต เดเดเดเดเตเดเดณเดฟเตฝ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดจเตเดจเตเด เด เดเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดตเดฏเต เดธเดพเดงเดพเดฐเดฃ YAML เดเดจเตเดจเต เดตเดฟเดถเตเดทเดฟเดชเตเดชเดฟเดเตเดเดพเด.
เดเตเดเต เดเตเดฒเดฟ เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดเตเดธเตเดฃเตเดฑเตเดฑเต เดจเดฟเดเตเดเดณเตเดเต เดเดกเดฟเดฑเตเดฑเดฑเดฟเดจเดพเดฏเดฟ เดเดฐเต เดชเตเดฒเดเดฟเตป เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเดพเตป เดเดพเตป เดถเดเตเดคเดฎเดพเดฏเดฟ เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, vim-เดจเต เดเดฐเต เดชเตเดฒเดเดฟเตป เดเดฃเตเดเต. เดตเดฟเด-เดเตเดฃเดฑเตเดฑเต, เดเดคเต เดตเดพเดเตเดฏเดเดเดจ เดนเตเดฒเตเดฑเตเดฑเดฟเดเดเต เดชเตเดฐเดพเดชเตเดคเดฎเดพเดเตเดเตเดเดฏเตเด เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต เดเตเดธเตเดฃเตเดฑเตเดฑเต เดเดซเตเดเดเดเดฟ เดเดฐเต เดธเตเดตเดฟเดฒเตเด (jsonnet เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต).
เดเดฒเตเดฒเดพเด เดคเดฏเตเดฏเดพเดฑเดพเดฃเต, เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเดพเด:
เดจเดฎเตเดฎเตเดเต เดเตเดตเดถเด เดเดจเตเดคเตเดฃเตเดเตเดจเตเดจเต เดเดพเดฃเดพเตป, เดจเดฎเตเดเตเดเต เดเดเดพเด:
qbec show defaultเดเดเตเดเตโเดชเตเดเตเดเต เดฑเตเตปเดกเตผ เดเตเดฏเตโเดค YAML เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเตเดเตพ เดเดพเดฃเดฟเดเตเดเตเด, เด เดคเต เดกเดฟเดซเตเตพเดเตเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเด.
เดเตเดณเตเดณเดพเด, เดเดจเดฟ เดจเดฎเตเดเตเดเต เดเดคเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเด:
qbec apply defaultเดเดเตเดเตโเดชเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเดณเตเดเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดเดจเตเดคเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเตเดชเตเดดเตเด เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด, qbec เดเตเดชเตเดชเต เดเตเดฏเตเดคเตเดเตเดฃเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดเต เดฏเตเดเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเตเดเต เดเดตเดถเตเดฏเดชเตเดชเตเดเตเด. y เดจเดฟเดเตเดเดณเตเดเต เดเดฆเตเดฆเตเดถเตเดฏเดเตเดเตพ เดธเตเดฅเดฟเดฐเตเดเดฐเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเตพเดเตเดเต เดเดดเดฟเดฏเตเด.
เดเตเดฏเตเดคเต, เดเดชเตเดชเตเตพ เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเต!
เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฒเตเดฒเดพเดฏเตโเดชเตเดชเตเดดเตเด เดเดต เดเตเดฏเตเดฏเดพเดจเดพเดเตเด:
qbec diff defaultเด เดฎเดพเดฑเตเดฑเดเตเดเตพ เดจเดฟเดฒเดตเดฟเดฒเต เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเต เดเดเตเดเดจเต เดฌเดพเดงเดฟเดเตเดเตเดฎเตเดจเตเดจเต เดเดพเดฃเดพเตป
เดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
cd ../..
git add deploy/website
git commit -m "Add deploy for website"5. เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเต เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฑเดฟเดจเตเดชเตเดชเด เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต เดฑเดฃเตเดฃเตผ เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต
เด เดเตเดคเตเดค เดเดพเดฒเด เดตเดฐเต เดเดพเตป เดฑเตเดเตเดฒเตผ เดฎเดพเดคเตเดฐเดฎเต เดเดชเดฏเตเดเดฟเดเตเดเดฟเดฐเตเดจเตเดจเตเดณเตเดณเต เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ เดทเตเตฝ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดกเตเดเตเดเตผ เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเตผ เดเดณเตเดณ เดฎเตเตปเดเตเดเตเดเดฟ เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฟเดฏ เดฎเตเดทเตเดจเดฟเตฝ (เดเดฐเต LXC เดเดฃเตเดเตเดฏเตเดจเตผ). เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ, เดเดเตเดเดณเตเดเต GitLab-เตฝ เดเดเตเดณเดคเดฒเดคเตเดคเดฟเตฝ เดจเดฟเตผเดตเดเดฟเดเตเดเดชเตเดชเตเดเตเด เด เดคเตเดคเดฐเด เดจเดฟเดฐเดตเดงเดฟ เดฑเดฃเตเดฃเดฑเตเดเตพ เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดเดฒเตเดฒเดพ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเตพเดเตเดเตเดฎเดพเดฏเดฟ เด เดตเตผ เดกเตเดเตเดเตผ เดเดฎเตเดเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเต.
เดเดจเตเดจเดพเตฝ เดชเตเดฐเดพเดเตเดเตเดธเต เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเดคเต เดชเตเดฒเต, เดชเตเดฐเดพเดฏเตเดเดฟเดเดคเดฏเตเดเตเดฏเตเด เดธเตเดฐเดเตเดทเดฏเตเดเตเดฏเตเด เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด เดเดชเตเดทเตป เด เดจเตเดฏเตเดเตเดฏเดฎเดฒเตเดฒ. เดเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเด, เดเดฐเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดเตเดเตเด เดชเตเดฒเตเด, เดตเตเดตเตเดตเตเดฑเต เดฑเดฃเตเดฃเตเดดเตเดธเดฟเดจเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเต เดตเดณเดฐเต เดฎเดฟเดเดเตเดเดคเตเด เดเดถเดฏเดชเดฐเดฎเดพเดฏเดฟ เดเตเดเตเดคเตฝ เดถเดฐเดฟเดฏเตเดฎเดพเดฃเต.
เดญเดพเดเตเดฏเดตเดถเดพเตฝ เดเดคเต เดเดฐเต เดชเตเดฐเดถเตเดจเดฎเดฒเตเดฒ, เดเดพเดฐเดฃเด เดจเดฎเตเดฎเตพ เดเดชเตเดชเตเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป เดชเตเดเตเดจเตเดจเต เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดญเดพเดเดฎเดพเดฏเดฟ เดจเตเดฐเดฟเดเตเดเต.
เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดฑเตเดกเดฟเดฎเตเดฏเตเดกเต เดนเตเตฝเด เดเดพเตผเดเตเดเต Gitlab เดจเตฝเดเตเดจเตเดจเต. เด เดคเดฟเดจเดพเตฝ, เดจเดฟเดเตเดเตพ เด เดฑเดฟเดฏเตเดฃเตเดเดคเต เดเดคเตเดฐเดฎเดพเดคเตเดฐเด. เดฐเดเดฟเดธเตเดเตเดฐเตเดทเตป เดเตเดเตเดเตบ เดจเดฎเตเดฎเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ -> CI / CD -> เดฑเดฃเตเดฃเตเดดเตเดธเต เด เดคเต เดคเดฒเดฏเตเดเตเดเต เดเตเดฎเดพเดฑเตเด:
helm repo add gitlab https://charts.gitlab.io
helm install gitlab-runner
--set gitlabUrl=https://gitlab.com
--set runnerRegistrationToken=yga8y-jdCusVDn_t4Wxc
--set rbac.create=true
gitlab/gitlab-runnerเดเดตเดฟเดเตเดฏเดพเดฃเต:
- โ เดจเดฟเดเตเดเดณเตเดเต Gitlab เดธเตเตผเดตเดฑเดฟเดจเตเดฑเต เดตเดฟเดฒเดพเดธเด.
- yga8y-jdCusVDn_t4Wxc โ เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเดพเดฏเตเดณเตเดณ เดฐเดเดฟเดธเตเดเตเดฐเตเดทเตป เดเตเดเตเดเตบ.
- rbac.create=เดธเดคเตเดฏเด โ kubernetes-executor เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฎเตเดฎเตเดเต เดเตเดฒเดฟเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดชเตเดกเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเตเดฐเดคเตเดฏเตเดเดพเดตเดเดพเดถเดเตเดเตพ เดฑเดฃเตเดฃเตผเดเตเดเต เดจเตฝเดเตเดจเตเดจเต.
เดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดเตเดฏเตเดคเตเดตเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพ เดตเดฟเดญเดพเดเดคเตเดคเดฟเตฝ เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดค เดฑเดฃเตเดฃเดฑเต เดเดพเดฃเตเด. เดฑเดฃเตเดฃเตเดดเตเดธเต, เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเดณเดฟเตฝ.
เดเตเตผเดคเตเดค เดฑเดฃเตเดฃเดฑเตเดเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

เด เดคเตเดฐ เดฒเดณเดฟเดคเดฎเดพเดฃเต? เด เดคเต, เด เดคเตเดฐ เดฒเดณเดฟเดคเดฎเดพเดฃเต! เดฑเดฃเตเดฃเตเดดเตเดธเดฟเดจเต เดธเตเดตเดฎเตเดงเดฏเดพ เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดเดจเดฟ เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒ; เดเดจเดฟ เดฎเตเดคเตฝ, เดฑเดฃเตเดฃเตเดดเตเดธเต เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเดเดฏเตเด เดจเดถเดฟเดชเตเดชเดฟเดเตเดเดชเตเดชเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
6. QBEC เดเดชเดฏเตเดเดฟเดเตเดเต เดนเตเตฝเด เดเดพเตผเดเตเดเตเดเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตฝ
เดเดเตเดเตพ เดเดฃเตเดฃเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเดคเดฟเดจเดพเตฝ เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ เดเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเต เดญเดพเดเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เด เดคเต เดเดเตเดเดณเตเดเต Git เดถเตเดเดฐเดคเตเดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเตเดฃเตเด เดธเดฎเดฏเดฎเดพเดฏเดฟ.
เดจเดฎเตเดเตเดเต เดเดคเดฟเดจเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดเดเดฎเดพเดฏเดฟ เดตเดฟเดถเตเดทเดฟเดชเตเดชเดฟเดเตเดเดพเด เดตเตเดฌเตเดธเตเดฑเตเดฑเต, เดชเดเตเดทเต เดญเดพเดตเดฟเดฏเดฟเตฝ เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดเตผเดชเตเดชเตเดเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดชเดฆเตเดงเดคเดฟเดฏเดฟเดเตเดจเตเดจเต เดตเตเดฌเตเดธเตเดฑเตเดฑเต เดชเดฒเดชเตเดชเตเดดเตเด, เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ, เดเดคเต เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดเดฐเดฟเดเตเดเตฝ เดฎเดพเดคเตเดฐเดฎเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดเดฏเตเดณเตเดณเต. เด เดคเดฟเดจเดพเตฝ เด เดคเดฟเดจเดพเดฏเดฟ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดจเดฟเดทเตเดฏเดฒเตเดธเต เดเตเดฏเตเดฏเดพเด:
cd deploy
qbec init gitlab-runner
cd gitlab-runnerเดเดคเตเดคเดตเดฃ, เดจเดฎเตเดฎเตพ Kubernetes เดเดจเตเดฑเดฟเดฑเตเดฑเดฟเดเดณเต เดฎเดพเดจเตเดตเดฒเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฒเตเดฒ, เดฎเดฑเดฟเดเตเดเต เดเดฐเต เดฑเตเดกเดฟเดฎเตเดฏเตเดกเต เดนเตเตฝเด เดเดพเตผเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเด. qbec เดฏเตเดเต เดเดฐเต เดเตเดฃเด เดเดฐเต Git เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเตเดฐเดฟเดเตเดเต เดนเตเตฝเด เดเดพเตผเดเตเดเตเดเตพ เดฑเตเตปเดกเตผ เดเตเดฏเตเดฏเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเดพเดฃเต.
เดเดฟเดฑเตเดฑเต เดธเดฌเตเดฎเตเดกเตเดฏเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฎเตเดเตเดเต เดเดคเต เดชเตเดฐเดพเดชเตเดคเดฎเดพเดเตเดเดพเด:
git submodule add https://gitlab.com/gitlab-org/charts/gitlab-runner vendor/gitlab-runnerเดเดชเตเดชเตเตพ เดกเดฏเดฑเดเตเดเดฑเดฟ เดตเตเดฃเตเดเตผ/เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ gitlab-runner-เดจเตเดณเตเดณ เดเดฐเต เดเดพเตผเดเตเดเต เดเดณเตเดณ เดเดฐเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดจเดฟเดเตเดเตพเดเตเดเต เดฎเดฑเตเดฑเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเดณเตเดฏเตเด เดธเดฎเดพเดจเดฎเดพเดฏ เดฐเตเดคเดฟเดฏเดฟเตฝ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เดฎเตเดดเตเดตเตป เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเตเด เดเดฆเตเดฏเตเดเดฟเด เดเดพเตผเดเตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเด.
เดจเดฎเตเดเตเดเต เดเดเดเด เดตเดฟเดตเดฐเดฟเดเตเดเดพเด เดเดเดเดเตเดเตพ/gitlab-runner.jsonnet:
local env = {
name: std.extVar('qbec.io/env'),
namespace: std.extVar('qbec.io/defaultNs'),
};
local p = import '../params.libsonnet';
local params = p.components.gitlabRunner;
std.native('expandHelmTemplate')(
'../vendor/gitlab-runner',
params.values,
{
nameTemplate: params.name,
namespace: env.namespace,
thisFile: std.thisFile,
verbose: true,
}
)เดเดฆเตเดฏ เดตเดพเดฆเด เดนเตเตฝเดเดเตเดเดชเตเดฒเตเดฑเตเดฑเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเด เดจเดฎเตเดฎเตพ เดเดพเตผเดเตเดเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเดพเดคเดฏเดฟเดฒเตเดเต เดเดเดจเตเดจเตเดชเตเดเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เดชเดพเดฐเดพเดฎเตเดเตพ.เดฎเตเดฒเตเดฏเดเตเดเตพเดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเดฎเตพ เดเดเตเดเตเดเตเดจเตเดจ , เดคเตเดเตผเดจเตเดจเต เดเดฌเตเดเดเตเดฑเตเดฑเต เดตเดฐเตเดจเตเดจเดคเต
- เดชเตเดฐเตเดเตเดเดชเตเดฒเตเดฑเตเดฑเต โ เดฑเดฟเดฒเตเดธเต เดถเตเตผเดทเดเด
- เดจเตเดฏเดฟเดเดธเตเดชเตเดธเต โ เดจเตเดฏเดฟเดเดธเตโเดชเตเดฏเตโเดธเต เดนเตเตฝเดฎเดฟเดฒเตเดเตเดเต เดเตเดฎเดพเดฑเดฟ
- เด เดซเดฏเตฝ โ เดจเดฟเดฒเดตเดฟเดฒเต เดซเดฏเดฒเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเดพเดค เดเดเดจเตเดจเตเดชเตเดเตเดจเตเดจ เดเดฐเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ
- เดตเตเตผเดฌเตเดธเต - เดเดฎเดพเตปเดกเต เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต เดนเตเตฝเด เดเตเดเดชเตเดฒเตเดฑเตเดฑเต เดเดพเตผเดเตเดเต เดฑเตเตปเดกเตผ เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดเดฒเตเดฒเดพ เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเดณเตเด เดเดชเดฏเตเดเดฟเดเตเดเต
เดเดจเดฟ เดจเดฎเตเดฎเตเดเต เดเดเดเดคเตเดคเดฟเดจเตเดฑเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดตเดฟเดตเดฐเดฟเดเตเดเดพเด เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเตเดเตพ/base.libsonnet:
local secrets = import '../secrets/base.libsonnet';
{
components: {
gitlabRunner: {
name: 'gitlab-runner',
values: {
gitlabUrl: 'https://gitlab.com/',
rbac: {
create: true,
},
runnerRegistrationToken: secrets.runnerRegistrationToken,
},
},
},
}เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด เดฑเดฃเตเดฃเตผเดฐเดเดฟเดธเตเดเตเดฐเตเดทเตป เดเตเดเตเดเตบ เดจเดฎเตเดฎเตพ เดเดฐเต เดฌเดพเดนเตเดฏ เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเตเดเตเดจเตเดจเต. เดฐเดนเดธเตเดฏเดเตเดเตพ/base.libsonnet, เดจเดฎเตเดเตเดเต เด เดคเต เดธเตเดทเตเดเดฟเดเตเดเดพเด:
{
runnerRegistrationToken: 'yga8y-jdCusVDn_t4Wxc',
}เดเดฒเตเดฒเดพเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด:
qbec show defaultเดเดฒเตเดฒเดพเด เดถเดฐเดฟเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดจเดฎเตเดเตเดเต เดฎเตเดฎเตเดชเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเด เดฑเดฟเดฒเตเดธเต Helm เดตเดดเดฟ เดเดฒเตเดฒเดพเดคเดพเดเตเดเดพเด:
helm uninstall gitlab-runnerเดตเตเดฃเตเดเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด, เดชเดเตเดทเต qbec เดตเดดเดฟ:
qbec apply default7. git-crypt-เดจเตเดฑเต เดเดฎเตเดเด
โ เดเดจเตเดจเดคเต เดจเดฟเดเตเดเดณเตเดเต เดถเตเดเดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏ เดเตปเดเตเดฐเดฟเดชเตเดทเตป เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดชเดเดฐเดฃเดฎเดพเดฃเต.
เดเดชเตเดชเตเตพ, gitlab-runner-เดจเตเดณเตเดณ เดเดเตเดเดณเตเดเต เดกเดฏเดฑเดเตเดเดฑเดฟ เดเดเดจ เดเดคเตเดชเตเดฒเตเดฏเดพเดฃเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเดคเต:
.
โโโ components
โ โโโ gitlab-runner.jsonnet
โโโ environments
โ โโโ base.libsonnet
โ โโโ default.libsonnet
โโโ params.libsonnet
โโโ qbec.yaml
โโโ secrets
โ โโโ base.libsonnet
โโโ vendor
โโโ gitlab-runner (submodule)เดชเดเตเดทเต Git-เตฝ เดฐเดนเดธเตเดฏเดเตเดเตพ เดธเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต เดธเตเดฐเดเตเดทเดฟเดคเดฎเดฒเตเดฒ, เด เดฒเตเดฒเต? เด เดคเดฟเดจเดพเตฝ เดจเดฎเตเดฎเตพ เด เดต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต.
เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ, เดเดฐเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เดตเตเดฃเตเดเดฟ, เด เดคเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เด เตผเดคเตเดฅเดตเดคเตเดคเดพเดเดฃเดฎเตเดจเตเดจเดฟเดฒเตเดฒ. เดจเดฟเดเตเดเตพเดเตเดเต เดฐเดนเดธเตเดฏเดเตเดเตพ เดเตเดฎเดพเดฑเดพเตป เดเดดเดฟเดฏเตเด qbec เดจเดฟเดเตเดเดณเตเดเต CI เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเดฟเดฒเตเดเตเดฏเตเด.
เดเดจเตเดจเดพเตฝ เดเตเดเตเดคเตฝ เดฐเดนเดธเตเดฏเดเตเดเตพ เดเตพเดเตเดเตเดณเตเดณเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเตเดเตเดคเตฝ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเตเดเดเตเดเตเดเตพ เดเดฃเตเดเตเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต; เด เดตเดฏเตเดฒเตเดฒเดพเด เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเดฟเดฒเตเดเต เดเดเดคเตเดคเดฟเดตเดฟเดเตเดจเตเดจเดคเต เดตเดณเดฐเต เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเตเด.เดเตเดเดพเดคเต, เด เดเตเดเดจเตเดฏเตเดเตเดเดฟเตฝ เดเดคเตเดฐเดฏเตเด เด เดคเตเดญเตเดคเดเดฐเดฎเดพเดฏ เดเดฐเต เดเดชเดเดฐเดฃเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดจเดฟเดเตเดเต เดจเดฟเดเตเดเดณเตเดเต เดชเดฑเดฏเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ git-crypt.
git-crypt เดเดคเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต, เดเดพเดฐเดฃเด เดเดคเต เดฐเดนเดธเตเดฏเดเตเดเดณเตเดเต เดฎเตเดดเตเดตเตป เดเดฐเดฟเดคเตเดฐเดตเตเด เดธเดเดฐเดเตเดทเดฟเดเตเดเดพเดจเตเด, Git-เตฝ เดจเดฎเตเดฎเตพ เดชเดคเดฟเดตเตเดณเตเดณเดคเตเดชเตเดฒเต เดคเดพเดฐเดคเดฎเตเดฏเด เดเตเดฏเตเดฏเดพเดจเตเด, เดฒเดฏเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเด, เดธเดเดเตผเดทเดเตเดเตพ เดชเดฐเดฟเดนเดฐเดฟเดเตเดเดพเดจเตเด เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดเตปเดธเตเดฑเตเดฑเดพเดณเตเดทเดจเต เดถเตเดทเด เดเดฆเตเดฏเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเต git-crypt เดจเดฎเตเดฎเตเดเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดเตเดเต เดตเตเดฃเตเดเดฟ เดจเดฎเตเดเตเดเต เดเตเดเตพ เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต:
git crypt initเดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต PGP เดเต เดเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดจเดฟเดเตเดเตพเดเตเดเต เดเดเตป เดคเดจเตเดจเต เดจเดฟเดเตเดเดณเต เดธเดนเดเดพเดฐเดฟเดฏเดพเดฏเดฟ เดเตเตผเดเตเดเดพเดตเตเดจเตเดจเดคเดพเดฃเต:
git-crypt add-gpg-user kvapss@gmail.comเด เดฐเตเดคเดฟเดฏเดฟเตฝ, เดจเดฟเดเตเดเดณเตเดเต เดธเตเดตเดเดพเดฐเตเดฏ เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เด เดถเตเดเดฐเด เดกเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด.
เดจเดฟเดเตเดเดณเตเดเต เดเตเดตเดถเด เดเดฐเต PGP เดเต เดเดฒเตเดฒเตเดเตเดเดฟเดฒเตเด เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏ เดเดฐเต เดธเดฎเตเดชเดจเด เดธเตเดตเตเดเดฐเดฟเดเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเต เดเดฏเดฑเตเดฑเตเดฎเดคเดฟ เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด:
git crypt export-key /path/to/keyfileเด เดเตเดเดจเต, เดเดฏเดฑเตเดฑเตเดฎเดคเดฟ เดเตเดฏเตเดค เดเดคเตเดฐเดพเตพเดเตเดเตเด เดเตเดซเดฏเตฝ เดจเดฟเดเตเดเดณเตเดเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ เดกเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด.
เดจเดฎเตเดฎเตเดเต เดเดฆเตเดฏเดคเตเดคเต เดฐเดนเดธเตเดฏเด เดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดธเดฎเดฏเดฎเดพเดฏเดฟ.
เดจเดฎเตเดฎเตพ เดเดชเตเดชเตเดดเตเด เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเดฒเดพเดฃเตเดจเตเดจเต เดเดพเตป เดจเดฟเดเตเดเดณเต เดเตผเดฎเตเดฎเดฟเดชเตเดชเดฟเดเตเดเดเตเดเต. เดกเดฟเดชเตเดฒเตเดฏเต/เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ/, เดจเดฎเตเดเตเดเต เดเดฐเต เดกเดฏเดฑเดเตเดเดฑเดฟ เดเดณเตเดณเดฟเดเดคเตเดคเต เดฐเดนเดธเตเดฏเดเตเดเตพ/, เดเดคเดฟเดฒเต เดเดฒเตเดฒเดพ เดซเดฏเดฒเตเดเดณเตเด เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด, เดเดคเดฟเดจเดพเดฏเดฟ เดจเดฎเตเดฎเตพ เดเดฐเต เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเตเด. เดฐเดนเดธเตเดฏเดเตเดเตพ/.gitattributes เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดณเตเดณเดเดเตเดเดคเตเดคเตเดเต:
* filter=git-crypt diff=git-crypt
.gitattributes !filter !diffเดเดณเตเดณเดเดเตเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดเดฒเตเดฒเดพ เดซเดฏเดฒเตเดเดณเตเด เดฎเดพเดธเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต. * เดเดเดจเตเดจเตเดชเตเดเตเด git-crypt, เดเดฐเตเดฏเตเดฐเต เดเดพเดฐเตเดฏเด เดเดดเดฟเดเต .gitatributes
เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดฃเตเดเต เดจเดฎเตเดเตเดเต เดเดคเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด:
git crypt status -eเดเดเตเดเตเดชเตเดเตเดเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเดฒเต เดเตปเดเตเดฐเดฟเดชเตเดทเตป เดชเตเดฐเดพเดชเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเตเดณเตเดณ เดเดฒเตเดฒเดพ เดซเดฏเดฒเตเดเดณเตเดเตเดฏเตเด เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดฏเดฟเดฐเดฟเดเตเดเตเด.
เด เดคเตเดฐเดฏเตเดฏเตเดณเตเดณเต, เดเดจเดฟ เดจเดฎเตเดเตเดเต เดธเตเดฐเดเตเดทเดฟเดคเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเด:
cd ../..
git add .
git commit -m "Add deploy for gitlab-runner"เดเดฐเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ เดฌเตเดฒเตเดเตเดเต เดเตเดฏเตเดฏเดพเตป, เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด:
git crypt lockเดเดเดจเต เดเดฒเตเดฒเดพ เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดค เดซเดฏเดฒเตเดเดณเตเด เดฌเตเดจเดฑเดฟ เดซเดฏเดฒเตเดเดณเดพเดฏเดฟ เดฎเดพเดฑเตเด, เด
เดต เดตเดพเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ.
เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟ เดกเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด:
git crypt unlock8. เดเดฐเต เดเตเตพเดฌเตเดเตเดธเต เดเดฎเตเดเต เดธเตเดทเตเดเดฟเดเตเดเตเด
เดจเดฎเตเดฎเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฒเตเดฒเดพ เดเดชเดเดฐเดฃเดเตเดเดณเตเด เด เดเดเตเดเดฟเดฏ เดเดฐเต เดเดฟเดคเตเดฐเดฎเดพเดฃเต เดเตเตพเดฌเตเดเตเดธเต เดเดฎเตเดเต. เดธเดพเดงเดพเดฐเดฃ เดตเดฟเดจเตเดฏเดพเดธ เดเตเดฒเดฟเดเตพ เดเตเดฏเตเดฏเดพเตป GitLabRunner เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเด.
เดเดตเดฟเดเต เดเดฒเตเดฒเดพเด เดฒเดณเดฟเดคเดฎเดพเดฃเต, เดจเดฎเตเดเตเดเต เดชเตเดคเดฟเดฏเตเดฐเตเดฃเตเดฃเด เดธเตเดทเตเดเดฟเดเตเดเดพเด. เดกเตเดเตเดเตผเดซเดฏเดฒเตเดเตพ/เดเตเตพเดฌเตเดเตเดธเต/เดกเตเดเตเดเตผเดซเดฏเตฝ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดณเตเดณเดเดเตเดเดคเตเดคเตเดเต:
FROM alpine:3.11
RUN apk add --no-cache git git-crypt
RUN QBEC_VER=0.10.3
&& wget -O- https://github.com/splunk/qbec/releases/download/v${QBEC_VER}/qbec-linux-amd64.tar.gz
| tar -C /tmp -xzf -
&& mv /tmp/qbec /tmp/jsonnet-qbec /usr/local/bin/
RUN KUBECTL_VER=1.17.0
&& wget -O /usr/local/bin/kubectl
https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VER}/bin/linux/amd64/kubectl
&& chmod +x /usr/local/bin/kubectl
RUN HELM_VER=3.0.2
&& wget -O- https://get.helm.sh/helm-v${HELM_VER}-linux-amd64.tar.gz
| tar -C /tmp -zxf -
&& mv /tmp/linux-amd64/helm /usr/local/bin/helmเดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เด เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเตป เดเดชเดฏเตเดเดฟเดเตเด เดเดฒเตเดฒเดพ เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเดณเตเด เดเดเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดตเดฟเดเต เดเดเตเดเตพเดเตเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ: เดเตเดฌเตเดเตเดฒเดฟ, เดชเดเตเดทเต เดจเดฟเดเตเดเดณเตเดเต เดชเตเดชเตเดชเตโเดฒเตเตป เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ เดจเดฟเดเตเดเตพ เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดณเดฟเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดเตเดเดพเด.
เดเตเดเดพเดคเต, เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเตเดฎเดพเดฏเดฟ เดเดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด เดจเดเดคเตเดคเดพเดจเตเด เด เดคเดฟเดฒเตเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเดฃเดฎเตเดเตเดเดฟเตฝ, เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจ เดชเตเดกเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฐเต เดฑเตเตพ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต.
เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, gitlab-runner เดเดณเตเดณ เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เดชเตเดเตเด:
cd deploy/gitlab-runnerเดเดฐเต เดชเตเดคเดฟเดฏ เดเดเดเด เดเตเตผเดเตเดเตเด เดเดเดเดเตเดเตพ/rbac.jsonnet:
local env = {
name: std.extVar('qbec.io/env'),
namespace: std.extVar('qbec.io/defaultNs'),
};
local p = import '../params.libsonnet';
local params = p.components.rbac;
[
{
apiVersion: 'v1',
kind: 'ServiceAccount',
metadata: {
labels: {
app: params.name,
},
name: params.name,
},
},
{
apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'Role',
metadata: {
labels: {
app: params.name,
},
name: params.name,
},
rules: [
{
apiGroups: [
'*',
],
resources: [
'*',
],
verbs: [
'*',
],
},
],
},
{
apiVersion: 'rbac.authorization.k8s.io/v1',
kind: 'RoleBinding',
metadata: {
labels: {
app: params.name,
},
name: params.name,
},
roleRef: {
apiGroup: 'rbac.authorization.k8s.io',
kind: 'Role',
name: params.name,
},
subjects: [
{
kind: 'ServiceAccount',
name: params.name,
namespace: env.namespace,
},
],
},
]เดชเตเดคเดฟเดฏ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเด เดเดเตเดเตพ เดตเดฟเดตเดฐเดฟเดเตเดเตเด เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเตเดเตพ/base.libsonnet, เด เดคเต เดเดชเตเดชเตเตพ เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
local secrets = import '../secrets/base.libsonnet';
{
components: {
gitlabRunner: {
name: 'gitlab-runner',
values: {
gitlabUrl: 'https://gitlab.com/',
rbac: {
create: true,
},
runnerRegistrationToken: secrets.runnerRegistrationToken,
runners: {
serviceAccountName: $.components.rbac.name,
image: 'registry.gitlab.com/kvaps/docs.example.org/toolbox:v0.0.1',
},
},
},
rbac: {
name: 'gitlab-runner-deploy',
},
},
}เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด $.components.rbac.name เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต เดชเตเดฐเต เดเดเดเดคเตเดคเดฟเดจเต เดเตผเดฌเดฟเดเดธเดฟ
เดเดจเตเดคเดพเดฃเต เดฎเดพเดฑเดฟเดฏเดคเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด:
qbec diff defaultเดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเด:
qbec apply defaultเดเตเดเดพเดคเต, git-เตฝ เดจเดฎเตเดฎเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
cd ../..
git add dockerfiles/toolbox
git commit -m "Add Dockerfile for toolbox"
git add deploy/gitlab-runner
git commit -m "Configure gitlab-runner to use toolbox"9. เดเดเตเดเดณเตเดเต เดเดฆเตเดฏเดคเตเดคเต เดชเตเดชเตเดชเตโเดฒเตเดจเตเด เดเดพเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฟเดคเตเดฐเดเตเดเตพ เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเดฒเตเด
เดชเดฆเตเดงเดคเดฟเดฏเตเดเต เดฎเตเดฒเดคเตเดคเดฟเตฝ เดจเดฎเตเดฎเตพ เดธเตเดทเตเดเดฟเดเตเดเตเด .gitlab-ci.yml เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดณเตเดณเดเดเตเดเดคเตเดคเตเดเต:
.build_docker_image:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug-v0.15.0
entrypoint: [""]
before_script:
- echo "{"auths":{"$CI_REGISTRY":{"username":"$CI_REGISTRY_USER","password":"$CI_REGISTRY_PASSWORD"}}}" > /kaniko/.docker/config.json
build_toolbox:
extends: .build_docker_image
script:
- /kaniko/executor --cache --context $CI_PROJECT_DIR/dockerfiles/toolbox --dockerfile $CI_PROJECT_DIR/dockerfiles/toolbox/Dockerfile --destination $CI_REGISTRY_IMAGE/toolbox:$CI_COMMIT_TAG
only:
refs:
- tags
build_website:
extends: .build_docker_image
variables:
GIT_SUBMODULE_STRATEGY: normal
script:
- /kaniko/executor --cache --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/dockerfiles/website/Dockerfile --destination $CI_REGISTRY_IMAGE/website:$CI_COMMIT_TAG
only:
refs:
- tagsเดฆเดฏเดตเดพเดฏเดฟ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด, เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต GIT_SUBMODULE_STRATEGY: เดธเดพเดงเดพเดฐเดฃเด เดเดเตเดธเดฟเดเตเดฏเตเดทเดจเต เดฎเตเดฎเตเดชเต เดธเดฌเตเดฎเตเดกเตเดฏเตเดณเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟ เดเดจเตเดทเตเดฏเดฒเตเดธเต เดเตเดฏเตเดฏเตเดฃเตเด เดเตเดฒเดฟเดเตพเดเตเดเดพเดฏเดฟ.
เดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
git add .gitlab-ci.yml
git commit -m "Automate docker build"เดจเดฎเตเดเตเดเต เดเดคเดฟเดจเต เดธเตเดฐเดเตเดทเดฟเดคเดฎเดพเดฏเดฟ เดเดฐเต เดชเดคเดฟเดชเตเดชเต เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดพเดฎเตเดจเตเดจเต เดเดพเตป เดเดฐเตเดคเตเดจเตเดจเต v0.0.1 เดเดจเตเดจเดฟเดเตเดเต เดเดพเดเต เดคเตเดเตเดเดฟเดฏเดฟเดเตเด:
git tag v0.0.1เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเตเดฃเตเดเดฟ เดตเดฐเตเดฎเตเดชเตเดดเตเดฒเตเดฒเดพเด เดเดเตเดเตพ เดเดพเดเตเดเตพ เดจเตฝเดเตเด. เดกเตเดเตเดเตผ เดเดฟเดคเตเดฐเดเตเดเดณเดฟเดฒเต เดเดพเดเตเดเตพ Git เดเดพเดเตเดเดณเตเดฎเดพเดฏเดฟ เดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเด. เดชเตเดคเดฟเดฏ เดเดพเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดทเตเด เด เดเดพเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดณเตเดณ เดเดฎเตเดเตเดเดณเตเดเต เดเดฐเต เดฌเดฟเตฝเดกเดฟเดจเต เดคเตเดเดเตเดเดฎเดฟเดเตเด.
เดจเดฎเตเดฎเดณเดคเต เดเตเดฏเตเดฏเตเด. เดเดฟเดฑเตเดฑเต เดชเตเดทเต --เดเดพเดเตเดเตพ, เดจเดฎเตเดเตเดเต เดจเดฎเตเดฎเตเดเต เดเดฆเตเดฏเดคเตเดคเต เดชเตเดชเตเดชเตโเดฒเตเตป เดจเตเดเตเดเดพเด:
เดเดฆเตเดฏเดคเตเดคเต เดชเตเดชเตเดชเตเดฒเตเดจเดฟเดจเตเดฑเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

เดเดพเดเต เด เดงเดฟเดทเตเด เดฟเดค เดฌเดฟเตฝเดกเตเดเตพ เดกเตเดเตเดเตผ เดเดฎเตเดเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฃเต, เดชเดเตเดทเต เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เด เดจเตเดฏเตเดเตเดฏเดฎเดฒเตเดฒ เดเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต. เดชเดดเดฏ เดเดฎเตเดฎเดฟเดฑเตเดฑเตเดเดณเดฟเดฒเตเดเตเดเต เดชเตเดคเดฟเดฏ เดเดพเดเตเดเตพ เดจเดฟเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด เดตเดฏเตโเดเตเดเดพเดฏเดฟ เดชเตเดชเตเดชเตโเดฒเตเตป เดเดจเตเดทเตเดฏเดฒเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดชเดดเดฏ เดชเดคเดฟเดชเตเดชเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดพเดฐเดฃเดฎเดพเดเตเด.
เด เดชเตเดฐเดถเตเดจเด เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดกเตเดเตเดเตผ เดเดฎเตเดเต เดฌเดฟเตฝเดกเตเดเตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดพเดเตเดเดณเตเดฎเดพเดฏเดฟ เดฒเดฟเดเตเดเต เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดจเตเดฏเดพเดธเด เดเดฐเต เดฌเตเดฐเดพเดเตเดเตเดฎเดพเดฏเดฟ เดฒเดฟเดเตเดเต เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดฏเดเดฎเดพเดจเดจเต, เดเดคเดฟเตฝ เดเดเดชเตเตฝ เดเตเดฏเตเดค เดเดฟเดคเตเดฐเดเตเดเดณเตเดเต เดชเดคเดฟเดชเตเดชเตเดเตพ เดนเดพเตผเดกเตโเดเตเดกเต เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดฑเดฟเดตเตเตผเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดฑเตเตพเดฌเดพเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. เดฏเดเดฎเดพเดจเดจเต-เดถเดพเดเดเตพ.
10. เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฑเต เดเดเตเดเตเดฎเตเดทเตป
Gitlab-runner เดจเดฎเตเดฎเตเดเต เดฐเดนเดธเตเดฏเดเตเดเตพ เดกเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเดฎเตพ repository เดเต เดเดเตเดธเตเดชเตเตผเดเตเดเต เดเตเดฏเตเดคเต เดจเดฎเตเดฎเตเดเต CI เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
git crypt export-key /tmp/docs-repo.key
base64 -w0 /tmp/docs-repo.key; echoเดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดธเตเดเตเดฐเดฟเดเดเต เดจเดฎเตเดฎเตพ Gitlab-เตฝ เดธเตเดตเต เดเตเดฏเตเดฏเตเด. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเดฎเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเดณเดฟเดฒเตเดเตเดเต เดชเตเดเตเด:
เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ -> CI / CD -> เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ
เดเดจเดฟ เดจเดฎเตเดเตเดเต เดเดฐเต เดชเตเดคเดฟเดฏ เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเด:
เดเตเดชเตเดชเต เดเตเดฏเตเดฏเตเด
เดเต
เดตเดฟเดฒ
เดธเดเดฐเดเตเดทเดฟเดค
เดฎเดพเดธเตเดกเต
เดธเตเดเตเดพเดชเตเดชเต
File
GITCRYPT_KEY
<your string>
true (เดชเดฐเดฟเดถเตเดฒเดจ เดเดพเดฒเดฏเดณเดตเดฟเตฝ เดเดคเต เดธเดพเดงเตเดฏเดฎเดพเดฃเต เดเตเดเดพเดคเต false)
true
All environments
เดเตเตผเดคเตเดค เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

เดเดจเดฟ เดจเดฎเตเดเตเดเต เดจเดฎเตเดฎเตเดเตเดคเต เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด .gitlab-ci.yml เด เดคเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเดจเตเดจเต:
.deploy_qbec_app:
stage: deploy
only:
refs:
- master
deploy_gitlab_runner:
extends: .deploy_qbec_app
variables:
GIT_SUBMODULE_STRATEGY: normal
before_script:
- base64 -d "$GITCRYPT_KEY" | git-crypt unlock -
script:
- qbec apply default --root deploy/gitlab-runner --force:k8s-context __incluster__ --wait --yes
deploy_website:
extends: .deploy_qbec_app
script:
- qbec apply default --root deploy/website --force:k8s-context __incluster__ --wait --yesเดเดตเดฟเดเต เดจเดฎเตเดฎเตพ qbec-เดจเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดชเตเดคเดฟเดฏ เดเดชเตเดทเดจเตเดเตพ เดชเตเดฐเดพเดชเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต:
- โเดเดคเตเดเตเดเดฟเดฒเตเด/เดเดชเตเดชเต เดฑเตเดเตเดเต เดเตเดฏเตเดฏเตเด โ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดกเดฏเดฑเดเตเดเดฑเดฟ เดจเดฟเตผเดตเดเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
- --เดซเตเดดเตโเดธเต:k8s-เดธเดจเตเดฆเตผเดญเด __เดเตปเดเตเดฒเดธเตเดฑเตเดฑเตผ__ โ gtilab-runner เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เด เดคเต เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเต เดตเดฟเดจเตเดฏเดพเดธเด เดจเดเดเตเดเตเดฎเตเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจ เดเดฐเต เดฎเดพเดเดฟเดเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดพเดฃเดฟเดคเต. เดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเต, เด เดฒเตเดฒเดพเดคเตเดคเดชเดเตเดทเด qbec เดจเดฟเดเตเดเดณเตเดเต kubeconfig-เตฝ เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ เดเดฐเต Kubernetes เดธเตเตผเดตเตผ เดเดฃเตเดเตเดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด.
- โเดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเด โ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฑเดตเดฟเดเดเตเดเตพ เดฑเตเดกเดฟ เด เดตเดธเตเดฅเดฏเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดฟเดเตเดเตเดจเตเดจเดคเตเดตเดฐเต เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเดพเตป qbec-เดจเต เดจเดฟเตผเดฌเดจเตเดงเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดฟเดจเตเดถเตเดทเด เดฎเดพเดคเตเดฐเดฎเต เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏ เดเดฐเต เดเดเตเดธเดฟเดฑเตเดฑเต เดเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เด เดคเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเต.
- โเด เดคเต - เดธเดเดตเตเดฆเดจเดพเดคเตเดฎเด เดทเตเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเตเดจเตเดจเต. เดจเดฟเดเตเดเดณเตเดเตเดเต เดเดฑเดชเตเดชเดพเดฃเตเดพ? เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดฎเตเดชเตเตพ.
เดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
git add .gitlab-ci.yml
git commit -m "Automate deploy"เด เดคเดฟเดจเตเดถเตเดทเด git push เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดเดเตเดเดจเตเดฏเดพเดฃเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดจเตเดเตเดเดพเด:
เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดชเตเดชเตเดชเตโเดฒเตเดจเดฟเดจเตเดฑเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

11. เดชเตเดฐเดพเดตเตเดฃเตเดฏเด เดจเตเดเตเดฎเตเดชเตเตพ เดชเตเดฐเดพเดตเดธเตเดคเตเดเตเดเดณเตเด เด เดธเดเดฌเตเดฒเดฟเดฏเตเด
เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดเดเตเดเดเตเดเตพ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดเดฒเตเดฒเดพ เดฎเตเดเตเดฐเต เดธเตผเดตเตเดธเตเดเดณเตเด เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดชเดฐเตเดฏเดพเดชเตเดคเดฎเดพเดฃเต, เดชเดเตเดทเต เดธเตเดฑเตเดฑเต เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดฃเตเดเดฟเดตเดฐเตเดฎเตเดชเตเดดเตเดฒเตเดฒเดพเด เด เดคเต เดเดพเดเต เดเตเดฏเตเดฏเดพเตป เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. เด เดคเดฟเดจเดพเตฝ, เดเดเตเดเตพ เดเตเดเตเดคเตฝ เดเดฒเดจเดพเดคเตเดฎเดเดฎเดพเดฏ เดเดฐเต เดธเดฎเตเดชเดจเด เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดฎเดพเดธเตเดฑเตเดฑเตผ เดฌเตเดฐเดพเดเตเดเดฟเตฝ เดกเตเดเดธเตเดฑเตเดฑเต เดตเดฟเดจเตเดฏเดพเดธเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดเดถเดฏเด เดฒเดณเดฟเดคเดฎเดพเดฃเต: เดเดชเตเดชเตเตพ เดจเดฎเตเดฎเตเดเต เดเดฟเดคเตเดฐเด เดตเตเดฌเตเดธเตเดฑเตเดฑเต เดจเต เดคเดณเตเดณเตเดฎเตเดชเตเดดเตเดฒเตเดฒเดพเด เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดชเตเดชเตเดเตเด เดฏเดเดฎเดพเดจเดจเต, เดคเตเดเตผเดจเตเดจเต เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดฏเดพเดจเตเดคเตเดฐเดฟเดเดฎเดพเดฏเดฟ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด.
เด เดฐเดฃเตเดเต เดเตเดฒเดฟเดเดณเตเด เดจเดฎเตเดฎเตเดเต .gitlab-ci.yml:
build_website:
extends: .build_docker_image
variables:
GIT_SUBMODULE_STRATEGY: normal
script:
- mkdir -p $CI_PROJECT_DIR/artifacts
- /kaniko/executor --cache --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/dockerfiles/website/Dockerfile --destination $CI_REGISTRY_IMAGE/website:$CI_COMMIT_REF_NAME --digest-file $CI_PROJECT_DIR/artifacts/website.digest
artifacts:
paths:
- artifacts/
only:
refs:
- master
- tags
deploy_website:
extends: .deploy_qbec_app
script:
- DIGEST="$(cat artifacts/website.digest)"
- qbec apply default --root deploy/website --force:k8s-context __incluster__ --wait --yes --vm:ext-str digest="$DIGEST"เดฆเดฏเดตเดพเดฏเดฟ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด, เดเดเตเดเตพ เดเดฐเต เดถเดพเด เดเตเตผเดคเตเดคเดฟเดเตเดเตเดฃเตเดเต. เดฏเดเดฎเดพเดจเดจเต ะบ เดฑเดซเดฑเตปเดธเตเดเตพ เดเตเดฒเดฟเดเตเดเต เดตเตเดฃเตเดเดฟ เดฌเดฟเตฝเดกเต_เดตเตเดฌเตโเดธเตเดฑเตเดฑเต เดจเดฎเตเดฎเตพ เดเดชเตเดชเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต $CI_COMMIT_REF_NAME เดชเดเดฐเด $CI_COMMIT_TAG, เด เดคเดพเดฏเดคเต เดจเดฎเตเดฎเตพ Git เดเดพเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเตผเดชเดฟเดฐเดฟเดฏเตเดเดฏเดพเดฃเต, เดชเตเดชเตเดชเตโเดฒเตเตป เดเดจเตเดทเตเดฏเดฒเตเดธเต เดเตเดฏเตเดค เดเดฎเตเดฎเดฟเดฑเตเดฑเดฟเดจเตเดฑเต เดฌเตเดฐเดพเดเตเดเต เดจเดพเดฎเดฎเตเดณเตเดณ เดเดฐเต เดเดฎเตเดเต เดเดชเตเดชเตเตพ เดชเตเดทเต เดเตเดฏเตเดฏเตเด. เดเดคเต เดเดพเดเตเดเดณเดฟเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต, เดเดคเต เดกเตเดเตเดเตผ เดฐเดเดฟเดธเตเดเตเดฐเดฟเดฏเดฟเตฝ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดชเดคเดฟเดชเตเดชเตเดณเตเดณ เดธเตเดฑเตเดฑเต เดธเตเดจเดพเดชเตเดชเตเดทเตเดเตเดเตเดเตพ เดธเดเดฐเดเตเดทเดฟเดเตเดเดพเตป เดเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดจเตเดณเตเดณ เดกเตเดเตเดเตผ เดเดพเดเต เดจเดพเดฎเดคเตเดคเดฟเตฝ เดฎเดพเดฑเตเดฑเดฎเตเดฃเตเดเดพเดเดฟเดฒเตเดฒเตเดเตเดเดฟเดฒเตเด, เดจเดฎเตเดฎเตพ เดเดชเตเดชเตเดดเตเด เดฎเดพเดฑเตเดฑเดเตเดเตพ เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดตเดฟเดตเดฐเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต, เด เดฒเตเดฒเดพเดคเตเดคเดชเดเตเดทเด เดตเดฟเดจเตเดฏเดพเดธ เดฎเดพเดจเดฟเดซเตเดธเตเดฑเตเดฑเดฟเตฝ เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดจเตเดจเตเด เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดพเดคเตเดคเดคเดฟเดจเดพเตฝ เดชเตเดคเดฟเดฏ เดเดฎเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเตเดฃเตเดเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเดชเตเดทเตป โvm:ext-str เดกเตเดเดธเตเดฑเตเดฑเต=โ$DIGESTโ qbec-เดจเต เดธเดเดฌเดจเตเดงเดฟเดเตเดเดฟเดเดคเตเดคเตเดณเด, jsonnet-เดฒเตเดเตเดเต เดเดฐเต เดฌเดพเดนเตเดฏ เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดเตเดฎเดพเดฑเดพเตป เดเดคเต เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดฑเดฟเดฒเตเดธเดฟเดฒเตเด เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเตเดเดจเตเดณเด เดตเตเดฃเตเดเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดฃเดฎเตเดจเตเดจเต เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดฎเตเดเต เดชเดคเดฟเดชเตเดชเดฟเดฒเตเดเตเดเต เดฒเตเดเตเดเต เดเตเดฏเตเดฏเตเดเดฏเตเด เด เดคเต เดฎเดพเดฑเตเดฎเตเดชเตเตพ เดเดฐเต เดตเดฟเดจเตเดฏเดพเดธเด เดเตเดฐเดฟเดเตผ เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดจเดพเตฝ, เดเดชเตเดชเตเตพ เดฎเดพเดฑเตเดฑเดพเตป เดเดดเดฟเดฏเดพเดคเตเดค เดเดพเดเต เดจเดพเดฎเด เดเดตเดฟเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ.
เดเดตเดฟเดเต, เดเดฐเต เดกเตเดเดธเตเดฑเตเดฑเต เดเดฎเตเดเต เดเดฐเต เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดธเตเดตเต เดเตเดฏเตเดฏเดพเดจเตเดณเตเดณ เดเดฃเดฟเดเตเดเตเดฏเตเดเต เดเดดเดฟเดตเต เดจเดฎเตเดฎเต เดธเดนเดพเดฏเดฟเดเตเดเตเด (เดเดชเตเดทเตป โเดกเตเดเดธเตเดฑเตเดฑเต-เดซเดฏเตฝ)
เดคเตเดเตผเดจเตเดจเต เดจเดฎเตเดฎเตพ เด เดซเดฏเตฝ เดเตเดฐเดพเตปเดธเตเดซเตผ เดเตเดฏเตเดฏเตเดเดฏเตเด เดตเดฟเดจเตเดฏเดพเดธ เดธเดฎเดฏเดคเตเดคเต เด
เดคเต เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดจเดฎเตเดฎเตเดเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด เดกเดฟเดชเตเดฒเตเดฏเต/เดตเตเดฌเตโเดธเตเดฑเตเดฑเต/เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเตโเดธเต/เดฌเตเดธเต.เดฒเดฟเดฌเตโเดธเดฃเตเดฑเตเดฑเต เด เดคเต เดเดชเตเดชเตเตพ เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเด:
{
components: {
website: {
name: 'example-docs',
image: 'registry.gitlab.com/kvaps/docs.example.org/website@' + std.extVar('digest'),
replicas: 1,
containerPort: 80,
servicePort: 80,
nodeSelector: {},
tolerations: [],
ingressClass: 'nginx',
domain: 'docs.example.org',
},
},
}เดเตเดฏเตเดคเต, เดเดจเดฟ เดเดจเตเดคเตเดเตเดเดฟเดฒเตเด เดเดฎเตเดฎเดฟเดฑเตเดฑเต เดเตป เดเตเดฏเตเดฏเดพเดฎเต? เดฏเดเดฎเดพเดจเดจเต เดกเตเดเตเดเตผ เดเดฎเตเดเดฟเดจเตเดฑเต เดฌเดฟเตฝเดกเต เดเดจเตเดทเตเดฏเดฒเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเต เดตเตเดฌเตเดธเตเดฑเตเดฑเต, เดคเตเดเตผเดจเตเดจเต เด เดคเต เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเตเดเตเดเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด.
เดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
git add .
git commit -m "Configure dynamic build"เดเดเตเดเตพ เดชเดฟเดจเตเดจเตเดเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด. git push เดจเดฎเตเดฎเตพ เดเดคเตเดชเตเดฒเตเดณเตเดณ เดเดจเตเดจเต เดเดพเดฃเดฃเด:
เดฎเดพเดธเตเดฑเตเดฑเตผ เดชเตเดชเตเดชเตโเดฒเตเดจเดฟเดจเตเดฑเต เดเดฐเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เดเดฐเต เดชเตเดทเดฟเดฒเตเด เดจเดฎเตเดเตเดเต gitlab-runner เดตเตเดฃเตเดเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ, เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เด เดคเดฟเดจเตเดฑเต เดเตเตบเดซเดฟเดเดฑเตเดทเดจเดฟเตฝ เดเดจเตเดจเตเด เดฎเดพเดฑเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดจเดฎเตเดเตเดเต เดเดคเต เดชเดฐเดฟเดนเดฐเดฟเดเตเดเดพเด .gitlab-ci.yml:
deploy_gitlab_runner:
extends: .deploy_qbec_app
variables:
GIT_SUBMODULE_STRATEGY: normal
before_script:
- base64 -d "$GITCRYPT_KEY" | git-crypt unlock -
script:
- qbec apply default --root deploy/gitlab-runner --force:k8s-context __incluster__ --wait --yes
only:
changes:
- deploy/gitlab-runner/**/*เดฎเดพเดฑเตเดฑเดเตเดเตพ เดฎเดพเดฑเตเดฑเดเตเดเตพ เดจเดฟเดฐเตเดเตเดทเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเด เดกเดฟเดชเตเดฒเตเดฏเต/เดเดฟเดฑเตเดฑเตเดฒเดพเดฌเต-เดฑเดฃเตเดฃเตผ/ เด เดเตเดเดจเตเดฏเตเดณเตเดณเดต เดเดฃเตเดเตเดเตเดเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต เดเดเตเดเดณเตเดเต เดเตเดฒเดฟ เดเดฐเดเดญเดฟเดเตเดเตเดเดฏเตเดณเตเดณเต
เดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
git add .gitlab-ci.yml
git commit -m "Reduce gitlab-runner deploy"git push, เด เดคเดพเดฃเต เดจเดฒเตเดฒเดคเต:
เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดค เดชเตเดชเตเดชเตเดฒเตเดจเดฟเดจเตเดฑเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

12. เดเดฒเดจเดพเดคเตเดฎเด เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเตพ
เดจเดฎเตเดฎเตเดเต เดชเตเดชเตเดชเตโเดฒเตเดจเดฟเดจเต เดเดฒเดจเดพเดคเตเดฎเดเดฎเดพเดฏ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเดณเดฟเดฒเตเดเต เดตเตเดตเดฟเดงเตเดฏเดตเตฝเดเตเดเดฐเดฟเดเตเดเตเดฃเตเด เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต.
เดเดฆเตเดฏเด, เดจเดฎเตเดเตเดเต เดเตเดฒเดฟ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเด. เดฌเดฟเตฝเดกเต_เดตเตเดฌเตโเดธเตเดฑเตเดฑเต เดจเดฎเตเดฎเตเดเต .gitlab-ci.yml, เด เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฌเตเดฒเตเดเตเดเต เดจเตเดเตเดเด เดเตเดฏเตเดฏเตเดจเตเดจเต เดฎเดพเดคเตเดฐเด, เดเดคเต เดฌเตเดฐเดพเดเตเดเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดฏเดฟเดฒเตเด Gitlab เด เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเตเด:
build_website:
extends: .build_docker_image
variables:
GIT_SUBMODULE_STRATEGY: normal
script:
- mkdir -p $CI_PROJECT_DIR/artifacts
- /kaniko/executor --cache --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/dockerfiles/website/Dockerfile --destination $CI_REGISTRY_IMAGE/website:$CI_COMMIT_REF_NAME --digest-file $CI_PROJECT_DIR/artifacts/website.digest
artifacts:
paths:
- artifacts/เดชเดฟเดจเตเดจเต เดเดเตเดเตพ เดเตเดฒเดฟ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด. เดกเดฟเดชเตเดฒเตเดฏเต_เดตเตเดฌเตโเดธเตเดฑเตเดฑเต, เดจเดฎเตเดเตเดเต เด เดตเดฟเดเต เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดเตเตผเดเตเดเดพเด เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ:
deploy_website:
extends: .deploy_qbec_app
environment:
name: prod
url: https://docs.example.org
script:
- DIGEST="$(cat artifacts/website.digest)"
- qbec apply default --root deploy/website --force:k8s-context __incluster__ --wait --yes --vm:ext-str digest="$DIGEST"เดเดคเต Gitlab-เดจเต เดเตเดฒเดฟเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเดคเตเดคเดพเตป เด เดจเตเดตเดฆเดฟเดเตเดเตเด เดเดคเตเดชเดจเตเดจเด เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดฏเดฟเดฒเตเดเตเดเต เดชเตเดฏเดฟ เด เดคเดฟเดฒเตเดเตเดเตเดณเตเดณ เดถเดฐเดฟเดฏเดพเดฏ เดฒเดฟเดเตเดเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเตเด.
เดเดจเดฟ เดจเดฎเตเดเตเดเต เดฐเดฃเตเดเต เดเตเดฒเดฟเดเตพ เดเตเดเดฟ เดเตเตผเดเตเดเดพเด:
deploy_website:
extends: .deploy_qbec_app
environment:
name: prod
url: https://docs.example.org
script:
- DIGEST="$(cat artifacts/website.digest)"
- qbec apply default --root deploy/website --force:k8s-context __incluster__ --wait --yes --vm:ext-str digest="$DIGEST"
deploy_review:
extends: .deploy_qbec_app
environment:
name: review/$CI_COMMIT_REF_NAME
url: http://$CI_ENVIRONMENT_SLUG.docs.example.org
on_stop: stop_review
script:
- DIGEST="$(cat artifacts/website.digest)"
- qbec apply review --root deploy/website --force:k8s-context __incluster__ --wait --yes --vm:ext-str digest="$DIGEST" --vm:ext-str subdomain="$CI_ENVIRONMENT_SLUG" --app-tag "$CI_ENVIRONMENT_SLUG"
only:
refs:
- branches
except:
refs:
- master
stop_review:
extends: .deploy_qbec_app
environment:
name: review/$CI_COMMIT_REF_NAME
action: stop
stage: deploy
before_script:
- git clone "$CI_REPOSITORY_URL" master
- cd master
script:
- qbec delete review --root deploy/website --force:k8s-context __incluster__ --yes --vm:ext-str digest="$DIGEST" --vm:ext-str subdomain="$CI_ENVIRONMENT_SLUG" --app-tag "$CI_ENVIRONMENT_SLUG"
variables:
GIT_STRATEGY: none
only:
refs:
- branches
except:
refs:
- master
when: manualเดฎเดพเดธเตเดฑเตเดฑเตผ เดเดดเดฟเดเตเดฏเตเดณเตเดณ เดฎเดฑเตเดฑเตเดคเตเดเตเดเดฟเดฒเตเด เดถเดพเดเดเดณเดฟเดฒเตเดเตเดเต เดชเตเดทเต เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เด เดต เดฒเตเดเตเดเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเดเดฏเตเด เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต เดเดฐเต เดชเตเดฐเดฟเดตเตเดฏเต เดชเดคเดฟเดชเตเดชเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
qbec-เดจเต เดเดฐเต เดชเตเดคเดฟเดฏ เดเดชเตเดทเตป เดจเดฎเตเดฎเตพ เดเดพเดฃเตเดจเตเดจเต: โเดเดชเตเดชเต-เดเดพเดเต โ เดเดฐเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดตเดฟเดจเตเดฏเดธเดฟเดเตเด เดชเดคเดฟเดชเตเดชเตเดเตพ เดเดพเดเต เดเตเดฏเตเดฏเดพเดจเตเด เด เดเดพเดเดฟเดจเตเดณเตเดณเดฟเตฝ เดฎเดพเดคเตเดฐเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดจเตเด เดเดคเต เดจเดฟเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต; เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเตฝ เดเดฑเดตเดฟเดเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดเดฏเตเด เดจเดถเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ, qbec เด
เดตเดฏเตเดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต.
เด เดฐเตเดคเดฟเดฏเดฟเตฝ, เดเดฐเต เด
เดตเดฒเตเดเดจเดคเตเดคเดฟเดจเตเด เดจเดฎเตเดฎเตพ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เด
เดจเตเดคเดฐเตเดเตเดทเด เดธเตเดทเตเดเดฟเดเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒ, เดฎเดฑเดฟเดเตเดเต เด
เดคเตเดคเต เดตเตเดฃเตเดเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเด.
เดเดตเดฟเดเตเดฏเตเด เดจเดฎเตเดฎเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต qbec เด เดตเดฒเตเดเดจเด เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเด, เดเดคเดฟเดจเตเดชเดเดฐเดฎเดพเดฏเดฟ qbec เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเด โ เดจเดฎเตเดฎเตเดเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเตพเดเตเดเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเดเตเดเตพ เดตเดฟเดตเดฐเดฟเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฎเดฟเดทเด เดเดคเดพเดฃเต (เด เดตเดฒเตเดเดจเดตเตเด เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเตเด):
เดเตเตผเดเตเดเดพเด เด เดตเดฒเตเดพเดเดจเด เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดกเดฟเดชเตเดฒเตเดฏเต/เดตเตเดฌเตโเดธเตเดฑเตเดฑเต/qbec.yaml
spec:
environments:
review:
defaultNamespace: docs
server: https://kubernetes.example.org:8443เดชเดฟเดจเตเดจเต เดเดเตเดเตพ เด เดคเต เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเตเด เดกเดฟเดชเตเดฒเตเดฏเต/เดตเตเดฌเตโเดธเตเดฑเตเดฑเต/params.libsonnet:
local env = std.extVar('qbec.io/env');
local paramsMap = {
_: import './environments/base.libsonnet',
default: import './environments/default.libsonnet',
review: import './environments/review.libsonnet',
};
if std.objectHas(paramsMap, env) then paramsMap[env] else error 'environment ' + env + ' not defined in ' + std.thisFileเด เดคเดฟเดจเดพเดฏเดฟ เดจเดฎเตเดฎเตพ เดเดทเตเดเดพเดจเตเดธเตเดค เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเดดเตเดคเตเด เดกเดฟเดชเตเดฒเตเดฏเต/เดตเตเดฌเตโเดธเตเดฑเตเดฑเต/เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเตโเดธเต/เดฑเดฟเดตเตเดฏเต.เดฒเดฟเดฌเตโเดธเดฃเตเดฑเตเดฑเต:
// this file has the param overrides for the default environment
local base = import './base.libsonnet';
local slug = std.extVar('qbec.io/tag');
local subdomain = std.extVar('subdomain');
base {
components+: {
website+: {
name: 'example-docs-' + slug,
domain: subdomain + '.docs.example.org',
},
},
}เดจเดฎเตเดเตเดเต เดเตเดฒเดฟเดฏเต เด
เดเตเดคเตเดคเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด เดธเตเดฑเตเดฑเตเดชเตเดชเต_เดฑเดฟเดตเตเดฏเต, เดฌเตเดฐเดพเดเตเดเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดฎเตเดชเตเตพ เด
เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเด, เด
เดคเดฟเดจเดพเตฝ gitlab เด
เดคเต เดเตเดเตเดเตเดเดเตเดเต เดเตเดฏเตเดฏเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดฟเดฒเตเดฒ, เด
เดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. GIT_STRATEGY: เดเดจเตเดจเตเดฎเดฟเดฒเตเดฒ, เดชเดฟเดจเตเดจเตเดเต เดจเดฎเตเดฎเตพ เดเตเดฒเตเตบ เดเตเดฏเตเดฏเตเดจเตเดจเต เดฏเดเดฎเดพเดจเดจเต-เด
เดคเดฟเดฒเตเดเต เด
เดตเดฒเตเดเดจเด เดถเดพเดเดพเดชเดฐเดฎเดพเดฏเดฟ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเด.
เดเดคเต เด
เตฝเดชเตเดชเด เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฃเต, เดชเดเตเดทเต เดเดคเดฟเดฒเตเด เดฎเดจเตเดนเดฐเดฎเดพเดฏ เดเดฐเต เดฎเดพเตผเดเด เดเดพเตป เดเดคเตเดตเดฐเต เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเดฐเต เดฌเดฆเตฝ เดเดชเตเดทเตป, เดเดฐเต เด
เดตเดฒเตเดเดจเดตเตเด เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดจเตเดฏเดฟเดเดธเตโเดชเตเดฏเตโเดธเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต, เด
เดคเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดจเตเดเตเดเดเดเตเดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต.
เดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
git add .
git commit -m "Enable automatic review"git push, git เดเตเดเตเดเตเดเดเตเดเต -b เดเตเดธเตเดฑเตเดฑเต, เดเดฟเดฑเตเดฑเต เดชเตเดทเต เดเดฑเดฟเดเดฟเตป เดเตเดธเตเดฑเตเดฑเต, เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต:
Gitlab-เตฝ เดธเตเดทเตเดเดฟเดเตเด เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดเดณเตเดเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต.

เดเดฒเตเดฒเดพเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเต? เดเตเดณเตเดณเดพเด, เดจเดฎเตเดเตเดเต เดจเดฎเตเดฎเตเดเต เดเตเดธเตเดฑเตเดฑเต เดฌเตเดฐเดพเดเตเดเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเดพเด: เดเดฟเดฑเตเดฑเต เดเตเดเตเดเตเดเดเตเดเต เดฎเดพเดธเตเดฑเตเดฑเตผ, เดเดฟเดฑเตเดฑเต เดชเตเดทเต เดเดคเตเดญเดตเด: เดเตเดธเตเดฑเตเดฑเต, เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดเดฒเตเดฒเดพเดคเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเตเดฒเดฟเดเตพ เดชเดฟเดถเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดตเตเดจเตเดจเต เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต.
เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเต เดเดคเตเดฐเต เดกเดตเดฒเดชเตเดชเตผเดเตเดเตเด เดถเดพเดเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเตเดจเตเดจเต เดเดพเตป เดเดตเดฟเดเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต, เด เดฏเดพเตพเดเตเดเต เดฎเดพเดฑเดพเดจเตเด เดเดดเดฟเดฏเตเด. .gitlab-ci.yml เดซเดฏเตฝ เดเตเดฏเตเดคเต เดฐเดนเดธเตเดฏ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดจเด เดจเตเดเตเด.
เดเดเตเดเดพเดฐเดฃเดคเตเดคเดพเตฝ, เดธเดเดฐเดเตเดทเดฟเดค เดถเดพเดเดเตพเดเตเดเต เดฎเดพเดคเตเดฐเด เด เดตเดฏเตเดเต เดเดชเดฏเตเดเด เด เดจเตเดตเดฆเดฟเดเตเดเดพเตป เดถเดเตเดคเดฎเดพเดฏเดฟ เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเต, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต เดฏเดเดฎเดพเดจเดจเต, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฐเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเดเตเดเตเด เดตเตเดฃเตเดเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดธเตเดฑเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเตเด.
13. เดเดชเตเดชเตเดเตพ เด เดตเดฒเตเดเดจเด เดเตเดฏเตเดฏเตเด
เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดตเตเดเดคเตเดคเดฟเตฝ เดเดพเดฃเตเดจเตเดจเดคเดฟเดจเต เดฑเดฟเดชเตเดชเตเดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเดฒเต เดเดฐเต เดซเดฏเดฒเดฟเดจเตเด เดเดฐเต เดฌเดเตเดเตบ เดเตเตผเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดเดฐเต GitLab เดธเดตเดฟเดถเตเดทเดคเดฏเดพเดฃเดฟเดคเต.
เด เดฌเดเตเดเดฃเตเดเตพ เดฆเตเดถเตเดฏเดฎเดพเดเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ เดเดฐเต เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต .gitlab/route-map.yml เด เดคเดฟเดฒเต เดเดฒเตเดฒเดพ เดชเดพเดค เดชเดฐเดฟเดตเตผเดคเตเดคเดจเดเตเดเดณเตเด เดตเดฟเดตเดฐเดฟเดเตเดเตเด, เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดเดคเต เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด:
# Indices
- source: /content/(.+?)_index.(md|html)/
public: '1'
# Pages
- source: /content/(.+?).(md|html)/
public: '1/'เดเดเตเดเดณเตเดเต เดฎเดพเดฑเตเดฑเดเตเดเตพ เดตเดฐเตเดคเตเดคเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต:
git add .gitlab/
git commit -m "Enable review apps"git push, เดเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต:
เด เดตเดฒเตเดเดจ เดเดชเตเดชเต เดฌเดเตเดเดฃเดฟเดจเตเดฑเต เดธเตเดเตเดฐเตเตปเดทเตเดเตเดเต

เดเตเดฒเดฟ เดเดดเดฟเดเตเดเต!
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดเดฑเดตเดฟเดเดเตเดเตพ:
- Gitlab-เตฝ:
- GitHub-เตฝ:
เดจเดฟเดเตเดเดณเตเดเต เดถเตเดฐเดฆเตเดงเดฏเตเดเตเดเต เดจเดจเตเดฆเดฟ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเดทเตเดเดชเตเดชเตเดเตเดเตเดตเตเดจเตเดจเต เดเดพเตป เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต. ![]()
เด เดตเดฒเดเดฌเด: www.habr.com
