เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเปเบเบทเปเบญเบเบกเบท GitOps เบเบญเบเบเบงเบเปเบฎเบปเบฒเบซเบผเบฒเบเบเบงเปเบฒเบซเบเบถเปเบเบเบฑเปเบ. , เปเบฅเบฐเบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบขเบฒเบเปเบเปเบเบเบฑเบเบเบฐเบชเบปเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบเบฒเบเบเบฐเบเบญเบเบชเบฐเบเบฒเบเบเบตเปเบเปเบงเบเปเบญเบเบฐเบชเบฒเบเบเบญเบเปเบเบเบเบฒเบเปเบญเบ - (เบชเบฐเบเบฑเบเบเบฒเบชเบฒเบฅเบฑเบเปเบเบเปเบกเปเบ ). เบเบตเปเปเบกเปเบเบชเบฐเบเบฒเบเบเบตเปเบชเบฐเบเบดเบ เบเบณ เบกเบฐเบเบฒ, เปเบเปเบเบฒเบเบเบฐเบเบญเบเบเบญเบเบกเบฑเบเบกเบตเบเบงเบฒเบก เปเปเบฒ เบชเบปเบเปเบเบเบตเปเบกเบฑเบเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเบเปเบเป เบเบณ เบเบงเบเบเบญเบเบเบญเบก.

