doc/user/content/self-managed-deployments/upgrading/upgrade-on-aws.md
The following tutorial upgrades your Materialize deployment running on AWS Elastic Kubernetes Service (EKS). The tutorial assumes you have installed the example on Install on AWS.
{{% include-from-yaml data="self_managed/upgrades" name="upgrades-general-rules" %}}
{{< note >}} {{< include-from-yaml data="self_managed/upgrades" name="upgrade-major-version-restriction" >}} {{< /note >}}
{{< note >}} {{< include-from-yaml data="self_managed/upgrades" name="downgrade-restriction" >}} {{< /note >}}
{{< important >}}
The following procedure performs a rolling upgrade, where both the old and new Materialize instances are running before the old instances are removed. When performing a rolling upgrade, ensure you have enough resources to support having both the old and new Materialize instances running.
{{</ important >}}
Open a Terminal window.
Configure AWS CLI with your AWS credentials. For details, see the AWS documentation.
Go to the Terraform directory for your Materialize deployment. For example,
if you deployed from the aws/examples/simple directory:
cd materialize-terraform-self-managed/aws/examples/simple
Ensure your AWS CLI is configured with the appropriate profile, substitute
<your-aws-profile> with the profile to use:
# Set your AWS profile for the session
export AWS_PROFILE=<your-aws-profile>
Configure kubectl to connect to your EKS cluster, replacing:
<your-eks-cluster-name> with the your cluster name; i.e., the
eks_cluster_name in the Terraform output. For the
sample example, your cluster name has the form {prefix_name}-eks; e.g.,
simple-demo-eks.
<your-region> with the region of your cluster. Your region can be
found in your terraform.tfvars file; e.g., us-east-1.
# aws eks update-kubeconfig --name <your-eks-cluster-name> --region <your-region>
aws eks update-kubeconfig --name $(terraform output -raw eks_cluster_name) --region <your-region>
To verify that you have configured correctly, run the following command:
kubectl get nodes
For help with kubectl commands, see kubectl Quick reference.
{{< important >}}
{{% include-from-yaml data="self_managed/upgrades" name="upgrade-order-rule" %}}
{{</ important >}}
{{% include-from-yaml data="self_managed/upgrades" name="upgrade-update-helm-chart" %}}
{{< important >}}
{{% include-from-yaml data="self_managed/upgrades" name="upgrade-order-rule" %}}
{{</ important >}}
{{% include-from-yaml data="self_managed/upgrades" name="upgrade-materialize-operator" %}}
{{< important >}}
{{% include-from-yaml data="self_managed/upgrades" name="upgrade-order-rule" %}}
{{</ important >}}
{{% include-from-yaml data="self_managed/upgrades" name="upgrade-materialize-instance" %}}