Merge pull request #91 from kjellberg/lookup_username
Allow registry username to reference a secret
This commit is contained in:
@@ -150,10 +150,14 @@ The default registry is Docker Hub, but you can change it using `registry/server
|
|||||||
```yaml
|
```yaml
|
||||||
registry:
|
registry:
|
||||||
server: registry.digitalocean.com
|
server: registry.digitalocean.com
|
||||||
username: registry-user-name
|
username:
|
||||||
password: <%= ENV.fetch("MRSK_REGISTRY_PASSWORD") %>
|
- DOCKER_REGISTRY_TOKEN
|
||||||
|
password:
|
||||||
|
- DOCKER_REGISTRY_TOKEN
|
||||||
```
|
```
|
||||||
|
|
||||||
|
A reference to secret `DOCKER_REGISTRY_TOKEN` will look for `ENV["DOCKER_REGISTRY_TOKEN"]` on the machine running MRSK.
|
||||||
|
|
||||||
### Using a different SSH user than root
|
### Using a different SSH user than root
|
||||||
|
|
||||||
The default SSH user is root, but you can change it using `ssh/user`:
|
The default SSH user is root, but you can change it using `ssh/user`:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ class Mrsk::Commands::Registry < Mrsk::Commands::Base
|
|||||||
delegate :registry, to: :config
|
delegate :registry, to: :config
|
||||||
|
|
||||||
def login
|
def login
|
||||||
docker :login, registry["server"], "-u", redact(registry["username"]), "-p", redact(lookup_password)
|
docker :login, registry["server"], "-u", redact(lookup("username")), "-p", redact(lookup("password"))
|
||||||
end
|
end
|
||||||
|
|
||||||
def logout
|
def logout
|
||||||
@@ -10,11 +10,11 @@ class Mrsk::Commands::Registry < Mrsk::Commands::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def lookup_password
|
def lookup(key)
|
||||||
if registry["password"].is_a?(Array)
|
if registry[key].is_a?(Array)
|
||||||
ENV.fetch(registry["password"].first).dup
|
ENV.fetch(registry[key].first).dup
|
||||||
else
|
else
|
||||||
registry["password"]
|
registry[key]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -30,6 +30,17 @@ class CommandsRegistryTest < ActiveSupport::TestCase
|
|||||||
ENV.delete("MRSK_REGISTRY_PASSWORD")
|
ENV.delete("MRSK_REGISTRY_PASSWORD")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "registry login with ENV username" do
|
||||||
|
ENV["MRSK_REGISTRY_USERNAME"] = "also-secret"
|
||||||
|
@config[:registry]["username"] = [ "MRSK_REGISTRY_USERNAME" ]
|
||||||
|
|
||||||
|
assert_equal \
|
||||||
|
"docker login hub.docker.com -u also-secret -p secret",
|
||||||
|
@registry.login.join(" ")
|
||||||
|
ensure
|
||||||
|
ENV.delete("MRSK_REGISTRY_USERNAME")
|
||||||
|
end
|
||||||
|
|
||||||
test "registry logout" do
|
test "registry logout" do
|
||||||
assert_equal \
|
assert_equal \
|
||||||
"docker logout hub.docker.com",
|
"docker logout hub.docker.com",
|
||||||
|
|||||||
Reference in New Issue
Block a user