Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .autover/changes/3a630e1b-18ac-44ce-93fd-5a5954fa645c.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"Projects": [
{
"Name": "AWS.Deploy.CLI",
"Type": "Patch",
"ChangelogMessages": [
"NodeJS has been removed from the generated Dockerfiles. If you have an application that requires NodeJS, you will need to add it to the generated Dockerfile and rerun the Deploy Tool."
]
}
]
}
18 changes: 18 additions & 0 deletions .autover/changes/c2231f60-987f-4787-9f86-b3cb068e2e95.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"Projects": [
{
"Name": "AWS.Deploy.CLI",
"Type": "Major",
"ChangelogMessages": [
"Upgrade the Deploy Tool from .NET 6 to .NET 8",
"Switch from System.CommandLine to Spectre.CLI for a better CLI experience",
"Update Amazon CDK library to 2.194.0 and CDK CLI to 2.1013.0",
"Update AWS .NET SDK to V4",
"Upgrade Microsoft Templating Engine from .NET 5 to .NET 8",
"Add support for deploying .NET 10 applications across different recipes",
"Add support for Podman in addition to the existing Docker support",
"Update the minimum NodeJS version from 14.x to 18.x"
]
}
]
}
4 changes: 2 additions & 2 deletions .github/workflows/DetectDocGeneratorChanges.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
with:
fetch-depth: '0'
- name: Setup .NET 8.0
- name: Setup .NET 10.0
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 #v4.3.1
with:
dotnet-version: 8.0.x
dotnet-version: 10.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/DetectRestAPIClientChanges.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
with:
fetch-depth: '0'
- name: Setup .NET 8.0
- name: Setup .NET 10.0
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 #v4.3.1
with:
dotnet-version: 8.0.x
dotnet-version: 10.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
Expand Down
7 changes: 1 addition & 6 deletions .github/workflows/UploadDockerImage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,7 @@ jobs:
with:
fetch-depth: 0

- name: Setup .NET Core 6.0
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 #v4.3.1
with:
dotnet-version: 6.0.x

