The interdependence between SAS Viya and the Kubernetes platform versions with each of them having different release lifecycles can sometimes be problematic.
To add to the fun, SAS Viya uses the term "update" to indicate moving to the next cadence version whereas Kubernetes uses the term "upgrade" to indicate moving to the next minor release version. ☹️
If you move to a Kubernetes version without paying attention to the Viya LTS version that you are running, you may find yourself out of SAS support. And conversely if you move to a new Viya version without taking care of the Kubernetes version you could end up being out of Kubernetes support…
This dashboard below should gives you an idea of the release cycle for both platforms…
Select any image to see a larger version.
Mobile users: To view the images, select the "Full" version at the bottom of the page.
However the fact that, at a given time Kubernetes version "A" and SAS Viya version "B" are both supported individually does not mean that this SAS Viya version "B" is supported for this specific Kubernetes version "A" (remember that each SAS Viya version is only supported for 3 Kubernetes versions).
In this post, we want to remind some important guidelines to ensure that you remain on a "supported update path" and we also explore a very "real" customer use case of "mixed versions deadlock" I have been recently facing and see how we could address it 😊
The good news is that SAS is aware of this strong dependency between the SAS Viya and Kubernetes versions and release lifecycles and, as a result, provides specific, detailed and frequently maintained documentation to help customers deal with it.
I particularly like this table (available in the Virtual Infrastructure Requirements section of the SAS documentation), where you can see the versions dependencies between SAS Viya and Kubernetes at a glance:
You can immediately understand from the table that: whether you decide to update either SAS Viya or upgrade Kubernetes to its next version, you may also have to make a change to its counterpart to remain supported.
As an example, imagine a customer running SAS Viya LTS 2024.09 on the extended support version of AWS EKS (Elastic Kubernetes Service) 1.28 and in June 2025, they decide to update to the latest SAS Viya LTS 2025.03. From the table above, we can see that they also need to move to EKS 1.29 (at least) to remain supported.
But in this case, which platform should I perform first? SAS Viya or EKS ?
The "Kubernetes upgrade workflow" section of the SAS documentation addresses this very question!
It corresponds to scenarios that are regularly tested by SAS and covers 3 different situations (that I have tried to summarize in the table below) which correspond to different assumptions and conditions.
|
Scenario: |
S1-Upgrade Kubernetes without updating the SAS Viya platform.
|
S2-Update the SAS Viya platform and upgrade Kubernetes in the same time frame.
|
S3-Update the SAS Viya platform and upgrade Kubernetes in the same time frame. |
|
|
Assumption: |
The target Kubernetes version is supported for your current SAS Viya version. |
Your current Kubernetes version IS NOT supported for the newer release of the SAS Viya platform to which you are updating |
Your current Kubernetes version IS supported by the newer SAS Viya release. |
|
|
Condition: |
Make sure that your target Kubernetes version is supported by BOTH the currently deployed version of the SAS Viya platform and the newer version to which you plan to update. |
Make sure that target Kubernetes version is supported by the newer SAS Viya version to which you plan to update |
||
|
Steps: |
1. Viya Backup 2. Stop All Viya services 3. Upgrade the Kubernetes cluster to a supported version. 4. Verify dependent components versions (ingress-nginx, etc.) 5. Restart All Viya services |
1. Viya Backup 2. Stop All Viya services 3. Upgrade the Kubernetes cluster to a supported version. 4. Verify dependent components versions (ingress-nginx, etc.) 5. Restart all SAS Viya platform services. 6. Update the SAS Viya platform software.
|
1. Viya Backup 2. Update the SAS Viya platform software 3. Stop All Viya services 4. Upgrade the Kubernetes cluster 5. Verify dependent components versions (ingress-nginx, etc.) 6. Restart all SAS Viya platform services. |
|
The game here is to determine in which scenario you are, based on the customer’s current versions of Kubernetes/SAS Viya and their upgrades/updates plans.
So back to our example : "a customer running SAS Viya LTS 2024.09 on the extended support version of AWS EKS 1.28 and they want to upgrade to the latest SAS Viya LTS 2025.03."
So, if you look at the version and scenario tables above (or simply at the 3 bullet points in the official documentation), in which scenario would they be ?
Take your time to see if you could find the answer and solve this puzzle 😊
It is not always immediate and requires a bit of logical thought.
OK...I’m sure you have found the answer : Yes, they could be in scenario S1 or S2. Because they meet the assumptions and conditions for both scenarios.
So they can either decide to separate the 2 operations : first upgrade to EKS 1.29 or 1.30, then update SAS Viya (S1) OR they can decide to upgrade Kubernetes and update the SAS Viya platform in the same time frame (S2).
The Kubernetes upgrade workflow really helps to follow the upgrade and update steps in the right order, ensuring that the customer remains in the "Standard Support" situation the whole time.
However, there can be some special situations where your customer’s use case does not fit in any of the described scenarios ☹️…we’ll talk about that in the last section of the post.
There is one key condition to remain on the "supported update path" that is not clearly spelled out in the documentation but is very important to understand :
When you upgrade Kubernetes to a new version, it is imperative that the target Kubernetes version is supported with your current and future Viya version.
In other words, when looking at the version table (above) you must identify a target Kubernetes version that is supported across your current and future Viya versions…the target Kubernetes version must be in common for the Viya N and Viya N+1 versions.
For example, if you were on Viya LTS 2024.03 with Kubernetes 1.27, you could not move to Kubernetes 1.28 then 1.29 without updating SAS Viya. You would need to go first to Kubernetes 1.28, then update the Viya LTS version to LTS 2024.09 and then upgrade Kubernetes to 1.29. That’s the only way to remain supported during these operations.
As we can see in the table, if there was a "2-steps" move from 1.27 to 1.29 without updating SAS Viya at the 1.28 milestone, they we would be running Viya LTS 2024.03 on K8s 1.29 (which is not supported).
Here is a bit of background information, provided by our customer (a bank in Germany testing SAS Viya in a development environment before moving to production) :
Setup/Use case:
Example to illustrate the problem:
OK... so first a few remarks on this information provided by the customer.
We can clearly see it in the OCP Life Cycle table below :
As noted in the OpenShift documentation, "Red Hat denotes all even numbered minor releases (eg 4.8, 4.10, 4.12) as Extended Update Support (EUS) releases".
This explains why the customer’s OpenShift strategy is to only work with "even" versions.
First, to ease our life, let’s build the same supported K8s version tables but with the addition of OCP version :
|
SAS Viya Platform Version |
Supported Versions of Kubernetes |
Supported version of OpenShift |
|
2025.03 (LTS) |
1.29, 1.30, 1.31 |
4.16, 4.17, 4.18 |
|
2024.09 (LTS) |
1.28, 1.29, 1.30 |
4.15, 4.16 |
|
2024.03 (LTS) |
1.26, 1.27, 1.28 |
4.13, 4.14, 4.15 |
|
2023.10 (LTS) |
1.25, 1.26, 1.27 |
4.12, 4.13, 4.14 |
As explained in the second section of the post, our "Kubernetes Upgrade workflow" assumes that there is, at least, one OCP version in common between the source LTS version and the target LTS version...
As we can see on the table above, between LTS 2024.03 and LTS 2024.09 there is only ONE common version, which is OCP 4.15 - however since the "odd" version of OCP were not exposed to the customer team they could only have either 4.14 or 4.16 - so the "supported update path" was not available for them !
After talking a little bit more with the customer though, we understood that they were able to manage the situation and update to Viya LTS 2024.09 (although they were on an "unsupported update path") in their Test environment but before going into production environment, but they were now asking if they will have this problem again...
So first there is a SAS R&D initiative where the plan for the future is to always provide support for 3 OCP versions in our Viya LTS releases (unlike what happened with 2024.09).
Here is a little projection of what OCP versions are planned for the future:
There is one good news here : The customer should not face this issue again for their next Viya updates to LTS 2025.09 and then to LTS 2026.03 (because each time there is an "even" version in common between their current and target version).
However … we can, unfortunately, also see that: while there will always be common OCP versions and bridge each Viya LTS release, there will NOT always be the "even" numbered ones.
It's not possible to always have the OCP "even" version in common, given that Viya LTS releases 2x a year and K8s releases 3x a year. The math would not work out for that… ☹️
So the only real solution, in order to always remain on the supported path, would be to ask for an exception to the customer’s standard process in order to be able to perform the SAS Viya update between the move from the odd release (ex: 4.21, 4.23 in the table) before upgrading to the even "EUS" version…
Another smart suggestion from a colleague is to dive a little bit more in the details of the Viya update operation and to break the steps as below:
Technically it would avoid being in the situation where we would run a SAS Viya version in a non-supported version of OpenShift...However it is not really one of the listed options in the "Kubernetes Upgrade Workflow"…
The caveats of this plan are the following:
As a summary the problem describe here is caused by the quite unique way the Extended Support is handled in OCP (only "even" versions)...each SAS LTS version has support for 3 Kubernetes version but unlike RedHat, SAS does not limit support to our even versions.
But unfortunately, as it sometimes happens, there is no magic silver bullet to solve this specific customer issue… But at least there are options to try.
That’s it for today, hopefully this little post gave a useful illustration of the potential challenges of intricate K8s upgrade/Viya updates operations and how to deal with them.
Find more articles from SAS Global Enablement and Learning here.
Hi @RPoumarede ,
Thank you for this very informative and detailed post ! With one customer, running Viya 4 on top of OpenShift (OCP) we experienced the same issue you have described; this is due to Red Hat Support policy, which governs Red Hat Linux (RHEL) as well as OCP : odd-numbered are non EUS, which means releases with shortened support period - 6 months instead of 24 (Extended) - are deemed "intermediate" or short term between two long term even-numbered (so called EUS) versions. See https://access.redhat.com/support/policy/updates/errata/#Extended_Update_Support_RHEL . SAS has clarified this distinction with the two separate cadences, stable and LTS whereas Red Hat has chosen a single path, stable followed by LTS followed by stable etc. Reconciling the two approaches is therefore a challenge.
The commitment of R&D to provide support for 3 OCP versions is a major step forward, many thanks !
A few comments from my experience :
Best Regards
Ronan
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
The rapid growth of AI technologies is driving an AI skills gap and demand for AI talent. Ready to grow your AI literacy? SAS offers free ways to get started for beginners, business leaders, and analytics professionals of all skill levels. Your future self will thank you.