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

style: 💄 create one ticket per upgrade #5211

Merged
merged 2 commits into from
Jan 18, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
58 changes: 31 additions & 27 deletions scripts/eks-addon-updates.sh
Original file line number Diff line number Diff line change
@@ -1,32 +1,37 @@
#!/bin/bash

# list clusters
CLUSTERS=(live live-2 manager)
set -ex

for CLUSTER in "${CLUSTERS[@]}";
do
# get cluster versions
CLUSTER_VERSION=$(aws eks describe-cluster --name "$CLUSTER" | jq -r '.cluster.version')
CLUSTER=live

# get cluster versions
CLUSTER_VERSION=$(aws eks describe-cluster --name "$CLUSTER" | jq -r '.cluster.version')

# get addons
CLUSTER_ADDONS=($(aws eks list-addons --cluster-name "$CLUSTER" | jq -r '.addons[] | .'))
# get addons
CLUSTER_ADDONS=($(aws eks list-addons --cluster-name "$CLUSTER" | jq -r '.addons[] | .'))

for CLUSTER_ADDON in "${CLUSTER_ADDONS[@]}";
do
# get addon version for cluster
CLUSTER_ADDON_VERSION=$(aws eks describe-addon --cluster-name "$CLUSTER" --addon-name "$CLUSTER_ADDON" | jq -r '.addon.addonVersion')
for CLUSTER_ADDON in "${CLUSTER_ADDONS[@]}";
do
# get addon version for cluster
CLUSTER_ADDON_VERSION=$(aws eks describe-addon --cluster-name "$CLUSTER" --addon-name "$CLUSTER_ADDON" | jq -r '.addon.addonVersion')

# get latest supported addon version for the cluster/k8s version
LATEST_SUPPORTED_ADDON_VERSION_FOR_KUBERNETES_VERSION=$(aws eks describe-addon-versions --addon-name "$CLUSTER_ADDON" --kubernetes-version "$CLUSTER_VERSION" | jq -r '.addons[0].addonVersions[0].addonVersion')
# get latest supported addon version for the cluster/k8s version
LATEST_SUPPORTED_ADDON_VERSION_FOR_KUBERNETES_VERSION=$(aws eks describe-addon-versions --addon-name "$CLUSTER_ADDON" --kubernetes-version "$CLUSTER_VERSION" | jq -r '.addons[0].addonVersions[0].addonVersion')

TITLE="EKS addon ($CLUSTER): Update $CLUSTER_ADDON from $CLUSTER_ADDON_VERSION to the latest version"
TITLE="EKS addon ($CLUSTER): Update $CLUSTER_ADDON from $CLUSTER_ADDON_VERSION to the latest version"

