Changelog since v1.25.5
En
Components that will be restarted during the update
- Prometheus
cloud-provider-aws
log-shipper
monitoring-kubernetes
upmeter
user-authn
Significant Changes
New Deckhouse update mechanism
Now you can define update windows, in which Deckhouse can update to a newer release. Also, you can set the manual update mode, in which your approval is required to update Deckhouse to a more recent release.
Update mode is not affecting patch version updates.
Read the documentation for more information.
CIS benchmark compliance
Important changes in components to achieve compliance with CIS Benchmark.
Most of the changes are related to security, such as file and folder permissions, network bindings only to required interfaces, using certificates, rejecting anonymous access, etc.
New modules
pod-reloader
Provides the ability for automatic rollout on ConfigMap or Secret changes. It uses annotations for operating, runs on system nodes, and it's enabled by default.
local-path-provisioner
Provides a way for the Kubernetes users to utilize the local storage on each node.
Other Changes
[bashible]
- Enhancement: remove unnecessary disruption when containerd config is changed.
- Enhancement: mount CA certificates in CentOS distros into control-plane Pods.
[build]
- Fix registry auth 401 error.
- Enhancement: do not install bash and jq for shell-operator based images.
[candi]
[cert-manager]
- Fix: update
acme-solver
Secret if Deckhouse registry Secret was changed.
[cloud-provider-aws]
- Fix: don't delete Ingress SecurityGroup Rule while deleting ELB backend Service.
- Enhancement: add WithNAT layout.
[cloud-provider-gcp]
[deckhouse-controller]
- Refactoring: migrate to Go
1.16
. - Enhancement: use
PatchCollector
instead ofObjectPatcher
.
[deckhouse]
- Enhancement: use logrus for helm logs (to write logs in JSON).
- Enhancement: speed up converge (becomes Ready faster).
- Enhancement: add Liveness probe.
[descheduler]
- Enhancement: disable module in a single node cluster.
[dhctl]
- Enhancement: get the address of the bastion host from Terraform outputs for bootstrap and destroy.
[global]
- Enhancement: add additional parameters to configure access to registry (CA, scheme).
- Enhancement: add metrics for calculating the maximum amount of nodes in a cluster (based on
podSubnetCIDR
,podSubnetNodeCIDR
). Add an alert, triggered if the number of nodes > 90% of the calculated maximum. - Refactoring: migrate to Go
1.16
.
[grafana]
- Enhancement: update
Node
Dashboard to actual version. AddTCP TimeWait
graph. Remove unnecessary panels (Systemd, hardware temp).
[istio]
- Enhancement: add
ingressGateway
support for multicluster.
[log-shipper]
- Enhancement: update Vector to version
0.16.*
, which has improved performance and bug fixes. - Refactoring for extra labels.
- Fix VPA OpenAPI Specification.
[node-manager]
- Enhancement: add taint validation for
NodeGroups
. - Enhancement: add support for zero integer value of
.spec.cloudInstances.standby
in the NodeGroup. Zero value means "no standby nodes are needed". - Enhancement: store bashible
apiserver
context as a Secret. - Enhancement: cordon nodes before draining.
- Enhancement: disable changing cri type of master NodeGroup in clusters with a single master.
[okmeter]
- Enhancement: add
nodeSelector
support.
[operator-prometheus]
- Enhancement: add validating admission webhook for
CustomPrometheusRules
. Bumpprometheus-operator
tov0.50.0
. Refactor allPodMonitors
andServiceMonitors
to use certificates from a Secret.
[prometheus-metrics-adapter]
- refactor: rewrite hooks in Go.
[prometheus]
- Enhancement: scrape metrics from Prometheus Longterm to check whether it has any trouble accessing the Main Prometheus.
[site][documentation]
- Enhancement: add comparison table of the Deckhouse editions.
- Enhancement: show supported Kubernetes and Linux versions.
- Enhancement: add vSphere Getting Started.
[upmeter]
- Fix bug when upmeter release fails in clusters managed by external providers.
- Enhancement: add Liveness probe.
- Fix rendering of
smoke-mini
templates. - Refactoring: rewrite hooks in Go.
[user-authn]
- Fix: reorder dex certificate on SANs change (Subject Alternative Names).
- Fix: dex concurrent requests fix.
- Enhancement: validate bcrypt hash.
- Fix: make
applicationIngressCertificateSecretName
optional for CRDexAuthenticator
.
[user-authz]
- Enhancement: count
.*
and.+
masks inlimitNamespaces
parameter as unrestricted access to namespaces. - Fix disabling
allowScale
in theClusterAuthorizationRule
CR. - Fix: forbid cluster scope requests.
[vertical-pod-autoscaler]
- Enhancement: bump CRD version to
v1
.
[vpa]
- Fix
set_maxallowed
hook overflow error.
Ru
Компоненты, которые будут перезапущены в процессе обновления
- Prometheus
cloud-provider-aws
log-shipper
monitoring-kubernetes
upmeter
user-authn
Важные изменения
Новый механизм обновлений
Стало возможным определять окна обновлений, в которые Deckhouse будет выполнять обновление релиза (смена в пределах минорной версии). Также, можно выбрать ручной режим обновлений, который требует ручное подтверждение для смены релиза Deckhouse.
Новый механизм не влияет на обновления patch-версий (они как и раньше будут применяться по мере появления).
Подробнее — в документации.
Соответствие CIS benchmark
Ряд важных изменений компонентов, чтобы соответствовать рекомендациям CIS Benchmark.
Большинство изменений касаются безопасности, например прав на файлы и папки, сетевые привязки только на необходимые интерфейсы, использование сертификатов, исключение анонимного доступа и т.п. Подобные работы проводятся постоянно, и раз за разом повышают уровень безопасности Deckhouse.
Новые модули
pod-reloader
Следит за набором Secret и ConfigMap, которые вы определили, чтобы в случае их изменения перезапустить определенный Deployment, Daemonset или Statefulset.
Модуль основан на Reloader, использует аннотации для работы, выполняется на системных узлах и включен по умолчанию.
local-path-provisioner
Делает работу с local storage чуть легче, обеспечивая создание storageClass и необходимой структуры папок на узлах.
Другие изменения
[bashible]
- Улучшение: удалено лишнее прерывание работы узла, при изменении конфигурации containerd.
- Улучшение: монтирование CA-сертификатов в CentOS.
[build]
- Исправление ошибки 401 при авторизации в registry.
- Улучшение: исключена установка
bash
иjq
для образов, на основе shell-operator.
[candi]
- Исправление работы со сторонними registry.
- Исправление: обновлена версия драйвера vSphere до версии
v2.0.2
.
[cert-manager]
- Исправление: обновление Secret'а
acme-solver
при изменении Secret'а registry Deckhouse.
[cloud-provider-aws]
- Исправление: при использовании ELB, удаление Service теперь не приводит к удалению Ingress-правил SecurityGroup.
- Улучшение: добавлена схема размещения WithNAT.
[cloud-provider-gcp]
[deckhouse-controller]
- Рефакторинг: миграция на Go
1.16
. - Улучшение: использование
PatchCollector
вместоObjectPatcher
.
[deckhouse]
- Улучшение: использование logrus для helm (пишет в JSON-формате теперь).
- Улучшение: повышена скорость converge'а (быстрее переходит в Ready).
- Улучшение: добавлена Liveness-проба.
[descheduler]
- Улучшение: модуль отключается в кластере, состоящим из одного узла.
[dhctl]
- Улучшение получения адреса bastion-хоста. Снимает некоторые ошибки, которые могли возникать при создании и уничтожении кластера.
[global]
- Улучшение: дополнительные параметры для настройки доступа к registry (CA, scheme).
- Улучшение: добавлены метрики определения максимально возможного количества узлов в кластере (высчитываются на основе значений
podSubnetCIDR
,podSubnetNodeCIDR
). Добавлен алерт по превышению 90% максимального количества узлов. - Рефакторинг: миграция на Go
1.16
.
[grafana]
- Улучшение: актуализирована версия Dashboard
Node
. Добавлен графикTCP TimeWait
. Удалены лишние панели (Systemd, hardware temp).
[istio]
- Улучшение: добавлена поддержка
ingressGateway
для мультикластеров.
[log-shipper]
- Улучшение: Vector обновлен до версии
0.16.*
, несущей исправления и улучшение производительности. - Рефакторинг работы с extra labels.
- Исправление VPA OpenAPI-спецификации.
[node-manager]
- Улучшение: добавлена валидация taint для
NodeGroups
. - Улучшение: добавлена возможность указывать нулевое значение
.spec.cloudInstances.standby
в параметрах NodeGroup'ы, подразумевающем, что standby-узлы не требуются. - Улучшение: bashible-контекст
apiserver
теперь хранится в Secret. - Улучшение: перед drain узла выполняется его cordon.
- Улучшение: запрет смены типа cri у NodeGroup master-узлов, если в кластере только один master-узел.
[okmeter]
- Улучшение: добавлена поддержка
nodeSelector
.
[operator-prometheus]
- Улучшение: добавлен хук валидации
CustomPrometheusRules
. Обновлена версияprometheus-operator
до версииv0.50.0
. РефакторингPodMonitors
иServiceMonitors
для использования сертификатов из Secret'а.
[prometheus-metrics-adapter]
- Рефакторинг: хуки переписаны на Go.
[prometheus]
- Улучшение: добавлены метрики проверки ошибок доступа Prometheus Longterm к Prometheus.
[site][documentation]
- Улучшение: добавлена таблица сравнений редакций Deckhouse editions в разрезе модулей.
- Улучшение: добавлена страница со списком подерживаемых версий Kubernetes и дистрибутивов Linux.
- Улучшение: добавлен vSphere в раздел Быстрый старт.
[upmeter]
- Исправление ошибки выката модуля прииспользованияи внешних провайдеров.
- Улучшение: добавлена Liveness проба.
- Исправление рендеринга шаблоном
smoke-mini
. - Рефакторинг: хуки переписаны на Go.
[user-authn]
- Исправление: перезаказ сертификатов dex при изменении SAN (Subject Alternative Names).
- Исправление: dex работы конкурентных запросов.
- Улучшение: добавлена валидация bcrypt-хэша.
- Исправление: параметр
applicationIngressCertificateSecretName
в CRDexAuthenticator
теперь не обязательный.
[user-authz]
- Улучшение: добавлена интерпретация масок
.*
и.+
в качестве значений параметраlimitNamespaces
(подразумевает доступ без ограничений). - Исправление логики отключения
allowScale
в CRClusterAuthorizationRule
(мог не отключать, несмотря на настройки). - Исправление: запрет доступа к кластерным объектам (cluster scope), если у пользователя установлено ограничение доступа по Namespace.
[vertical-pod-autoscaler]
- Улучшение: обновлена версия CRD до версии
v1
.
[vpa]
- Исправление ошибки переполнения хука
set_maxallowed
.