Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
44 changes: 22 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,14 @@ Example:
}
```

### Step 2: Create the New Version
### Step 2: Archive Old Release Notes

Move the oldest version's release notes from active to archived. Do this before creating the new version so the snapshot includes the archived notes; the official version is served from the snapshot, not from `src/content`. The oldest version is the last item in [`versions.json`](versions.json).

1. **Cut the oldest version section** from the bottom of [`src/content/release-notes.mdx`](src/content/release-notes.mdx)
2. **Paste it at the top** of [`src/content/archived-release-notes.mdx`](src/content/archived-release-notes.mdx) (after the intro paragraph, before other versions)

### Step 3: Create the New Version

Run the docusaurus version command with the new version number:

Expand All @@ -87,7 +94,7 @@ This command will:
- Create `versioned_sidebars/version-1.XX-sidebars.json` with the sidebar config
- Add `1.XX` to the top of `versions.json`

### Step 3: Update docusaurus.config.js
### Step 4: Update docusaurus.config.js

Modify the `presets.docs.versions` section of [`docusaurus.config.js`](docusaurus.config.js):

Expand Down Expand Up @@ -119,9 +126,9 @@ Modify the `presets.docs.versions` section of [`docusaurus.config.js`](docusauru
},
```

5. **Remove the oldest version entry** from the `versions` object (to maintain 12 versions total)
5. **Remove the oldest version entry** from the `versions` object. The object lists only the official version and the five versions before it, so its oldest entry is not the oldest version in `versions.json`. For example, when releasing `1.41`, remove the `'1.35'` entry. Versions in `versions.json` without an entry still build with the default label, path, and `unmaintained` banner.

### Step 4: Update netlify.toml Redirects
### Step 5: Update netlify.toml Redirects

Update the redirect rules at the bottom of [`netlify.toml`](netlify.toml):

