Hello các bạn mình đã có 1 bài upgrade eks bằng eksctl.
Sau khi chúng ta đã understanded các command thì design bitbucket-pipeline để upgrade eks cluster.
Đầu tiền bạn cần set up các env chung.

eks-upgrade AWS_ACCESS_KEY_ID: xxxx AWS_SECRET_ACCESS_KEY: xxxx regionName: us-west-2 eksClusterName: xxxx
Và đây là file bitbucket-pipelines.yml
pipelines:
custom:
### Running eksctl
### Create eksClusterName, regionName in Deployment ENV
upgrade-eks:
- variables:
- name: upgradeToVersion
default: '1.20'
allowed-values: # optionally restrict variable values
- '1.20'
- '1.21'
- step:
name: 'Set environment variables'
deployment: eks-upgrade
image: weaveworks/eksctl:latest
script:
- printenv | xargs echo export > .envs
artifacts:
- .envs
- step:
name: 'Get Cluster infomations'
image: weaveworks/eksctl:latest
script:
- source .envs
- eksctl get cluster --name $eksClusterName --region $regionName --output yaml
- step:
name: 'Upgrade EKS Controller'
image: weaveworks/eksctl:latest
trigger: manual
script:
- source .envs
- eksctl upgrade cluster --name $eksClusterName --region $regionName --version $upgradeToVersion --approve
- step:
name: 'Create New Node Group'
image: weaveworks/eksctl:latest
trigger: manual
script:
- source .envs
- eksctl create nodegroup --cluster $eksClusterName --region $regionName
run-kubectl-command:
- variables:
- name: namespace
default: 'default'
allowed-values:
- 'default'
- 'kube-system'
- name: command
default: 'get node'
- step:
name: "Run kubectl command"
deployment: eks-upgrade
image: bitbucketpipelines/aws-eks-kubectl-run:latest
script:
- aws eks --region $regionName update-kubeconfig --name $eksClusterName
- echo "run command --> kubectl -n $namespace $command"
- kubectl -n $namespace $command
get-nodegroup-eks:
- step:
name: "Get Node Group EKS"
deployment: eks-upgrade
image: weaveworks/eksctl:latest
script:
- eksctl get nodegroup --cluster $eksClusterName --region $regionName
delete-nodegroup-eks:
- variables:
- name: nodeGroupName
- step:
name: "Delete Node Group EKS"
deployment: eks-upgrade
image: weaveworks/eksctl:latest
script:
- eksctl delete nodegroup --cluster $eksClusterName --region $regionName --name $nodeGroupName
Sau khi deploy hết thì bạn cần kiểm tra lại các ingress có hoạt động ko nhé.

