Skip to content

docker service create fails with $env set #495

@khaefeli

Description

@khaefeli

What you expected to happen?

I'm creating a docker service based on hieradata:

profile::docker::clusters':
  bla-84-20:
    service_name: bla-84-20
    image: 'bla.azurecr.io/test-container:latest'
    replicas: 1
    env:
      - BLA_JOBID=84
      - 'BLA_TOKEN=asdf:asdf'
      - 'REPORT_URL=https://bla/exec/work/submitresult?jobid=84&token=bla:bla&taskid=20'

this is getting parsed and the resource is getting created at docker::service.
But during the puppet run the exec fails with shell errors, because the env command isn't quoted with ``

What happened?

the resulting docker service create command is like

docker service create --name 'bla-84-20' --env BLA_JOBID=84 --env BLA_TOKEN=asdf:adsf --env REPORT_URL=https://bla/exec/work/submitresult?jobid=84&token=bla:bla&taskid=20 --replicas '1' --with-registry-auth 'bla.azurecr.io/test-container:latest'

How to reproduce it?

see above

Anything else we need to know?

it's working if I triple quote the hieradata

Versions:

$ puppet --version
6.4.2

$ docker version
Client:
 Version:           18.09.6
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        481bc77
 Built:             Sat May  4 02:36:00 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.6
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       481bc77
  Built:            Sat May  4 01:59:36 2019
  OS/Arch:          linux/amd64
  Experimental:     false

$ facter os
Debian Squeeze
$ puppet module list

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions