Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for AWS AppConfig #11973

Closed
nerixim opened this issue Feb 9, 2020 · 17 comments
Closed

Add support for AWS AppConfig #11973

nerixim opened this issue Feb 9, 2020 · 17 comments
Labels
enhancement Requests to existing resources that expand the functionality or scope. new-resource Introduces a new resource. service/appconfig Issues and PRs that pertain to the appconfig service.
Milestone

Comments

@nerixim
Copy link

nerixim commented Feb 9, 2020

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Description

(snip) AppConfig, a new capability within AWS Systems Manager that makes it easy for customers to quickly roll out application configurations across applications hosted on EC2 instances, containers, Lambdas, mobile apps, IoT devices, and on-premise servers in a validated, controlled and monitored way. System administrators, DevOps engineers, and developers now have the ability to manage configuration changes, similar to the way they manage code, but without the need for deploying code or taking their application out of service when a configuration value changes, thus mitigating risk of potential outages.

New or Affected Resource(s)

  • aws_appconfig_application
  • aws_appconfig_configuration_profile
  • aws_appconfig_deployment_strategy
  • aws_appconfig_environment
  • aws_appconfig_deployment

Potential Terraform Configuration

resource "aws_appconfig_application" "this" {
  name = "sample"
  description = "just a sample"
  tags = {
    Name = "AppConfig Application"
  }
}

resource "aws_appconfig_configuration_profile" "this" {
  application_id = aws_appconfig_application.this.id
  name = "sample"
  description = "just a sample"
  location_uri = aws_ssm_parameter.this.arn | aws_ssm_document.this.arn | "https://ssm-url.aws"
  retrieval_role_arn = aws_iam_role.retrieve_ssm.arn
  validator {
    type = "JSON_SCHEMA" | "LAMBDA"
    content = "JSON Schema content or AWS Lambda function name"
  }
  tags = {
    Name = "AppConfig Configuration Profile"
  }
}

resource "aws_appconfig_deployment_strategy" "this" {
  name = "sample"
  description = "just a sample"
  deployment_duration_in_minutes = 15
  final_bake_time_in_minutes = 30
  growth_factor = 0.1
  growth_type = "LINEAR"
  replicate_to = "NONE" | "SSM_DOCUMENT"
  tags = {
    Name = "AppConfig Deployment Strategy"
  }
}

resource "aws_appconfig_environment" "this" {
  application_id = aws_appconfig_application.this.id
  name = "sample"
  description = "just a sample"
  monitors = [aws_cloudwatch_alarm.this.arn]
  tags = {
    Name = "AppConfig Environment"
  }
}

resource "aws_appconfig_deployment" "this" {
  application_id = aws_appconfig_application.this.id
  environment_id = aws_appconfig_environment.this.id
  deployment_strategy_id = aws_appconfig_deployment_strategy.this.id
  configuration_profile_id = aws_appconfig_configuration_profile.this.id
  configuration_version = "1"
  description = "just a sample"
  tags = {
    Name = "AppConfig Deployment"
  }
}

References

@nerixim nerixim added the enhancement Requests to existing resources that expand the functionality or scope. label Feb 9, 2020
@github-actions github-actions bot added the needs-triage Waiting for first response or review from a maintainer. label Feb 9, 2020
@DrFaust92 DrFaust92 added service/appconfig Issues and PRs that pertain to the appconfig service. new-resource Introduces a new resource. labels May 21, 2020
@LechuckThePirate
Copy link

Any news of when this will be available?

@hstefanov
Copy link

I am also waiting for this, but for now I am managing to workaround with a cloudformation stack as follows :

resource "aws_cloudformation_stack" "appconfig" {
name = "appconfig-stack"

template_body = <<STACK
{
"Parameters" : {
"AppName" : {
"Type" : "String",
"Default" : "helloworld",
"Description" : "Name of the application"
},
"EnvName" : {
"Type" : "String",
"Default" : "demo",
"Description" : "Name of the environment"
},
"ProfileName" : {
"Type" : "String",
"Default" : "ExclamationPoints ",
"Description" : "Name of the profile"
}
},
"Resources" : {
"appConfig": {
"Type" : "AWS::AppConfig::Application",
"Properties" : {
"Name" : { "Ref" : "AppName" }
}
},
"appConfigEnv": {
"Type" : "AWS::AppConfig::Environment",
"Properties" : {
"Name" : { "Ref" : "EnvName" },
"ApplicationId" : { "Ref" : "appConfig" }
}
},
"appConfigProfile": {
"Type" : "AWS::AppConfig::ConfigurationProfile",
"Properties" : {
"Name" : { "Ref" : "ProfileName" },
"ApplicationId" : { "Ref" : "appConfig" }
}
}
}
}
STACK
}