Expand Down Expand Up @@ -149,7 +156,7 @@ Update the redirect rules at the bottom of [`netlify.toml`](netlify.toml):
status = 302
```

### Step 5: Update archives.md
### Step 6: Update archives.md

Update [`src/pages/archives.md`](src/pages/archives.md):

Expand All @@ -167,7 +174,7 @@ Update [`src/pages/archives.md`](src/pages/archives.md):

3. **Remove the oldest version** from the "Previously released versions" table

### Step 6: Remove the Oldest Version Files
### Step 7: Remove the Oldest Version Files

Identify the oldest version from `versions.json` (should be at the bottom) and remove its files:

Expand All @@ -179,13 +186,6 @@ rm -rf versioned_sidebars/version-1.29-sidebars.json

**Manually remove the oldest version** from [`versions.json`](versions.json) (remove from the bottom of the array).

### Step 7: Archive Old Release Notes

Move the oldest version's release notes from active to archived:

1. **Cut the oldest version section** from the bottom of [`src/content/release-notes.mdx`](src/content/release-notes.mdx)
2. **Paste it at the top** of [`src/content/archived-release-notes.mdx`](src/content/archived-release-notes.mdx) (after the intro paragraph, before other versions)

### Step 8: Verify the Build

Run the build to catch any broken links or anchors:
Expand Down Expand Up @@ -225,26 +225,26 @@ For agents or scripts automating this process, here are the key parameters:
**Files to modify:**

1. **src/content/variables.json** - Update with new release values
2. **Run command:** `yarn run docusaurus docs:version {NEW_VERSION}`
3. **docusaurus.config.js:**
2. **src/content/release-notes.mdx** - Cut bottom section for `{OLDEST_VERSION}`
3. **src/content/archived-release-notes.mdx** - Paste `{OLDEST_VERSION}` section at top (after intro). Steps 2 and 3 must run before the snapshot in step 4, which copies both files into `versioned_docs/version-{NEW_VERSION}/`
4. **Run command:** `yarn run docusaurus docs:version {NEW_VERSION}`
5. **docusaurus.config.js:**
- `lastVersion: '{NEW_VERSION}'`
- `current.label: '{NEXT_VERSION}'`
- `current.path: '{NEXT_VERSION}'`
- Add `'{NEW_VERSION}': { label: '{NEW_VERSION}', path: '/', banner: 'none' }` at top of versions
- Change `'{PREV_VERSION}'` path from `'/'` to `'{PREV_VERSION}'` and banner from `'none'` to `'unmaintained'`
- Remove `'{OLDEST_VERSION}'` entry from versions
4. **netlify.toml:**
- Remove the oldest entry from versions, which is `NEW_VERSION - 6` (e.g., `'1.35'` when releasing `1.41`). This is not `{OLDEST_VERSION}`: the config lists only the official version and the five before it
6. **netlify.toml:**
- Official redirect: `from = "/docs/{NEW_VERSION}/*"`
- Unreleased redirect: `to = "/docs/{NEXT_VERSION}/:splat"`
- Add deprecated redirect: `from = "/docs/{OLDEST_VERSION}/*"`
5. **src/pages/archives.md:**
7. **src/pages/archives.md:**
- Update current version table to `{NEW_VERSION}`
- Add `{PREV_VERSION}` to previous versions table
- Remove `{OLDEST_VERSION}` from previous versions table
6. **Delete files:** `versioned_docs/version-{OLDEST_VERSION}/` and `versioned_sidebars/version-{OLDEST_VERSION}-sidebars.json`
7. **versions.json** - Remove `{OLDEST_VERSION}` from array (should be last item)
8. **src/content/release-notes.mdx** - Cut bottom section for `{OLDEST_VERSION}`
9. **src/content/archived-release-notes.mdx** - Paste `{OLDEST_VERSION}` section at top (after intro)
8. **Delete files:** `versioned_docs/version-{OLDEST_VERSION}/` and `versioned_sidebars/version-{OLDEST_VERSION}-sidebars.json`
9. **versions.json** - Remove `{OLDEST_VERSION}` from array (should be last item)
10. **Run:** `yarn build` to verify

**Version count:** Maintain exactly 12 versions in `versions.json` after completion.
Expand Down
20 changes: 10 additions & 10 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -368,21 +368,26 @@ module.exports = {
editUrl: 'https://github.com/okteto/docs/edit/main',
breadcrumbs: false,
sidebarPath: require.resolve('./sidebars.js'),
lastVersion: '1.48',
lastVersion: '1.49',
versions: {
current: {
// aka unreleased version in development
// Remember to also update "unreleased" redirect if changing the value!
label: '1.49',
path: '1.49',
label: '1.50',
path: '1.50',
},
'1.48': {
'1.49': {
// aka latest/official version
// Remember to also update docs root redirect if changing the value!
label: '1.48',
label: '1.49',
path: '/',
banner: 'none',
},
'1.48': {
label: '1.48',
path: '1.48',
banner: 'unmaintained',
},
'1.47': {
label: '1.47',
path: '1.47',
Expand All @@ -403,11 +408,6 @@ module.exports = {
path: '1.44',
banner: 'unmaintained',
},
'1.43': {
label: '1.43',
path: '1.43',
banner: 'unmaintained',
},
},
include: ['**/*.md', '**/*.mdx'],
},
Expand Down
9 changes: 7 additions & 2 deletions netlify.toml
Original file line number Diff line number Diff line change
Expand Up @@ -643,17 +643,22 @@
# Redirect official version to docs root

[[redirects]]
from = "/docs/1.48/*"
from = "/docs/1.49/*"
to = "/docs/:splat"
status = 301

# Redirect unreleased to "current" version
[[redirects]]
from = "/docs/unreleased/*"
to = "/docs/1.49/:splat"
to = "/docs/1.50/:splat"
status = 302

# Redirect deprecated versions
[[redirects]]
from = "/docs/1.37/*"
to = "/docs/:splat"
status = 302

[[redirects]]
from = "/docs/1.36/*"
to = "/docs/:splat"
Expand Down
64 changes: 64 additions & 0 deletions src/content/archived-release-notes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,70 @@ id: archived-release-notes

Here you can find the release notes for archived versions of Okteto.

## 1.37.3

21 November 2025

This version is compatible with Kubernetes versions 1.31 to 1.33 \
Okteto Chart release 1.37 is designed to work with [Okteto CLI 3.12.x](https://github.com/okteto/okteto/releases/tag/3.12.0)

### Bug Fixes

- [Okteto CLI 3.12.3](https://github.com/okteto/okteto/releases/tag/3.12.3): Fixed a timeout error contacting with the SSH agent on remote deploys when some of the commands defined in the Okteto Manifest were performing SSH operations

## 1.37.2

15 October 2025

This version is compatible with Kubernetes versions 1.31 to 1.33 \
Okteto Chart release 1.37 is designed to work with [Okteto CLI 3.12.x](https://github.com/okteto/okteto/releases/tag/3.12.0)

### Bug Fixes {#bug-fixes-1.37}

- Fixed repository cloning failures with SSH host verification - Resolved conflicts between automatic SSH scanning and admin-configured known hosts that could cause deployment failures.

## 1.37.1

7 October 2025

This version is compatible with Kubernetes versions 1.31 to 1.33 \
Okteto Chart release 1.37 is designed to work with [Okteto CLI 3.12.x](https://github.com/okteto/okteto/releases/tag/3.12.0)

### Improvements {#improvements-1.37.1}

- Upgrade Redis to 8.2.2 to fix [CVE-2025-49844](https://www.wiz.io/blog/wiz-research-redis-rce-cve-2025-49844)

## 1.37.0

1 October 2025

This version is compatible with Kubernetes versions 1.31 to 1.33 \
Okteto Chart release 1.37 is designed to work with [Okteto CLI 3.12.x](https://github.com/okteto/okteto/releases/tag/3.12.0)

### Breaking Changes {#breaking-changes-1.37}

- Removed the dependency on the Bitnami Redis Helm chart. Okteto now ships its own Kubernetes templates to deploy Redis. As part of this change, the workload has been updated from a StatefulSet to a Deployment, and the available Redis configuration options [have been reduced and standardized](self-hosted/helm-configuration.mdx#redis). If you previously customized Redis using Bitnami-specific values, review and update your Helm values to align with the supported configuration before upgrading. <!-- 9663 -->
- We've changed the [default value of `pullAlways` to **false**](self-hosted/helm-configuration.mdx#pullalways) for pods deployed in Okteto-managed namespaces. This speeds up pod creation when images are already present on the node, while still allowing `pullAlways` to be explicitly enabled if needed <!-- 9690 -->

### New Features {#new-features-1.37}

- Added a centralized [Known Hosts feature to the Admin UI](admin/ssh-known-hosts.mdx) (Admin → Settings → Known Hosts). Admins can now pin trusted SSH host keys and disable automatic ssh-keyscan, ensuring secure, consistent cloning of repositories and submodules without custom runner images <!-- 9662 -->

### Improvements {#improvements-1.37}

- Improved error handling in the Okteto AI Agent UI for API errors and "Prompt too long" warnings <!-- 9636 -->
- Temporal rate limit (QPS exceeded) errors now return as "progressing" instead of failing immediately <!-- 9664 -->
- We've renamed AI Agent Fleets to Okteto AI throughout the product <!-- 9677 -->
- [Okteto CLI 3.12.0](https://github.com/okteto/okteto/releases/tag/3.12.0): Updated Syncthing to 2.0.x for improved synchronization performance
- [Okteto CLI 3.12.0](https://github.com/okteto/okteto/releases/tag/3.12.0): Added support for `endpoint_mode` in Compose files ([see documentation](reference/docker-compose.mdx#endpoint_mode-string-optional)).

### Bug Fixes {#bug-fixes-1.37}

- Fixed issues with endpoint handling in the Okteto AI Agent view, including non-scrollable lists and incorrect display of custom endpoints <!-- 9653 --> <!-- 9666 -->
- Fixed an "unable to load agent" error when returning focus to the window <!-- 9703 -->
- Fixed autoscroll behavior when sending a new prompt in the Agent UI <!-- 9705 -->
- [Okteto CLI 3.12.0](https://github.com/okteto/okteto/pull/4760): Improved CLI stability by waiting for SSE when streaming logs for pipeline, preview, deploy, and destroy operations

## 1.36.2

12 September 2025
Expand Down
71 changes: 3 additions & 68 deletions src/content/release-notes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ import Image from '@theme/Image';

## 1.49.0

9 October 2026
8 October 2026

This version is compatible with Kubernetes versions 1.34 to 1.36 \
Okteto Chart release 1.49 is designed to work with [Okteto CLI 3.24.x](https://github.com/okteto/okteto/releases)
Okteto Chart release 1.49 is designed to work with [Okteto CLI 3.24.x](https://github.com/okteto/okteto/releases/tag/3.24.0)

### Breaking Changes {#breaking-changes-1.49}

Expand All @@ -26,14 +26,13 @@ Okteto Chart release 1.49 is designed to work with [Okteto CLI 3.24.x](https://g

### New Features {#new-features-1.49}

- You can now configure the default [compression](https://docs.docker.com/build/exporters/#compression) used by BuildKit at instance level using the helm setting `buildOpts` or the admin variables `OKTETO_BUILD_COMPRESSION`, `OKTETO_BUILD_COMPRESSION_LEVEL` and `OKTETO_BUILD_FORCE_COMPRESSION`. You can define the variables per operation using User Variables or Deployment Variables
- You can now configure the default [compression](https://docs.docker.com/build/exporters/#compression) used by BuildKit at instance level using the [`buildOpts`](self-hosted/helm-configuration.mdx#buildopts) Helm setting or the [Admin Variables](reference/feature-flags.mdx) `OKTETO_BUILD_COMPRESSION`, `OKTETO_BUILD_COMPRESSION_LEVEL` and `OKTETO_BUILD_FORCE_COMPRESSION`. You can define the variables per operation using User Variables or Deployment Variables
- **Kubernetes 1.36 Support**: Added support for Kubernetes [1.36](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.36.md)

### Improvements {#improvements-1.49}

- OpenID Connect now returns a clear error when different users from the [authentication provider](self-hosted/install/auth/openid-connect.mdx) map to the same Okteto user


## 1.48.1

10 September 2026
Expand Down Expand Up @@ -407,67 +406,3 @@ Okteto Chart release 1.38 is designed to work with [Okteto CLI 3.13.x](https://g
- [Okteto CLI 3.13.0](https://github.com/okteto/okteto/releases/tag/3.13.0): Fixed nil pointer exception in build command when the specified Dockerfile doesn't exist
- [Okteto CLI 3.13.0](https://github.com/okteto/okteto/releases/tag/3.13.0): Improved error handling in log streaming during resource destruction as logs were not being fully displayed
- [Okteto CLI 3.13.0](https://github.com/okteto/okteto/releases/tag/3.13.0): Fixed cache isolation in `okteto test` where different test containers sharing the same cached directory could reuse each other's cache. Caches are now properly isolated and only reused across executions of the same test container

## 1.37.3

21 November 2025

This version is compatible with Kubernetes versions 1.31 to 1.33 \
Okteto Chart release 1.37 is designed to work with [Okteto CLI 3.12.x](https://github.com/okteto/okteto/releases/tag/3.12.0)

### Bug Fixes

- [Okteto CLI 3.12.3](https://github.com/okteto/okteto/releases/tag/3.12.3): Fixed a timeout error contacting with the SSH agent on remote deploys when some of the commands defined in the Okteto Manifest were performing SSH operations

## 1.37.2

15 October 2025

This version is compatible with Kubernetes versions 1.31 to 1.33 \
Okteto Chart release 1.37 is designed to work with [Okteto CLI 3.12.x](https://github.com/okteto/okteto/releases/tag/3.12.0)

### Bug Fixes {#bug-fixes-1.37}

- Fixed repository cloning failures with SSH host verification - Resolved conflicts between automatic SSH scanning and admin-configured known hosts that could cause deployment failures.

## 1.37.1

7 October 2025

This version is compatible with Kubernetes versions 1.31 to 1.33 \
Okteto Chart release 1.37 is designed to work with [Okteto CLI 3.12.x](https://github.com/okteto/okteto/releases/tag/3.12.0)

### Improvements {#improvements-1.37.1}

- Upgrade Redis to 8.2.2 to fix [CVE-2025-49844](https://www.wiz.io/blog/wiz-research-redis-rce-cve-2025-49844)

## 1.37.0

1 October 2025

This version is compatible with Kubernetes versions 1.31 to 1.33 \
Okteto Chart release 1.37 is designed to work with [Okteto CLI 3.12.x](https://github.com/okteto/okteto/releases/tag/3.12.0)

### Breaking Changes {#breaking-changes-1.37}

- Removed the dependency on the Bitnami Redis Helm chart. Okteto now ships its own Kubernetes templates to deploy Redis. As part of this change, the workload has been updated from a StatefulSet to a Deployment, and the available Redis configuration options [have been reduced and standardized](self-hosted/helm-configuration.mdx#redis). If you previously customized Redis using Bitnami-specific values, review and update your Helm values to align with the supported configuration before upgrading. <!-- 9663 -->
- We've changed the [default value of `pullAlways` to **false**](self-hosted/helm-configuration.mdx#pullalways) for pods deployed in Okteto-managed namespaces. This speeds up pod creation when images are already present on the node, while still allowing `pullAlways` to be explicitly enabled if needed <!-- 9690 -->

### New Features {#new-features-1.37}

- Added a centralized [Known Hosts feature to the Admin UI](admin/ssh-known-hosts.mdx) (Admin → Settings → Known Hosts). Admins can now pin trusted SSH host keys and disable automatic ssh-keyscan, ensuring secure, consistent cloning of repositories and submodules without custom runner images <!-- 9662 -->

### Improvements {#improvements-1.37}

- Improved error handling in the Okteto AI Agent UI for API errors and "Prompt too long" warnings <!-- 9636 -->
- Temporal rate limit (QPS exceeded) errors now return as "progressing" instead of failing immediately <!-- 9664 -->
- We've renamed AI Agent Fleets to Okteto AI throughout the product <!-- 9677 -->
- [Okteto CLI 3.12.0](https://github.com/okteto/okteto/releases/tag/3.12.0): Updated Syncthing to 2.0.x for improved synchronization performance
- [Okteto CLI 3.12.0](https://github.com/okteto/okteto/releases/tag/3.12.0): Added support for `endpoint_mode` in Compose files ([see documentation](reference/docker-compose.mdx#endpoint_mode-string-optional)).

### Bug Fixes {#bug-fixes-1.37}

- Fixed issues with endpoint handling in the Okteto AI Agent view, including non-scrollable lists and incorrect display of custom endpoints <!-- 9653 --> <!-- 9666 -->
- Fixed an "unable to load agent" error when returning focus to the window <!-- 9703 -->
- Fixed autoscroll behavior when sending a new prompt in the Agent UI <!-- 9705 -->
- [Okteto CLI 3.12.0](https://github.com/okteto/okteto/pull/4760): Improved CLI stability by waiting for SSE when streaming logs for pipeline, preview, deploy, and destroy operations
4 changes: 2 additions & 2 deletions src/pages/archives.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,15 @@ Here you can find the documentation for the current released version of Okteto.

| Version | Documentation | Release Notes |
| :------ | :----------------: | -------------------------------: |
| 1.48 | [Documentation](/) | [Release Notes](/release-notes/) |
| 1.49 | [Documentation](/) | [Release Notes](/release-notes/) |

## Previously released versions

Here you can find the documentation for previously released versions of Okteto.

| Version | Documentation | Release Notes |
| :------ | :--------------------: | ---------------------------------------------------: |
| 1.48 | [Documentation](pathname:///1.48) | [Release Notes](/1.48/release-notes/) |
| 1.47 | [Documentation](pathname:///1.47) | [Release Notes](/1.47/release-notes/) |
| 1.46 | [Documentation](pathname:///1.46) | [Release Notes](/1.46/release-notes/) |
| 1.45 | [Documentation](pathname:///1.45) | [Release Notes](/1.45/release-notes/) |
Expand All @@ -31,6 +32,5 @@ Here you can find the documentation for previously released versions of Okteto.
| 1.40 | [Documentation](pathname:///1.40) | [Release Notes](/1.40/release-notes/) |
| 1.39 | [Documentation](pathname:///1.39) | [Release Notes](/1.39/release-notes/) |
| 1.38 | [Documentation](pathname:///1.38) | [Release Notes](/1.38/release-notes/) |
| 1.37 | [Documentation](pathname:///1.37) | [Release Notes](/1.37/release-notes/) |

Release notes for previous versions can be found here: [Archived Release Notes](/archived-release-notes/)
Loading
Loading