рд╕рдВрдШ
рдХрдВрдЯреЗрдирд░ рдердВрдб рдЖрд╣реЗрдд. рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдореА рдЕрдБрдЯреА-рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЛ (рдорд▓рд╛ рд╣реЗ рдорд╛рдиреНрдп рдХрд░рд╛рдпрд▓рд╛ рд▓рд╛рдЬ рд╡рд╛рдЯрддреЗ), рдкрдг рдЖрддрд╛ рдореА рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд▓рд╛ рдкреВрд░реНрдгрдкрдгреЗ рд╕рдорд░реНрдерди рджреЗрддреЛ. рддреБрдореНрд╣реА рд╣реЗ рд╡рд╛рдЪрдд рдЕрд╕рд╛рд▓, рддрд░ рддреБрдореНрд╣реА рдбреЙрдХрд░рдЪреНрдпрд╛ рд╕рдореБрджреНрд░рд╛рдд рдпрд╢рд╕реНрд╡реАрдкрдгреЗ рдиреЗрд╡реНрд╣рд┐рдЧреЗрдЯ рдХреЗрд▓реЗ рдЕрд╕реЗрд▓, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреЗ рдлрд╛рдпрджреЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдЕрд╕рддреАрд▓ рдЖрдгрд┐ рд╣реЗрд▓реНрдорд╕рд╣ рддреБрдордЪреЗ рдЬреАрд╡рди рдЦреВрдк рд╕реЛрдкреЗ рдХреЗрд▓реЗ рдЕрд╕реЗрд▓.
рддрдерд╛рдкрд┐, рдХрд╛рд╣реА рдЧреЛрд╖реНрдЯреА рдЖрд╡рд╢реНрдпрдХрддреЗрдкреЗрдХреНрд╖рд╛ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдЕрдзрд┐рдХ рдХрдареАрдг рдЖрд╣реЗрдд.
рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛рдирд╛ рдЖрдкреЛрдЖрдк рдЧреБрдкрд┐рддреЗ рдХрд╢реА рдирд┐рд░реНрдорд╛рдг рдХрд░рд╛рдпрдЪреА?
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕рд┐рдХреНрд░реЗрдЯ рд╣реЗ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдХреА/рд╡реНрд╣реЕрд▓реНрдпреВ рдЬреЛрдбреНрдпрд╛ рдЕрд╕рддрд╛рдд рдЬреНрдпрд╛ рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рд╡рд╛рдкрд░реВ рдЗрдЪреНрдЫрд┐рддрд╛. рд╣реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдИрдореЗрд▓ рдкрд╛рд╕рд╡рд░реНрдб рдЗрддреНрдпрд╛рджреА рдЕрд╕реВ рд╢рдХрддрд╛рдд. рдЧреБрдкрд┐рддреЗ рд╡рд╛рдкрд░реВрди, рддреБрдореНрд╣реА рдХреЛрдб рдЖрдгрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ рд╕реНрдкрд╖реНрдЯ рдкреГрдердХреНрдХрд░рдг рддрдпрд╛рд░ рдХрд░рддрд╛, рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрдбрдмреЗрд╕ рди рдмрджрд▓рддрд╛ рд╡рд┐рд╡рд┐рдз рдЙрдкрдпреЛрдЬрди рд╕рд╣рдЬрдкрдгреЗ рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рджреЗрддреЗ.
рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрд╕рддреЗ рдЬреЗрд╡реНрд╣рд╛ рджреЛрди рдореЙрдбреНрдпреВрд▓реНрд╕рдиреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреА рд╡рд╛рдкрд░реВрди рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ. рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░реАрд▓ рдХреЛрдгрд╛рд▓рд╛рд╣реА рд╣реА рдХреА рдорд╛рд╣рд┐рдд рдирд╕рд╛рд╡реА, рдХрд╛рд░рдг рддреА рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдПрдХ-рдЯреВ-рд╡рди рд╕рдВрдкреНрд░реЗрд╖рдгрд╛рд╕рд╛рдареА рдЖрд╣реЗ.
рдЧреБрдкрд┐рддреЗ рдмрдирд╡рдгреЗ
рд╕рд╛рдорд╛рдиреНрдпрддрдГ, рд╣реЗрд▓реНрдордордзреНрдпреЗ рдПрдХ рд░рд╣рд╕реНрдп рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:
- рд╡реНрд╣реЕрд▓реНрдпреВрдЬ рдлрд╛рдЗрд▓рдордзреАрд▓ рд░рд╣рд╕реНрдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рд╛;
- рддреИрдирд╛рддреА рджрд░рдореНрдпрд╛рди рддреЗ рдкреБрдиреНрд╣рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛;
- рдЙрдкрдпреЛрдЬрди/рдкреЙрдбрдЪреНрдпрд╛ рдЖрдд рддреНрдпрд╛рдЪрд╛ рд╕рдВрджрд░реНрдн рдШреНрдпрд╛;
- ... рдирдлрд╛!
рд╣реЗ рд╕рд╣рд╕рд╛ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕рддреЗ:
apiVersion: v1
kind: Secret
metadata:
name: my-super-awesome-api-key
type: Opaque
stringData:
apiKey: {{ .Values.MyApiKeySecret | quote }}
values.yml рдордзреАрд▓ рдореВрд▓реНрдпреЗ рд╡рд╛рдкрд░реВрди рдПрдХ рд╕рд╛рдзреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд░рд╣рд╕реНрдп
рдкрд░рдВрддреБ рд╕рдордЬрд╛ рдХреА рддреБрдореНрд╣реА рд╡реНрд╣реЕрд▓реНрдпреВ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рддреБрдордЪреЗ рд░рд╣рд╕реНрдп рдирдореВрдж рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА.
рддреЗрдереЗ рдЕрдиреЗрдХ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд рдЬреЗрд╡реНрд╣рд╛ рдЙрдкрдпреЛрдЬрдирд╛рд╕рд╛рдареА рд╕рд╛рдорд╛рдпрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ, рдЬреА рдкреНрд░рддрд┐рд╖реНрдард╛рдкрдирд╡реЗрд│реА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ.
рд╡рд░реАрд▓ рдореЙрдбреНрдпреВрд▓-рдЯреВ-рдореЙрдбреНрдпреВрд▓ рд╕рдВрдкреНрд░реЗрд╖рдг рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ, рддреИрдирд╛рддреАрдмрд╛рд╣реЗрд░рдЪреЗ рд░рд╣рд╕реНрдп рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рдгреЗ рдЗрд╖реНрдЯ рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рд╣реЗрд▓реНрдордХрдбреЗ рдереЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд░рддрд╛ рдЖрдкреЛрдЖрдк рдЧреБрдкреНрдд рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рдЪреА рдпрдВрддреНрд░рдгрд╛ рдЕрд╕рдгреЗ рдЕрддреНрдпрдВрдд рдЗрд╖реНрдЯ рдЖрд╣реЗ.
рд╣реБрдХ
рд╣реБрдХ рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдард┐рдХрд╛рдгреА рдХреЛрдб рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. рдПрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХрд╛рд░реНрдп рдЕрд╕реВ рд╢рдХрддреЗ рдЬреЗ рдкрд╣рд┐рд▓реНрдпрд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирдВрддрд░ рдЪрд╛рд▓рд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдХрд┐рдВрд╡рд╛ рдХрджрд╛рдЪрд┐рдд рдХреЛрдгрддреЗрд╣реА рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╕рд╛рдлрд╕рдлрд╛рдИ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рд╕реНрдерд╛рдкрдиреЗрджрд░рдореНрдпрд╛рди рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реА рдХреА рдЬреЛрдбрдгреНрдпрд╛рдЪреНрдпрд╛ рдЖрдордЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреНрд░реА-рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╣реБрдХ рдЖрджрд░реНрд╢ рдЖрд╣реЗрдд. рдкрдг рдПрдХ рдХреЕрдЪ рдЖрд╣реЗ: рдПрдХрджрд╛ рдЕрдкрдбреЗрдЯ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рддреБрдореНрд╣реА рдЖрдкреЛрдЖрдк рдЧреБрдкрд┐рдд рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдбреЗрдЯрд╡рд░ рд╣реБрдХ рдХрд╛рдо рдХрд░рддреАрд▓.
рдЬрд░ рддреБрдореНрд╣реА рддреБрдордЪреЗ рд░рд╣рд╕реНрдп рдирд┐рд░реНрдорд╛рдг рдХреЗрд▓реЗ рдЕрд╕реЗрд▓ рдЖрдгрд┐ рддреБрдордЪреА рдкрд╣рд┐рд▓реА рд╕реНрдерд╛рдкрдирд╛ рдЕрджреНрдпрд╛рдк рдЭрд╛рд▓реА рдирд╕реЗрд▓ рддрд░ рд╡рд╛рдЪрдгреЗ рдерд╛рдВрдмрд╡рд╛, рдкреНрд░реА-рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реБрдХ рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдЙрддреНрддрдо рдХрд╛рдо рдХрд░реЗрд▓.
рдкрд░рдВрддреБ рдЬрд░ рдЧреБрдкреНрдд рдЕрджреНрдпрддрдирд╛рдЪрд╛ рднрд╛рдЧ рдЕрд╕реЗрд▓ (рдХрджрд╛рдЪрд┐рдд рдПрдХ рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЬреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рджрд░рдореНрдпрд╛рди рдирд╡реНрд╣рддреЗ), рддрд░ рд╣реА рд▓рд╛рдЬрд┐рд░рд╡рд╛рдгреА рдЧреЛрд╖реНрдЯ рдЖрд╣реЗ рдХреА рддреБрдореНрд╣реА рдкреНрд░реА-рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╣реБрдХ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдЬреЗ рдлрдХреНрдд рдПрдХрджрд╛рдЪ рдХрд╛рд░реНрдп рдХрд░рддреЗ.
рдХрд╛рд░реНрдпреЗ
рд╣реЗрд▓реНрдо рдлрдВрдХреНрд╢рдиреНрд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рд╡рд┐рд╡рд┐рдз рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдШрдЯрдХ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд.
apiVersion: v1
kind: Secret
metadata:
name: my-super-awesome-api-key
type: Opaque
stringData:
apiKey: {{ uuidv4 | quote }} #Generate a new UUID and quote it
рд╣реЗ рдЙрджрд╛рд╣рд░рдг рджрд╛рдЦрд╡рддреЗ рдХреА apiKey рд╕рд┐рдХреНрд░реЗрдЯрдЪреЗ рдореВрд▓реНрдп рд╣реЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рджрд░рдореНрдпрд╛рди рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реЗ рдирд╡реАрди UUID рдЕрд╕реЗрд▓.
рд╣реЗрд▓реНрдордордзреНрдпреЗ рдЦрд░реЛрдЦрд░рдЪ рд╡рд┐рд╕реНрддреГрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд▓рд╛рдпрдмреНрд░рд░реА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рдЬреА рд╕рд╛рдиреБрдХреВрд▓ рдЙрдкрдпреЛрдЬрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╢реНрдЪрд░реНрдпрдХрд╛рд░рдХ GO рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдЖрдгрд┐ Sprig рдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд▓рд╛рдпрдмреНрд░рд░реАрдЪрд╛ рд▓рд╛рдн рдШреЗрддреЗ.
рд▓реБрдХрдЕрдк рдлрдВрдХреНрд╢рди
рд╣реЗрд▓реНрдо 3.1 рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ
- рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рддрдкрд╛рд╕рд╛;
- рдирдВрддрд░рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рд╡рд┐рджреНрдпрдорд╛рди рд╕рдВрд╕рд╛рдзрдирд╛рдЪреЗ рдореВрд▓реНрдп рдкрд░рдд рдХрд░рд╛.
рдпрд╛ рджреЛрдиреНрд╣реА рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рдЖрдкрдг рдПрдХ-рд╡реЗрд│, рдЧрддрд┐рдорд╛рдирдкрдгреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓реЗ рд░рд╣рд╕реНрдп рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддреЛ!
# 1. ╨Ч╨░╨┐╤А╨╛╤Б╨╕╤В╤М ╤Б╤Г╤Й╨╡╤Б╤В╨▓╨╛╨▓╨░╨╜╨╕╨╡ ╤Б╨╡╨║╤А╨╡╤В╨░ ╨╕ ╨▓╨╡╤А╨╜╤Г╤В╤М ╨▓ ╨┐╨╡╤А╨╡╨╝╨╡╨╜╨╜╨╛╨╣ $secret
{{- $secret := (lookup "v1" "Secret" .Release.Namespace "some-awesome-secret" -}}
apiVersion: v1
kind: Secret
metadata:
name: some-awesome-secret
type: Opaque
# 2. ╨Х╤Б╨╗╨╕ ╤Б╨╡╨║╤А╨╡╤В ╤Б╤Г╤Й╨╡╤Б╤В╨▓╤Г╨╡╤В, ╨▓╨╖╤П╤В╤М ╨╡╨│╨╛ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╡ ╨║╨░╨║ apiKey (╤Б╨╡╨║╤А╨╡╤В ╨╕╤Б╨┐╨╛╨╗╤М╨╖╤Г╨╡╤В ╨║╨╛╨┤╨╕╤А╨╛╨▓╨░╨╜╨╕╨╡ Base64, ╤В╨░╨║ ╤З╤В╨╛ ╨╕╤Б╨┐╨╛╨╗╤М╨╖╤Г╨╣╤В╨╡ ╨║╨╗╤О╤З "data")
{{ if $secret -}}
data:
apiKey: {{ $secret.data.apiKey }}
# 3. ╨Х╤Б╨╗╨╕ ╤Б╨╡╨║╤А╨╡╤В ╨╜╨╡ ╤Б╤Г╤Й╨╡╤Б╤В╨▓╤Г╨╡╤В тАФ ╤Б╨╛╨╖╨┤╨░╤В╤М ╨╡╨│╨╛ (╨▓ ╤Н╤В╨╛╤В ╤А╨░╨╖ ╨╕╤Б╨┐╨╛╨╗╤М╨╖╤Г╨╣╤В╨╡ "stringData", ╤В╨░╨║ ╨║╨░╨║ ╨▒╤Г╨┤╨╡╤В ╨╛╨▒╤Л╤З╨╜╨╛╨╡ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╡)!
{{ else -}}
stringData:
apiKey: {{ uuidv4 | quote }}
{{ end }}
рдЬреЗрд╡реНрд╣рд╛ рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдирд╡реАрди рдЕрджреНрдпрддрди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ рд╣реЗрд▓реНрдо рдПрдХ рдирд╡реАрди рдЧреБрдкреНрдд рдореВрд▓реНрдп рддрдпрд╛рд░ рдХрд░реЗрд▓ (рдЬрд░ рдЕрджреНрдпрд╛рдк рдХреЛрдгрддреЗрд╣реА рд░рд╣рд╕реНрдп рдирд╕реЗрд▓) рдХрд┐рдВрд╡рд╛ рд╡рд┐рджреНрдпрдорд╛рди рдореВрд▓реНрдп рдкреБрдиреНрд╣рд╛ рд╡рд╛рдкрд░реЗрд▓.
рд░рд┐рдЭрд░реНрд╡реНрд╣рд░реНрд╡реНрд╣рд░ ... рдкреБрдиреНрд╣рд╛!
рд╡рд┐рд╖рдпрд╛рд╡рд░ рдЕрдЬреВрди рдХрд╛рдп рд╡рд╛рдЪрд╛рдпрдЪреЗ:
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧрдЪреЗ рддреАрди рд╕реНрддрд░ рдЖрдгрд┐ рддреЗ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рдХрд╕реЗ рд╡рд╛рдкрд░рд╛рдпрдЪреЗ .рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рдЯреЗрдореНрдкрд▓реЗрдЯрд╕рд╣ рдЪрд╛рдЪреЗрдЧрд┐рд░реАрдЪреНрдпрд╛ рднрд╛рд╡рдиреЗрдд рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ .рдЖрдордЪреЗ рдЪреЕрдиреЗрд▓ рдЕрд░рд╛рдЙрдВрдб рдХреБрдмрд░рдиреЗрдЯреЗрд╕ рдЯреЗрд▓реАрдЧреНрд░рд╛рдордордзреНрдпреЗ .
рд╕реНрддреНрд░реЛрдд: www.habr.com