ShturvalServicePatch (PatchSSC)

В платформе “Штурвал” реализован кастомный ресурс ShturvalServicePatch (PatchSSC) для применения к спецификации (ShturvalServiceConfig, ssc) сервисов кластера. PatchSSC может быть полезен для массового применения типовой конфигурации экземпляров сервисов в разных кластерах. Механизм PatchSSC позволяет быстро откатить изменения в customvalues сервисов в случае ошибок или неверной конфигурации.

Вы можете подготовить один PatchSSC сервиса, добавив требуемые параметры конфигурации ssc сервиса, и раскатить его по всем необходимым кластерам.

Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: patchsscname
spec:
  shturvalServiceConfigName: servicename
  patchOrder: 1
  customvalues:
    paramname: value
  mode: auto

При формировании ShturvalServicePatch:

  • требуется задать связанность с сервисом. Укажите имя ShturvalServiceConfig в shturvalServiceConfigName.
  • необходимо указать имя для создаваемого PatchSSC в metadata.name. Имя созданного PatchSSC недоступно для изменения.
  • можно задать приоритетность применения ShturvalServicePatches в patchOrder. Чем меньше значение в patchOrder, тем выше приоритет ShturvalServicePatch. Если последовательность применения неважна, не указывайте данный параметр.
  • можно задать необходимые параметры конфигурации ssc сервиса. Укажите перечень параметров в customvalues, сохраняя иерархическую структуру.
  • при необходимости переопределите режим управления сервиса (автоматический, ручной, отключен). Доступные значения для mode: auto, manual, absent.
Пример примененного ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  creationTimestamp: 2025-07-03T08:02:17Z
  generation: 1
  labels:
    ops.shturval.tech/ssc: servicename
  name: servicename
  ownerReferences:
    - apiVersion: ops.shturval.tech/v1beta2
      blockOwnerDeletion: true
      controller: true
      kind: ShturvalServiceConfig
      name: servicename
      uid: c4908b5e-df92-4996-9403-2e452a6101e1
  resourceVersion: "1435845"
  uid: c3ca01fb-594f-4bb8-addb-bbbafff542d0
spec:
  customvalues:
    paramname: value
  shturvalServiceConfigName: servicename
Пример ssc c примененным ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta1
kind: ShturvalServiceConfig
metadata:
  ...
  name: servicename
  resourceVersion: '1489960'
  uid: c4908b5e-df92-
  selfLink: /apis/ops.shturval.tech/v1beta1/shturvalserviceconfigs/servicename
status:
  appliedCustomValues:
    paramname: value
## Здесь могут быть другие параметры из customvalues
  appliedPatches:
    - patchsscname
  conditions:
    - lastTransitionTime: '2025-07-01T09:03:58Z'
      message: ''
      reason: Install
      status: 'True'
      type: Install
    - lastTransitionTime: '2025-07-03T07:10:44Z'
      message: ''
      reason: Sync
      status: 'True'
      type: Sync
    - lastTransitionTime: '2025-07-01T09:08:11Z'
      message: ''
      reason: Healthy
      status: 'True'
      type: Healthy
    - lastTransitionTime: '2025-07-03T09:44:46Z'
      message: ''
      reason: Patch
      status: 'True'
      type: Patch
  currentmode: auto
  currentversion: 2.11.0
  ready: true
spec:
  chart: servicename
  customvalues: |
   ...
  dependency:
    - servicename-crds
  insecure: true
  mode: auto
  namespace: namespacename
  reponame: shturval
  version: 2.11.0

Как применить в графическом интерфейсе

В графическом интерфейсе загрузить ShturvalServicePatch вы можете с помощью импорта манифестов.

Сведения о созданных ShturvalServicePatch сервиса доступны в разделе Администрирование на странице Установленные сервисы/просмотр сервиса, на вкладке Примененные PatchSSC.

Скриншот

patchlist

Когда к сервису был применен ShturvalServicePatch, то у сервиса будет состояние Patch и статус Patched.

Удалить ShturvalServicePatch вы можете одним из способов:

  • на вкладке Примененные PatchSSC нажмите в строке объекта;
  • на странице просмотра манифеста PatchSSC нажмите .

Особенности работы ShturvalServicePatch

  1. Для одного сервиса возможно создать неограненное количество ShturvalServicePatches.
  2. С помощью ShturvalServicePatch возможно добавить или переопределить значения параметров конфигурации сервиса. С помощью ShturvalServicePatch невозможно удалить параметры и их значения в customvalues сервиса.
  3. Если у ShturvalServicePatches заданы приоритеты, то агрегация будет произведена с учетом приоритета, иначе - беспорядочно.
  4. Значение параметра в ShturvalServicePatch приоритетнее значения этого же параметра в customvalues самого сервиса. Значение параметра в customvalues будет игнорироваться при наличии этого же параметра в ShturvalServicePatch.
  5. Если в нескольких ShturvalServicePatch заданы одинаковые параметры, то будут применены параметры более приоритетного ShturvalServicePatch. Поэтому в таких случаях рекомендуется устанавливать patchOrder при создании ShturvalServicePatch. Если в таких ShturvalServicePatch не задана приоритетность, то выбор применения не предсказуем.
  6. При создании ShturvalServicePatch автоматически проставляется дата создания.
  7. ShturvalServicePatch возможно применить к спецификации сервиса в режиме Автоматического (Auto) управления. Если сервис работает в Ручном (Manual) режиме управления, для применения ShturvalServicePatch переведите сервис в автоматический режим или установите ShturvalServicePatch параметр modeсо значением auto.
×