diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4d7d6dcdb..29ded2c81 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,11 +12,13 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - - name: golang-1.24.11 - uses: actions/setup-go@v3 + - name: golang + uses: actions/setup-go@v4 + with: + go-version-file: go.mod - name: version run: echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV - name: secrets diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 12be77fdb..8b54f2050 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,11 +10,13 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - - name: golang-1.24.11 - uses: actions/setup-go@v3 + - name: golang + uses: actions/setup-go@v4 + with: + go-version-file: go.mod - name: go path run: | mkdir -p ${HOME}/go @@ -29,11 +31,11 @@ jobs: changelog="${changelog//'%'/'%25'}" changelog="${changelog//$'\n'/'%0A'}" changelog="${changelog//$'\r'/'%0D'}" - echo "::set-output name=text::${changelog}" + echo "text=${changelog}" >> $GITHUB_OUTPUT - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: login run: docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" env: diff --git a/Dockerfile b/Dockerfile index ad27fc077..0ec0c68e6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,7 +26,7 @@ ENV DOCKER_BUILDKIT=1 RUN curl -s https://download.docker.com/linux/static/stable/${DOCKER_ARCH}/docker-18.09.9.tgz | \ tar -C /usr/bin --strip-components 1 -xz -RUN curl -Ls https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/${KUBECTL_ARCH}/kubectl -o /usr/bin/kubectl && \ +RUN curl -Ls https://storage.googleapis.com/kubernetes-release/release/v1.28.15/bin/linux/${KUBECTL_ARCH}/kubectl -o /usr/bin/kubectl && \ chmod +x /usr/bin/kubectl ENV DEVELOPMENT=false diff --git a/Dockerfile.arm b/Dockerfile.arm index 56d22fe3e..5602e6273 100644 --- a/Dockerfile.arm +++ b/Dockerfile.arm @@ -23,7 +23,7 @@ RUN apt-get -qq update && apt-get -qq -y install curl RUN curl -s https://download.docker.com/linux/static/stable/${DOCKER_ARCH}/docker-18.03.1-ce.tgz | \ tar -C /usr/bin --strip-components 1 -xz -RUN curl -Ls https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/${KUBECTL_ARCH}/kubectl -o /usr/bin/kubectl && \ +RUN curl -Ls https://storage.googleapis.com/kubernetes-release/release/v1.28.15/bin/linux/${KUBECTL_ARCH}/kubectl -o /usr/bin/kubectl && \ chmod +x /usr/bin/kubectl ENV DEVELOPMENT=false diff --git a/ci/dependencies.sh b/ci/dependencies.sh index 6b467c7e5..f161e472f 100755 --- a/ci/dependencies.sh +++ b/ci/dependencies.sh @@ -15,7 +15,7 @@ sudo ./aws/install curl -s https://download.docker.com/linux/static/stable/x86_64/docker-18.09.6.tgz | sudo tar -C /usr/bin --strip-components 1 -xz # install kubectl -curl -Ls https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kubectl -o /tmp/kubectl && \ +curl -Ls https://storage.googleapis.com/kubernetes-release/release/v1.28.15/bin/linux/amd64/kubectl -o /tmp/kubectl && \ sudo mv /tmp/kubectl /usr/bin/kubectl && sudo chmod +x /usr/bin/kubectl # install aws-iam-authenticator diff --git a/provider/aws/formation/g1/app.json.tmpl b/provider/aws/formation/g1/app.json.tmpl index eb7b158a1..3c9ce1b90 100644 --- a/provider/aws/formation/g1/app.json.tmpl +++ b/provider/aws/formation/g1/app.json.tmpl @@ -800,18 +800,19 @@ "Properties": { "Handler": "index.handler", "Role": { "Fn::GetAtt": [ "CronRole", "Arn" ] }, - "Runtime": "nodejs16.x", + "Runtime": "nodejs22.x", "Timeout": 50, "Code": { "ZipFile": { "Fn::Join": ["\n", [ "'use strict';", - "var aws = require('aws-sdk');", - "var ecs = new aws.ECS({maxRetries:10});", - "var logs = new aws.CloudWatchLogs();", + "var { ECSClient, RunTaskCommand } = require('@aws-sdk/client-ecs');", + "var { CloudWatchLogsClient, CreateLogStreamCommand, PutLogEventsCommand } = require('@aws-sdk/client-cloudwatch-logs');", + "var ecs = new ECSClient({maxAttempts:11});", + "var logs = new CloudWatchLogsClient({});", "var cluster = '{{ $.Cluster }}';", { "Fn::Join": [ "", [ "var logGroup = '", { "Ref": "LogGroup" }, "';" ] ] }, { "Fn::Join": [ "", [ "var release = '", { "Ref": "Release" }, "';" ] ] }, - "exports.handler = function(event, context, cb) {", + "exports.handler = async function(event, context) {", " var command = event.command.replace(/&#(\\d+);/g, function(match, dec) {", " return String.fromCharCode(dec);", " });", @@ -827,45 +828,40 @@ " }", " };", " var skew = Math.floor(Math.random()*10000);", - " setTimeout(function() {", - " ecs.runTask(params, function (err, res) {", - " if (err) return cb(err);", - " var message = 'skew=' + skew + 'ms command=' + event.command;", - " if (res.failures.length) {", - " message += ' result=failure reason=' + res.failures[0].reason;", - " log(event, 'error', message, function(err) {", - " console.log('err2', err);", - " cb();", - " });", - " } else {", - " message += ' result=success task=' + res.tasks[0].taskArn;", - " log(event, res.tasks[0].taskArn, message, function(err) {", - " console.log('err2', err);", - " cb();", - " });", - " }", - " });", - " }, skew);", + " await new Promise(function(r) { setTimeout(r, skew); });", + " var res = await ecs.send(new RunTaskCommand(params));", + " var message = 'skew=' + skew + 'ms command=' + event.command;", + " if (res.failures.length) {", + " message += ' result=failure reason=' + res.failures[0].reason;", + " await log(event, 'error', message);", + " } else {", + " message += ' result=success task=' + res.tasks[0].taskArn;", + " await log(event, res.tasks[0].taskArn, message);", + " }", "};", - "function log(event, task, message, cb) {", + "async function log(event, task, message) {", " var id = task.split('-').pop();", " var stream = 'cron/' + event.process + '/' + id;", - " var params = {", - " logGroupName: logGroup,", - " logStreamName: stream", - " }", - " logs.createLogStream(params, function(err) {", + " try {", + " await logs.send(new CreateLogStreamCommand({", + " logGroupName: logGroup,", + " logStreamName: stream", + " }));", + " } catch(err) {", " console.log('err', err);", - " var params = {", + " }", + " console.log(message);", + " try {", + " await logs.send(new PutLogEventsCommand({", " logEvents: [", " { message: message, timestamp: (new Date()).getTime() }", " ],", " logGroupName: logGroup,", " logStreamName: stream", - " }", - " console.log(message);", - " logs.putLogEvents(params, cb);", - " })", + " }));", + " } catch(err) {", + " console.log('err2', err);", + " }", "}" ] ] } } diff --git a/provider/aws/formation/rack.json b/provider/aws/formation/rack.json index 23a5271b9..48dba8817 100644 --- a/provider/aws/formation/rack.json +++ b/provider/aws/formation/rack.json @@ -250,13 +250,13 @@ "RegionConfig": { "af-south-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "098369216593", "Fargate": "Yes" }, "ap-east-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "754344448648", "Fargate": "Yes" }, - "ap-northeast-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "582318560864", "Fargate": "No" }, + "ap-northeast-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "582318560864", "Fargate": "Yes" }, "ap-northeast-2": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "600734575887", "Fargate": "Yes" }, "ap-northeast-3": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "383597477331", "Fargate": "Yes" }, "ap-south-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "718504428378", "Fargate": "Yes" }, "ap-southeast-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "114774131450", "Fargate": "Yes" }, "ap-southeast-2": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "783225319266", "Fargate": "Yes" }, - "ca-central-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "985666609251", "Fargate": "No" }, + "ca-central-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "985666609251", "Fargate": "Yes" }, "eu-central-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "054676820928", "Fargate": "Yes" }, "eu-north-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "897822967062", "Fargate": "Yes" }, "eu-south-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "635631232127", "Fargate": "Yes" }, @@ -267,7 +267,7 @@ "sa-east-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "507241528517", "Fargate": "Yes" }, "us-east-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "127311923021", "Fargate": "Yes" }, "us-east-2": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "033677994240", "Fargate": "Yes" }, - "us-west-1": { "EFS": "Yes", "ThirdAvailabilityZone": "No", "ELBAccountId": "027434742980", "Fargate": "No" }, + "us-west-1": { "EFS": "Yes", "ThirdAvailabilityZone": "No", "ELBAccountId": "027434742980", "Fargate": "Yes" }, "us-west-2": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "797873946194", "Fargate": "Yes" }, "us-gov-east-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "190560391635", "Fargate": "Yes" }, "us-gov-west-1": { "EFS": "Yes", "ThirdAvailabilityZone": "Yes", "ELBAccountId": "048591011584", "Fargate": "Yes" }