เปเบเบปเปเบฒเปเบเปเบ nuances เบเบญเบเปเบเบเบชเปเบฒเบเปเบงเบฑเบเปเบเบเป: เบเบฒเบเบชเปเบฒเบเปเบกเบเบนเบเบปเปเบงเปเบเบชเปเบฒเบฅเบฑเบเบเบธเบเบฎเบธเปเบ, เบซเบเปเบฒเบเบตเปเบกเบตเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบญเบ, เปเบฅเบฐเบญเบทเปเบเป. - เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเป. เปเบเบเบเบตเปเบเบฐ, เปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเบธเบกเปเบชเปเบเบฑเบเบซเบฒเปเบฅเบฐเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบเบฒเบเบเบฐเบเบญเบเปเบเบเปเบเบทเปเบญเบเปเบซเบงเปเบฅเบฐเปเบฅเบฑเบเบเปเบญเบเบเปเบฝเบงเบเบฑเบเบเบฐเบเบงเบเบเบฒเบ CI / CD เบเบตเปเบกเบฒเบเปเบญเบกเบเบฑเบ.
เปเบเบฐเบเปเบฒ: เปเบงเบฑเบเปเบเบเปเปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบ
เปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ, เปเบญเบเบฐเบชเบฒเบ werf เปเบกเปเบเบเบทเบเปเบเบฑเบเปเบงเปเบเปเบญเบกเบเบฑเบเบฅเบฐเบซเบฑเบเบเบญเบเบกเบฑเบ. เบเบตเปเบเปเบฒเบเบปเบเบเปเปเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบฒเบเบขเปเบฒเบเบเบตเปเปเบเบเบเบปเปเบงเปเบเปเบฅเปเบงเปเบเบตเบเบเบญเบเปเบเบเบเบญเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เปเบเปเบขเปเบฒเบเบซเบเปเบญเบเบกเบฑเบเบชเบฒเบกเบฒเบเปเบงเบปเปเบฒเปเบเปเบงเปเบฒ:
- เบเบฑเบเบเบฑเบเปเบซเบกเปเบเบญเบ werf เบเปเปเบเบงเบเบเบฐเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒเปเบเบเบเปเปเบกเบตเบเบฒเบเบเบฑเบเบเบธเบเปเบญเบเบฐเบชเบฒเบเปเบฅเบฐ, เปเบเบเบฒเบเบเบฑเบเบเบฑเบ, เบเบฒเบเบเปเบฝเบเปเบเบเปเบเปเปเบเปเบญเบเบฐเบชเบฒเบเบซเบกเบฒเบเปเบเบดเบเบเบฒเบเบเปเบญเบ werf เบฎเบธเปเบเปเบซเบกเป;
- เปเบเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒเบงโเบกเบตโเบเบฒเบโเบเบฑเบโเบเบฐโเบเบฒโเบเบตเปโเปเบเบฑเปเบกโเปเบเบโเบเบตเปโเปเบเบฑเบโเบเปเบฒโ: เบชเบฐโเบเบฑเบโเปเบซเบกเปโเบชเบฒโเบกเบฒเบโเบญเบญเบโเปเบเปโเบซเบผเบฒเบโเบเบฑเปเบโเบเปเปโเบกเบทเปโ;
- เบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบนเปเบกเบทเปเบเปเปเบเบทเปเบญเบเปเบฒเปเบเปเบเปเปเบงเบฑเบเปเบเบเบตเปเบกเบตเปเบญเบเบฐเบชเบฒเบเบชเบฐเบเบฑเบเปเบซเบกเปเปเบกเปเบเบขเปเบฒเบเบซเบเปเบญเบ tedious;
- เปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบงเบฎเบฑเบเบฎเบญเบเปเบญเบปเบฒเบงเบดเบเบตเบเบฒเบ semantic , เบกเบต 5 เบเปเบญเบเบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบ. เบเบฐเบเบงเบเบเบฒเบเบเปเบญเบเบเบฐเบเบญเบเบกเบตเบเบฒเบเบเปเบฒเบเบเบญเบเบเบฒเบกเบฅเปเบฒเบเบฑเบเบเบญเบเบฎเบธเปเบเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเปเบฒเบเปเปเบเบทเปเบญเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบเบเบตเปเปเบเบตเปเบกเบเบถเปเบ: เบเบฒเบ alpha เบเบฑเบ rock-solid;
- เปเบงเบฑเบเปเบเบเบฑเปเบเบเปเบฒเบงเบกเบตเบชเบฐเบเบฑเบเบเบฒเบชเบฒเบฅเบฑเบเปเบเบ, เปเบเบดเปเบ "เบเปเบฒเบฅเบปเบเบเบตเบงเบดเบเปเบฅเบฐเบเบฑเบเบเบฐเบเบฒ" (i.e. เปเบเบทเปเบญเปเบเบเบญเบเบเบฒเบเบเบฑเบเบเบธเบ) เปเบเบเบฐเบซเบเบฒเบเบเบฑเบเบชเบฐเบเบฑเบเบเบฒเบชเบฒเบเบปเปเบเบเป (i.e. เบเบฒเบชเบฒเบญเบฑเบเบเบดเบ).
เปเบเบทเปเบญเปเบเบทเปเบญเบ "เปเบฎเบทเบญเบเบเบปเบงเบเบฒเบเปเบ" เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฒเบเบเบนเปเปเบเป, เบชเบฐเปเบซเบเบตเปเบซเปเบฅเบฒเบงเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเป "เบเบฝเบเปเบเปเปเบฎเบฑเบเบงเบฝเบ", เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบฎเบฑเบ เปเบเบทเปเบญเบเบกเบทเบเบดเบเบเบฑเปเบ เปเบฅเบฐเบญเบฑเบเปเบเบ werf เปเบเบเบเปเบฒเบเบซเบฒเบ - เบเบตเปโเปเบกเปเบ . เบเปเบฒเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบฅเบฐเบเบธเบเปเบฒเบเบงเบเบเบฒเบเบเปเบญเบเปเบฅเบฐเบเปเบญเบเบเบงเบฒเบกเบซเบกเบฑเปเบเบเบปเบเบเบตเปเบเปเบฒเบเบเปเบญเบกเบเบตเปเบเบฐเปเบเป, เปเบฅเบฐ multiwerf เบเบฐเบเบงเบเปเบเบดเปเบเบงเปเบฒเบกเบตเบชเบฐเบเบฑเบเปเบซเบกเปเปเบเบเปเบญเบเปเบฅเบฐเบเบฒเบงเปเบซเบฅเบเบกเบฑเบเบเปเบฒเบเปเบฒเปเบเบฑเบ.
เปเบเปเบกเบเบนเบเบฒเบเบเบฑเบเปเบฅเบทเบญเบเบชเบฐเบเบฑเบเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเป, เบชเบฐเบเบฑเบเบซเบฅเปเบฒเบชเบธเบเบเบญเบ werf เปเบกเปเบเบกเบตเบขเบนเปเปเบเปเบเปเบฅเบฐเบเปเบญเบเบเบฒเบ. เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เบเบฒเบกเบเบตเปเบขเบนเป เบชเบฐเบเบฑเบเบเบญเบเบเปเบญเบเบเบฒเบเบเบตเปเบซเบกเบฑเปเบเบเบปเบเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบญเบเบซเบฅเปเบฒเบชเบธเบเปเบเบตเบ - เบกเบฑเบเบเบฑเบเบเบทเบเบเบฑเบเบชเบฐเบเบตเปเบเบเปเบเบทเปเบญเบเบเบฑเบเบเบญเบเบซเบฒ. เปเบญเบเบฐเบชเบฒเบเบชเปเบฒเบฅเบฑเบเบเปเบญเบเบเบฒเบเปเบกเปเบเบกเบตเบขเบนเปเปเบเบเบตเปเบขเบนเปเปเบเบเบเปเบฒเบเบซเบฒเบ (เบเบปเบงเบขเปเบฒเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบญเบเปเบเบเปเบฒ 1.0).
เปเบเบเปเบฒเบเบงเบเบเบฑเบเบซเบกเบปเบ, เปเบงเบฑเบเปเบเบเปเบกเบตเบชเบฐเบเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเปเบเป:
- เบฎเบฒเบ (เปเบเบตเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ),
- เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบญเบเบเบฒเบเบเบฑเบเบเบธเบเบเบตเปเบกเบตเบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเบเบญเบเปเบเปเบฅเบฐเบเบฒเบเบเปเบญเบ (เบเบปเบงเบขเปเบฒเบ: ).
เปเบเบทเปเบญเบชเปเบฒเบเบชเบฐเบเบฑเบเบชเบฐเปเบเบฒเบฐเบเบญเบเปเบงเบฑเบเปเบเบเป, เปเบเบเบเบปเปเบงเปเบ, เบกเบฑเบเบเบฝเบเบเปเบเบตเปเบเบฐเบฅเบงเบเบฅเบงเบกเบกเบฑเบเปเบเบเปเบเป เปเบเบเปเบฅเปเบเบขเบนเปเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต /docs werf repository เบเปเบฒโเบชเบฑเปเบโเบเบตเปโเบชเบญเบโเบเปเบญเบโเบเบฑเบ (jekyll build), เบซเบผเบฑเบเบเบฒเบเบชเบฐเบซเบผเบฑเบเบเบฑเบเปเบเบฑเบ Git เบเบญเบเบชเบฐเบเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบ.
เบกเบฑเบเบเบฝเบเปเบเปเบเบฐเปเบเบตเปเบกเบงเปเบฒ:
- เบเบฐเปเบซเบเบเบเบญเบเบกเบฑเบเปเบญเบ (werf) เบเบทเบเบเปเบฒเปเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบญเบ;
- เบเบฐเบเบงเบเบเบฒเบ CI/CD เปเบกเปเบเบชเปเบฒเบเบเบถเปเบเบเบปเบเบเบทเปเบเบเบฒเบเบเบญเบ GitLab CI;
- เปเบฅเบฐเบเบฑเบเบซเบกเบปเบเบเบตเป, เปเบเปเบเบญเบ, เปเบฅเปเบเบขเบนเปเปเบ Kubernetes.
เบงเบฝเบเบเบฒเบ
เบเบญเบเบเบตเปเปเบซเปเปเบฎเบปเบฒเบชเปเบฒเบเปเปเบฒเบงเบฝเบเบเบตเปเบเบณเบเบถเบเปเบเบดเบเบชเบฐเปเบเบฒเบฐเบเบฑเบเปเบปเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบงเป:
- เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเปเบฝเบเปเบเบเบชเบฐเบเบฑเบ werf เปเบเบเปเบญเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบธเบเปเบเป เปเบญเบเบฐเบชเบฒเบเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเบงเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบธเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ.
- เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเบฒเบกเบฒเบเบเบฒเบเบเบฑเปเบ เปเบเบดเปเบเบชเบฐเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเบญเบเปเบงเบฑเบเปเบเบเป.
เปเบงเบฑเบเปเบเบเปเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบทเบเปเบซเบกเปเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเปเบฝเบเปเบเบเบชเบฐเบเบฑเบเปเบเบเปเบญเบเปเบเบเปเปเบเบฒเบกเบเบฒเบ tags Git เบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ, เปเบเปเปเบเบเบฐเบเบงเบเบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบฎเบฑเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- เบเบฑเบเบเบฑเปเบเปเบเปเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบชเบฐเบเบฑเบเปเบเบเปเบญเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเบชเปเบฒเบเปเบญเบเบฐเบชเบฒเบเปเบซเบกเปเบชเปเบฒเบฅเบฑเบเบเปเบญเบเบเบตเปเบชเบฐเบเบฑเบเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ. เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฑเบเบซเบกเบปเบ, เบเบฒเบเบเปเปเบชเปเบฒเบเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเปเบกเปเบเบเปเปเบเบฒเบกเบซเบผเบฒเบ.
- เบเบธเบเบเบญเบเบเปเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบญเบเบญเบฒเบเบเบฐเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ. เปเบเบเบฒเบเปเบงเบฅเบฒ, เบเบปเบงเบขเปเบฒเบ, เบญเบฒเบเบเบฐเบเปเปเบกเบตเบชเบฐเบเบฑเบเบขเบนเปเปเบเบเปเบญเบเบเบฒเบเบเบตเปเบซเบกเบฑเปเบเบเบปเบเบเบงเปเบฒเบเบฒเบเบเปเบญเบ 1.1 เบเบตเปเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบปเปเบ, เปเบเปเปเบกเบทเปเบญเปเบงเบฅเบฒเบเปเบฒเบเปเบเบเบงเบเบกเบฑเบเบเบฐเบเบฒเบเบปเบ - เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เปเบเบปเปเบฒเบเปเปเบเบงเบเบเปเบฝเบเปเบเบทเปเบญเบเบเบฐเบเบญเบเบเปเบงเบเบเบปเบเปเบญเบเบเป?
เบกเบฑเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒ เบเบฒเบเบเบฐเบเบญเบเปเบกเปเบเบเบถเปเบเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเปเปเบกเบนเบเบเบฒเบเบเบญเบ.
ะ ะตะฐะปะธะทะฐัะธั
เบเบฒเบเปเบฅเบทเบญเบเบงเบดเบเบตเบเบฒเบ
เบญเบตเบเบเบฒเบเปเบฅเบทเบญเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบญเบตเปเบเปเบเปเปเบเปเบฅเบฐเบชเบฐเบเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบเบฑเบ pod เปเบเบเบเปเบฒเบเบซเบฒเบเปเบ Kubernetes. เบเบปเบงเปเบฅเบทเบญเบเบเบตเปเบซเบกเบฒเบเปเบเบดเบเบเปเบฒเบเบงเบเบงเบฑเบเบเบธเบเบตเปเปเบซเบเปเบเบงเปเบฒเปเบเบเบธเปเบก, เปเบเบดเปเบเบเบฐเปเบเบตเบเปเบเบเปเบญเบกเบเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบถเปเบเบเบญเบเบเปเบฒเบเบงเบเบเบฒเบเบเปเบญเบ werf เบเบตเปเบซเบกเบฑเปเบเบเบปเบ. เปเบฅเบฐเบเบตเป, เปเบเบเบฒเบเบเบฑเบเบเบฑเบ, เบซเบกเบฒเบเปเบเบดเบเบเบฒเบเบเปเบฒเบฅเบธเบเบฎเบฑเบเบชเบฒเบเบตเปเบชเบฑเบเบชเบปเบเบซเบผเบฒเบ: เปเบเปเบฅเบฐเบชเบฐเบเบฑเบเบกเบตเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ HTTP เบเบญเบเบเบปเบเปเบญเบ, เปเบฅเบฐเบกเบตเบเบฒเบเปเบซเบผเบเบเบฐเบซเบเบฒเบเบเปเบญเบ. เปเบเปเบเบญเบ, เบเบตเปเบเบฑเบเปเบฎเบฑเบเปเบซเปเบเปเบฒเปเบเปเบเปเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบซเบผเบฒเบเบเบงเปเบฒเปเบเบปเปเบฒ.
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเปเบชเบฑเปเบเบเบฒเบเบเบฝเบงเบเบฑเบ เบเบฐเบเบญเบเบเบธเบเบชเบฐเบเบฑเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบฎเบนเบเบเบฝเบง. เบชเบฐเบเบดเบเบเบตเปเบฅเบงเบเบฅเบงเบกเบเบญเบเบเบธเบเบชเบฐเบเบฑเบเบเบญเบเปเบงเบฑเบเปเบเบเปเปเบกเปเบเบเบฑเปเบเบขเบนเปเปเบเบเบฑเบเบเบตเปเบกเบต NGINX, เปเบฅเบฐเบเบฒเบเบเบฒเบฅเบฐเบเบญเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเปเบกเปเบเบเปเบฒเบ NGINX Ingress. เปเบเบเบชเปเบฒเบเบเบตเปเบเปเบฒเบเบเบฒเบ - เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบตเปเบเปเปเบกเบตเบฅเบฑเบ - เบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบฐเบซเบเบฒเบเปเบเปเบเปเบฒเบเบเบถเปเบ (เบเบถเปเบเบเบฑเบเบเบฒเบเปเบซเบผเบ) เปเบเบเปเบเป Kubernetes เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ.
เปเบเบทเปเบญเปเบซเปเบกเบตเบเบงเบฒเบกเบเบฑเบเปเบเบเบซเบผเบฒเบเบเบถเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเบฑเบเบเปเบฒเบชเบญเบเบฎเบนเบเบเบฒเบ: เบซเบเบถเปเบเบชเปเบฒเบฅเบฑเบเบงเบปเบเบเบญเบเบเบฒเบเบเบฐเบฅเบดเบ, เบญเบฑเบเบเบตเบชเบญเบเปเบกเปเบเบฎเบนเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบกเบชเปเบฒเบฅเบฑเบเบงเบปเบเบเบญเบ dev. เบฎเบนเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบกเปเบกเปเบเบเบทเบเบเปเบฒเปเบเป (เปเบเบตเบเบเบปเบง) เบเบฝเบเปเบเปเบขเบนเปเปเบเบงเบปเบเบเบญเบ dev เบฎเปเบงเบกเบเบฑเบเบเบฑเบเบซเบเบถเปเบเบเบปเปเบเบเปเปเบฅเบฐเบกเบตเบชเบฐเบเบฑเบเบเบญเบเปเบงเบฑเบเปเบเบเปเบเบฒเบเบเบฒเบเบเบปเบเบเบงเบเบเบทเบ commit, เปเบฅเบฐเบเบฒเบเบเปเบฒเบเบปเบเปเบชเบฑเปเบเบเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบงเบเบกเบฑเบเปเบกเปเบเบเบฐเบเบดเบเบฑเบเปเบเบเปเบเปเบเบฑเบเบเบฐเบเบฒเบเบญเบ Ingress.
werf vs git clone เปเบฅเบฐเบเบญเบก
เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเปเบฅเปเบง, เปเบเบทเปเบญเบชเปเบฒเบเบชเบฐเบเบดเบเบเบญเบเปเบงเบฑเบเปเบเบเปเบชเปเบฒเบฅเบฑเบเปเบญเบเบฐเบชเบฒเบเบชเบฐเบเบฑเบเบชเบฐเปเบเบฒเบฐ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเปเบเบเบเบฒเบเบเปเบฝเบเปเบเบซเบฒเปเบเบฑเบ repository เบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบก. เบเบญเบเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเปเปเบเบเบเบฒเบเปเบเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเปเบเปเบเปเบฅเบฐเบเบฑเปเบเบเบตเปเบเปเบฒเบเบชเปเบฒเบ, เปเบฅเบทเบญเบเปเบเบฑเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฒเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเป. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เบเบตเปเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบซเบผเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบซเบผเบฒเบเปเบฅเบฐ, เบเบญเบเบเบฒเบเบเบฑเปเบ, เบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบฒเบเบเบฝเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเบเปเปเปเบกเปเบเปเบฅเบทเปเบญเบเปเบฅเบฑเบเบเปเบญเบ ... เบเปเปเปเบชเบเบเบตเปเบฎเปเบฒเบเปเบฎเบเบญเบตเบเบขเปเบฒเบเบซเบเบถเปเบเปเบกเปเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเปเบกเบตเบงเบดเบเบตเบเบตเปเบเบฐ cache เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบญเบ.
เบเบตเปเบเบตเปเบเบปเบเบเบฐเปเบซเบเบ werf เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบเบกเบฒเบเบฑเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบฒเบเบเบฐเบเบดเบเบฑเบ เบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบญเบฑเบเบชเบฐเบฅเบดเบเบฐ เปเบฅเบฐโเปเบซเปโเบเปเบฒเบโเบเปเบฒโเปเบเปโ . เบเบฒเบเบเปเบฒเปเบเป werf เปเบเบทเปเบญเปเบเบตเปเบกเบฅเบฐเบซเบฑเบเบเบฒเบ repository เบเบฐเปเบฅเบฑเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ, เปเบเบฒเบฐเบงเปเบฒ werf เปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบ clones repository เบเบฑเปเบเบซเบเบถเปเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบ เบเบฝเบเปเบเป fetch เบเปเบฒเบเปเบฒเปเบเบฑเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเปเบเบตเปเบกเบเปเปเบกเบนเบเบเบฒเบ repository, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฅเบทเบญเบเบเบฝเบเปเบเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบตเปเบเปเบฒเปเบเบฑเบ (เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบตเปเปเบกเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต. docs), เปเบเบดเปเบเบเบฐเบซเบผเบธเบเบฅเบปเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเบเบญเบเบเปเปเบกเบนเบเปเบเบตเปเบก.
เปเบเบทเปเบญเบเบเบฒเบ Jekyll เปเบเบฑเบเปเบเบทเปเบญเบเบกเบทเบเบตเปเบญเบญเบเปเบเบเบกเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเบชเบฐเบเบดเบเปเบฅเบฐเบเปเปเบเปเบฒเปเบเบฑเบเปเบเบฎเบนเบเบเบฒเบเบชเบธเบเบเปเบฒเบ, เบกเบฑเบเบเบฐเบกเบตเปเบซเบเบเบปเบเบเบตเปเบเบฐเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบเปเบ. , เปเบฅเบฐเปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเบชเบธเบเบเปเบฒเบ เบเปเบฒเปเบเบปเปเบฒเบเบฝเบเปเบเปเบเบปเบเปเบเปเบฎเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบก.
เบเบงเบเปเบฎเบปเบฒเบเบฝเบ werf.yaml
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบฅเบงเบเบฅเบงเบกเปเบเปเบฅเบฐเบชเบฐเบเบฑเบเปเบ artifact werf เปเบเบเบเปเบฒเบเบซเบฒเบ. เปเบเบงเปเบเบเปเปเบเบฒเบกเบเบงเบเปเบฎเบปเบฒ เบเบงเบโเปเบฎเบปเบฒโเบเปเปโเบฎเบนเปโเบเบฑเบโเบงเบฑเบโเบเบธโเบเบนโเบฎเบฒเบโเปเบซเบผเบปเปเบฒโเบเบตเปโเปเบโเบฅเบฐโเบซเบงเปเบฒเบโเบเบฒเบโเบเบฐโเบเบธเบก, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเปเปเบชเบฒเบกเบฒเบเบเบฝเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเปเปเบชเปเบฒเบเบเบปเบเบเบตเป (เปเบงเบปเปเบฒเบขเปเบฒเบเปเบเบฑเปเบกเบเบงเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป, เปเบเปเบกเบฑเบเบเบฐเบเปเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฑเบเบซเบกเบปเบ).
werf เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเปเบฒเปเบเป เปเบโเปเบเบฅโเปโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบเบญเบโเบเปเบฒเบ (werf.yaml), เปเบฅเบฐเบเบตเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเป เบชเปเบฒเบ config เบชเบธเบเบเบดเบ เบญเบตเบเบเบฒเบกเบเปเปเบกเบนเบเบเบฒเบเบเบญเบ (เบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ!). เบเปเปเบกเบนเบเบเบฒเบเบเบญเบเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบกเปเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฑเบเปเบฅเบฐเบเบฒเบเบเปเบญเบ, เบเบปเบเบเบทเปเบเบเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบเปเบฒเบเปเบฒเบเบงเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบญเบเบเบญเบกเปเบฅเบฐเบเบปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบชเบญเบเบฎเบนเบเบเบฒเบ: werf-doc ะธ werf-dev เปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบงเบปเบเบเบญเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
เบเปเปเบกเบนเบเบเบฒเบเบเบญเบเปเบกเปเบเบเปเบฒเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก. เบเบตเปเปเบกเปเบเบญเบปเบเบเบฐเบเบญเบเบเบญเบเบเบงเบเปเบเบปเบฒ:
-
RELEASESโ เปเบชเบฑเปเบโเบเบตเปโเบกเบตโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเบเบญเบโเบเบฒเบโเบเปเบญเบโเปเบฅเบฐโเบชเบฐโเบเบฑเบโเบเบฐโเบเบธโเบเบฑเบโเบเบตเปโเบชเบญเบโเบเปเบญเบโเบเบฑเบโเบเบญเบ werfโ, เปเบโเบฎเบนเบโเปเบเบโเบเบญเบโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเบเบตเปโเปเบเบโเบซเปเบฒเบโเปเบโเบชเบญเบโเบซเบผเบตเบโเบเบญเบโเบเปเบฒโเปเบโเบฎเบนเบโเปเบเบ<ะะะะะ _ะ ะะะะะ>%<ะะะะะ _ะะะ ะกะะ>. เบเบปเบงเบขเปเบฒเบ:1.0%v1.0.4-beta.20 -
CHANNELSโ เปเบชเบฑเปเบโเบเบตเปโเบกเบตโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเบเบญเบโเบเปเบญเบโเปเบฅเบฐโเบชเบฐโเบเบฑเบโเบเบฐโเบเบธโเบเบฑเบโเบเบตเปโเบชเบญเบโเบเปเบญเบโเบเบฑเบโเบเบญเบ werfโ, เปเบโเบฎเบนเบโเปเบเบโเบเบญเบโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเบเบฒเบโเปเบเบโเบเปเบญเบโเบเบญเบโเบเบธเบโเบเปเบฒโเปเบโเบฎเบนเบโเปเบเบ<ะะะะะ>%<ะะะะะ _ะะะ ะกะะ>. เบเบปเบงเบขเปเบฒเบ:1.0-beta%v1.0.4-beta.20 1.0-alpha%v1.0.5-alpha.22 -
ROOT_VERSIONโ เบชเบฐเบเบฑเบ werf เบเบฐเบเบทเบเบชเบฐเปเบเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเป (เบกเบฑเบเบเปเปเบเปเบฒเปเบเบฑเบเบชเบฐเปเบซเบกเบตเบเบตเปเบเบฐเบชเบฐเปเบเบเปเบญเบเบฐเบชเบฒเบเปเบเบเบเปเบฒเบเบงเบเบเบฒเบเบเปเบญเบเบชเบนเบเบชเบธเบ). เบเบปเบงเบขเปเบฒเบ:v1.0.4-beta.20 -
REVIEW_SHAโ hash เบเบญเบโเบเบฒเบโเบเบปเบโเบเบงเบโเบเบทเบโเบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒโเบเบตเปโเบเปเบฒเบโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบโเปเบเปโเบชเปเบฒเบโเบชเบฐโเบเบฑเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบ loop เบเบฒเบโเบเบปเบโเบชเบญเบโ.
เบเบปเบงเปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบเบทเบเบเบทเปเบกเปเบชเปเปเบเบเปเป GitLab CI, เปเบฅเบฐเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบเปเบเบญเบเปเบกเปเบเบเบฝเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป.
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เปเบเบทเปเบญเบเบงเบฒเบกเบชเบฐเบเบงเบ, เบเบงเบเปเบฎเบปเบฒ เบเบณ เบเบปเบเปเบ werf.yaml เปเบโเบเบตเปโเบเบปเบงโเปเบโเปเบกเปโเปเบเบโ, เบเบฒเบโเบกเบญเบโเบซเบกเบฒเบโเปเบซเปโเปเบเบปเบฒโเปเบเบปเปเบฒโเบเปเบฒโเบเบฒเบโเบเบปเบงโเปเบโเบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบกโ:
{{ $_ := set . "WerfVersions" (cat (env "CHANNELS") (env "RELEASES") | splitList " ") }}
{{ $Root := . }}
{{ $_ := set . "WerfRootVersion" (env "ROOT_VERSION") }}
{{ $_ := set . "WerfReviewCommit" (env "REVIEW_SHA") }} เบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเบเบญเบกเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบชเบฐเบเบฑเบ static เบเบญเบเปเบงเบฑเบเปเบเบเปเปเบเบเบเบปเปเบงเปเบเปเบกเปเบเบเบทเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบธเบเบเปเบฅเบฐเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ (เบฅเบงเบกเบเบฑเบเบเบฒเบเบชเปเบฒเบเบชเบฐเบเบฑเบเบฎเบฒเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบชเบฐเบเบฑเบเบชเปเบฒเบฅเบฑเบเบงเบปเบเบเบญเบ dev). เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเบเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเบเบฅเบฑเบญเบเปเบเบเบเปเบฒเบเบซเบฒเบเปเบเบเปเบเปเบเบฑเบเบเบฑเบ define - เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเปเบฒโเปเบเปโเบเปเปโเบกเบฒโเบเปเบฒโเปเบเปโ include. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเบเบเบฒเบเปเบเปเบเบฝเบเบเปเปเปเบเบเบตเปเปเบเบซเบฒเปเบกเปเปเบเบ:
-
Versionโ เบชเบฐโเบเบฑเบโเบเบฐโเบฅเบดเบ (เบเบทเปโเปเบเบโเบเปเบฒโเบชเบฑเปเบโ)โ; -
Channelโ เบเบทเปโเบเบญเบโเบเปเบญเบโเบเบฒเบโเบเบฒเบโเบเบฑเบโเบเบธเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเบฐโเบฅเบดเบโเบเบญเบกโ; -
Commitโ เบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒ hashโ, เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบญเบกโเปเบเปโเบเบทเบโเบชเปเบฒเบโเบเบถเปเบโเบชเปเบฒโเบฅเบฑเบโเบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒโเบเบฒเบโเบเบปเบโเบเบงเบโเบเบทเบโ; - เบชเบฐเบเบฒเบเบเบฒเบ.
เบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบกเปเปเบเบ Artifact
{{- define "doc_artifact" -}}
{{- $Root := index . "Root" -}}
artifact: doc-{{ .Channel }}
from: jekyll/builder:3
mount:
- from: build_dir
to: /usr/local/bundle
ansible:
install:
- shell: |
export PATH=/usr/jekyll/bin/:$PATH
- name: "Install Dependencies"
shell: bundle install
args:
executable: /bin/bash
chdir: /app/docs
beforeSetup:
{{- if .Commit }}
- shell: echo "Review SHA - {{ .Commit }}."
{{- end }}
{{- if eq .Channel "root" }}
- name: "releases.yml HASH: {{ $Root.Files.Get "releases.yml" | sha256sum }}"
copy:
content: |
{{ $Root.Files.Get "releases.yml" | indent 8 }}
dest: /app/docs/_data/releases.yml
{{- else }}
- file:
path: /app/docs/_data/releases.yml
state: touch
{{- end }}
- file:
path: "{{`{{ item }}`}}"
state: directory
mode: 0777
with_items:
- /app/main_site/
- /app/ru_site/
- file:
dest: /app/docs/pages_ru/cli
state: link
src: /app/docs/pages/cli
- shell: |
echo -e "werfVersion: {{ .Version }}nwerfChannel: {{ .Channel }}" > /tmp/_config_additional.yml
export PATH=/usr/jekyll/bin/:$PATH
{{- if and (ne .Version "review") (ne .Channel "root") }}
{{- $_ := set . "BaseURL" ( printf "v%s" .Channel ) }}
{{- else if ne .Channel "root" }}
{{- $_ := set . "BaseURL" .Channel }}
{{- end }}
jekyll build -s /app/docs -d /app/_main_site/{{ if .BaseURL }} --baseurl /{{ .BaseURL }}{{ end }} --config /app/docs/_config.yml,/tmp/_config_additional.yml
jekyll build -s /app/docs -d /app/_ru_site/{{ if .BaseURL }} --baseurl /{{ .BaseURL }}{{ end }} --config /app/docs/_config.yml,/app/docs/_config_ru.yml,/tmp/_config_additional.yml
args:
executable: /bin/bash
chdir: /app/docs
git:
- url: https://github.com/flant/werf.git
to: /app/
owner: jekyll
group: jekyll
{{- if .Commit }}
commit: {{ .Commit }}
{{- else }}
tag: {{ .Version }}
{{- end }}
stageDependencies:
install: ['docs/Gemfile','docs/Gemfile.lock']
beforeSetup: '**/*'
includePaths: 'docs'
excludePaths: '**/*.sh'
{{- end }} เบเบทเปเบเบญเบเบเบญเบกเบเปเบญเบเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบ. เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฑเบเบฅเบธเบชเบดเปเบเบเบตเป, เบเบปเบงเบขเปเบฒเบ, เปเบเบเบเบฒเบเปเบเบตเปเบกเบเบทเปเบเปเบญเบเบเบฒเบ (เบกเบนเบเบเปเบฒเบเบญเบเบเบปเบงเปเบ .Channel) เปเบเบฑเบเบเปเบฒเบเปเปเบเปเบฒเบเบเบทเปเบเบญเบเบเบญเบก: artifact: doc-{{ .Channel }}. เปเบเปเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบปเปเบฒเปเบเบงเปเบฒเปเบกเบทเปเบญเบเปเบฒเปเบเบปเปเบฒเบเบฒเบเบเบญเบก, เบเปเบฒเบเบเบฐเบเปเบญเบเบญเปเบฒเบเบญเบตเบเปเบชเปเบเบทเปเบเบฝเบงเบเบฑเบ.
เปเบกเบทเปเบญเบญเบฐเบเบดเบเบฒเบเบชเบดเปเบเบเบฐเบเบดเบ, เบเบธเบเบชเบปเบกเบเบฑเบ werf เบเปเปเปเบเบเบตเปเปเบกเปเบเปเบเป: . เบเบฒเบโเบเบดเบโเบเบฑเปเบโเบเบตเปโเบเบญเบโเบฅเบฐโเบเบปเบโเบเบฒเบโเบเปโเบฅเบดโเบเบฒเบโ build_dir เบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบถเบ Jekyll cache เบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบฅเปเบเบเปเป, เปเบเบดเปเบ เปเบฅเบฑเปเบเบเบฒเบเบเบฐเบเบญเบเบเบทเบเปเปเปเบขเปเบฒเบเปเบซเบเปเบซเบผเบงเบ.
เบเปเบฒเบเบญเบฒเบเบเบฐเปเบเปเบชเบฑเบเปเบเบเปเบซเบฑเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบฅเปเบเบฑเปเบเบเปเบฒเบง releases.yml เปเบเบฑเบเปเบเบฅเป YAML เบเบตเปเบกเบตเบเปเปเบกเบนเบเบเบฒเบเบเปเบญเบเบเบตเปเบฎเปเบญเบเบเปเบเบฒเบ (เบเบญเบเบเบญเบกเบเบตเปเปเบเปเบฎเบฑเบเปเบเปเบงเบฅเบฒเบเบฐเบเบดเบเบฑเบเบเปเป). เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเปเบเปเบงเบฅเบฒเบเบตเปเบฅเบงเบเบฅเบงเบกเปเบงเบฑเบเปเบเบเป, เปเบเปเปเบเปเบเปเบเบญเบเบเบปเบเบเบงเบฒเบกเบกเบฑเบเบซเบเปเบฒเบชเบปเบเปเบเบเบฑเบเบเบงเบเปเบฎเบปเบฒเปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเบเบถเปเบเบเบฑเบเบฅเบฑเบเบเบญเบเบกเบฑเบ. reassembly เบเบญเบเบเบฝเบเปเบเปเบซเบเบถเปเบ artifact โ เบเบญเบกโเบเบญเบโเบชเบฐโเบเบฑเบโเบฎเบฒเบโเบเบญเบโเปเบงเบฑเบโเปเบโเปเบเป (เบกเบฑเบโเบเปเปโเบเปเบฒโเปเบเบฑเบโเบเปเบญเบโเบขเบนเปโเปเบโเบเบญเบกโเบญเบทเปเบเปโ)โ.
เบเบตเปเปเบกเปเบเบเบฐเบเบดเบเบฑเบเปเบเบเปเบเปเบเปเบฒเบเบฐเปเบซเบผเบเบเบฒเบเบเบตเปเบกเบตเปเบเบทเปเบญเบเปเบ if เปเบเปเบเบเปเบฅเบฐเปเบเบ {{ $Root.Files.Get "releases.yml" | sha256sum }} เปเบเบเบฑเปเบเบเบญเบเบเบญเบเบเบฒเบ . เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเปเบเบเปเปเปเบเบเบตเป: เปเบกเบทเปเบญเบชเปเบฒเบเบชเบดเปเบเบเบฐเบเบดเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฑเบเบฎเบฒเบ (เบเบปเบงเปเบ .Channel เปเบเบปเปเบฒโเบเบฝเบกโเบเบฑเบโเบเบฑเบ root) เปเบเบฅเป hash releases.yml เบกเบตโเบเบปเบโเบเบฐโเบเบปเบโเบฅเบฒเบโเปเบเบฑเบโเบเบญเบโเบเบฑเปเบโเบเบญเบโเบเบญเบโเบเบฒเบโเบเบฑเบโเบซเบกเบปเบโ, เปเบเบทเปเบญเบโเบเบฒเบโเบงเปเบฒโเบกเบฑเบโเปเบเบฑเบโเบชเปเบงเบโเบซเบเบถเปเบโเบเบญเบโเบเบทเปโเบเบญเบโเบงเบฝเบโเบเบฒเบ Ansible (เบเบฒโเบเปเบฒโเบเบปเบโเบเบฒเบโ name). เบเบฑเปเบเบเบฑเปเบ, เปเบกเบทเปเบญเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบ เปเบเบทเปเบญเปเบ เปเบเบฅ releases.yml เบชเบดเปเบเบเบฐเบเบดเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเบเบฐเบเบทเบเบเบฐเบเบญเบเบเบทเบเปเปเป.
เบเบฐเบฅเบธเบเบฒเปเบชเปเปเบเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ repository เบเบฒเบเบเบญเบ. เปเบเบฎเบนเบเบเบญเบเบเบญเบกเบเบฒเบ , เบเบฝเบเปเบเปเปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบทเบเปเบเบตเปเบก /docs, เปเบฅเบฐเบเบถเปเบเบเบฑเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเปเบฒเบ, เบเปเปเบกเบนเบเบเบญเบเปเบเบฑเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบซเบผเบทเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฒเบเบเบปเบเบเบงเบเบเบทเบเบเบฐเบเบทเบเปเบเบตเปเบกเบเบฑเบเบเบต.
เปเบเบทเปเบญเปเบเปเปเบกเปเปเบเบเบเบญเบ artifact เปเบเบทเปเบญเบชเปเบฒเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบ artifact เบเบญเบเบเปเบญเบเปเบฅเบฐเบเบฒเบเบเปเบญเบเบชเบฐเบเบฑเบเบเบตเปเบเบทเบเปเบญเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบฅเบฝเบ loop เปเบเบเบปเบงเปเบ. .WerfVersions ะฒ werf.yaml:
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ dict "Version" $VersionsDict._1 "Channel" $VersionsDict._0 "Root" $Root | include "doc_artifact" }}
---
{{ end -}} เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ loop เบเบฐเบชเปเบฒเบเบเบญเบกเบซเบผเบฒเบ (เบเบงเบเปเบฎเบปเบฒเบซเบงเบฑเบเบงเปเบฒเบเบฑเปเบเบเบฑเปเบ), เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเปเบฒเบเบถเบเปเบเบดเบเบเบปเบงเปเบเบเบฅเบฐเบซเบงเปเบฒเบเบเบงเบเปเบเบปเบฒ - เบฅเปเบฒเบเบฑเบ. --- (เบชเปเบฒเบฅเบฑเบเบเปเปเบกเบนเบเปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบ syntax เปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒ, เปเบเบดเปเบ ). เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบเบปเบเปเบงเปเบเปเบญเบเบซเบเปเบฒเบเบตเป, เปเบกเบทเปเบญเปเบเบซเบฒเปเบกเปเปเบเบเปเบ loop, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบชเบฐเบเบฑเบ, URL เปเบฅเบฐเปเบเบทเปเบญเบซเบฒเบฎเบฒเบ.
เปเบเบฑเปเบเบเบฝเบงเบเบฑเบ, เปเบเปเบเปเปเบกเบต loop, เบเบงเบเปเบฎเบปเบฒเปเบเบซเบฒเปเบกเปเปเบเบเบเบญเบเบเบญเบกเบชเปเบฒเบฅเบฑเบ "เบเปเบฅเบฐเบเบตเบเบดเปเบชเบ": เบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฑเบเบฎเบฒเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบชเบฐเบเบฑเบเบเบฒเบเบเบฒเบเบเบปเบเบเบงเบเบเบทเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒ:
{{ dict "Version" .WerfRootVersion "Channel" "root" "Root" $Root | include "doc_artifact" }}
---
{{- if .WerfReviewCommit }}
{{ dict "Version" "review" "Channel" "review" "Commit" .WerfReviewCommit "Root" $Root | include "doc_artifact" }}
{{- end }} เบเบฐโเบฅเบธโเบเบฒโเบชเบฑเบโเปเบเบโเบงเปเบฒ artifact เบชเปเบฒโเบฅเบฑเบโเบเปเบฒโเบซเบกเบฑเปเบโเบชเบฑเบโเบเบฒโเบเบฒเบโเบเบปเบโเบเบงเบโเบเบทเบโเบเบฐโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบชเปเบฒเบโเบเบฝเบโเปเบเปโเบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบปเบงโเบเปเบฝเบโเปเบเปโเบเบทเบโเบเบฑเปเบโเปเบงเปโ .WerfReviewCommit.
เบงเบฑเบเบเบธเบเบนเบฎเบฒเบเปเบกเปเบเบเบฝเบกเบเปเบญเบก - เบกเบฑเบเปเบเบฑเบเปเบงเบฅเบฒเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเปเบฒเปเบเบปเปเบฒ!
เบฎเบนเบเบเบฒเบเบชเบธเบเบเปเบฒเบ, เบเบทเบเบญเบญเบเปเบเบเบกเบฒเปเบเบทเปเบญเปเบฅเปเบเปเบ Kubernetes, เปเบกเปเบ NGINX เบเบปเบเบเบฐเบเบดเบเบตเปเบกเบตเบเบฒเบเปเบเบตเปเบกเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบตเบเปเบงเบต. nginx.conf เปเบฅเบฐ static เบเบฒเบ artifacts. เบเบญเบเปเบซเบเบทเบญเปเบเบเบฒเบเบชเบดเปเบเบเบญเบกเบเบญเบเบชเบฐเบเบฑเบเบฎเบฒเบเบเบญเบเปเบงเบฑเบเปเบเบเป, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบฎเบฑเบเปเบฅเบทเปเบกเบเบทเบ loop เปเบเบเบปเบงเปเบ .WerfVersions เปเบเบทเปเบญเบเปเบฒเปเบเบปเปเบฒเบชเบดเปเบเบเบฐเบเบดเบเบเบญเบเบเปเบญเบเปเบฅเบฐเบชเบฐเบเบฑเบเบญเบญเบ + เบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฑเปเบเบเบทเปเบเบญเบเบเบญเบกเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบฎเบญเบเปเบญเบปเบฒเบเปเบญเบเบซเบเปเบฒเบเบตเป. เปเบเบทเปเบญเบเบเบฒเบเบงเบฑเบเบเบธเบเบนเบฎเบฒเบเปเบเปเบฅเบฐเบญเบฑเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบชเบฐเบเบฑเบเบเบญเบเปเบงเบฑเบเปเบเปเบเบฑเบเบชเบญเบเบเบฒเบชเบฒ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบปเปเบฒเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบปเปเบฒเปเบเปเบเบชเบฐเบเบฒเบเบเบตเปเบชเบฐเบซเบเบญเบเปเบซเปเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒ.
เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบฎเบนเบเบเบฒเบเบชเบธเบเบเปเบฒเบ werf-doc
image: werf-doc
from: nginx:stable-alpine
ansible:
setup:
- name: "Setup /etc/nginx/nginx.conf"
copy:
content: |
{{ .Files.Get ".werf/nginx.conf" | indent 8 }}
dest: /etc/nginx/nginx.conf
- file:
path: "{{`{{ item }}`}}"
state: directory
mode: 0777
with_items:
- /app/main_site/assets
- /app/ru_site/assets
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ $Channel := $VersionsDict._0 -}}
{{ $Version := $VersionsDict._1 -}}
- artifact: doc-{{ $Channel }}
add: /app/_main_site
to: /app/main_site/v{{ $Channel }}
before: setup
{{ end -}}
{{ range .WerfVersions -}}
{{ $VersionsDict := splitn "%" 2 . -}}
{{ $Channel := $VersionsDict._0 -}}
{{ $Version := $VersionsDict._1 -}}
- artifact: doc-{{ $Channel }}
add: /app/_ru_site
to: /app/ru_site/v{{ $Channel }}
before: setup
{{ end -}}เบฎเบนเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบก, เปเบเบดเปเบ, เบเบงเบเบเบฑเบเบซเบเบถเปเบเบเบปเปเบเบเป, เปเบเบตเบเบเบปเบงเปเบเบงเบปเบเบเบญเบ dev, เบกเบตเบเบฝเบเปเบเปเบชเบญเบเบชเบฐเบเบฑเบเบเบญเบเปเบงเบฑเบเปเบเบเป: เบชเบฐเบเบฑเบเบเบฒเบเบเบฒเบเบเบปเบเบเบงเบเบเบทเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเปเบฅเบฐเบชเบฐเบเบฑเบเบฎเบฒเบเบเบญเบเปเบงเบฑเบเปเบเบเป (เบกเบตเบเบฑเบเบชเบดเบเบเบปเปเบงเปเบเปเบฅเบฐ, เบเปเบฒเบเปเบฒเบเบเบทเป. , เบเปเบญเบเบเปเปเบกเบนเบ). เบเบฑเปเบเบเบฑเปเบ, เบฎเบนเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบกเบเบฐเปเบเบเบเปเบฒเบเบเบฒเบเบเบปเปเบเบเปเบเบฝเบเปเบเปเบขเบนเปเปเบเบเบฒเบเบเปเบฒเปเบเบปเปเบฒ (เปเบฅเบฐ, เปเบเปเบเบญเบ, เปเบเบเบทเป):
image: werf-dev
...
import:
- artifact: doc-root
add: /app/_main_site
to: /app/main_site
before: setup
- artifact: doc-root
add: /app/_ru_site
to: /app/ru_site
before: setup
{{- if .WerfReviewCommit }}
- artifact: doc-review
add: /app/_main_site
to: /app/main_site/review
before: setup
- artifact: doc-review
add: /app/_ru_site
to: /app/ru_site/review
before: setup
{{- end }} เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเปเบงเปเบเปเบฒเบเปเบเบดเบ, เบชเบดเปเบเบเบฐเบเบดเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฒเบเบเบปเบเบเบงเบเบเบทเบเบเบฐเบเบทเบเบชเปเบฒเบเบเบถเปเบเบเบฝเบเปเบเปเปเบกเบทเปเบญเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบกเปเบเบเปเบฒเปเบเบตเบเบเบฒเบ. REVIEW_SHA. เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเปเปเบชเปเบฒเบเบฎเบนเบเบเบฒเบ werf-dev เบเบฑเบเบซเบกเบปเบเบเปเบฒเบเปเปเบกเบตเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก REVIEW_SHA, เปเบเปเปเบเบทเปเบญ เบฎเบนเบเบเบฒเบ Docker เปเบ werf เปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบฎเบนเบเบเบฒเบ werf-dev, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเปเบซเปเบกเบฑเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเบเบฝเบเปเบเปเบเบฑเบ artifact เบฎเบธเปเบเบฎเบฒเบ (เบกเบฑเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบฅเปเบงเบขเปเบฒเบเปเบเบเปเปเบเบฒเบก), เปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเปเบเบเบชเปเบฒเบเบเปเปเบฅเบฝเบเบเปเบฒเบ.
เบเบฒเบเบเบธเบกเบเบธเบกเปเบกเปเบเบเบฝเบกเบเปเบญเบก! เปเบซเปเบเปเบฒเบงเปเบเบชเบนเป CI/CD เปเบฅเบฐ nuances เบเบตเปเบชเปเบฒเบเบฑเบ.
เบเปเปเปเบ GitLab CI เปเบฅเบฐเบฅเบฑเบเบชเบฐเบเบฐเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบเปเบเบทเปเบญเบเปเบซเบง
เปเบกเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเบเบปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเปเปเบ werf.yaml. เบญเบฑเบเบเบตเปเบเปเปเบเบณเปเบเปเบเบฑเบเบเบปเบงเปเบ REVIEW_SHA, เปเบเบดเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเปเบเปเบกเบทเปเบญเปเบเบซเบฒเบเปเปเบเบฒเบ hook GitHub.
เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบเบเบญเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบ script Bash generate_artifacts, เปเบเบดเปเบเบเบฐเบชเปเบฒเบเบชเบญเบเบชเบดเปเบเบเบญเบกเบเบญเบเบเปเป GitLab:
- file
releases.ymlเบเปเบงเบโเบเปเปโเบกเบนเบโเบเบฒเบโเบเปเบญเบโเบญเบญเบโเบกเบฒโ, - file
common_envs.sh, เบกเบตเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบเบฐเบชเบปเปเบเบญเบญเบ.
เปเบเบทเปเบญเปเบเปเบเบฅเป generate_artifacts เปเบเบปเปเบฒเบเบฐเบเบปเบเปเบซเบฑเบเบขเบนเปเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ . เบเบฒเบเบฎเบฑเบเบเปเปเบกเบนเบเบเบปเบงเบกเบฑเบเปเบญเบเบเปเปเปเบกเปเบเบซเบปเบงเบเปเปเบเบญเบเบเบปเบเบเบงเบฒเบก, เปเบเปเปเบเบฅเป common_envs.sh เปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบฎเบปเบฒ, เปเบเบฒเบฐเบงเปเบฒ เบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ werf เปเบกเปเบเบเบถเปเบเบเบฑเบเบกเบฑเบ. เบเบปเบงเบขเปเบฒเบเบเบญเบเปเบเบทเปเบญเบซเบฒเบเบญเบเบกเบฑเบ:
export RELEASES='1.0%v1.0.6-4'
export CHANNELS='1.0-alpha%v1.0.7-1 1.0-beta%v1.0.7-1 1.0-ea%v1.0.6-4 1.0-stable%v1.0.6-4 1.0-rock-solid%v1.0.6-4'
export ROOT_VERSION='v1.0.6-4' เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเบชเบฐเบเบดเบเบเบฑเปเบเบเปเบฒเบง, เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบเปเบฒเปเบเปเบเบฑเบเบเบฑเบ Bash source.
เบเบฝเบงเบเบตเปเบกเบฒเบชเปเบงเบเบเบตเปเบกเปเบงเบ. เปเบเบทเปเบญเปเบซเปเบเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบฅเบฐเบเบฒเบเบเปเบฒเปเบเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบเบทเบเบเปเบญเบ, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒ werf.yaml เปเบกเปเบ เบเบทโเบเบฑเบ เบขเปเบฒเบเบซเบเปเบญเบ เบเบฒเบเปเบเบเปเปเปเบถเปเบ. เบเปเบฒเปเบเบทเปเบญเบเปเบเบเบตเปเบเปเปเปเบเปเบเบทเบเบเบฑเบเบฅเบธ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบฅเบฒเบเปเบเบฑเบเบเบญเบเบเบฑเปเบเบเบญเบเบเบตเป werf เบเบดเบเปเบฅเปเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบญเบเปเบฅเบฐ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเบฐเปเบเบเบเปเบฒเบเบเบฑเบ. เบเบตเปเบเบฐเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเบเบฒเบเบเบดเบเบเบฑเปเบ, เปเบเบฒเบฐเบงเปเบฒ ... เบฎเบนเบเบเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเบฐเบซเบฒเบเปเบ.
เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เบเปเบฒเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฐเบเบญเบเปเบงเบฑเบเปเบเบเปเบฎเบนเบเบเบฒเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบญเบเปเบฅเบฐเบชเบฐเบเบฑเบเบเปเบฒเบเปเปเบกเปเบเบเบทเบเบฑเบ, เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเปเบฒเปเบเปเบชเบฐเบเบฑเบเปเบซเบกเปเปเบเปเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒเปเบฅเบฐเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบกเบตเบกเบนเบเบเปเบฒเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเบเบดเบเบเบฑเปเบเบเบฐเบฅเบปเปเบกเปเบซเบฅเบงเบเบฑเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ: เบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฑเบเบซเบกเบปเบ, เบเบญเบกเบเบญเบเบชเบฐเบเบฑเบเปเบซเบกเปเบเบฑเบเบเปเปเบเบฑเบเปเบเปเบเบทเบเบชเปเบฒเบเบเบถเปเบ.
เบเปเบฒเบฅเบธเปเบ werf.yaml เปเบกเปเบเบเบถเปเบเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเบเบญเบ (เบเบปเบงเบขเปเบฒเบ, เบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบชเบฐเบเบฑเบเบเบฐเบเบธเบเบฑเบ, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ), เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบญเบปเบเบเบฐเบเบญเบเปเบฅเบฐเบเบธเบเบเปเบฒเบเบญเบเบเปเปเบกเบนเบเบเบฑเปเบเบเปเบฒเบงเบเบงเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบเบถเบเปเบงเปเบเบฒเบเปเบเบเปเป. เบเบตเปเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเปเบเบเบชเบฐเปเบเบฒเบฐเบเปเบฒเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฒเบเบเบญเบเบเปเบฝเบเปเบเบเปเบฅเบทเปเบญเบเป.
เบเบงเบโเปเบฎเบปเบฒโเบเบฐ เบฎเบฑเบเปเบฅเบฐเบเบฑเบเบเบถเบเบเปเปเบกเบนเบเบเบฒเบเบเบญเบ เปเบเบเบฑเปเบเบเบญเบเบเปเบฒเบญเบดเบเบเบญเบเบเปเปเปเบ GitLab (เบชเปเบฒเบเบเปเบญเบ) เปเบฅเบฐเบเปเบฒเบเบเบญเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเบเบทเปเบกเบญเบตเบเปเบเบฎเบนเบเปเบเบ GitLab CI เบเบญเบก. เบเบตเปโเบเบฐโเปเบฎเบฑเบโเปเบซเปโเบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเปเบฅเบฐโเปเบฅเบตเปเบกโเบเบปเปเบโเบงเบฝเบโเปเบฎเบฑเบโเบเบฒเบโเบเปเบฒโเบเปเป (เบชเปเบฒเบโ, เบเบฒเบโเบเปเบฒโเปเบเปโ, เบเปเบฒโเบเบงเบฒเบกโเบชเบฐโเบญเบฒเบโ) เบเบฑเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบเบฝเบงโเบเบฑเบโเปเบ werf.yaml.
เปเบเบทเปเบญเปเบเบเบญเบเปเบงเบเบต เบชเปเบฒเบเบเปเบญเบ เปเบเบฅ .gitlab-ci.yml:
Prebuild:
stage: prebuild
script:
- bash ./generate_artifacts 1> common_envs.sh
- cat ./common_envs.sh
artifacts:
paths:
- releases.yml
- common_envs.sh
expire_in: 2 weekเปเบเบเปเบเปเปเบเบฑเบเบเปเบฒเบเปเปเบกเบนเบเบเบฒเบเบเบญเบเบขเบนเปเปเบเบชเบดเปเบเบเบญเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบเปเบเปเปเบเบเปเบเปเบเบฑเปเบเบเบญเบเบเปเป GitLab CI เบกเบฒเบเบเบฐเบเบฒเบ: เบเปเปเบชเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบเป. เบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเบปเบงเบเปเปเบเบฑเปเบเปเบญเบเปเบเบเปเบเป hooks เบเบฒเบ werf GitHub repository (i.e., เปเบกเบทเปเบญเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบ GitHub repository). เบเปเปเบกเบนเบเบชเปเบฒเบฅเบฑเบเบเบงเบเบกเบฑเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเปเบเบเบธเบเบชเบปเบกเบเบฑเบเปเบเบเบเบฒเบ GitLab เปเบเบเบฒเบ เบเบฒเบเบเบฑเปเบเบเปเบฒ CI/CD -> เบเปเปเบชเบปเปเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบชเปเบฒเบ Webhook เบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเปเบ GitHub (เบเบฒเบเบเบฑเปเบเบเปเบฒ -> Webhooks).
เบเบฑเปเบโเบเบญเบโเบเบญเบโเบเบฒเบโเบเปเปโเบชเปเบฒเบโเบเบฐโเปเบเบฑเบโเบเบฑเปเบโเบเบตเปโ:
Build:
stage: build
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- werf build-and-publish --stages-storage :local
except:
refs:
- schedules
dependencies:
- Prebuild GitLab เบเบฐเปเบเบตเปเบกเบชเบญเบเบชเบดเปเบเบเบฐเบเบดเบเบเบฒเบเปเบงเบเบตเบเบฒเบเบเปเปเบชเปเบฒเบ เบชเปเบฒเบเบเปเบญเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบชเบปเปเบเบญเบญเบเบเบปเบงเปเบเบเบตเปเบกเบตเบเปเปเบกเบนเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบเบฐเบเบฝเบกเปเบเบเปเบเปเบเบฒเบเบเปเปเบชเปเบฒเบ source common_envs.sh. เบเบงเบเปเบฎเบปเบฒเปเบฅเบตเปเบกเบเบปเปเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบเบธเบเบเปเบฅเบฐเบเบต, เบเบปเบเปเบงเบฑเปเบเบเบฒเบเปเบเบตเบเบเบปเบงเบเปเปเบเบฒเบกเบเบฒเบเบฐเบฅเบฒเบ. เบญเบตเบเบเบฒเบกเบเบฒเบเบฐเบฅเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบ - เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฐเบเบญเบ.
เปเบเบเบฑเปเบเบเบญเบเบเบฒเบเปเบเปเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบญเบฐเบเบดเบเบฒเบเบชเบญเบเปเปเบฒเบงเบฝเบ - เปเบเบเบเปเบฒเบเบซเบฒเบเปเบเบทเปเบญเบเบณเปเบเปเปเบเบปเปเบฒเปเบเบเบฒเบเบเบฐเบฅเบดเบ เปเบฅเบฐ เบงเบปเบเบเบญเบ dev, เปเบเบเปเบเปเปเบกเปเปเบเบ YAML:
.base_deploy: &base_deploy
stage: deploy
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- werf deploy --stages-storage :local
dependencies:
- Prebuild
except:
refs:
- schedules
Deploy to Production:
<<: *base_deploy
variables:
WERF_KUBE_CONTEXT: prod
environment:
name: production
url: werf.io
only:
refs:
- master
except:
variables:
- $REVIEW_SHA
refs:
- schedules
Deploy to Test:
<<: *base_deploy
variables:
WERF_KUBE_CONTEXT: dev
environment:
name: test
url: werf.test.flant.com
except:
refs:
- schedules
only:
variables:
- $REVIEW_SHA เบงเบฝเบเบเบฒเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบเบเปเบฒเบเบเบฑเบเบเบฝเบเปเบเปเบเบตเปเปเบซเปเปเบซเบฑเบเปเบเบดเบเบชเบฐเบเบฒเบเบเบฒเบเบเบญเบเบเบธเปเบกเบเบตเป werf เบเบงเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบ (WERF_KUBE_CONTEXT), เปเบฅเบฐเบเปเบฒเบเบปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก loop (environment.name ะธ environment.url), เปเบเบดเปเบเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบทเบเบเปเบฒเปเบเปเปเบ Helm chart templates. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเปเบซเปเปเบเบทเปเบญเปเบเบเบญเบเปเบกเปเปเบเบ, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ ... เบเปเปเบกเบตเบซเบเบฑเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบขเบนเปเบเบตเปเบเบฑเปเบเบชเปเบฒเบฅเบฑเบเบซเบปเบงเบเปเปเปเบเบเปเบฒเบเบฒเบก, เปเบเปเบงเปเบฒเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบเบงเบเบกเบฑเบเปเบเป .
เบเบฒเบเบชเปเบฒเบเบฑเบเบชเบธเบเบเปเบฒเบ
เปเบเบทเปเบญเบเบเบฒเบเบชเบฐเบเบฑเบ werf เบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒเปเบฅเบทเปเบญเบเป, เบฎเบนเบเบเบฒเบเปเบซเบกเปเบเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบฅเบทเปเบญเบเป, เปเบฅเบฐ Docker Registry เบเบฐเปเบเบตเบเปเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบ. เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเปเบเบฑเบเบชเบดเปเบเบเปเบฒเปเบเบฑเบเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบฎเบนเบเบเบฒเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเบญเบตเบเปเบชเปเบเบฐเปเบเบเบฒเบ. เบกเบฑเบเบเปเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบ.
เปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเปเบฒเบเบเบฐเบเปเบญเบเบเบฒเบ:
- เปเบเบตเปเบกเบเบฑเปเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเปเบชเป
.gitlab-ci.yml; - เปเบเบตเปเบกเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบฅเบฐเปเบฅเบเบฐเบเบญเบเบงเบฝเบเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบ;
- เบเบฑเปเบเบเปเบฒเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเบงเบเปเบเปเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบฒเบเบเบฝเบ.
เปเบเบตเปเบกเบเบฑเปเบเบเบญเบเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบเปเบซเป .gitlab-ci.yml:
Cleanup:
stage: cleanup
script:
- type multiwerf && . $(multiwerf use 1.0 alpha --as-file)
- type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose)
- source common_envs.sh
- docker login -u nobody -p ${WERF_IMAGES_CLEANUP_PASSWORD} ${WERF_IMAGES_REPO}
- werf cleanup --stages-storage :local
only:
refs:
- schedules
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบซเบฑเบเปเบเบทเบญเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบชเบนเบเบเบงเปเบฒเปเบฅเบฑเบเบเปเบญเบ - เบเบฝเบเปเบเปเปเบเบทเปเบญเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบกเบฑเบเบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ Docker Registry เบเปเบฒเบญเบดเบเบเปเบงเบ token เบเบตเปเบกเบตเบชเบดเบเบเบดเปเบเบเบฒเบเบฅเบถเบเบฎเบนเบเบเบฒเบเปเบ Docker Registry (เปเบเบทเปเบญเบเปเบฎเบฑเบเบซเบเปเบฒเบเบตเป GitLab CI เบญเบฑเบเบเบฐเปเบเบกเบฑเบเบญเบญเบเบเปเปเปเบเป. เบกเบตโเบชเบดเบโเบเบฑเปเบโเบเปเบฒเบง). token เบเปเบญเบเบเบทเบเบชเปเบฒเบเบเบถเปเบเปเบ GitLab เบฅเปเบงเบเบซเบเปเบฒเปเบฅเบฐเบเปเบฒเบเบญเบเบกเบฑเบเบเปเบญเบเบเบทเบเบฅเบฐเบเบธเปเบงเปเปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก WERF_IMAGES_CLEANUP_PASSWORD เปเบเบเบเบฒเบ (เบเบฒเบเบเบฑเปเบเบเปเบฒ CI/CD -> เบเบปเบงเปเบ).
เบเบฒเบเปเบเบตเปเบกเบงเบฝเบเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเบฑเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบกเปเบเบชเปเบฒเปเบฅเบฑเบเปเบ CI/CD ->
เบเบฒเบเบฐเบฅเบฒเบ.
เบเบฑเปเบเปเบกเปเบเบกเบฑเบ: เปเบเบเบเบฒเบเปเบ Docker Registry เบเบฐเบเปเปเปเบเบตเบเปเบเบขเปเบฒเบเบเปเปเปเบเบทเปเบญเบเบเบฒเบเบฎเบนเบเบเบฒเบเบเบตเปเบเปเปเปเบเปเปเบเป.
เปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเปเบเบทเบญเบเบเปเบฒเบเบงเปเบฒเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบฑเบกเบเบตเปเบเบฒเบเบเบปเบเบเบงเบฒเบกเปเบกเปเบเบกเบตเบขเบนเปเปเบ :
- ;
- .
เบเบปเบ
- เบเบงเบโเปเบฎเบปเบฒโเปเบเปโเบฎเบฑเบโเปเบเบโเบชเปเบฒเบโเบเบฒเบโเบเบฐโเบเบญเบโเบขเปเบฒเบโเบกเบตโเปเบซเบโเบเบปเบโ: เบซเบเบถเปเบโเบเบญเบโเบเบญเบกโเบเปเปโเบชเบฐโเบเบฑเบโ.
- เบชเบฐเบเบฒเปเบซเปเบเปเบกเปเบเบเบปเปเบงเปเบเปเบฅเบฐเบเปเปเบฎเบฝเบเบฎเปเบญเบเปเบซเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบนเปเบกเบทเปเบเปเบงเบฅเบฒเบเบตเปเบชเบฐเบเบฑเบเปเบซเบกเปเบเบญเบ werf เปเบเปเบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒ: เปเบญเบเบฐเบชเบฒเบเบขเบนเปเปเบเปเบงเบฑเบเปเบเบเปเปเบเปเบเบทเบเบเบฑเบเบเบธเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ.
- เบชเบญเบเบฎเบนเบเปเบเปเบเบทเบเบเบฐเบเบญเบเบชเปเบฒเบฅเบฑเบ contours เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
- เบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเปเบงเบงเบฒ, เปเบเบฒเบฐเบงเปเบฒ Caching เปเบกเปเบเปเบเปเบซเบผเบฒเบเปเบเบปเปเบฒเบเบตเปเปเบเบฑเบเปเบเปเบเป - เปเบกเบทเปเบญเบชเบฐเบเบฑเบเปเบซเบกเปเบเบญเบ werf เบเบทเบเบเปเบญเบเบญเบญเบเบกเบฒเบซเบผเบท hook GitHub เปเบเปเบเบทเบเปเบญเบตเปเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฒเบเบเบปเบเบเบงเบเบเบทเบ, เบเบฝเบเปเบเปเบชเบดเปเบเบเบฐเบเบดเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเบเบฑเบเบชเบฐเบเบฑเบเบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบกเปเบเบชเปเบฒเบเบเบถเปเบเปเบซเบกเป.
- เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบดเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบฅเบถเบเบฎเบนเบเบเบฒเบเบเบตเปเบเปเปเปเบเปเปเบเป: เบเบฒเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเบฒเบกเบเบฐเปเบเบเบฒเบ werf เบเบฐเปเบฎเบฑเบเปเบซเป Docker Registry เบขเบนเปเปเบเบฅเปเบฒเบเบฑเบ.
เบเบฒเบเบเบปเปเบเบเบปเบ
- เบเบฒเบเบเปเบฒเปเบเป werf เบเปเบงเบเปเบซเปเบเบฒเบเบเบฐเบเบญเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเปเบงเปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบเบเบญเบเบเบฑเบเบเบฒเบเบเบฐเบเบญเบเบเบปเบงเบกเบฑเบเปเบญเบเปเบฅเบฐ caching เปเบกเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเบเบญเบ.
- เบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ Git เบเบฒเบเบเบญเบเบเบฐเบฅเบปเบเบฅเปเบฒเบเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเปเบเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบฑเบเบซเบกเบปเบเปเบเปเบเปเบฅเบฐเบเบฑเปเบเบซเบผเบทเบเบฑเบเบเบธเบเบฅเปเปเบเปเบงเบเปเบซเบเบเบปเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเบซเบเบธเปเบเบเบฒเบ. werf เปเบเป cache เปเบฅเบฐเปเบฎเบฑเบ cloning เบเบฝเบเปเบเปเบเบฑเปเบเบเบฝเบง, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเป
fetchเปเบฅเบฐเบเบฝเบเปเบเปเปเบเปเบงเบฅเบฒเบเบตเปเบเปเบฒเปเบเบฑเบ. - เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบเปเปเบกเปเปเบเบ Go เปเบเปเบเบฅเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเปเปเบชเปเบฒเบ
werf.yamlเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบญเบฐเบเบดเบเบฒเบเบเบฒเบเบเบฐเบเบญเบเบเบตเปเบเบปเบเปเบเปเบฎเบฑเบเปเบกเปเบเบเบถเปเบเบเบฑเบเบเปเปเบกเบนเบเบเบฒเบเบเบญเบ. - เบเบฒเบเบเปเบฒเปเบเป mount เปเบ werf เบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบเปเบฅเบฑเปเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบญเบเบเบญเบก - เปเบเบทเปเบญเบเบเบฒเบ cache, เปเบเบดเปเบเปเบกเปเบเบเบปเปเบงเปเบเบเบฑเบเบเปเปเบเบฑเบเบซเบกเบปเบ.
- werf เปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบเปเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบ, เปเบเบดเปเบเปเบเบฑเบเบชเบดเปเบเบชเปเบฒเบเบฑเบเปเบเบเบชเบฐเปเบเบฒเบฐเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบเปเบเบทเปเบญเบเปเบซเบง.
PS
เบญเปเบฒเบเบเบฑเบเบขเบนเปเปเบ blog เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
- ยซ"
- ยซ"
- ยซ"
- ยซ".
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com
