Skip to content

Commit

Permalink
Merge pull request okteto#274 from okteto/release-1.4
Browse files Browse the repository at this point in the history
Add release notes for 1.4
  • Loading branch information
rberrelleza authored Jan 23, 2023
2 parents 358c49f + 1b88f2f commit 86e060f
Show file tree
Hide file tree
Showing 211 changed files with 13,192 additions and 28 deletions.
7 changes: 6 additions & 1 deletion docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,9 +150,14 @@ module.exports = {
lastVersion: 'current',
versions: {
current: {
label: 'okteto.com (1.3)',
label: 'okteto.com (1.4)',
path: '/',
},
'1.4': {
label: '1.4',
path: '1.4',
banner: 'none',
},
'1.3': {
label: '1.3',
path: '1.3',
Expand Down
4 changes: 3 additions & 1 deletion src/content/reference/cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ $ okteto destroy
| _--volumes_ | (bool) | Destroy the persistent volumes created by the development environment (defaults to `false`) |
| _--wait_ | (bool) | Wait until the development environment is destroyed (defaults to `false`) |
| _--no-bash_ | (bool) | Execute the command using the container's default shell instead of bash (defaults to false) |
| _--all_ | (bool) | Destroy everything (defaults to `false`) |

> Executed commands will be executed using bash unless the `--no-bash` flag has been specified.
Expand Down Expand Up @@ -395,7 +396,7 @@ $ okteto namespace create test-cindy

#### delete

Delete a namespace.
Delete a namespace. If the manifest includes `destroy` commands, they will be executed as part of this command.

> This command is only available in clusters that have Okteto installed.
Expand Down Expand Up @@ -537,6 +538,7 @@ Run `okteto preview destroy` to destroy a given preview environment.

You need to be [logged in](/docs/reference/cli/#context) to Okteto before running this command.
Only users with administration privileges can destroy a global preview environment.
If the manifest includes `destroy` commands, they will be executed as part of this command.

#### endpoints

Expand Down
36 changes: 36 additions & 0 deletions src/content/reference/manifest.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,42 @@ volumes:

Sets the working directory of your development container.

### external (object, optional)

A list of external resources that are part of your development environment. Use this section for resources that are deployed outside of the okteto cluster, like Cloud resources or dashboards.

```yaml
external:
db:
notes: docs/database.md
endpoints:
- name: db
url: https://localhost:3306
functions:
notes: docs/lambdas.md
endpoints:
- name: data-aggregator
url: https://fake-id.lambda-url.us-east-1.on.aws
- name: data-processor
url: https://fake-id.lambda-url.us-east-2.on.aws
```

#### endpoints ([object], required)

Endpoints contain information on how to access the external resource.

##### name (string, required)

The name of the endpoint.

##### url (string, optional)

The url of the endpoint.

#### notes (string, optional)

A relative path to a markdown file. The contents of the file will be displayed in the dashboard. You can use this to describe the resource or share instructions on how to use it.

### forward ([string], optional)

When declaring a global forward, Okteto will automatically handle port collision when two or more `okteto up` sessions are running simultaneously. If the `okteto up` session detects that the port is already in use, and said port is defined as global forward, `okteto up` will ignore the port collision and continue the `up` sequence. If the port is later available, `okteto up` session will automatically connect to it without interrupting the session.
Expand Down
69 changes: 53 additions & 16 deletions src/content/self-hosted/administration/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -324,13 +324,14 @@ Use `tolerations.devPool` to limit the autoscaler analysis to a subset of cluste
- `annotations`: Annotations to add to the autoscaler pods.
- `cpu.up`: Increase the cluster size when the CPU consumption is greater than or equal to this value. It defaults to 60 percent.
- `cpu.down`: Decrease the cluster size when the CPU consumption is lesser than this value. It defaults to 40 percent.
- `increment`: The number of new nodes to request when all the current nodes are overloaded. e.g. if this value is 3, the autoscaler will request 3 new nodes when all the cluster nodes are overloaded. It defaults to 1.
- `image`: image used by the autoscaler to deploy the autoscaler agent. It defaults to `busybox`.
- `labels`: Labels to add to the autoscaler pods.
- `max`: Maximum number of nodes in the cluster. It defaults to 10. Zero means unlimited.
- `memory.up`: Increase the cluster size when the Memory consumption is greater than or equal to this value. It defaults to 70 percent.
- `memory.down`: Decrease the cluster size when the Memory consumption is lesser than this value. It defaults to 50 percent.
- `min`: Minimum number of nodes in the cluster. It defaults to 1.
- `nodePoolLabel`: The node label that identifies the node pool of the node. For example, the value in GKE is `cloud.google.com/gke-nodepool`. In EKS the value is `eks.amazonaws.com/nodegroup`. If set, the autoscaler scales each node pool independently.
- `nodes.increment`: The number of new nodes to request when all the current nodes are overloaded. e.g. if this value is 3, the autoscaler will request 3 new nodes when all the cluster nodes are overloaded. It defaults to 1.
- `nodes.min`: Minimum number of nodes in the cluster. It defaults to 1.
- `nodes.max`: Maximum number of nodes in the cluster. It defaults to 10. Zero means unlimited.
- `nodes.poolLabel`: The node label that identifies the node pool of the node. For example, the value in GKE is `cloud.google.com/gke-nodepool`. In EKS the value is `eks.amazonaws.com/nodegroup`. If set, the autoscaler scales each node pool independently.
- `pods.up`: Increase the cluster size when the Pods in a node vs the max pods per node is greater than or equal to this value. It defaults to 90 percent.
- `pods.down`: Decrease the cluster size when the Pods in a node vs the max pods per node is lesser than this value. It defaults to 80 percent.
- `schedule`: How often, in seconds, the autoscaler analyzes if the cluster needs to be scaled. It defaults to 300.
Expand All @@ -341,10 +342,8 @@ Use `tolerations.devPool` to limit the autoscaler analysis to a subset of cluste
```yaml
autoscaler:
enabled: false
image: busybox
schedule: 300
increment: 1
min: 1
max: 10
cpu:
up: 60
down: 40
Expand All @@ -357,6 +356,11 @@ autoscaler:
volumes:
up: 90
down: 80
nodes:
increment: 1
min: 1
max: 10
podLabel: cloud.google.com/gke-nodepool
slackWebhook:
```

Expand Down Expand Up @@ -411,6 +415,7 @@ The daemonset automatically configures every node of your cluster to work better
- `extraEnv`: Environment variables to be set on the daemonset containers.
- `labels`: Labels to add to the daemonset pods.
- `image`: Container image used by the daemonset pods.
- `initContainers.privateCA.image`: InitContainer image used by the daemon pods. Defaults to `busybox`

### frontend

Expand Down Expand Up @@ -464,6 +469,8 @@ The jobs that deploy your [development environments from Git](/docs/cloud/deploy
- `activeDeadlineSeconds`: Maximum duration of the pipeline in seconds.
- `gitSSHUser`: User to be used when cloning git repos using ssh.
- `sshSecretName`: The name of the secret that contains the private key used when cloning git repos using ssh. If it doesn't exist, the key and the secret will be automatically generated by Okteto.
- `resources`: The resources for pods created by the installer jobs.


```yaml
installer:
Expand All @@ -475,6 +482,10 @@ installer:
activeDeadlineSeconds: 1800
gitSSHUser: git
sshSecretName: "okteto-ssh"
resources:
requests:
cpu: 10m
memory: 50Mi
```

### registry
Expand Down Expand Up @@ -554,20 +565,31 @@ The webhook service. Ingress creation, generation of hostnames, enforcement of p

## Advanced Configuration

### affinities
### affinity

Apply default affinities to pods deployed in namespaces created by Okteto.

- `devPool`: Affinities for pods created on namespaces managed by Okteto.
- `oktetoPool`: Affinities for pods created during the Okteto installation.

```yaml
affinities:
affinity:
devPool:
- weight: 10
preference:
matchExpressions:
- key: cloud.google.com/gke-preemptible
operator: In
values:
- "true"
preferredDuringSchedulingIgnoredDuringExecution:
- preference:
matchExpressions:
- key: cloud.google.com/spot
operator: In
values:
- "true"
weight: 10
oktetoPool:
preferredDuringSchedulingIgnoredDuringExecution:
- preference:
matchExpressions:
- key: dev.okteto.com/overloaded
operator: DoesNotExist
weight: 50
```

In this case, pods deployed in namespaces created by Okteto will have a preferred affinity to land on preemptible nodes.
Expand Down Expand Up @@ -617,6 +639,21 @@ convertLoadBalancedServices:
enabled: true
```

### crds

Configures CRDs managed by Okteto

- `annotations`: The annotations to apply to the CRDs created during the Okteto installation.
- `keep`: Keep CRDs on chart uninstall (defaults to `true`).
- `install`: Install and upgrade CRDs on chart install (defaults to `true`).

```yaml
crds:
install: true
keep: true
annotations: {}
```

### devStorageClass

Uses the specified storage class for all persistent volume claims created when developers execute `okteto up`. This setting will override any storage class defined on the [Okteto manifest](/docs/reference/manifest/#persistentvolume-object-optional). Disabled by default.
Expand Down
58 changes: 48 additions & 10 deletions src/content/self-hosted/install/releases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,74 @@ sidebar_label: Release Notes
id: releases
---


## 1.4.0
January 19, 2023

### Features
- You can now define [external resources](/docs/reference/manifest/#external-object-optional) in your Okteto manifest. Use this to include resources that exist outside of your Okteto namespace like databases, message brokers, serverless functions, dashboards, etc.
- You can now include `virtual services` in your development environment
- Update okteto cli version to [2.11.1](https://github.com/okteto/okteto/releases/tag/2.11.1)

### Improvements
- The commands defined in the `destroy` section of the Okteto manifest will now be executed when destroying a namespace or preview environment
- You can now retry and force namespace deletion in the UI
- When deleting a namespace/preview, its name will appear in the delete pop-up notification
- Sleeping a namespace using the UI now displays a confirmation dialog
- The catalog section of the Deploy dialog now includes a search bar
- The OpenID configuration in the Helm chart now supports using "resource" and "audience"
- The user-provided NGINX configuration snippet (the `nginx.ingress.kubernetes.io/configuration-snippet` annotation) will now get merged with Okteto's configuration snippet
- By default, pod requests are no longer modified by Okteto
- Updated the `crd` configuration in the Helm chart to follow recommended practices for [CRD management](/docs/self-hosted/administration/configuration/#crds)
- You can now define [custom affinities](/docs/self-hosted/administration/configuration/#affinity) for dev containers and installer jobs in helm config
- You can now define custom resources (requests and limits) for installer jobs
- You can now define tolerations and node selector for the telemetry cronjob
- You can now override the images of the [daemon](/docs/self-hosted/administration/configuration/#daemonset) and [autoscaler](/docs/self-hosted/administration/configuration/#autoscaler) using the Helm configuration file


### Bugfixes
- The branch selector in the Deploy dialog doesn't flicker when the branch is not found
- Fixed issue that prevented private repositories of individual GitHub accounts to bee correctly displayed in the Deploy dialog
- Fixed compatibility issues with Azure Active Directory
- Fixed blank screen that sometimes appeared when clicking the "Stop development" button
- Fixed race condition when trying to deploy a development environment that was removed from the catalog
- Ingresses that are not managed for Okteto won't be deleted when a namespace is put to sleep


## 1.3.0
23 December, 2022
December 23, 2022

### Features

- [Git Catalog](/docs/administration/git-catalog/) to provide predefined development environments to every developer
- Remove CLI tab from Okteto UI deploy

### Bug Fix
### Bugfixes

- Verification of GitHub usernames is now case insensitive to match GitHub rules
- Fix the race condition that enabled users to modify `repo` field on the GitHub redeploy dialog
- You can now define "resources" for the okteto daemonset component. Use this to ensure that Kubernetes will reserve resources for the `daemonset`.
- Fix the race condition that prevented namespace-level resources from being displayed in the UI.
- You can now define "resources" for the okteto daemonset component. Use this to ensure that Kubernetes will reserve resources for the `daemonset`
- Fix the race condition that prevented namespace-level resources from being displayed in the UI
- Fix wrong "Last updated" time for development environments in the Okteto UI

## 1.2.0
25 November, 2022
November 25, 2022

### Features

- Update okteto cli version to [2.9.0](https://github.com/okteto/okteto/releases/tag/2.9.0)
- Support for self-signed certificates and private CA with Docker
- Buildkit port is now [configurable](/docs/self-hosted/administration/configuration/#buildkit)
- UI pagination support for GitHub branches list
- Save costs by allowing to scale down to zero nodes if no user pods are running
- Populate oauth errors to the user
- Added [configuration to set PSP and AppArmor](/docs/self-hosted/administration/configuration/#podSecurityPolicy)
- Update okteto cli version to [2.9.0](https://github.com/okteto/okteto/releases/tag/2.9.0)

### Bug Fix

### Improvements
- UI pagination support for GitHub branches list
- Populate oauth errors to the user


### Bugfixes

- Don't show warning when installing okteto on k8s 1.23.x
- Frontend nginx [CVE-2022-40303](https://access.redhat.com/security/cve/CVE-2022-40303)/[CVE-2022-40304](https://access.redhat.com/security/cve/CVE-2022-40304)
Expand All @@ -48,7 +86,7 @@ id: releases
- Virtual services are now correctly displayed in the dashboard

## 1.1.0
2 November, 2022
November 2, 2022

### Features
- Allow members of a namespace to share it.
Expand Down
69 changes: 69 additions & 0 deletions versioned_docs/version-1.4/administration/cleanup.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
title: Resource Cleanup
description: Okteto saves resources by putting to sleep idle applications and cleaning up unused namespaces.
sidebar_label: Resource Cleanup
id: cleanup
---

import Image from '@theme/Image';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';


## Sleeping resources

To automatically save resources in your cluster, you can configure Okteto to automatically scale inactive applications and resources to zero if they haven't been used for longer than the `inactivity` period.

## Inactive Applications and Resources

Okteto considers an application or resources inactive if a user hasn't performed any of the following tasks during the `inactivity` period:

- Upgrade or redeploy via the UI or the command line.
- Launched a development container with `okteto up`.
- Pushed the latest version of your code with `okteto push`.

Service accounts, config maps, secrets, or volumes you create will be unaffected by this operation.

## Wake sleeping resources

Okteto's UI will notify you when there are sleeping resources in your namespace. Press the **Wake all** button to activate all sleeping resources at once.

<p align="center"><Image src="/docs/administration/images/wake.png" alt="wake a sleeping resource" width="1000" /></p>

Sleeping resources are also started if anyone visits any of the public endpoints of your application.

## Delete Unused Namespaces

Namespaces and all the resources and data contained within will be deleted if they are not used for longer than the `deletion` period.

## Persistent resources <TiersList tiers="Scale Enterprise Self-Hosted" />

In case you are interested on the garbage collector but you want to skip some specific namespace, you can mark it as `persistent`. To do so, you can add the label `dev.okteto.com/persistent` to it or [use the admin view](/docs/administration/dashboard/#namespaces-section).

In case you want more granularity and only want to persist specific deployments or statefulsets within a namespace, you can include the label `dev.okteto.com/persistent` on those resources. In that case, the garbage collector will ignore only those specific resources while scaling down the rest of the namespace.


## Configuration Steps <TiersList tiers="Scale Enterprise Self-Hosted" />

You can consult the `deletion` and `inactivity` periods in the [Admin Dashboard](/docs/administration/dashboard).

<Tabs
defaultValue="self-hosted"
values={[
{ label: 'Self-Hosted', value: 'self-hosted', },
{ label: 'SaaS', value: 'saas', },
]}
>
<TabItem value="self-hosted">

You can enable and customize the `inactivity` and `deletion` periods via the [garbage collector's settings](/docs/self-hosted/administration/configuration/#gc).

</TabItem>

<TabItem value="saas">

If your instance is hosted by Okteto, [reach out to support](https://okteto.com/support) to modify this configuration.

</TabItem>
</Tabs>

Loading

0 comments on commit 86e060f

Please sign in to comment.