summaryrefslogtreecommitdiffstats
path: root/auth/docker
diff options
context:
space:
mode:
authorInstrumental <jonathan.gathman@att.com>2018-08-20 14:31:35 -0500
committerInstrumental <jonathan.gathman@att.com>2018-08-20 14:31:42 -0500
commitab50267d7a22cffddb4ebf22dc4bee6904f787a9 (patch)
tree9fa97a103f4fc4ef63a969af54c3cc4226927d0a /auth/docker
parent7fa31dee0dcfc9ef37703feef1c3d573728be742 (diff)
Bootstrap initial CA
Issue-ID: AAF-419 Change-Id: I762c1990e3de5a438082ae9ea137bc278f4c6ada Signed-off-by: Instrumental <jonathan.gathman@att.com>
Diffstat (limited to 'auth/docker')
-rw-r--r--auth/docker/aaf.sh48
-rw-r--r--auth/docker/d.props.init8
-rw-r--r--auth/docker/dpush.sh7
3 files changed, 53 insertions, 10 deletions
diff --git a/auth/docker/aaf.sh b/auth/docker/aaf.sh
index a54c54a1..efd4fe37 100644
--- a/auth/docker/aaf.sh
+++ b/auth/docker/aaf.sh
@@ -1,9 +1,8 @@
#!/bin/bash
. ./d.props
-docker run \
- -it \
- --rm \
+function run_it() {
+ docker run $@ \
--mount 'type=volume,src=aaf_config,dst='$CONF_ROOT_DIR',volume-driver=local' \
--add-host="$HOSTNAME:$HOST_IP" \
--add-host="aaf.osaaf.org:$HOST_IP" \
@@ -13,4 +12,45 @@ docker run \
--env LONGITUDE=${LONGITUDE} \
--name aaf_config_$USER \
$PREFIX${ORG}/${PROJECT}/aaf_config:${VERSION} \
- /bin/bash "$@"
+ /bin/bash $PARAMS
+}
+
+function encrypt_it() {
+ docker exec -t aaf_config_$USER /bin/bash /opt/app/aaf_config/bin/agent.sh NOOP encrypt "$1" "$2"
+}
+
+P12_LOAD="no"
+
+for PROP in AAF_INITIAL_X509_P12 AAF_INITIAL_X509_PASSWORD AAF_SIGNER_P12 AAF_SIGNER_PASSWORD; do
+ if [ "${!PROP}" != "" ]; then
+ P12_LOAD='yes'
+ break;
+ fi
+done
+
+# First Time Run does a bit more setup
+if [ "$(docker volume ls | grep aaf_config)" = "" ] && [ ${P12_LOAD} = "yes" ]; then
+ echo "Initializing first aaf_config"
+ if [ "$(docker container ls | grep aaf_config_$USER)" = "" ]; then
+ PARAMS="bash"
+ run_it -t -d
+ else
+ echo "aaf_config_$USER is already running"
+ fi
+ docker container cp ${AAF_INITIAL_X509_P12} aaf_config_$USER:/opt/app/osaaf/local/org.osaaf.aaf.p12
+ docker container cp ${AAF_SIGNER_P12} aaf_config_$USER:/opt/app/osaaf/local/org.osaaf.aaf.signer.p12
+
+ encrypt_it cadi_keystore_password "${AAF_INITIAL_X509_PASSWORD}"
+ encrypt_it cm_ca.local "${AAF_SIGNER_PASSWORD}"
+
+ echo -n "Stopping "
+ docker container stop aaf_config_$USER
+ echo -n "Removing "
+ docker container rm aaf_config_$USER
+fi
+
+PARAMS="$@"
+if [ "$PARAMS" != "" ]; then
+ run_it -it --rm
+fi
+
diff --git a/auth/docker/d.props.init b/auth/docker/d.props.init
index 1394c76d..782f0c3f 100644
--- a/auth/docker/d.props.init
+++ b/auth/docker/d.props.init
@@ -16,3 +16,11 @@ AAF_ENV=DEV
AAF_REGISTER_AS=$HOSTNAME
LATITUDE=
LONGITUDE=
+#
+# Initial AAF Certificate (not Generated)
+AAF_INITIAL_X509_P12=
+AAF_INITIAL_X509_PASSWORD=
+
+# CA info (leave blank unless functioning as CA)
+AAF_SIGNER_P12=
+AAF_SIGNER_PASSWORD=
diff --git a/auth/docker/dpush.sh b/auth/docker/dpush.sh
index f6ea970a..d7ba9fb6 100644
--- a/auth/docker/dpush.sh
+++ b/auth/docker/dpush.sh
@@ -4,12 +4,7 @@
# Pull in Variables from d.props
. ./d.props
-f [ "$1" == "" ]; then
- AAF_COMPONENTS=$(cat components)
-else
- AAF_COMPONENTS="$@"
-fi
-
+AAF_COMPONENTS=$(cat components)
for AAF_COMPONENT in ${AAF_COMPONENTS}; do
# docker push ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${OLD_VERSION}