if [[ "$LATEST_SUPPORTED_ADDON_VERSION_FOR_KUBERNETES_VERSION" != "$CLUSTER_ADDON_VERSION" ]]; then # check if newer version is supported
BODY=$(cat << END
if [[ "$LATEST_SUPPORTED_ADDON_VERSION_FOR_KUBERNETES_VERSION" != "$CLUSTER_ADDON_VERSION" ]]; then # check if newer version is supported
BODY=$(cat << END
## Background

There is a new version of the EKS add-on $CLUSTER_ADDON. $CLUSTER_ADDON needs updating on the $CLUSTER cluster. When this issue was created, the latest supported add-on version for Kubernetes $CLUSTER_VERSION was $LATEST_SUPPORTED_ADDON_VERSION_FOR_KUBERNETES_VERSION.

## Environments Checklist:

- [ ] live-2
- [ ] manager
- [ ] live

See the [Amazon EKS add-ons](https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html) documentation for more information about addons, or find the latest versions for these EKS add-ons directly:

- [coredns](https://docs.aws.amazon.com/eks/latest/userguide/managing-coredns.html)
Expand All @@ -35,18 +40,17 @@ See the [Amazon EKS add-ons](https://docs.aws.amazon.com/eks/latest/userguide/ek
END
)

GITHUB_ISSUES=$(gh issue list --repo ministryofjustice/cloud-platform --state all --search "in:title \"$TITLE\"" --limit 50 --json title | jq -r "[ .[] | select(.title == \"$TITLE\") ] | length")
GITHUB_ISSUES=$(gh issue list --repo ministryofjustice/cloud-platform --state all --search "in:title \"$TITLE\"" --limit 50 --json title | jq -r "[ .[] | select(.title == \"$TITLE\") ] | length")

# if no issues yet, create one
if (( $(echo "0 == $GITHUB_ISSUES" | bc -l) )); then
echo "No issue found for $TITLE, creating one..."
gh issue create --title "$TITLE" --body "$BODY" --repo ministryofjustice/cloud-platform
else
echo "Issue already exists for $TITLE, skipping..."
fi
# if no issues yet, create one
if (( $(echo "0 == $GITHUB_ISSUES" | bc -l) )); then
echo "No issue found for $TITLE, creating one..."
gh issue create --title "$TITLE" --body "$BODY" --repo ministryofjustice/cloud-platform
else
echo "Up to date, skipping issue creation for $TITLE"
echo "Issue already exists for $TITLE, skipping..."
fi
else
echo "Up to date, skipping issue creation for $TITLE"
fi

done
done
47 changes: 25 additions & 22 deletions scripts/eks-updates.sh
Original file line number Diff line number Diff line change
@@ -1,42 +1,45 @@
#!/bin/bash

set -ex

# get supported versions
VERSIONS=($(aws eks describe-addon-versions | jq -r ".addons[] | .addonVersions[] | .compatibilities[] | .clusterVersion" | sort | uniq))

# list clusters
CLUSTERS=(live live-2 manager)
CLUSTER=live
poornima-krishnasamy marked this conversation as resolved.
Show resolved Hide resolved

for CLUSTER in "${CLUSTERS[@]}";
# get cluster versions
CLUSTER_VERSION=$(aws eks describe-cluster --name "$CLUSTER" | jq -r '.cluster.version')

for VERSION in "${VERSIONS[@]}";
do
# get cluster versions
CLUSTER_VERSION=$(aws eks describe-cluster --name "$CLUSTER" | jq -r '.cluster.version')

for VERSION in "${VERSIONS[@]}";
do
if [[ "$CLUSTER_VERSION" != "$VERSION" ]]; then
if (( $(echo "$CLUSTER_VERSION < $VERSION" | bc -l) )); then # check if newer version is supported
TITLE="EKS: Upgrade $CLUSTER to Kubernetes v$VERSION";
BODY=$(cat << END
if [[ "$CLUSTER_VERSION" != "$VERSION" ]]; then
if (( $(echo "$CLUSTER_VERSION < $VERSION" | bc -l) )); then # check if newer version is supported
TITLE="EKS: Upgrade $CLUSTER to Kubernetes v$VERSION";
BODY=$(cat << END
## Background

EKS supports Kubernetes $VERSION. The $CLUSTER cluster needs upgrading to Kubernetes $VERSION.

## Environments Checklist:

- [ ] live-2
- [ ] manager
- [ ] live

See [Amazon EKS Kubernetes versions](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html) for more details.
END
)

# get github issues and check if one already exists
GITHUB_ISSUES=$(gh issue list --repo ministryofjustice/cloud-platform --state all --search "in:title \"$TITLE\"" --limit 50 --json title | jq -r "[ .[] | select(.title == \"$TITLE\") ] | length")
# get github issues and check if one already exists
GITHUB_ISSUES=$(gh issue list --repo ministryofjustice/cloud-platform --state all --search "in:title \"$TITLE\"" --limit 50 --json title | jq -r "[ .[] | select(.title == \"$TITLE\") ] | length")

# if no issues yet, create one
if (( $(echo "0 == $GITHUB_ISSUES" | bc -l) )); then
echo "No issue found for $TITLE, creating one..."
gh issue create --title "$TITLE" --body "$BODY" --label EPIC --repo ministryofjustice/cloud-platform
else
echo "Issue already exists for $TITLE, skipping..."
fi
# if no issues yet, create one
if (( $(echo "0 == $GITHUB_ISSUES" | bc -l) )); then
echo "No issue found for $TITLE, creating one..."
gh issue create --title "$TITLE" --body "$BODY" --label EPIC --repo ministryofjustice/cloud-platform
else
echo "Issue already exists for $TITLE, skipping..."
fi
fi
done
fi
done
Loading