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
6892ef4b02
commit
b8a84691ec
|
@ -221,7 +221,7 @@ func resourceAwsElasticTranscoderPipelineCreate(d *schema.ResourceData, meta int
|
||||||
d.SetId(*resp.Pipeline.Id)
|
d.SetId(*resp.Pipeline.Id)
|
||||||
|
|
||||||
for _, w := range resp.Warnings {
|
for _, w := range resp.Warnings {
|
||||||
log.Printf("[WARN] Elastic Transcoder Pipeline %s: %s", w.Code, w.Message)
|
log.Printf("[WARN] Elastic Transcoder Pipeline %v: %v", *w.Code, *w.Message)
|
||||||
}
|
}
|
||||||
|
|
||||||
return resourceAwsElasticTranscoderPipelineRead(d, meta)
|
return resourceAwsElasticTranscoderPipelineRead(d, meta)
|
||||||
|
@ -383,7 +383,7 @@ func resourceAwsElasticTranscoderPipelineUpdate(d *schema.ResourceData, meta int
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, w := range output.Warnings {
|
for _, w := range output.Warnings {
|
||||||
log.Printf("[WARN] Elastic Transcoder Pipeline %s: %s", w.Code, w.Message)
|
log.Printf("[WARN] Elastic Transcoder Pipeline %v: %v", *w.Code, *w.Message)
|
||||||
}
|
}
|
||||||
|
|
||||||
return resourceAwsElasticTranscoderPipelineRead(d, meta)
|
return resourceAwsElasticTranscoderPipelineRead(d, meta)
|
||||||
|
|
|
@ -27,7 +27,7 @@ func TestAccAWSElasticTranscoderPreset_basic(t *testing.T) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Errorf("Preset Id %s should not exist", preset.Id)
|
return fmt.Errorf("Preset Id %v should not exist", *preset.Id)
|
||||||
}
|
}
|
||||||
|
|
||||||
rs, ok := s.RootModule().Resources[name]
|
rs, ok := s.RootModule().Resources[name]
|
||||||
|
|
|
@ -75,7 +75,7 @@ func TestAccAWSELBAttachment_drift(t *testing.T) {
|
||||||
Instances: conf.Instances,
|
Instances: conf.Instances,
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] deregistering instance %s from ELB", conf.Instances[0].InstanceId)
|
log.Printf("[DEBUG] deregistering instance %v from ELB", *conf.Instances[0].InstanceId)
|
||||||
|
|
||||||
_, err := conn.DeregisterInstancesFromLoadBalancer(&deRegisterInstancesOpts)
|
_, err := conn.DeregisterInstancesFromLoadBalancer(&deRegisterInstancesOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -120,7 +120,7 @@ func testAccCheckAwsSESReceiptRuleExists(n string) resource.TestCheckFunc {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !*response.Rule.Enabled {
|
if !*response.Rule.Enabled {
|
||||||
return fmt.Errorf("Enabled (%s) was not set to true", *response.Rule.Enabled)
|
return fmt.Errorf("Enabled (%v) was not set to true", *response.Rule.Enabled)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !reflect.DeepEqual(response.Rule.Recipients, []*string{aws.String("test@example.com")}) {
|
if !reflect.DeepEqual(response.Rule.Recipients, []*string{aws.String("test@example.com")}) {
|
||||||
|
@ -128,7 +128,7 @@ func testAccCheckAwsSESReceiptRuleExists(n string) resource.TestCheckFunc {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !*response.Rule.ScanEnabled {
|
if !*response.Rule.ScanEnabled {
|
||||||
return fmt.Errorf("ScanEnabled (%s) was not set to true", *response.Rule.ScanEnabled)
|
return fmt.Errorf("ScanEnabled (%v) was not set to true", *response.Rule.ScanEnabled)
|
||||||
}
|
}
|
||||||
|
|
||||||
if *response.Rule.TlsPolicy != "Require" {
|
if *response.Rule.TlsPolicy != "Require" {
|
||||||
|
@ -162,7 +162,7 @@ func testAccCheckAwsSESReceiptRuleOrder(n string) resource.TestCheckFunc {
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(response.Rules) != 2 {
|
if len(response.Rules) != 2 {
|
||||||
return fmt.Errorf("Number of rules (%s) was not equal to 2", len(response.Rules))
|
return fmt.Errorf("Number of rules (%d) was not equal to 2", len(response.Rules))
|
||||||
} else if *response.Rules[0].Name != "first" || *response.Rules[1].Name != "second" {
|
} else if *response.Rules[0].Name != "first" || *response.Rules[1].Name != "second" {
|
||||||
return fmt.Errorf("Order of rules (%v) was incorrect", response.Rules)
|
return fmt.Errorf("Order of rules (%v) was incorrect", response.Rules)
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,6 +95,22 @@ func resourceDockerContainer() *schema.Resource {
|
||||||
Set: schema.HashString,
|
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{
|
"publish_all_ports": &schema.Schema{
|
||||||
Type: schema.TypeBool,
|
Type: schema.TypeBool,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
|
|
@ -128,6 +128,14 @@ func resourceDockerContainerCreate(d *schema.ResourceData, meta interface{}) err
|
||||||
hostConfig.DNS = stringSetToStringSlice(v.(*schema.Set))
|
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 {
|
if v, ok := d.GetOk("links"); ok {
|
||||||
hostConfig.Links = stringSetToStringSlice(v.(*schema.Set))
|
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)
|
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" {
|
if c.Config.Labels["env"] != "prod" || c.Config.Labels["role"] != "test" {
|
||||||
return fmt.Errorf("Container does not have the correct labels")
|
return fmt.Errorf("Container does not have the correct labels")
|
||||||
}
|
}
|
||||||
|
@ -227,6 +259,9 @@ resource "docker_container" "foo" {
|
||||||
memory = 512
|
memory = 512
|
||||||
memory_swap = 2048
|
memory_swap = 2048
|
||||||
cpu_shares = 32
|
cpu_shares = 32
|
||||||
|
dns = ["8.8.8.8"]
|
||||||
|
dns_opts = ["rotate"]
|
||||||
|
dns_search = ["example.com"]
|
||||||
labels {
|
labels {
|
||||||
env = "prod"
|
env = "prod"
|
||||||
role = "test"
|
role = "test"
|
||||||
|
|
Loading…
Reference in New Issue