Use echo -n for less ambiguous base64 secret example

One could be bitten by having unexpected newline characters in base64 encoded secrets (reference: https://github.com/kubernetes/kubernetes/issues/23404).
Calling `echo -n` will omit the trailing newline character.

`
     The echo utility writes any specified operands, separated by single blank (` ') characters and followed by
     a newline (`\n') character, to the standard output.

     The following option is available:

     -n    Do not print the trailing newline character.  This may also be achieved by appending `\c' to the end
           of the string, as is done by iBCS2 compatible systems.  Note that this option as well as the effect
           of `\c' are implementation-defined in IEEE Std 1003.1-2001 (``POSIX.1'') as amended by Cor. 1-2002.
           Applications aiming for maximum portability are strongly encouraged to use printf(1) to suppress the
           newline character.
`
This commit is contained in:
Joonathan Mägi
2016-05-11 14:33:33 +03:00
parent b49ea146fe
commit 5c9d6060f3
+9 -9
View File
@@ -94,10 +94,10 @@ in json or yaml format, and then create that object.
Each item must be base64 encoded: Each item must be base64 encoded:
```shell ```shell
$ echo "admin" | base64 $ echo -n "admin" | base64
YWRtaW4K YWRtaW4=
$ echo "1f2d1e2e67df" | base64 $ echo -n "1f2d1e2e67df" | base64
MWYyZDFlMmU2N2RmCg== MWYyZDFlMmU2N2Rm
``` ```
Now write a secret object that looks like this: Now write a secret object that looks like this:
@@ -109,8 +109,8 @@ metadata:
name: mysecret name: mysecret
type: Opaque type: Opaque
data: data:
password: MWYyZDFlMmU2N2RmCg== password: MWYyZDFlMmU2N2Rm
username: YWRtaW4K username: YWRtaW4=
``` ```
The data field is a map. Its keys must match The data field is a map. Its keys must match
@@ -138,8 +138,8 @@ Get back the secret created in the previous section:
$ kubectl get secret mysecret -o yaml $ kubectl get secret mysecret -o yaml
apiVersion: v1 apiVersion: v1
data: data:
password: MWYyZDFlMmU2N2RmCg== password: MWYyZDFlMmU2N2Rm
username: YWRtaW4K username: YWRtaW4=
kind: Secret kind: Secret
metadata: metadata:
creationTimestamp: 2016-01-22T18:41:56Z creationTimestamp: 2016-01-22T18:41:56Z
@@ -154,7 +154,7 @@ type: Opaque
Decode the password field: Decode the password field:
```shell ```shell
$ echo "MWYyZDFlMmU2N2RmCg==" | base64 -D $ echo "MWYyZDFlMmU2N2Rm" | base64 -D
1f2d1e2e67df 1f2d1e2e67df
``` ```