From 5d7776c951c3ae70ab2de6c82a7d71610a3cc885 Mon Sep 17 00:00:00 2001 From: John McCabe Date: Sun, 21 Oct 2018 23:48:03 +0100 Subject: [PATCH] Generate user/pass for PowerShell deploy script - Generates the password to mirror deploy_stack.sh - Uses hardcoded admin to mirror deploy_stack.sh - Uses throw to exit when error - Updates faas-cli login command for Powershell Signed-off-by: John McCabe --- deploy_stack.ps1 | 80 ++++++++++++++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/deploy_stack.ps1 b/deploy_stack.ps1 index 91d4998f..c33ec00a 100644 --- a/deploy_stack.ps1 +++ b/deploy_stack.ps1 @@ -1,44 +1,66 @@ #!ps1 +param ( + [switch] $noAuth, + [switch] $n +) + if (Get-Command docker -errorAction SilentlyContinue) { docker node ls 2>&1 | out-null + if(-Not $?) + { + throw "Docker not in swarm mode, please initialise the cluster (`docker swarm init`) and retry" + } + + Add-Type -AssemblyName System.Web + $secret = [System.Web.Security.Membership]::GeneratePassword(24,5) + $user = 'admin' + + Write-Host "Attempting to create credentials for gateway.." + $user_secret = "basic-auth-user" + docker secret inspect $user_secret 2>&1 | out-null if($?) { - $user_secret = "basic-auth-user" - docker secret inspect $user_secret 2>&1 | out-null - if($?) - { - Write-Host "$user_secret secret exists" - } - else - { - $user = Read-Host 'Admin User?' - $user | docker secret create $user_secret - - } - - $password_secret = "basic-auth-password" - docker secret inspect $password_secret 2>&1 | out-null - if($?) - { - Write-Host "$password_secret secret exists" - } - else - { - $pass = Read-Host 'Password?' -AsSecureString - [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass)) | docker secret create $password_secret - - } - - Write-Host "Deploying stack" - docker stack deploy func --compose-file ./docker-compose.yml - + Write-Host "$user_secret secret exists" } else { - Write-Host "Docker not in swarm mode, please initialise the cluster (`docker swarm init`) and retry" + $user | docker secret create $user_secret - } + + $password_secret = "basic-auth-password" + docker secret inspect $password_secret 2>&1 | out-null + if($?) + { + Write-Host "$password_secret secret exists" + } + else + { + $secret | docker secret create $password_secret - + Write-Host "[Credentials]" + Write-Host " username: admin" + Write-Host " password: $secret" + Write-Host " Write-Output `"$secret`" | faas-cli login --username=$user --password-stdin" + } + + if ($noAuth -Or $n) { + Write-Host "" + Write-Host "Disabling basic authentication for gateway.." + Write-Host "" + $env:BASIC_AUTH="false"; + } + else + { + Write-Host "" + Write-Host "Enabling basic authentication for gateway.." + Write-Host "" + } + + Write-Host "Deploying stack" + docker stack deploy func --compose-file ./docker-compose.yml } else { - Write-Host "Unable to find docker command, please install Docker (https://www.docker.com/) and retry" + throw "Unable to find docker command, please install Docker (https://www.docker.com/) and retry" }