मेरे पास एक ऐसे एप्लिकेशन के लिए एक हेल्म चार्ट है जिसके लिए किसी प्रकार का डेटाबेस चाहिए। MySQL या postgresql दोनों ठीक होंगे।
मैं चार्ट उपयोगकर्ता को इनमें से किसी एक को इस तरह निर्भरता के रूप में स्थापित करने का विकल्प देना चाहता हूं:
dependencies:
- name: mysql
version: 0.10.2
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mysql.enabled
- name: postgresql
version: 3.11.5
repository: https://kubernetes-charts.storage.googleapis.com/
condition: postgresql.enabled
हालाँकि यह उन दोनों को सक्षम करना संभव बनाता है।
क्या यह सुनिश्चित करने का कोई आसान तरीका है कि केवल एक ही चुना गया है?
मैं एक एकल चर के बारे में सोच रहा था जो [mysql, postgres, manual]
में से एक का चयन कर रहा था और यदि यह चुना गया है तो एक विशिष्ट डेटाबेस पर निर्भर करता है। - क्या ऐसा करने का कोई तरीका है?
1 उत्तर
मुझे नहीं लगता कि ऐसा करने का कोई सीधा तरीका है। विशेष रूप से, ऐसा लगता है कि requirements.yaml
condition:
फ़ील्ड केवल एक बूलियन मान (या उनमें से एक सूची) लेता है, न कि एक मनमाना अभिव्यक्ति। हेल्म के दस्तावेज़ से:
शर्त फ़ील्ड में एक या अधिक YAML पथ होते हैं (अल्पविराम द्वारा सीमित)। यदि यह पथ शीर्ष माता-पिता के मूल्यों में मौजूद है और एक बूलियन मान का समाधान करता है, तो उस बूलियन मान के आधार पर चार्ट को सक्षम या अक्षम किया जाएगा। सूची में पाए गए केवल पहले मान्य पथ का मूल्यांकन किया जाता है और यदि कोई पथ मौजूद नहीं है तो स्थिति का कोई प्रभाव नहीं पड़ता है।
(नीचे वर्णित टैग तंत्र बेहद समान है और वास्तव में मदद नहीं करता है।)
जब वास्तव में आपकी परिनियोजन युक्ति लिखने की बात आती है तो आपके पास एक अधिक सामान्य सशर्त प्रणाली होती है और यह परीक्षण कर सकती है कि मानों में से केवल एक ही सेट है; इसलिए मुझे नहीं लगता कि आप अनावश्यक डेटाबेस स्थापित होने से रोक सकते हैं, लेकिन आप कम से कम उनमें से केवल एक का उपयोग करेंगे। आप अपनी NOTES.txt
फ़ाइल में इस आशय की एक आफ्टर-द-फैक्ट चेतावनी भी डाल सकते हैं।
{{ if and .Values.mysql.enabled .Values.postgresql.enabled -}}
WARNING: you have multiple databases enabled in your Helm values file.
Both MySQL and PostgreSQL are installed as part of this chart, but only
PostgreSQL is being used. You can update this chart installation setting
`--set mysql.enabled=false` to remove the redundant database.
{{ end -}}
संबंधित सवाल
नए सवाल
kubernetes
KUBERNETES क्वेरीटेस्ट को विकसित किया जाना चाहिए। Kubernetes एक ओपन-सोर्स प्लेटफ़ॉर्म है जिसे कई मेजबानों और / या बादलों में तैनाती, स्केलिंग और एप्लिकेशन कंटेनरों के संचालन को स्वचालित करने के लिए डिज़ाइन किया गया है। क्लस्टर्स को कॉन्फ़िगर करने के बारे में प्रश्न https://serverfault.com पर पूछे जाने चाहिए