Merge pull request #3255 from Runscope/local-kinesis
provider/aws: allow local kinesis
This commit is contained in:
commit
cb2ecf5733
|
@ -48,6 +48,7 @@ type Config struct {
|
||||||
ForbiddenAccountIds []interface{}
|
ForbiddenAccountIds []interface{}
|
||||||
|
|
||||||
DynamoDBEndpoint string
|
DynamoDBEndpoint string
|
||||||
|
KinesisEndpoint string
|
||||||
}
|
}
|
||||||
|
|
||||||
type AWSClient struct {
|
type AWSClient struct {
|
||||||
|
@ -116,12 +117,6 @@ func (c *Config) Client() (interface{}, error) {
|
||||||
errs = append(errs, err)
|
errs = append(errs, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
awsDynamoDBConfig := &aws.Config{
|
|
||||||
Credentials: creds,
|
|
||||||
Region: aws.String(c.Region),
|
|
||||||
MaxRetries: aws.Int(c.MaxRetries),
|
|
||||||
Endpoint: aws.String(c.DynamoDBEndpoint),
|
|
||||||
}
|
|
||||||
// Some services exist only in us-east-1, e.g. because they manage
|
// Some services exist only in us-east-1, e.g. because they manage
|
||||||
// resources that can span across multiple regions, or because
|
// resources that can span across multiple regions, or because
|
||||||
// signature format v4 requires region to be us-east-1 for global
|
// signature format v4 requires region to be us-east-1 for global
|
||||||
|
@ -134,8 +129,11 @@ func (c *Config) Client() (interface{}, error) {
|
||||||
HTTPClient: cleanhttp.DefaultClient(),
|
HTTPClient: cleanhttp.DefaultClient(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
awsDynamoDBConfig := *awsConfig
|
||||||
|
awsDynamoDBConfig.Endpoint = aws.String(c.DynamoDBEndpoint)
|
||||||
|
|
||||||
log.Println("[INFO] Initializing DynamoDB connection")
|
log.Println("[INFO] Initializing DynamoDB connection")
|
||||||
client.dynamodbconn = dynamodb.New(awsDynamoDBConfig)
|
client.dynamodbconn = dynamodb.New(&awsDynamoDBConfig)
|
||||||
|
|
||||||
log.Println("[INFO] Initializing ELB connection")
|
log.Println("[INFO] Initializing ELB connection")
|
||||||
client.elbconn = elb.New(awsConfig)
|
client.elbconn = elb.New(awsConfig)
|
||||||
|
@ -152,8 +150,11 @@ func (c *Config) Client() (interface{}, error) {
|
||||||
log.Println("[INFO] Initializing RDS Connection")
|
log.Println("[INFO] Initializing RDS Connection")
|
||||||
client.rdsconn = rds.New(awsConfig)
|
client.rdsconn = rds.New(awsConfig)
|
||||||
|
|
||||||
|
awsKinesisConfig := *awsConfig
|
||||||
|
awsKinesisConfig.Endpoint = aws.String(c.KinesisEndpoint)
|
||||||
|
|
||||||
log.Println("[INFO] Initializing Kinesis Connection")
|
log.Println("[INFO] Initializing Kinesis Connection")
|
||||||
client.kinesisconn = kinesis.New(awsConfig)
|
client.kinesisconn = kinesis.New(&awsKinesisConfig)
|
||||||
|
|
||||||
authErr := c.ValidateAccountId(client.iamconn)
|
authErr := c.ValidateAccountId(client.iamconn)
|
||||||
if authErr != nil {
|
if authErr != nil {
|
||||||
|
|
|
@ -153,6 +153,13 @@ func Provider() terraform.ResourceProvider {
|
||||||
Default: "",
|
Default: "",
|
||||||
Description: descriptions["dynamodb_endpoint"],
|
Description: descriptions["dynamodb_endpoint"],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"kinesis_endpoint": &schema.Schema{
|
||||||
|
Type: schema.TypeString,
|
||||||
|
Optional: true,
|
||||||
|
Default: "",
|
||||||
|
Description: descriptions["kinesis_endpoint"],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
ResourcesMap: map[string]*schema.Resource{
|
ResourcesMap: map[string]*schema.Resource{
|
||||||
|
@ -283,6 +290,9 @@ func init() {
|
||||||
|
|
||||||
"dynamodb_endpoint": "Use this to override the default endpoint URL constructed from the `region`.\n" +
|
"dynamodb_endpoint": "Use this to override the default endpoint URL constructed from the `region`.\n" +
|
||||||
"It's typically used to connect to dynamodb-local.",
|
"It's typically used to connect to dynamodb-local.",
|
||||||
|
|
||||||
|
"kinesis_endpoint": "Use this to override the default endpoint URL constructed from the `region`.\n" +
|
||||||
|
"It's typically used to connect to kinesalite.",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,6 +304,7 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) {
|
||||||
Region: d.Get("region").(string),
|
Region: d.Get("region").(string),
|
||||||
MaxRetries: d.Get("max_retries").(int),
|
MaxRetries: d.Get("max_retries").(int),
|
||||||
DynamoDBEndpoint: d.Get("dynamodb_endpoint").(string),
|
DynamoDBEndpoint: d.Get("dynamodb_endpoint").(string),
|
||||||
|
KinesisEndpoint: d.Get("kinesis_endpoint").(string),
|
||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := d.GetOk("allowed_account_ids"); ok {
|
if v, ok := d.GetOk("allowed_account_ids"); ok {
|
||||||
|
|
|
@ -57,5 +57,7 @@ The following arguments are supported in the `provider` block:
|
||||||
|
|
||||||
* `dynamodb_endpoint` - (Optional) Use this to override the default endpoint URL constructed from the `region`. It's typically used to connect to dynamodb-local.
|
* `dynamodb_endpoint` - (Optional) Use this to override the default endpoint URL constructed from the `region`. It's typically used to connect to dynamodb-local.
|
||||||
|
|
||||||
|
* `kinesis_endpoint` - (Optional) Use this to override the default endpoint URL constructed from the `region`. It's typically used to connect to kinesalite.
|
||||||
|
|
||||||
In addition to the above parameters, the `AWS_SESSION_TOKEN` environmental
|
In addition to the above parameters, the `AWS_SESSION_TOKEN` environmental
|
||||||
variable can be set to set an MFA token.
|
variable can be set to set an MFA token.
|
||||||
|
|
Loading…
Reference in New Issue