@LechuckThePirate
Copy link

LechuckThePirate commented Jan 28, 2021 via email

@larstobi
Copy link
Contributor

SDK support is available since v1.25.42 aws/aws-sdk-go#2977

@LechuckThePirate
Copy link

LechuckThePirate commented Feb 12, 2021

SDK support is available since v1.25.42 aws/aws-sdk-go#2977

Nope, not as far as I know

image

Not talking about "AWS Config", but "AWS AppConfig" ;)

@larstobi
Copy link
Contributor

Nope, not as far as I know

But, in that link that I posted, you'll see this:

Release v1.25.42 (2019-11-25)
Service Client Updates

  • service/alexaforbusiness: Updates service API and documentation
  • service/appconfig: Adds new service

@marcomsousa
Copy link

marcomsousa commented Feb 23, 2021

The support in this provider isn't available, but the AWS SDK yes it is since 2019-11. That's means that to implement this there is no blocker... just someone with time to implement this.

Add that this AWS App Config (Not AWS Config) is a must have it PaaS services for DevOps.
AWS App Config is a central/global services you can save all your configuration inside for all the application.

Is not yet implemented maybe because this services is similar purpose (not the same) as Consul hashicorp (Key/Value Storage).

@shuheiktgw
Copy link
Collaborator

Let me see if I can implement this 👍

@deepshah22
Copy link

Superlike...!!!! Would love to see some progress here. This is super helpful.

@LechuckThePirate
Copy link

Which TF CLI version will have support for this?

@suzuki-shunsuke
Copy link
Contributor

Hi, I have sent pull requests to support AppConfig.
To make pull request small, I split pull requests per resource.

#19307 Application + Environment
#19320 Configuration Profile
#19324 Hosted Configuration Version
#19359 Deployment Strategy

At first, please review #19307.

I think many users need this feature.

@anGie44 anGie44 removed the needs-triage Waiting for first response or review from a maintainer. label Jun 21, 2021
@anGie44 anGie44 added this to the v3.50.0 milestone Jul 12, 2021
@anGie44
Copy link
Contributor

anGie44 commented Jul 12, 2021

Hi all, the following resources have been merged and will be released with v3.50.0 of the TF AWS provider (likely out this Thursday):

  • aws_appconfig_application
  • aws_appconfig_configuration_profile
  • aws_appconfig_deployment_strategy
  • aws_appconfig_environment
  • aws_appconfig_hosted_configuration_version

Big shoutout out to @suzuki-shunsuke and @Isaiah-Turner for providing the implementations!

@bryantbiggs
Copy link
Contributor

this is awesome, thanks a ton! it looks like the only resource we might be missing is aws_appconfig_deployment or did I miss that somewhere in there?

@suzuki-shunsuke
Copy link
Contributor

AS a prototype, I send a pull request to support aws_appconfig_deployment. #20172

AppConfig Deployment doesn't support common CRUD API.
Instead of common CRUD API, AppConfig Deployment supports the following API.

So I don't know how we should implement Update and Delete.

@github-actions
Copy link

This functionality has been released in v3.50.0 of the Terraform AWS Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you!

@anGie44
Copy link
Contributor

anGie44 commented Jul 22, 2021

Hi All, noting here that the last resource aws_appconfig_deployment has been merged and will be available in today's release of v3.51.0 of the provider. Thanks again @suzuki-shunsuke for all your contributions 🎉

@github-actions
Copy link

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 22, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement Requests to existing resources that expand the functionality or scope. new-resource Introduces a new resource. service/appconfig Issues and PRs that pertain to the appconfig service.
Projects
None yet
Development

No branches or pull requests