- name: Setup .NET 8.0
- name: Setup .NET 8
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 #v4.3.1
with:
dotnet-version: 8.0.x
Expand Down
6 changes: 1 addition & 5 deletions .github/workflows/doc-builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,7 @@ jobs:
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 #v5.6.0
with:
python-version: 3.x
- name: Setup .NET Core 6.0
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 #v4.3.1
with:
dotnet-version: 6.0.x
- name: Setup .NET 8.0
- name: Setup .NET 8
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 #v4.3.1
with:
dotnet-version: 8.0.x
Expand Down
7 changes: 7 additions & 0 deletions AWS.Deploy.sln
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebAppArmDeployment", "test
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleAppArmDeployment", "testapps\ConsoleAppArmDeployment\ConsoleAppArmDeployment.csproj", "{BA7E7790-8E60-4133-B3BC-BDD50B1D7A76}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApiNET10", "testapps\WebApiNET10\WebApiNET10.csproj", "{31EF03BB-F9D0-465D-9D33-96E212A86D91}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -185,6 +187,10 @@ Global
{BA7E7790-8E60-4133-B3BC-BDD50B1D7A76}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA7E7790-8E60-4133-B3BC-BDD50B1D7A76}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BA7E7790-8E60-4133-B3BC-BDD50B1D7A76}.Release|Any CPU.Build.0 = Release|Any CPU
{31EF03BB-F9D0-465D-9D33-96E212A86D91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{31EF03BB-F9D0-465D-9D33-96E212A86D91}.Debug|Any CPU.Build.0 = Debug|Any CPU
{31EF03BB-F9D0-465D-9D33-96E212A86D91}.Release|Any CPU.ActiveCfg = Release|Any CPU
{31EF03BB-F9D0-465D-9D33-96E212A86D91}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -218,6 +224,7 @@ Global
{49A1C020-F4C8-4B28-A6B2-6AD3C8452E69} = {BD466B5C-D8B0-4069-98A9-6DC8F01FA757}
{303A0323-3FEF-4640-80C2-E33A8BC0F1FC} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
{BA7E7790-8E60-4133-B3BC-BDD50B1D7A76} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
{31EF03BB-F9D0-465D-9D33-96E212A86D91} = {C3A0C716-BDEA-4393-B223-AF8F8531522A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5A4B2863-1763-4496-B122-651A38A4F5D7}
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@ To take advantage of this library you’ll need:
* The local credential profile can be configured by a variety of tools. For example, the credential profile can be configured with the [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/credentials.html) or the [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html), among others.
* Note: You need to make sure to add the appropriate CloudFormation permissions to your credentials's profile / assumed role.
* For SSO, please visit the [.NET SDK Reference Guide](https://docs.aws.amazon.com/sdkref/latest/guide/access-sso.html).
* [.NET 6](https://dotnet.microsoft.com/download) or later
* [Node.js 14](https://nodejs.org/en/download/) or later
* [.NET 8](https://dotnet.microsoft.com/download) or later
* [Node.js 18](https://nodejs.org/en/download/) or later
* The [AWS Cloud Development Kit (CDK)](https://aws.amazon.com/cdk/) is used by this tool to create the AWS infrastructure to run applications. The CDK requires Node.js to function. This dependency is needed for deployments that are CDK based. If you will be using deployments that are not CDK based, you are not required to have this dependency.
* (optional) [Docker](https://docs.docker.com/get-docker/)
* (optional) [Docker](https://docs.docker.com/get-docker/) or [Podman](https://podman.io/docs/installation)
* Used when deploying to a container based service like Amazon Elastic Container Service (Amazon ECS)
* (optional) The zip cli tool
* Mac / Linux only. Used when creating zip packages for deployment bundles. The zip cli is used to maintain Linux file permissions.
Expand Down
2 changes: 1 addition & 1 deletion THIRD_PARTY_LICENSES
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
** AWSSDK.ElasticLoadBalancingV2; version 3.7.302.33 -- https://www.nuget.org/packages/AWSSDK.ElasticLoadBalancingV2/
** AWSSDK.Core; version 3.7.303.20 -- https://www.nuget.org/packages/AWSSDK.Core
** AWSSDK.CloudWatchLogs; version 3.7.305.18 -- https://www.nuget.org/packages/AWSSDK.CloudWatchLogs
** Amazon.CDK.Lib; version 2.171.1 -- https://www.nuget.org/packages/Amazon.CDK.Lib/
** Amazon.CDK.Lib; version 2.194.0 -- https://www.nuget.org/packages/Amazon.CDK.Lib/

Apache License
Version 2.0, January 2004
Expand Down
5 changes: 5 additions & 0 deletions buildtools/ci.buildspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ phases:
runtime-versions:
nodejs: 22
dotnet: 8.x
commands:
# Find and delete the global.json files that were added by CodeBuild. This causes issues when multiple SDKs are installed.
- find / -type f -name 'global.json' -delete
# The tests need .NET 6, 8 and 10. .NET6 is installed by default. .NET8 is added in the runtime-versions. .NET 10 is installed manually.
- curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel 10.0
pre_build:
commands:
- export DOTNET_CLI_TELEMETRY_OPTOUT=1
Expand Down
2 changes: 1 addition & 1 deletion site/content/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ To support IDEs using the AWS .NET Deploy tool the CLI can be launched in server
```json
{
"DeployServer":{
"AlternateCliPath":"C:\\code\\aws-dotnet-deploy\\src\\AWS.Deploy.CLI\\bin\\Release\\net6.0\\AWS.Deploy.CLI.exe",
"AlternateCliPath":"C:\\code\\aws-dotnet-deploy\\src\\AWS.Deploy.CLI\\bin\\Release\\net8.0\\AWS.Deploy.CLI.exe",
"PortRange":{
"Start":10000,
"End":10100
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
* ID: DesiredCount
* Description: The desired number of ECS tasks to run for the service.
* Type: Int
* **Minimum Healthy Percent**
* ID: MinHealthyPercent
* Description: The minimum number of tasks, specified as a percentage of the Amazon ECS service's 'Desired Task Count' value, that must continue to run and remain healthy during a deployment.
* Type: Int
* **Container Port**
* ID: Port
* Description: The port the container is listening for requests on.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
* ID: DesiredCount
* Description: The desired number of ECS tasks to run for the service.
* Type: Int
* **Minimum Healthy Percent**
* ID: MinHealthyPercent
* Description: The minimum number of tasks, specified as a percentage of the Amazon ECS service's 'Desired Task Count' value, that must continue to run and remain healthy during a deployment.
* Type: Int
* **Application IAM Role**
* ID: ApplicationIAMRole
* Description: The Identity and Access Management (IAM) role that provides AWS credentials to the application to access AWS services.
Expand Down
2 changes: 1 addition & 1 deletion site/content/docs/commands/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Inspects the project and recommends AWS compute that is most suited to the type
Deploying HelloWorld

```
dotnet new web -n HelloWorld -f net6.0
dotnet new web -n HelloWorld -f net8.0
cd HelloWorld
dotnet aws deploy
```
Expand Down
8 changes: 4 additions & 4 deletions site/content/docs/deployment-projects/recipe-file.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ The deploy tool supports a collection of tests that can be run against the .NET
"Condition": {
"PropertyName": "TargetFramework",
"AllowedValues": [
"netcoreapp3.1",
"net6.0"
"net8.0",
"net9.0"
]
}
}
Expand Down Expand Up @@ -103,8 +103,8 @@ Here is an example of a rule that checks if the project is a web project and tar
"Condition": {
"PropertyName": "TargetFramework",
"AllowedValues": [
"netcoreapp3.1",
"net6.0"
"net8.0",
"net9.0"
]
}
}
Expand Down
6 changes: 3 additions & 3 deletions site/content/docs/getting-started/pre-requisites.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@ To run the AWS Deploy Tool, you need the following pre-requisites set up in your

> Note: You need to make sure to add the appropriate AWS permissions to your credentials’ profile / assumed role. See [Setting up Credentials](setup-creds.md)

#### .NET 6 or later
#### .NET 8 or later
* .NET CLI - the deployment tool can be used from the .NET command-line interface (CLI) - a cross-platform toolchain for developing, building, running, and publishing .NET applications.

* The .NET CLI is included with the [.NET SDK](https://docs.microsoft.com/en-us/dotnet/core/sdk). For information about how to install or update .NET, see [https://dotnet.microsoft.com/](https://dotnet.microsoft.com/).

* The deployment tool requires .NET 6 or later to be installed. However, the deployment tool supports deploying applications built using .NET Core 3.1 or later (for example, .NET Core 3.1, .NET 5.0, .NET 6.0, .NET 7). To see what version you have, run the following on the command prompt or in a terminal:
* The deployment tool requires .NET 8 or later to be installed. However, the deployment tool supports deploying applications built using .NET Core 3.1 or later (for example, .NET Core 3.1, .NET 5.0, .NET 6.0, .NET 7, and newer). To see what version you have, run the following on the command prompt or in a terminal:

```
dotnet --version
```

#### Node.js

* The deployment tool requires the [AWS Cloud Development Kit (CDK)](https://docs.aws.amazon.com/cdk/latest/guide/), and the AWS CDK requires [Node.js](https://nodejs.org/en/download/). AWS CDK requires Node.js, versions 14.x, 16.x, 18.x (or later) - we recommend installing the latest LTS version.
* The deployment tool requires the [AWS Cloud Development Kit (CDK)](https://docs.aws.amazon.com/cdk/latest/guide/), and the AWS CDK requires [Node.js](https://nodejs.org/en/download/). AWS CDK requires Node.js, versions 18.x (or later) - we recommend installing the latest LTS version.

* To install Node.js, go to [Node.js downloads](https://nodejs.org/en/download/)

Expand Down
2 changes: 1 addition & 1 deletion site/content/docs/getting-started/run-tool.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dotnet-aws ...
#### Step 1: Create the ASP.NET Web application

```
dotnet new web -n HelloWorld -f net6.0
dotnet new web -n HelloWorld -f net8.0
```

#### Step 2: cd to the project folder
Expand Down
2 changes: 1 addition & 1 deletion site/content/troubleshooting-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ For example:
```xml
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworkVersion>net6.0</TargetFrameworkVersion>
<TargetFrameworkVersion>net8.0</TargetFrameworkVersion>
<TargetFramework>$(TargetFrameworkVersion)</TargetFramework>
</PropertyGroup>
</Project>
Expand Down
2 changes: 1 addition & 1 deletion site/content/troubleshooting-guide/missing-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This section of the troubleshooting guide explains how to determine, diagnose, a

**Why is this happening**: AWS.Deploy.Tools relies on [AWS Cloud Development Kit](https://aws.amazon.com/cdk/) (CDK) to provision resources for your cloud application. AWS CDK requires Node.js to be installed in your machine. See the [CDK's FAQs](https://aws.amazon.com/cdk/faqs/) for more information about how it uses Node.js.

*Minimum required Node.js version >= 14.17.0*
*Minimum required Node.js version >= 18.0.0*

**Resolution**: See [here](https://nodejs.org/en/download/) to install Node.js on your system.

Expand Down
2 changes: 1 addition & 1 deletion site/content/tutorials/custom-project.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Tasks we will accomplish:
In your command prompt, run the following command to create your app:

```
dotnet new webapp -o Acme.WebApp -f net6.0
dotnet new webapp -o Acme.WebApp -f net8.0
```

### Step 2: Generate a deployment project
Expand Down
20 changes: 12 additions & 8 deletions src/AWS.Deploy.CLI/AWS.Deploy.CLI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>net6.0</TargetFrameworks>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>Latest</LangVersion>
<ToolCommandName>dotnet-aws</ToolCommandName>
<IsPackable>true</IsPackable>
<PackAsTool>true</PackAsTool>
Expand All @@ -12,6 +15,7 @@
<PackageTags>AWS;Amazon;ElasticBeanstalk;ECS;Deploy</PackageTags>
<AssemblyName>AWS.Deploy.CLI</AssemblyName>
<RootNamespace>AWS.Deploy.CLI</RootNamespace>
<LangVersion>Latest</LangVersion>
<PackageIcon>icon.png</PackageIcon>
<PackageProjectUrl>https://github.com/aws/aws-dotnet-deploy</PackageProjectUrl>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
Expand All @@ -22,15 +26,15 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.IdentityManagement" Version="3.7.301.3" />
<PackageReference Include="AWSSDK.CloudFormation" Version="3.7.307.3" />
<PackageReference Include="AWSSDK.SecurityToken" Version="3.7.300.78" />
<PackageReference Include="AWSSDK.SSO" Version="3.7.300.77" />
<PackageReference Include="AWSSDK.SSOOIDC" Version="3.7.301.72" />
<PackageReference Include="AWSSDK.IdentityManagement" Version="4.0.0.1" />
<PackageReference Include="AWSSDK.CloudFormation" Version="4.0.0.1" />
<PackageReference Include="AWSSDK.SecurityToken" Version="4.0.0.1" />
<PackageReference Include="AWSSDK.SSO" Version="4.0.0.1" />
<PackageReference Include="AWSSDK.SSOOIDC" Version="4.0.0.1" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.5.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="6.5.0" />
<PackageReference Include="System.CommandLine" Version="2.0.0-beta1.20574.7" />
<PackageReference Include="System.Text.Json" Version="8.0.5" />
<PackageReference Include="Spectre.Console" Version="0.50.0" />
<PackageReference Include="Spectre.Console.Cli" Version="0.50.0" />
</ItemGroup>

<ItemGroup>
Expand Down
3 changes: 2 additions & 1 deletion src/AWS.Deploy.CLI/AWSCredentialsFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// SPDX-License-Identifier: Apache-2.0

using Amazon.Runtime;
using Amazon.Runtime.Credentials;

namespace AWS.Deploy.CLI
{
Expand All @@ -11,7 +12,7 @@ public class AWSCredentialsFactory : IAWSCredentialsFactory
/// <inheritdoc />
public AWSCredentials Create()
{
return FallbackCredentialsFactory.GetCredentials();
return DefaultAWSCredentialsIdentityResolver.GetCredentials();
}
}
}
Loading
Loading