
рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣рдордиреЗ рд▓реЗрдЦ "
GitLab CI рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕: рдПрдХ .gitlab-ci.yml рд╕реИрдХрдбрд╝реЛрдВ рдЖрд╡реЗрджрди рдкрддреНрд░ " рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП, рдФрд░ рдЕрдм рд╣рдо рдЖрдЬ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдирдИ рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдмрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдХрд┐ рдЖрдк рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдорд╛рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП CI / CD рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ
include
ред
.gitlab-ci.yml
include
рд╣реИрдВ
.gitlab-ci.yml
рдФрд░ dapp рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП werf рдХрд╛ рдЖрдЧрдордиред
рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ
рд▓реЗрдЦ рдореЗрдВ рджрд┐рдП рдЧрдП рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд┐рддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдПрдХ рдмрдбрд╝рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдЬрд┐рд╕реЗ рдХрдИ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдПрдХ рдЕрд▓рдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- CI рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ, GitLab CI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкрд░рд┐рдирд┐рдпреЛрдЬрди (рд╡рд╣ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рддреИрдирд╛рдд рд╣реИ) рдХрд╛ рд╡рд░реНрдгрди рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ werf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рддреИрдирд╛рдд рдХрд░реЗрдВред
рд╕рд╛рджрдЧреА рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП (рдФрд░ рдлреИрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд░рджреНрдзрд╛рдВрдЬрд▓рд┐ рдХреЗ рд░реВрдк рдореЗрдВ), рд╣рдо рдЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлрд╝реНрдЯ рдХрд╣рддреЗ рд░рд╣реЗрдВрдЧреЗред
рдЗрди рд╕рднреА рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрдореНрд╕ рдХреЛ рдПрдХ рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЗрдХрдЯреНрдард╛, рддреИрдирд╛рдд рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ,
.gitlab-ci.yml
,
werf.yaml
рдФрд░
.helm
рдирдХрд▓ рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрддреА рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, CI рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрдкрд╛рджрди, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╛ рд╣реЗрд▓реНрдо-рдЪрд╛рд░реНрдЯ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЕрдиреНрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ...
.Gitlab-ci.yml рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛
include:file
рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде
include:file
рдЧрд┐рдЯрд▓реИрдм рд╕реАрдИ рдореЗрдВ
include:file
рдирд┐рд░реНрджреЗрд╢ (
рд╕рдВрд╕реНрдХрд░рдг 11.7 рдХреЗ рдмрд╛рдж рд╕реЗ ), рдпрд╣ рдПрдХ рдЖрдо рд╕реАрдЖрдИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ (11.4 рдореЗрдВ) рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдХреЗрд╡рд▓
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ URL рд╕реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА, рдЬрд┐рд╕рдиреЗ рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ред GitLab рдкреНрд░рд▓реЗрдЦрди
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛
рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЗ рдмреАрдЪ
.gitlab-ci.yml
рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
include: - project: 'infra/gitlab-ci' ref: 1.0.0 file: base-gitlab-ci.yaml - project: 'infra/gitlab-ci' ref: 1.0.0 file: cleanup.yaml
рд╣рдо рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк
рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрд╕ рд╕рдордп рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ, рдЬрд┐рд╕ рд╕рдордп рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдмрдирд╛рдИ рдЧрдИ рдереА, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ CI рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрдиреЛрдкреНрдЯреНрдпреВрди рдЯреНрдпреВрди рдкрд░ рдЙрддреНрдкрд╛рджрди рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЧрд┐рд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди
ref
рдореЗрдВ рдЯреИрдЧ рдХреЗ
рдЙрдкрдпреЛрдЧ рд╕реЗ CI / CD рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╕рдм рдХреБрдЫ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдкрд╛рд░рджрд░реНрд╢реА рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ .helm рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
рдЪреВрдВрдХрд┐ рдпреЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рдЙрд╕реА рддрд░рд╣ рддреИрдирд╛рдд рдФрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣реЗрд▓реНрдо рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рдорд╛рди рд╕реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдмреАрдЪ
.helm
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░рддреЗ рдереЗ рдЬрд┐рд╕рдореЗрдВ рд╣реЗрд▓реНрдо рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЯреИрдЧ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рдерд╛ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрд╛ рдЧрдпрд╛:
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.example.com/infra/helm.git .helm - cd .helm && git checkout tags/1.0.0 - type multiwerf && source <(multiwerf use 1.0 beta) - type werf && source <(werf ci-env gitlab --tagging-strategy tag-or-branch --verbose) - werf deploy --stages-storage :local
рдЧрд┐рдЯ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рднреА рд╡рд┐рд╡рд┐рдзрддрд╛рдПрдВ рдереАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ ...
рдФрд░ рдЕрдм рд╣рд╛рд▓рд┐рдпрд╛ рд╡реЗрдпрд░рдл рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде, рдЙрд╕рдХреЗ
рдкрд╛рд╕ рдмрд╛рд╣рд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЪрд╛рд░реНрдЯ рдХрдиреЗрдХреНрдЯ
рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди, рдмрджрд▓реЗ рдореЗрдВ, рдЖрд╡реЗрджрди рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛
рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
рдХрд░реНрдореЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо
рдЖрдЗрдП, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред рдЪрд▓реЛ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА
рдмрдврд╝рд╛рдПрдБ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдЪрд╛рд░реНрдЯрдореНрдпреВрдЬ ред рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИ:
helm repo add stable https://kubernetes-charts.storage.googleapis.com helm install stable/chartmuseum --name flant-chartmuseum
рдкреНрд░рд╡реЗрд╢ рдЬреЛрдбрд╝реЗрдВ:
apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/force-ssl-redirect: "false" nginx.ingress.kubernetes.io/proxy-body-size: 10m nginx.ingress.kubernetes.io/ssl-redirect: "false" name: chart-museum spec: rules: - host: flant-chartmuseum.example.net http: paths: - backend: serviceName: flant-chartmuseum servicePort: 8080 path: / status: loadBalancer: {}
рдкрд░рд┐рдирд┐рдпреЛрдЬрди
flant-chartmuseum
рдХреЛ рдкрд░рд┐рд╡реЗрд╢ рдЪрд░
DISABLE_API
рдХреЛ
false
рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ), рдЪрд╛рд░реНрдЯрдореНрдпреВрдЬрд╝рд┐рди рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдирдП рдЪрд╛рд░реНрдЯ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдЕрдм рд╣рдо рдЙрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рд╛рдЭрд╛ рд╣реЗрд▓рдо рдЪрд╛рд░реНрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
. тФЬтФАтФА charts тФВ тФФтФАтФА yii2-microservice тФВ тФЬтФАтФА Chart.yaml тФВ тФФтФАтФА templates тФВ тФЬтФАтФА app.yaml тФФтФАтФА README.md
Chart.yaml
рдЗрд╕ рддрд░рд╣
Chart.yaml
рд╕рдХрддрд╛ рд╣реИ:
name: yii2-microservice version: 1.0.4
templates
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреБрдмреЗрд░рдиреЗрдЯ рдкреНрд░рд╛рдЗрдорд┐рдЯрд┐рд╡реНрд╕ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВрдЧреЗред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛ yii2 рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ PHP рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИред рдЖрдЗрдП, рдЗрд╕рдХреЗ рджреЛ рдирд┐рдЧрдиреЗрдХреНрд╕ рдФрд░ php-fpm рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдиреНрдпреВрдирддрдо рддреИрдирд╛рддреА рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдЬреЛ рдХрд┐ werf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ:
--- apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Values.global.werf.name }} spec: replicas: 1 revisionHistoryLimit: 3 template: metadata: labels: service: {{ .Values.global.werf.name }} spec: imagePullSecrets: - name: registrysecret containers: - name: backend {{ tuple "backend" . | include "werf_container_image" | indent 8 }} command: [ '/usr/sbin/php-fpm7', "-F" ] ports: - containerPort: 9000 protocol: TCP name: http env: {{ tuple "backend" . | include "werf_container_env" | indent 8 }} - name: frontend command: ['/usr/sbin/nginx'] {{ tuple "frontend" . | include "werf_container_image" | indent 8 }} ports: - containerPort: 80 name: http lifecycle: preStop: exec: command: ["/usr/sbin/nginx", "-s", "quit"] env: {{ tuple "frontend" . | include "werf_container_env" | indent 8 }} --- apiVersion: v1 kind: Service metadata: name: {{ .Values.global.werf.name }} spec: selector: service: {{ .Values.global.werf.name }} ports: - name: http port: 80 protocol: TCP
рдЪрд░
.Values.global.werf.name
рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд╛рдо рдореЗрдВ рд╕реЗ
werf.yaml
рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рддреИрдирд╛рддреА рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рдкрд░, рдЕрдкрдиреЗ рдЪрд╛рд░реНрдЯ рдХреЗ рдЪрд╛рд░реНрдЯрдореНрдпреВрдЬ рдореЗрдВ рдкреБрд╢ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реНрд╡рдЪрд╛рд▓рди рдмрдирд╛рдПрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
.gitlab-ci.yml
рд╡рд░реНрдгрди
.gitlab-ci.yml
:
Build and push to chartmuseum: script: - for i in $(ls charts); do helm package "charts/$i"; done; - for i in $(find . -type f -name "*.tgz" -printf "%f\n"); do curl --data-binary "@$i" http://flant-chartmuseum.example.net/api/charts; done; stage: build environment: name: infra only: - master tags: - my-shell-runner-tag
рдЪрд╛рд░реНрдЯ рдХреЛ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдмрджрд▓ рдХрд░ рдЪрд╛рд░реНрдЯ рддреИрдпрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╕рднреА рдирдП рдЪрд╛рд░реНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд╛рд░реНрдЯрдореНрдпреВрдЬ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗред
рд╣рдо рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ! рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ
.helm/requirements.yaml
рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
dependencies: - name: yii2-microservice version: "1.0.4" repository: "@flant"
... рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
werf helm repo init werf helm repo add flant http://flant-chartmuseum.example.net werf helm dependency update
рд╣рдо рдЗрд╕рдореЗрдВ
.helm/requirements.lock
ред рдЕрдм, рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
werf deploy
рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
werf helm dependency build
рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЖрд╡реЗрджрди рдХреА рддреИрдирд╛рддреА рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдм рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрдлрд╝рд┐рд╕ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╣реИрд╢ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдЫреЛрдЯреЗ рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ рдФрд░
requirements.lock
рдФрд░ рдЯреИрдЧ рдФрд░рд▓реЙрдХ рдореЗрдВ рд▓реЙрдХ
requirements.lock
ред рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдпрд╣ рдСрдкрд░реЗрд╢рди CI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣
рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд▓реЗрдЦ рдореЗрдВ рдХреИрд╕реЗ
рдХрд┐рдпрд╛ рдЬрд╛рдП ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рдорд╛рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕рд░реНрд╡рд┐рд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрд┐рдд рдХреНрд░рдо рдЙрди рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬреЛ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рд╣рдо
werf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрди
рд╣реЛрдВрдЧреЗ ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реА рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реИрдВ рдЬреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдпрд╛ рдмрд╕ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд▓рдЧ рд░рд╣реА рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдЫреЛрдбрд╝ рджреЗрдВред
рдкреБрдирд╢реНрдЪ
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ: