هيلم ۾ رازن جي خودڪار نسل

هيلم ۾ رازن جي خودڪار نسل

ٽيم Mail.ru کان Kubernetes aaS هڪ مختصر نوٽ ترجمو ڪيو تازه ڪاري ڪرڻ وقت هيلم رازن کي خودڪار طريقي سان ڪيئن پيدا ڪجي. هيٺ ڏنل مضمون جي ليکڪ کان هڪ متن آهي - Intoware جي ٽيڪنيڪل ڊائريڪٽر، هڪ ڪمپني جيڪا SaaS حل ٺاهي ٿي.

ڪنٽينر ٿڌو آهن. پهرين ته آئون مخالف ڪنٽينر هو (مان ان کي تسليم ڪرڻ ۾ شرمسار آهيان)، پر هاڻي آئون مڪمل طور تي هن ٽيڪنالاجي جي استعمال جي حمايت ڪريان ٿو. جيڪڏھن توھان ھي پڙھي رھيا آھيو، توھان اميد سان ڊاڪر جي سمنڊن ۾ ڪاميابيءَ سان نيويگيٽ ڪيو آھي، Kubernetes جي فائدن کي محسوس ڪيو آھي، ۽ توھان جي زندگي کي ھيلم سان تمام گھڻو آسان بڻائي ڇڏيو آھي.

بهرحال، ڪجهه شيون واضح طور تي وڌيڪ ڏکيو آهن انهن جي ضرورت کان وڌيڪ.

ڪيئن خودڪار طريقي سان راز پيدا ڪرڻ جڏهن تازه ڪاري ڪرڻ لاء؟

هڪ ڪبرنيٽس راز هڪ وسيلو آهي جنهن ۾ اهم/قدر جوڙو شامل آهن جيڪي توهان پنهنجي ڪوڊ ۾ استعمال ڪرڻ چاهيو ٿا. اهي ٿي سگهن ٿا ڊيٽابيس ڪنيڪشن اسٽرنگ، اي ميل پاسورڊ، وغيره. رازن کي استعمال ڪندي، توهان ڪوڊ ۽ سيٽنگن جي وچ ۾ واضح علحدگي پيدا ڪندا آهيو، توهان کي ڪوڊ بيس کي تبديل ڪرڻ کان سواءِ آساني سان مختلف ترتيبن کي ترتيب ڏيڻ جي اجازت ڏئي ٿي.

هڪ عام صورتحال آهي جڏهن ٻه ماڊلز هڪ عام ڪنجي استعمال ڪندي گفتگو ڪرڻ گهرجن. ڪلستر کان ٻاهر ڪنهن کي به هن ڪيئي کي ڄاڻڻ نه گهرجي، ڇاڪاڻ ته اهو ڪلستر جي اندر هڪ کان هڪ رابطي لاء آهي.

راز ٺاهڻ

عام طور تي، هيلم ۾ هڪ راز ٺاهڻ لاء توهان کي ضرورت آهي:

  • قدر جي فائل ۾ راز بيان ڪريو؛
  • تعیناتي دوران ان کي ٻيهر بيان ڪريو؛
  • ان جو حوالو ڏيو ڊيپلائيمينٽ/پڊ اندر؛
  • ... منافعو!

اهو عام طور تي ڪجهه هن طرح نظر اچي ٿو:

apiVersion: v1
kind: Secret
metadata:
  name: my-super-awesome-api-key
type: Opaque
stringData:
  apiKey: {{ .Values.MyApiKeySecret | quote }}

Values.yml مان قدر استعمال ڪندي هڪ سادي Kubernetes راز

پر اچو ته چئو ته توھان نٿا چاھيو توھان جو راز بيان ڪرڻ جي قدر فائل ۾.

اتي ڪيترائي اختيار آھن جڏھن ترتيب ڏيڻ لاء ھڪڙي شيئر ڪيل چاٻي جي ضرورت آھي، جيڪا انسٽاليشن دوران پيدا ٿيڻ گھرجي.

مٿين ماڊل کان ماڊل ڪميونيڪيشن مثال ۾، اهو ضروري ناهي ته رازداري کان ٻاهر شيئر ڪيو وڃي. تنهن ڪري، اهو انتهائي گهربل آهي ته هيلم کي خودڪار طريقي سان هڪ راز پيدا ڪرڻ لاء ميڪانيزم آهي بغير ان کي سڌو سنئون بيان ڪرڻ جي.

ٿلهو

ٿلهو توهان کي انسٽاليشن جي عمل دوران مخصوص هنڌن تي ڪوڊ هلائڻ جي اجازت ڏئي ٿو. اتي ٿي سگھي ٿو ھڪڙي ٺاھ جوڙ جو ڪم جيڪو ھلڻ جي ضرورت آھي پھرين انسٽاليشن کان پوءِ، يا ٿي سگھي ٿو ھڪڙي صاف ڪرڻ جي ضرورت آھي ڪنھن اپڊيٽ ڪرڻ کان اڳ.

تنصيب دوران پيدا ڪيل ڪيچ شامل ڪرڻ جي اسان جي مسئلي کي حل ڪرڻ لاء، اڳ-انسٽاليشن ٿلهو مثالي آهن. پر اتي هڪ پڪ آهي: توهان خودڪار طريقي سان ٺاهي نٿا سگهو راز هڪ ڀيرو تازه ڪاري تي. ٿلهو هر اپڊيٽ تي ڪم ڪندو.

جيڪڏهن توهان پنهنجو راز ٺاهي ڇڏيو آهي ۽ توهان جي پهرين انسٽاليشن اڃا تائين نه ٿي آهي ته پوء پڙهڻ بند ڪريو، اڳ ۾ نصب ٿيل ٿلهو توهان لاء بهترين ڪم ڪندو.

پر جيڪڏهن اهو راز هڪ تازه ڪاري جو حصو آهي (شايد هڪ نئين خاصيت جيڪا انسٽاليشن دوران موجود نه هئي)، پوء اها شرم جي ڳالهه آهي ته توهان اڳ ۾ نصب ٿيل ٿلهو ٺاهي نٿا سگهو جيڪو صرف هڪ ڀيرو ڪم ڪري ٿو.

ڪارڪن

هيلم افعال توهان کي مختلف اسڪرپٽنگ عناصر شامل ڪرڻ جي اجازت ڏين ٿا توهان جي ترتيب واري اسڪرپٽ ۾.

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 ٽيمپليٽ فيچرز ۽ اسپرگ جي فيچر لئبريري کي ڪسٽم ڊيپلائيمينٽ ٺاهڻ لاءِ استعمال ڪري ٿي.

ڳولها فنڪشن

هيلم 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 }}

جڏهن به هڪ نئين تازه ڪاري سرور تي لاڳو ٿئي ٿي، هيلم يا ته هڪ نئين ڳجهي قدر پيدا ڪندو (جيڪڏهن اڃا تائين ڪو راز ناهي) يا موجوده قدر کي ٻيهر استعمال ڪندو.

ڪامياب!

موضوع تي ٻيو ڇا پڙهو:

  1. ڪبرنيٽس ۾ آٽو اسڪيلنگ جا ٽي سطح ۽ انهن کي ڪيئن موثر طريقي سان استعمال ڪجي.
  2. قزاق جي روح ۾ ڪبرنيٽس عملدرآمد لاءِ ٽيمپليٽ سان.
  3. اسان جو چينل Around Kubernetes ٽيليگرام ۾.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو