Wie kann ich eine Binärdatei in einer Kubernetes ConfigMap speichern?

8

Kann man eine Binärdatei in einem Kubernetes speichern ConfigMap und später den gleichen Inhalt von einem Datenträger lesen, der diese ConfigMap einbindet? Wenn zum Beispiel das Verzeichnis /etc/mycompany/myapp/config die Binärdatei keystore.jks enthält, wird

%Vor%

Include-Datei keystore.jks in ConfigMap myapp-config , die später einem Volume zugeordnet werden kann, in einen Container eingebunden und als Binärdatei gelesen werden kann?

Wenn beispielsweise die folgende Pod-Spezifikation verwendet wird, sollte keystore.jks für myapp at /etc/mycompany/myapp/config/keystore.jks verfügbar sein?

%Vor%

Kubernetes Version Details:

%Vor%     
Derek Mahar 09.09.2016, 21:41
quelle

3 Antworten

3

Was ich tun würde, ist, diese Datei in base64 zu codieren und dann den Container, der decodiert verwendet, um ihn verwenden zu können

    
Luis Tobon 15.09.2016 19:01
quelle
1

Nach Jorgan Liggitt im Kubernetes-Heft " ConfigMaps zum Speichern von Binärdateien und Zeichendateien aktivieren. ", Kubernetes 1.3.6 kann keine Binärdatei in einer ConfigMap speichern.

GitHub-Kommentar 1 :

  

config maps speichern Daten als String, nicht [] Byte ... nicht sicher, würde ich erwarten   in der Lage sein, beliebigen binären Inhalt in sie zu setzen "

GitHub Kommentar 2 :

  
    

@liggitt Kann ConfigMaps Binärinhalt nicht als Zeichenfolgen codieren?

  
     

sie nicht, sie speichern Zeichenketten. base64-encoding könnte überlagert werden   oben mit Anwendungslogik wenn gewünscht

Ich habe anschließend demonstriert , dass ConfigMaps keine Binärdateien unterstützt.

    
Derek Mahar 12.09.2016 16:24
quelle
0

Basierend auf anderen Antworten funktioniert Base64 für mich (nur einmal)

Schritte:

auf meiner Arbeitsstation

%Vor%

OpenShift

Ich verbinde mich mit openshift und erstelle die Konfigurationskarte

oc erstellen Sie configmap cacerts.base64 --from-file = cacerts.base64

Bereitstellungskonfiguration

%Vor%

Die einfachste Möglichkeit zum Bearbeiten / Aktualisieren vorhandener Cacerts besteht darin, die neuen Cacerts nach base64 (mit der Option -w 0) zu codieren, mit dem Dateieditor (dh Notepad) zu öffnen, den Inhalt zu kopieren und über die Benutzeroberfläche der OpenShift Console einzufügen

%Vor%

oder in der Befehlszeile

oc editieren Sie configmap cacerts.base64

    
Andreas Panagiotidis 21.12.2017 11:49
quelle