Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
rootfs/bin/minio
rootfs/bin/boot
vendor/
genssl/server.cert
genssl/server.csr
genssl/server.key
genssl/server.pem
manifests/deis-minio-secretssl-final.yaml
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ docker-push: docker-build

deploy: build docker-build docker-push kube-rc

ssl-cert:
# generate ssl certs
docker run --rm -v "${PWD}":/pwd -w /pwd alpine:3.2 /bin/ash ./genssl/gen.sh && ./genssl/manifest-replace.sh
# replace values in ssl secrets file
docker run --rm -v "${PWD}":/pwd -w /pwd alpine:3.2 /bin/ash ./genssl/manifest_replace.sh

kube-rc: kube-service
kubectl create -f ${RC}

Expand Down
2 changes: 1 addition & 1 deletion boot.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ func main() {
AccessKey: access,
},
}
t := template.New("Secret template")
t := template.New("MinioTpl")

t, err = t.Parse(templv2)

Expand Down
14 changes: 14 additions & 0 deletions genssl/gen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# this script intended to be run inside an alpine:3.2 Docker container, inside a /bin/ash shell.
# it expects that its parent directory (minio/) is mounted to this container and also is its current working directory.

apk add --update-cache openssl
rm -rf /var/cache/apk/*

# these commands are adapted from the very clear and extensive Heroku documents on creating a self-signed SSL certificate: https://devcenter.heroku.com/articles/ssl-certificate-self#generate-private-key-and-certificate-signing-request

openssl genrsa -des3 -passout pass:x -out ./genssl/server.pass.key 2048
openssl rsa -passin pass:x -in ./genssl/server.pass.key -out ./genssl/server.key
rm ./genssl/server.pass.key
openssl req -new -key ./genssl/server.key -subj "/C=US/ST=California/L=San Francisco/O=Engine Yard" -out ./genssl/server.csr
# generate the cert
openssl x509 -req -days 365 -in ./genssl/server.csr -signkey ./genssl/server.key -out ./genssl/server.cert
11 changes: 11 additions & 0 deletions genssl/manifest_replace.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# this script intended to be run inside an alpine:3.2 Docker container, inside a /bin/ash shell.
# it expects that its parent directory (minio/) is mounted to this container and also is its current working directory.
# finally, it also expects that a 'server.cert' and 'server.key' in ./genssl. it uses those as the SSL cert and private key (AKA .pem) files, respectively

FILE_CONTENTS="$(cat ./manifests/deis-minio-secretssl.yaml)"
CERT="$(base64 ./genssl/server.cert)"
PEM="$(base64 ./genssl/server.key)"

FILE_CONTENTS="${FILE_CONTENTS/ACCESS_CERT/$CERT}"
FILE_CONTENTS="${FILE_CONTENTS/ACCESS_PEM/$PEM}"
echo "$FILE_CONTENTS" > ./manifests/deis-minio-secretssl-final.yaml
10 changes: 7 additions & 3 deletions manifests/deis-minio-secretssl.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
apiVersion: v1
kind: Secret
metadata:
name: minio-user
name: minio-ssl
heritage: deis
type: Opaque
data:
access-cert: OFRaUlkySlJXTVBUNlVNWFI2STUK
access-pem: Z2JzdHJPdm90TU1jZzJzTWZHVWhBNWE2RXQvRUk1QUx0SUhzb2JZawo=
# generated by make ssl-cert
access-cert: |
ACCESS_CERT
# generated by make ssl-cert
access-pem: |
ACCESS_PEM