рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ helm install --set tag=20161216
рдХреА рдЦрд╛рддрд┐рд░рджрд╛рд░реА рдФрд░ thats рдореЗрдВ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрдХреЗрддрди рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ {{ typeOf .Value.tag }}
рдкреИрджрд╛рд╡рд╛рд░ float64
ред
helm install --set tag=1
-> float64
рдЬреИрд╕реЗ рдЫреЛрдЯреЗ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рд╣реА рд╣реИред
рдпрд╣ рд╣реЗрд▓реНрдо 2.1.0 рдХреЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рд╣реИ
рдпрджрд┐ рдЖрдк --set tag=\"1\"
рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдпрд╣ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
@Chancez рдХреА рдмрджреМрд▓рдд рд╣рдореЗрдВ рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ: JSON рджреНрд╡рд╛рд░рд╛ ghodss/yaml
рд╕реЗ рдХрд┐рдП рдЧрдП рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЛ рдлреНрд▓реЛрдЯ64 рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╕рднреА рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрдХреЗрддрди рдореЗрдВ рджрд░реНрд╢рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди рд╕реЗ рдКрдкрд░ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред
рдореБрдЭреЗ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреВрдмрдбрд╝ (рдпрд╛ рдмрдЧ) рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ:
--set bignumber=\\"a185576882739235744\\"
рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдФрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╕рд╛рдорд╛рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдирд╛ рд╣реИ:
--set port=":1234567"
рдлрд┐рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ:
{{ .Values.port | replace ":" "" }}
рд╣рд╛рдБ! ЁЯШ╖
рдпрд╣ рдПрдХ рджрд░реНрдж рдХреА рдПрдХ рдЭреЛрдВрдкрдбрд╝реА рд╣реИ , рдФрд░
рдореИрдВ рдЕрднреА рддрдХ рдЕрдкрдиреЗ рдЧрд░реНрд╡ рдХреЛ рдирд┐рдЧрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ @technosophos рдХреА рдмрджрд╕реВрд░рдд рд╣реИрдХ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛
рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рддреИрдирд╛рддреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╣реИрдХрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ -f
рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдореИрдВ рдЗрдореЗрдЬ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рд╕рдордп-рд╕рдордп рдкрд░ рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ :)
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, --set image.tag=5997578
рдкрд░ рдЗрд╕реЗ рдиреАрдЪреЗ рджреЗрдЦрдирд╛:
$ kubetctl describe po msj-treasure-map-msj-treasure-map-192172122-dnb80
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 1m default-scheduler Successfully assigned msj-treasure-map-msj-treasure-map-192172122-dnb80 to ip-10-253-13-113.ec2.internal
Warning InspectFailed 15s (x9 over 1m) kubelet, ip-10-253-13-113.ec2.internal Failed to apply default image tag "596297932419.dkr.ecr.us-east-1.amazonaws.com/msj-trmap-uwsgi:5.997578e+06": couldn't parse image reference "596297932419.dkr.ecr.us-east-1.amazonaws.com/msj-trmap-uwsgi:5.997578e+06": invalid reference format
Warning InspectFailed 15s (x9 over 1m) kubelet, ip-10-253-13-113.ec2.internal Failed to apply default image tag "596297932419.dkr.ecr.us-east-1.amazonaws.com/msj-trmap-nginx:5.997578e+06": couldn't parse image reference "596297932419.dkr.ecr.us-east-1.amazonaws.com/msj-trmap-nginx:5.997578e+06": invalid reference format
Warning FailedSync 15s (x9 over 1m) kubelet, ip-10-253-13-113.ec2.internal Error syncing pod, skipping: [failed to "StartContainer" for "msj-treasure-map-uwsgi" with InvalidImageName: "Failed to apply default image tag \"596297932419.dkr.ecr.us-east-1.amazonaws.com/msj-trmap-uwsgi:5.997578e+06\": couldn't parse image reference \"596297932419.dkr.ecr.us-east-1.amazonaws.com/msj-trmap-uwsgi:5.997578e+06\": invalid reference format"
, failed to "StartContainer" for "msj-treasure-map-nginx" with InvalidImageName: "Failed to apply default image tag \"596297932419.dkr.ecr.us-east-1.amazonaws.com/msj-trmap-nginx:5.997578e+06\": couldn't parse image reference \"596297932419.dkr.ecr.us-east-1.amazonaws.com/msj-trmap-nginx:5.997578e+06\": invalid reference format"
$ helm version
Client: &version.Version{SemVer:"v2.5.1", GitCommit:"7cf31e8d9a026287041bae077b09165be247ae66", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.5.1", GitCommit:"7cf31e8d9a026287041bae077b09165be247ae66", GitTreeState:"clean"}
рдореИрдВ рднреА 2.6.2 рдкрддрд╡рд╛рд░ рдкрд░ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
Client: &version.Version{SemVer:"v2.6.2", GitCommit:"be3ae4ea91b2960be98c07e8f73754e67e87963c", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.6.2", GitCommit:"be3ae4ea91b2960be98c07e8f73754e67e87963c", GitTreeState:"clean"}
JSON рдХреЗ рд▓рд┐рдП YAML рдиреАрдЪреЗ рд╕реНрдЯреНрд░рд┐рдк рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА, рд╕рдмрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рддреИрдирд╛рдд рдЪреЗрдХ рд╡реИрд▓реНрдпреВ рдЯрд╛рдЗрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдпрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд▓реЗ рдЬрд╛рдХрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ: https://github.com/go-yaml
рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЬреВрдЭрддреЗ рд╣реБрдП рдЖрдЬ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ toString
рдлрд╝рд┐рд▓реНрдЯрд░ рдЗрд╕рдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
dockerPort: {{ .Values.dockerPort | toString }}
рддрдм рдореИрдВ рдкреЛрд░реНрдЯ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди ( --set dockerPort=2376
) рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдФрд░ рдЗрд╕рдХреА рд╕рд╣реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рд╣реИред
рд╣рдордиреЗ рдЗрд╕реЗ рд╕рд┐рд░реНрдл 2.7.2 рдкрд░ рджреЗрдЦрд╛ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рд╕рд┐рд╡рд╛рдп --set
рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдФрд░ helm -f locals.yml
ред
рдореИрдВрдиреЗ рдЗрд╕реЗ 2.7.2 рдореЗрдВ рднреА рджреЗрдЦрд╛ рд╣реИ (рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк # 3246 рджрд╛рдпрд░ рдХрд┐рдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ +1ред рдЬреИрд╕реЗ рдХрд┐ https://github.com/kubernetes/helm/issues/3001 рдореЗрдВ , рдореИрдВ рдЕрдкрдиреЗ docker image рдЯреИрдЧ рдХреЗ рд▓рд┐рдП git SHAs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди, FWIW, -gitsha
рд╕рд╛рде рдЫрд╡рд┐ рдЯреИрдЧ рдкреНрд░рддреНрдпрдп рд╣реИ
рдореЗрд░реЗ рд▓рд┐рдП рднреА +1ред
$ helm version тПО
Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
$ git rev-parse --short HEAD
6180689
$ helm upgrade foobar \
-i charts/foobar \
--set image.tag=$(git rev-parse --short HEAD) \
--reuse-values
рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓рддрд╛ рд╣реИ:
Failed to apply default image tag "gcr.io/foobar/foobar:6.180689e+06": couldn't parse image reference "gcr.io/foobar/foobar:6.180689e+06": invalid reference format
Error syncing pod
рдореИрдВ рднреА рдорд┐рд▓ InvalidImageName
рдЪрд▓ рдкрд░ kubectl get pods
ред
| toString
рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
{{ .Values.tag | int64 }}
@ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдмрд┐рд▓реНтАНрдХреБрд▓ рд╕рд╣реА, рд▓реЗрдХрд┐рди рдпрд╣ -
рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ # 3155 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ
рд╣рд╛рдБ, рдРрд╕рд╛ @jesselang рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ https://github.com/kubernetes/helm/issues/3246
2.8.0 рд╣реЗрд▓ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
@bacongobbler рдпрд╛ @technosophos рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП # 3599 рдкрд░ рдлрд┐рдХреНрд╕ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрдиреБрдореЛрджрди рд╣реИ, рдмрд╕ рджреВрд╕рд░реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!
# 3599 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛
рдкрд┐рдВрдЧ @ рдЖрд░реНрдЯреБрд░реЛ-рд╕реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)
рд╣реЗрд▓ тАЛтАЛрдмрдЧ 2.9.1 рдХреЗ рд╕рд╛рде рднреА рдЗрд╕ рдмрдЧ рдХреЛ рджреЗрдЦреЗрдВ
рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ helm lint
рдЗрд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдкрдХрдбрд╝рддрд╛ рд╣реИ? # 4099 рджреЗрдЦреЗрдВ
рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдБ рдХрд┐ рдпрд╣ --set-string
рдЬреЛрдбрд╝рдХрд░ рдХреНрдпреЛрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд┐ рдореБрдЭреЗ --set
рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдмрдЧ рдкреНрд░рддреАрдд рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рднреА рдЕрдкрдиреЗ рдпрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрдХреЗрддрди рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИ?
рджреЛ рд╢рдмреНрдж: рдкреАрдЫреЗ рд╕рдВрдЧрддрддрд╛ :)
рд╣рдо рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣реЗрд▓реНрдо 3 рдореЗрдВ --set
рдкрд╛рд░реНрд╕рд░ рдкреВрд░реНрдгрд╛рдВрдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рддреЗ рд╣реБрдП рд╣рдордиреЗ рдХреЛрд░ рдХрд╛рд░реНрдпрд╢реАрд▓рддрд╛ рдХреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ рд╣реИ рдЬреИрд╕реЗ --set
рдЗрд╕рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рд╣реЗрд▓реНрдо рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред рдЙрддреНрдкрд╛рджрди рдореЗрдВред рд╣рдо рд╕рднреА рдорд╛рдиреЛрдВ рдХреЛ --set
рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реЗ рдорд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрд╢рдХреНрдд рдФрд░ рд╕рддреНрдп рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░, рдЗрд╕рд▓рд┐рдП --set-string
рдХреЛ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рдиред
рдкрд┐рдЫреЗрдбрд╝реА рд╕рдВрдЧрддрддрд╛? рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рд╕рд╛рджрд╛ 'рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл' рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? рдПрдХ рдЙрдкрдХрд░рдг рдореЗрдВ рдЬреЛ рднрд╛рд░реА рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдзреАрди рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдирд╣реАрдВ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдареАрдХ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд▓реЗрдВред
@technosophos рдзрдиреНрдпрд╡рд╛рджред
рдЙрджрд╛рд╣рд░рдг:
kind: Secret
data:
some_db_port: {{ .Values.dbInfo.db_port | replace ":" "" | b64enc }}
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
@OndraZizka (рдмрд╣реБрдд рднрд╛рд╡реБрдХ) рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрди wonky рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдореБрджреНрджреЛрдВ рд╣реИ рдХрд┐ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ --set
рдирдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдЗрд╕рдХреА рдЬрдЧрд╣ рд╕реЗ рдкрд╛рд░реНрд╕рд░ рдкрддрд╡рд╛рд░ 3 рдХреЗ рд▓рд┐рдП рд╣реИ, рд╕рдВрднрд╛рд╡рдирд╛ --set-string
рдкрд╛рд░реНрд╕рд░ред
рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ --set
рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ (рдФрд░ рдПрдХрджрдо рдЧрд▓рдд рднреА), рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рдкреВрд░реА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╢реНрд╡рд╕реНрдд рд░рд╣реЗрдВ рдХрд┐ рдХреЛрдИ рдФрд░ рдЬрдмрд░рджрд╕реНрддреА рдирд╣реАрдВ рд╣реИ рдирдИ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХреАрдбрд╝реЗред рд╕реНрд╡реИрдкрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдирд╛ рдПрдХ рдкрд┐рдЫрдбрд╝рд╛-рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, --set-string
рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдХрд┐рд╕реА рдФрд░ рдХреЛ рднреА рдЗрд╕ рдмрдЧ рдореЗрдВ рдЪрд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХреГрдкрдпрд╛ --set-string
рдЙрдкрдпреЛрдЧ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ, рдЬрдм рддрдХ рдЖрдк рдЯрд╛рдЗрдк рдЬрд╝рдмрд░рджрд╕реНрддреА рдкрд░ рднрд░реЛрд╕рд╛ рди рдХрд░реЗрдВред рдЗрд╕ рддрд░рд╣, рдорд╛рдиреЛрдВ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдордЬрдмреВрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдлреНрд▓реЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдм рдЕрдВрд╕рд┐рдмрд▓ рдиреЗ рдпрдорд▓ (рдЬреЛ рдореЗрд░реЗ рдорд╛рди рд╣реИред рд╢реНрдпрд╛рдо) рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рдирд╛рд╢рд╛рд╣реА рдкреНрд░рд╛рд░реВрдк рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЙрджреНрдзрд░рдг рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдЦреВрдиреА рд╣реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: replace ":" ""
рдЕрдЧрд░ рдЖрдкрдХреЛ :
рд╕рд╛рде рдЯреИрдЧ рдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реБрдП, рдЖрдк рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (tl; dr: рдЬрдм рдЯреИрдЧ рдПрдХ рдирдВрдмрд░ рд╣реИ, рддреЛ рдЗрд╕реЗ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдВрдЯрдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ; рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдкрдХреЛ рдорд┐рд▓реА)
{{- $tag := .Values.image.tag }}
{{- $type := printf "%T" $tag }}
image: "{{ .Values.image.repository }}:{{if eq $type "float64"}}{{ printf "%.0f" $tag }}{{ else }}{{ $tag }}{{ end }}"
рдмрдЧ рднреА helm ... -f myval.yaml
рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ
FYI рдХрд░реЗрдВ, рдпрд╣ https://github.com/helm/helm/pull/6010 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
@bacongobbler рдЕрднреА рднреА рд╣реЗрд▓реНрдо рд╡рд░реНрдЬрди v2.14.3 рдХреЗ рд╕рд╛рде рдореБрдЭ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рджред
# 6749 рдореЗрдВ # 6010 рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред
рдХреЛрдИ рдИрдЯреАрдП рдЬрдм рдлрд┐рдХреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛?
# 6888 рджреЗрдЦреЗрдВред
@sagarkal рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рд╣реИрдВ: рдЙрдкрд░реНрдпреБрдХреНрдд рдирд┐рд░реНрдзрд╛рд░рдг рдХреЗрд╡рд▓ Helm v3 рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ, v2 рдирд╣реАрдВ (рдореИрдВ рдЗрд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдШреЛрд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд░реНрдгрдп рд╣рдореЗрд╢рд╛ рдЯреАрдо рдХреЗ рдКрдкрд░ рд╣реЛрддрд╛ рд╣реИ)ред рдкрд░рд┐рд╡рд░реНрддрди рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╣реИ рдФрд░ рдЗрд╕реЗ 2.x рд╢рд╛рдЦрд╛ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 100% рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдЕрдм рдХреЗрд╡рд▓ рдкреИрдЪ рд╣реИред рдЗрд╕ рдмреАрдЪ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореМрдХрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреАрдЖрд░ рд╢рд╛рдЦрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЪреАрдЬреЗрдВ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓реЗрдЧреА!
рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕рд╛рджреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд▓рд┐рдП --set-string image.tag=6599236
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
...
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
env:
...
рдЪрд╛рд░реНрдЯ рдХреЗ рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрдбрд╝реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдХреЗ рд╕рд╛рде рдЗрд╕рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрдХреЗрддрди рдХреЗ рд╕рд╛рде рдПрдХ рдирд╛рд╡ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдмрд╕ рдПрдХ int
рддрдп рдХрд░рдирд╛, рдФрд░ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЕрдиреНрдп рдХрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХреНрд▓реАрдирд░ рд▓рдЧрддрд╛ рд╣реИ:
# values.yaml
tomcat:
maxPostSize: 2097152
# Cast to int when used
{{ .Values.tomcat.maxPostSize | int }}
рдпрд╣ рд╣реЗрд▓реНрдо v3.1.1 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ! рдореИрдВрдиреЗ рдЬреЛ рджреЗрдЦрд╛ рд╣реИ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!
@Rathgore рдПрдХ рдЗрдВрдЯ рдХреЛ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд░рдирд╛ рд╕рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╡рд╣ рд╣рд░ рд╕рдордп --set-string
рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдореВрд▓реНрдп рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣рд░ рдмрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
@ m0rganic рдореИрдВ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ toString
рдХреЗ рдмрдЬрд╛рдп int
рдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ !!str
ред рдпрджрд┐ рдЖрдк --set-string
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
@ m0rganic рдореИрдВ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ
toString
рдХреЗ рдмрдЬрд╛рдпint
рдпрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛!!str
ред рдпрджрд┐ рдЖрдк--set-string
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
toString
рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореИрдВ !!str
рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред
рдХреНрдпрд╛ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ? рдпрд╣ рдореБрджреНрджрд╛ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЦреБрд▓рд╛ рд╣реИ ...
# 6888 рджреЗрдЦреЗрдВред рдирд╣реАрдВ рддреЛ рдирд╣реАрдВред рд╣рдордиреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреИрдЯрд░реНрди рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдП рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреАрдЖрд░ рдореЗрдВ рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред
рддреБрд░рдВрдд рдкреНрд░рддрд┐рд╕рд╛рдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдпрджрд┐ рдЖрдк
--set tag=\"1\"
рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдпрд╣ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЗрдВрдЯ, рдлреНрд▓реЛрдЯ рдФрд░ рдмреВрд▓ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ ""
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рдж
рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╣реЗрд▓реНрдо 3 рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд░реНрдл рд╣реЗрд▓реНрдо 2 рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдиреЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдХреМрди рдЕрднреА рднреА рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдХреИрд╕реЗ, рдФрд░ рд╣реЗрд▓реНрдо рдХреЗ рдХрд┐рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рдеред
Helm 2 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░
рдкрддрд╡рд╛рд░ 2 рдХреЗ рд▓рд┐рдП рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ () рдХреЗ рдмреАрдЪ рдЬреЛ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ
{{- range $i := until (int .Values.deployment.numberofracks) }}
- name: rack{{$i}}
{{- end}}
рдореИрдВ рдпрд╣ рдорд╛рдирдХрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╣реЗрд▓реНрдо 3 рдХреЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдП рд╣реБрдП 3 рд╕рдкреНрддрд╛рд╣ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рд╣реЗрд▓реНрдо 3 рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдЕрдиреНрдп рд▓реЛрдЧ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдФрд░ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!
рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ; рдореИрдВ 3.3.0
рдкрд░ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА рдпрд╣ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЦреБрд╢ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ; рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЪрд╛рд░реНрдЯ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ values.yaml
рдПрдХ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
customEnv:
SOME_ENV_VAR: 10000000
рдФрд░ рдлрд┐рд░ templates/deployment.yaml
, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ:
...
containers:
- name: someContainer
env:
{{- range $key, $value := .Values.customEnv }}
- name: {{ $key | quote }}
value: {{ $value | quote }}
{{- end }}
...
рдЬрдм рдореИрдВ helm template
рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдпрд╣ рдореВрд▓реНрдп рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
...
containers:
- name: someContainer
env:
- name: "SOME_ENV"
value: "1e+07"
...
рдФрд░ рддрдм рдореЗрд░рд╛ рддреИрдирд╛рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╡рд╣ SOME_ENV
рдХреЛ рдПрдХ рдирдВрдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
рдЕрдЪреНрдЫрд╛ рдЬреАред рдореИрдВрдиреЗ рд╣реЗрд▓реНрдо 3.3.1 рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдЙрд╕реА рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред рдзрдиреНрдпрд╡рд╛рджред рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред
рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдХреЛрдг рдкрд░ рдорд╛рд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░рд╛ appVersion
8482e77
, рдЕрдЧрд░ рдореИрдВ appVersion
рдХрд╣реАрдВ рднреА рдЗрд╕реЗ +Inf
рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ BTW рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬреЗрджрд╛рд░ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
appVersion: 8482e77
appVersion: "8482e77"
рд╕реЗ appVersion рдмрджрд▓рддреЗ рдореЗрд░реЗ рдореБрджреНрджреЗ рддрдп рдХреА
рдпрд╣реА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж, YAML рдЙрд╕ рдЕрдВрдХ рдХреЛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрдХреЗрддрди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреА рд╣реИ ( 8482e77
рдЕрд░реНрде рд╣реИ "8482 * 10 ^ 77")ред рдпрджрд┐ рдЖрдк рдПрдХ рдорд╛рди рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЙрджреНрдзрд░рдг рдореЗрдВ рд▓рдкреЗрдЯреЗрдВред
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде contianer рдЫрд╡рд┐ рдЯреИрдЧ рдерд╛ред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рд╣рд╛рдпрдХ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
+{{/* Generate Image Name */}}
+{{- define "helpers.image" }}
+{{- $tag := printf "%f" .Values.app.image.tag -}}
+{{- if regexMatch "^[0-9]+\\.[0-9]+$" $tag }}
+{{ .Values.image.repository }}:{{ .Values.image.tag | int }}
+{{- else }}
+{{ .Values.image.repository }}:{{ .Values.image.tag }}
+{{- end }}
+{{- end }}
рдФрд░ рдлрд┐рд░, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХрдЯ рдореЗрдВ:
containers:
- name: {{ template "helpers.fullname" . }}
image: {{ template "helpers.image" . }}
рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдареАрдХ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдирд╣реАрдВ, рдКрдкрд░ рджреЗрдЦреЗрдВ ред рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рд▓рд┐рдП рдереНрд░реЗрдб рдкрдврд╝рдирд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред :)
рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрд╛рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 90 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рддреЛ рдпрд╣ рдзрд╛рдЧрд╛ 30 рджрд┐рдиреЛрдВ рдореЗрдВ рд╕реНрд╡рддрдГ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЯрдХреНрдХрд░, рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ
рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЬрдм рдореИрдВ рд╢рд╛рдпрдж рд╕рд╛рдВрдЦреНрдпрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдз рдЖрдИрдбреА рдкрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреВрд░рд╛:
{{- define "numericSafe" -}}
{{- if . | toString | contains "e+" -}}
{{ . | toString | replace "." "" | regexFind "^\\d+" }}
{{- else -}}
{{ . }}
{{- end -}}
{{- end -}}
рдЗрд╕рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
{{ include "numericSafe" .Values.git.commitID }}
рдпрд╣ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдореВрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдбреЙрдЯ рдФрд░ e+
, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд▓рдВрдмреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдЫ рднреА рдЫреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
@urakagi рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХрд╛ рдореВрд▓реНрдп рд╣реИ: 1800000
рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ?
рдХреЛрдИ рдЕрдкрдбреЗрдЯреНрд╕?
@bacongobbler @bobry рд╕реЗ рд░рд┐рдкреНрд░реЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ --set
рд╕рд╛рде рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛, рдЬреЛ рдЕрдм рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ --set-string
рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
рд░реЗрдкреНрд░реЛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рд╢реНрдпрд╛рдо рдХреЛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрдХреЗрддрди рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд░реЗрдкреНрд░реЛ рдХреЛ values.yaml
рдореЗрдВ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЗрд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдиреЛрдЯреЗрд╢рди рдПрдХ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ 20 рджрд╢рдорд▓рд╡ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдорд╛рдирдХ рд╕рдВрдХреЗрддрди рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВред рдЙрд╕рдХреЗ рдмрд╛рдж рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдпрдорд▓ рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реАрдорд╛ рд▓рдЧрддреА рд╣реИ рдЬреЛ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рддреА рд╣реИ рдФрд░ / рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЕрдВрдХрди рдореЗрдВ рдмрджрд▓ рджреЗрддреА рд╣реИред
рдореИрдВрдиреЗ рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдирд┐рдкрдЯреЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐
рдЗрд╕рд▓рд┐рдП рдЬрдм рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдЙрди рдкрд░ рдХреЛрдИ рдЕрдВрдХрдЧрдгрд┐рдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ), рддреЛ рдЙрдиреНрд╣реЗрдВ values.yaml
рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
# values.yaml
foo: "10000000"
# template
foo: {{ .Values.foo | quote }}
md5-aba98a385ca8fe457cb1f98967ed3bf1
# Source: foo/templates/x.yaml
foo: "10000000"
md5-265ed31678f08bdbd76c259b974f5398
# Source: foo/templates/x.yaml
foo: "1e+07"
md5-3df6a1bc5fe8f474ded5c2033aaf11a3
# Source: foo/templates/x.yaml
foo: "10000000"
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреБрд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдХреЛрдИ рдпрд╣ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдмрд┐рдирд╛ рдирдВрдмрд░реЛрдВ рдХреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЕрдиреНрдп рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдкрд┐рдЫреЗрдбрд╝реА рд╕рдВрдЧрддрддрд╛? рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд░реНрдл рд╕рд╛рджрд╛ 'рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл' рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ? рдПрдХ рдЙрдкрдХрд░рдг рдореЗрдВ рдЬреЛ рднрд╛рд░реА рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдзреАрди рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдирд╣реАрдВ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдареАрдХ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд▓реЗрдВред