<p>My kubernetes version is 1.10.4.</p>

<p>I am trying to create a ConfigMap for java keystore files:</p>

<pre><code>kubectl create configmap key-config --from-file=server-keystore=/home/ubuntu/ssl/server.keystore.jks --from-file=server-truststore=/home/ubuntu/ssl/server.truststore.jks --from-file=client--truststore=/home/ubuntu/ssl/client.truststore.jks --append-hash=false
</code></pre>

<p>It says <code>configmap "key-config" created</code>.</p>

<p>But when I describe the configmap I am getting null value:</p>

<pre><code>$ kubectl describe configmaps key-config
Name:         key-config
Namespace:    prod-es
Labels:       &lt;none&gt;
Annotations:  &lt;none&gt;

Data
====
Events:  &lt;none&gt;
</code></pre>

<p>I know my version kubernetes support binary data as configmaps or secrets but I am not sure what is wrong with my approach.</p>

<p>Any input on this is highly appreciated.</p>

<p><code>kubectl describe</code> does not show binary data in ConfigMaps at the moment (kubectl version v1.10.4); also the <code>DATA</code> column of the <code>kubectl get configmap</code> output does not include the binary elements:</p>

<pre><code>$ kubectl get cm
NAME           DATA      AGE
key-config     0         1m
</code></pre>

<p>But the data is there, it's just a poor UI experience at the moment. You can verify that with:</p>

<pre><code>kubectl get cm key-config -o json
</code></pre>

<p>Or you can use this friendly command to check that the ConfigMap can be mounted and the projected contents matches your original files:</p>

<p><code>kubectl run cm-test --image=busybox --rm --attach --restart=Never --overrides='{"spec":{"volumes":[{"name":"cm", "configMap":{"name":"key-config"}}], "containers":[{"name":"cm-test", "image":"busybox", "command":["sh","-c","md5sum /cm/*"], "volumeMounts":[{"name":"cm", "mountPath":"/cm"}]}]}}'</code></p>
