mirror of
https://github.com/kreuzwerker/terraform-provider-docker.git
synced 2026-02-18 10:07:57 -05:00
provider/docker: Docker DNS Setting Enhancements (#7392)
* fixed go vet issues on aws provider in master * added support for dns, dns options and dns search for docker container. On docker container resource you can specify dns_opts nad dns_search which maps directly to docker --dns_opt and --dns_search parameters. Allowing users to setup the embedded dns settings for their containers. * fixed the asserts for the new features in tests. fixed tests around DNS, DNS_OPTS and DNS_SEARCH
This commit is contained in:
parent
ae92cc7e30
commit
efcec57608
3 changed files with 59 additions and 0 deletions
|
|
@ -95,6 +95,22 @@ func resourceDockerContainer() *schema.Resource {
|
|||
Set: schema.HashString,
|
||||
},
|
||||
|
||||
"dns_opts": &schema.Schema{
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
ForceNew: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Set: schema.HashString,
|
||||
},
|
||||
|
||||
"dns_search": &schema.Schema{
|
||||
Type: schema.TypeSet,
|
||||
Optional: true,
|
||||
ForceNew: true,
|
||||
Elem: &schema.Schema{Type: schema.TypeString},
|
||||
Set: schema.HashString,
|
||||
},
|
||||
|
||||
"publish_all_ports": &schema.Schema{
|
||||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
|
|
|
|||
|
|
@ -128,6 +128,14 @@ func resourceDockerContainerCreate(d *schema.ResourceData, meta interface{}) err
|
|||
hostConfig.DNS = stringSetToStringSlice(v.(*schema.Set))
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("dns_opts"); ok {
|
||||
hostConfig.DNSOptions = stringSetToStringSlice(v.(*schema.Set))
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("dns_search"); ok {
|
||||
hostConfig.DNSSearch = stringSetToStringSlice(v.(*schema.Set))
|
||||
}
|
||||
|
||||
if v, ok := d.GetOk("links"); ok {
|
||||
hostConfig.Links = stringSetToStringSlice(v.(*schema.Set))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,6 +102,38 @@ func TestAccDockerContainer_customized(t *testing.T) {
|
|||
return fmt.Errorf("Container has wrong cpu shares setting: %d", c.HostConfig.CPUShares)
|
||||
}
|
||||
|
||||
if len(c.HostConfig.DNS) != 1 {
|
||||
return fmt.Errorf("Container does not have the correct number of dns entries: %d", len(c.HostConfig.DNS))
|
||||
}
|
||||
|
||||
if c.HostConfig.DNS[0] != "8.8.8.8" {
|
||||
return fmt.Errorf("Container has wrong dns setting: %v", c.HostConfig.DNS[0])
|
||||
}
|
||||
|
||||
if len(c.HostConfig.DNSOptions) != 1 {
|
||||
return fmt.Errorf("Container does not have the correct number of dns option entries: %d", len(c.HostConfig.DNS))
|
||||
}
|
||||
|
||||
if c.HostConfig.DNSOptions[0] != "rotate" {
|
||||
return fmt.Errorf("Container has wrong dns option setting: %v", c.HostConfig.DNS[0])
|
||||
}
|
||||
|
||||
if len(c.HostConfig.DNSSearch) != 1 {
|
||||
return fmt.Errorf("Container does not have the correct number of dns search entries: %d", len(c.HostConfig.DNS))
|
||||
}
|
||||
|
||||
if c.HostConfig.DNSSearch[0] != "example.com" {
|
||||
return fmt.Errorf("Container has wrong dns search setting: %v", c.HostConfig.DNS[0])
|
||||
}
|
||||
|
||||
if c.HostConfig.CPUShares != 32 {
|
||||
return fmt.Errorf("Container has wrong cpu shares setting: %d", c.HostConfig.CPUShares)
|
||||
}
|
||||
|
||||
if c.HostConfig.CPUShares != 32 {
|
||||
return fmt.Errorf("Container has wrong cpu shares setting: %d", c.HostConfig.CPUShares)
|
||||
}
|
||||
|
||||
if c.Config.Labels["env"] != "prod" || c.Config.Labels["role"] != "test" {
|
||||
return fmt.Errorf("Container does not have the correct labels")
|
||||
}
|
||||
|
|
@ -227,6 +259,9 @@ resource "docker_container" "foo" {
|
|||
memory = 512
|
||||
memory_swap = 2048
|
||||
cpu_shares = 32
|
||||
dns = ["8.8.8.8"]
|
||||
dns_opts = ["rotate"]
|
||||
dns_search = ["example.com"]
|
||||
labels {
|
||||
env = "prod"
|
||||
role = "test"
|
||||
|
|
|
|||
Loading…
Reference in a new issue