Skip to content

ci: Add yaml validation of all yaml files in project. #1853

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Jun 23, 2025
Merged

Conversation

Matovidlo
Copy link
Contributor

@Matovidlo Matovidlo commented Jun 18, 2024

Jira: PSGO-685

Changes:

  • Reason: prevents PR issues/commentaries

Reason: prevents PR issues/commentaries
@Matovidlo Matovidlo force-pushed the ci-add-linter branch 3 times, most recently from c21ab63 to 2708db7 Compare June 12, 2025 10:29
* Continue with fixing task file, build files, compose.
* Ignore OpenAPI generated file to be fixed with yamllint
* Fix provisioning scripts
* Fix test outputs
Copy link

# Templates Kubernetes Diff [CI]

Between base c93fba1 ⬅️ head 9d1441b.

Expand
(see artifacts in the Github Action for more information)

@Matovidlo Matovidlo force-pushed the ci-add-linter branch 2 times, most recently from 1d7a28a to 32d7d1a Compare June 19, 2025 16:47
@Matovidlo Matovidlo marked this pull request as ready for review June 23, 2025 05:45
@Copilot Copilot AI review requested due to automatic review settings June 23, 2025 05:45
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds YAML document markers and enforces YAML validation across the project.

  • Inserts --- headers in all YAML files (tests, k8s templates, workflows, compose files) for proper parsing.
  • Introduces .yamllint.yml and a GitHub workflow to lint YAML files.
  • Updates DBT code generators to emit YAML with a document separator, consistent 2-space indentation, and a trailing newline.

Reviewed Changes

Copilot reviewed 70 out of 103 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.yamllint.yml, .github/workflows/yaml-lint.yml Add YAML lint configuration and CI workflow
pkg/lib/operation/dbt/generate/{sources,profile} Emit --- header and set 2-space indentation in generated YAML
provisioning/.../templates/*.yaml Prepend --- to Kubernetes manifests
.github/workflows/*.yml Prepend --- to workflows; add lint jobs and env fixes
docker-compose.yml Add --- header and fix stray backtick in comment
Comments suppressed due to low confidence (1)

.github/workflows/release-service-apps-proxy.yml:44

  • [nitpick] The workflow name uses 'K8s' but elsewhere the abbreviation appears as 'K8S'. Consider unifying the abbreviation style across workflows for consistency.
    name: "K8s: Apps Proxy"

Copy link

Apps Proxy Kubernetes Diff [CI]

Between base fcccad6 ⬅️ head 69b36a6.

Expand
--- /tmp/artifacts/test-k8s-state.old.json.processed.kv	2025-06-23 09:17:43.261337252 +0000
+++ /tmp/artifacts/test-k8s-state.new.json.processed.kv	2025-06-23 09:17:43.348337539 +0000
@@ -114 +114 @@
-<Deployment/apps-proxy>.spec.template.spec.containers[0].image = "docker.io/keboola/apps-proxy:fcccad6-1750669925";
+<Deployment/apps-proxy>.spec.template.spec.containers[0].image = "docker.io/keboola/apps-proxy:69b36a6-1750670082";
@@ -498,3 +498,3 @@
-<Pod/apps-proxy-<hash>>.spec.containers[0].image = "docker.io/keboola/apps-proxy:fcccad6-1750669925";
-<Pod/apps-proxy-<hash>>.spec.containers[0].image = "docker.io/keboola/apps-proxy:fcccad6-1750669925";
-<Pod/apps-proxy-<hash>>.spec.containers[0].image = "docker.io/keboola/apps-proxy:fcccad6-1750669925";
+<Pod/apps-proxy-<hash>>.spec.containers[0].image = "docker.io/keboola/apps-proxy:69b36a6-1750670082";
+<Pod/apps-proxy-<hash>>.spec.containers[0].image = "docker.io/keboola/apps-proxy:69b36a6-1750670082";
+<Pod/apps-proxy-<hash>>.spec.containers[0].image = "docker.io/keboola/apps-proxy:69b36a6-1750670082";
@@ -925 +925 @@
-<ReplicaSet/apps-proxy-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/apps-proxy:fcccad6-1750669925";
+<ReplicaSet/apps-proxy-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/apps-proxy:69b36a6-1750670082";


(see artifacts in the Github Action for more information)

Copy link

Templates API Kubernetes Diff [CI]

Between base fcccad6 ⬅️ head 69b36a6.

Expand
--- /tmp/artifacts/test-k8s-state.old.json.processed.kv	2025-06-23 09:20:06.927723248 +0000
+++ /tmp/artifacts/test-k8s-state.new.json.processed.kv	2025-06-23 09:20:07.143725276 +0000
@@ -210 +210 @@
-<Deployment/templates-api>.spec.template.spec.containers[0].image = "docker.io/keboola/templates-api:fcccad6-1750669920";
+<Deployment/templates-api>.spec.template.spec.containers[0].image = "docker.io/keboola/templates-api:69b36a6-1750670143";
@@ -486,0 +487,195 @@
+<Pod/templates-api-575c9d65c9-b8xsq> = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.apiVersion = "v1";
+<Pod/templates-api-575c9d65c9-b8xsq>.kind = "Pod";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.deletionGracePeriodSeconds = 30;
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.generateName = "templates-api-575c9d65c9-";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.labels = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.labels.app = "templates-api";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.labels.releaseId = "dev-my-release";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.labels["pod-template-hash"] = "575c9d65c9";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.labels["tags.datadoghq.com/env"] = "local-machine";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.labels["tags.datadoghq.com/service"] = "templates-api";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.labels["tags.datadoghq.com/version"] = "dev-my-release";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.labels["templates-api-etcd-client"] = "true";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.name = "templates-api-575c9d65c9-b8xsq";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.namespace = "templates-api";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.ownerReferences = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.ownerReferences[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.ownerReferences[0].apiVersion = "apps/v1";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.ownerReferences[0].blockOwnerDeletion = true;
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.ownerReferences[0].controller = true;
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.ownerReferences[0].kind = "ReplicaSet";
+<Pod/templates-api-575c9d65c9-b8xsq>.metadata.ownerReferences[0].name = "templates-api-575c9d65c9";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[0].name = "GOMEMLIMIT";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[0].value = "550MiB";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[10] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[10].name = "DD_SERVICE";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[10].valueFrom = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[10].valueFrom.fieldRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[10].valueFrom.fieldRef.apiVersion = "v1";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[10].valueFrom.fieldRef.fieldPath = "metadata.labels['tags.datadoghq.com/service']";�...
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[11] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[11].name = "DD_VERSION";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[11].valueFrom = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[11].valueFrom.fieldRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[11].valueFrom.fieldRef.apiVersion = "v1";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[11].valueFrom.fieldRef.fieldPath = "metadata.labels['tags.datadoghq.com/version']";�...
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[12] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[12].name = "OTEL_METRICS_EXEMPLAR_FILTER";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[12].value = "always_off";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[1] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[1].name = "TEMPLATES_NODE_ID";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[1].valueFrom = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[1].valueFrom.fieldRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[1].valueFrom.fieldRef.apiVersion = "v1";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[1].valueFrom.fieldRef.fieldPath = "spec.nodeName";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[2] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[2].name = "TEMPLATES_STORAGE_API_HOST";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[2].valueFrom = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[2].valueFrom.configMapKeyRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[2].valueFrom.configMapKeyRef.key = "storageApiHost";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[2].valueFrom.configMapKeyRef.name = "templates-api";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[3] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[3].name = "TEMPLATES_API_PUBLIC_URL";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[3].valueFrom = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[3].valueFrom.configMapKeyRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[3].valueFrom.configMapKeyRef.key = "templatesApiHost";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[3].valueFrom.configMapKeyRef.name = "templates-api";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[4] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[4].name = "TEMPLATES_ETCD_ENDPOINT";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[4].value = "templates-api-etcd.templates-api.svc.cluster.local:2379";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[5] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[5].name = "TEMPLATES_ETCD_USERNAME";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[5].value = "root";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[6] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[6].name = "TEMPLATES_ETCD_PASSWORD";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[6].valueFrom = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[6].valueFrom.secretKeyRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[6].valueFrom.secretKeyRef.key = "etcd-root-password";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[6].valueFrom.secretKeyRef.name = "templates-api-etcd";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[7] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[7].name = "TEMPLATES_ETCD_NAMESPACE";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[7].value = "templates-api";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[8] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[8].name = "DD_AGENT_HOST";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[8].valueFrom = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[8].valueFrom.fieldRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[8].valueFrom.fieldRef.apiVersion = "v1";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[8].valueFrom.fieldRef.fieldPath = "status.hostIP";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[9] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[9].name = "DD_ENV";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[9].valueFrom = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[9].valueFrom.fieldRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[9].valueFrom.fieldRef.apiVersion = "v1";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].env[9].valueFrom.fieldRef.fieldPath = "metadata.labels['tags.datadoghq.com/env']";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].image = "docker.io/keboola/templates-api:fcccad6-1750669920";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].imagePullPolicy = "IfNotPresent";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.failureThreshold = 3;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.httpGet = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.httpGet.httpHeaders = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.httpGet.httpHeaders[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.httpGet.httpHeaders[0].name = "Host";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.httpGet.httpHeaders[0].value = "KubernetesLivenessProbe";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.httpGet.path = "/health-check";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.httpGet.port = 8000;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.httpGet.scheme = "HTTP";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.periodSeconds = 10;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.successThreshold = 1;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].livenessProbe.timeoutSeconds = 1;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].name = "templates-api";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].ports = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].ports[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].ports[0].containerPort = 8000;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].ports[0].protocol = "TCP";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].ports[1] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].ports[1].containerPort = 9000;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].ports[1].protocol = "TCP";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.failureThreshold = 1;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.httpGet = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.httpGet.httpHeaders = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.httpGet.httpHeaders[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.httpGet.httpHeaders[0].name = "Host";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.httpGet.httpHeaders[0].value = "KubernetesReadinessProbe";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.httpGet.path = "/health-check";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.httpGet.port = 8000;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.httpGet.scheme = "HTTP";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.periodSeconds = 10;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.successThreshold = 1;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].readinessProbe.timeoutSeconds = 1;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].resources = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.failureThreshold = 30;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.httpGet = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.httpGet.httpHeaders = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.httpGet.httpHeaders[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.httpGet.httpHeaders[0].name = "Host";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.httpGet.httpHeaders[0].value = "KubernetesStartupProbe";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.httpGet.path = "/health-check";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.httpGet.port = 8000;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.httpGet.scheme = "HTTP";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.initialDelaySeconds = 10;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.periodSeconds = 1;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.successThreshold = 1;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].startupProbe.timeoutSeconds = 1;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].terminationMessagePath = "/dev/termination-log";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].terminationMessagePolicy = "File";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].volumeMounts = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].volumeMounts[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].volumeMounts[0].mountPath = "/var/run/secrets/kubernetes.io/serviceaccount";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.containers[0].volumeMounts[0].readOnly = true;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.dnsPolicy = "ClusterFirst";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.enableServiceLinks = true;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.nodeName = "templates-api";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.nodeSelector = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.nodeSelector.nodepool = "main";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.preemptionPolicy = "PreemptLowerPriority";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.priority = 0;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.restartPolicy = "Always";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.schedulerName = "default-scheduler";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.securityContext = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.serviceAccount = "default";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.serviceAccountName = "default";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.terminationGracePeriodSeconds = 30;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[0].effect = "NoExecute";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[0].key = "node.kubernetes.io/not-ready";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[0].operator = "Exists";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[0].tolerationSeconds = 300;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[1] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[1].effect = "NoExecute";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[1].key = "node.kubernetes.io/unreachable";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[1].operator = "Exists";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.tolerations[1].tolerationSeconds = 300;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.defaultMode = 420;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[0].serviceAccountToken = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[0].serviceAccountToken.expirationSeconds = 3607;
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[0].serviceAccountToken.path = "token";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[1] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[1].configMap = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[1].configMap.items = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[1].configMap.items[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[1].configMap.items[0].key = "ca.crt";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[1].configMap.items[0].path = "ca.crt";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[1].configMap.name = "kube-root-ca.crt";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[2] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[2].downwardAPI = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[2].downwardAPI.items = [];
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[2].downwardAPI.items[0] = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[2].downwardAPI.items[0].fieldRef = {};
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[2].downwardAPI.items[0].fieldRef.apiVersion = "v1";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[2].downwardAPI.items[0].fieldRef.fieldPath = "metadata.namespace";
+<Pod/templates-api-575c9d65c9-b8xsq>.spec.volumes[0].projected.sources[2].downwardAPI.items[0].path = "namespace";
@@ -754,3 +949,3 @@
-<Pod/templates-api-<hash>>.spec.containers[0].image = "docker.io/keboola/templates-api:fcccad6-1750669920";
-<Pod/templates-api-<hash>>.spec.containers[0].image = "docker.io/keboola/templates-api:fcccad6-1750669920";
-<Pod/templates-api-<hash>>.spec.containers[0].image = "docker.io/keboola/templates-api:fcccad6-1750669920";
+<Pod/templates-api-<hash>>.spec.containers[0].image = "docker.io/keboola/templates-api:69b36a6-1750670143";
+<Pod/templates-api-<hash>>.spec.containers[0].image = "docker.io/keboola/templates-api:69b36a6-1750670143";
+<Pod/templates-api-<hash>>.spec.containers[0].image = "docker.io/keboola/templates-api:69b36a6-1750670143";
@@ -1310,0 +1506,157 @@
+<Pod/templates-api-etcd-pre-upgrade-wr6fr> = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.apiVersion = "v1";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.kind = "Pod";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.generateName = "templates-api-etcd-pre-upgrade-";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels.app = "templates-api-etcd";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["app.kubernetes.io/component"] = "etcd-pre-upgrade-job";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["app.kubernetes.io/instance"] = "templates-api-etcd";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["app.kubernetes.io/managed-by"] = "Helm";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["app.kubernetes.io/name"] = "etcd";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["app.kubernetes.io/version"] = "3.5.21";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["batch.kubernetes.io/controller-uid"] = "cdd8b757-068e-4cf6-91df-66dcbbb3a3e9";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["batch.kubernetes.io/job-name"] = "templates-api-etcd-pre-upgrade";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["controller-uid"] = "cdd8b757-068e-4cf6-91df-66dcbbb3a3e9";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["helm.sh/chart"] = "etcd-11.3.4";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["job-name"] = "templates-api-etcd-pre-upgrade";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.labels["templates-api-etcd-client"] = "true";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.name = "templates-api-etcd-pre-upgrade-wr6fr";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.namespace = "templates-api";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.ownerReferences = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.ownerReferences[0] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.ownerReferences[0].apiVersion = "batch/v1";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.ownerReferences[0].blockOwnerDeletion = true;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.ownerReferences[0].controller = true;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.ownerReferences[0].kind = "Job";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.metadata.ownerReferences[0].name = "templates-api-etcd-pre-upgrade";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm = {}...
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labe...
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labe...
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labe...
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labe...
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labe...
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.topo...
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].weight = 1;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.automountServiceAccountToken = false;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].args = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].args[0] = "/opt/bitnami/scripts/etcd/preupgrade.sh";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].command = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].command[0] = "/opt/bitnami/scripts/etcd/entrypoint.sh";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[0] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[0].name = "BITNAMI_DEBUG";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[0].value = "false";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[1] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[1].name = "ETCD_ON_K8S";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[1].value = "yes";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[2] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[2].name = "ETCD_DATA_DIR";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[2].value = "/bitnami/etcd/data";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[3] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[3].name = "ETCD_ROOT_PASSWORD_FILE";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[3].value = "/opt/bitnami/etcd/secrets/etcd-root-password";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[4] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[4].name = "ETCD_INITIAL_CLUSTER";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[4].value = "templates-api-etcd-0=http://templates-api-etcd-0.templates-api-etc...
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[5] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[5].name = "ETCD_DISABLE_STORE_MEMBER_ID";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[5].value = "yes";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[6] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[6].name = "ETCD_QUOTA_BACKEND_BYTES";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[6].value = "8589934592";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[7] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[7].name = "ETCD_SNAPSHOT_COUNT";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[7].value = "10000";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[8] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[8].name = "GOMEMLIMIT";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[8].value = "256MiB";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[9] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[9].name = "ETCD_MAX_TXN_OPS";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].env[9].value = "1024";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].image = "docker.io/bitnami/etcd:3.5.21-debian-12-r1";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].imagePullPolicy = "IfNotPresent";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].name = "pre-upgrade-job";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources.limits = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources.limits.cpu = "375m";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources.limits.memory = "384Mi";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources.limits["ephemeral-storage"] = "2Gi";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources.requests = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources.requests.cpu = "250m";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources.requests.memory = "256Mi";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].resources.requests["ephemeral-storage"] = "50Mi";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.allowPrivilegeEscalation = false;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.capabilities = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.capabilities.drop = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.capabilities.drop[0] = "ALL";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.privileged = false;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.readOnlyRootFilesystem = true;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.runAsGroup = 1001;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.runAsNonRoot = true;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.runAsUser = 1001;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.seLinuxOptions = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.seccompProfile = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].securityContext.seccompProfile.type = "RuntimeDefault";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].terminationMessagePath = "/dev/termination-log";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].terminationMessagePolicy = "File";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[0] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[0].mountPath = "/opt/bitnami/etcd/conf/";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[0].subPath = "app-conf-dir";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[1] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[1].mountPath = "/tmp";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[1].subPath = "tmp-dir";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[2] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[2].mountPath = "/opt/bitnami/etcd/certs/token/";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[2].readOnly = true;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[3] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.containers[0].volumeMounts[3].mountPath = "/opt/bitnami/etcd/secrets";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.dnsPolicy = "ClusterFirst";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.enableServiceLinks = true;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.nodeName = "templates-api";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.nodeSelector = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.nodeSelector.nodepool = "main";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.preemptionPolicy = "PreemptLowerPriority";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.priority = 0;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.restartPolicy = "Never";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.schedulerName = "default-scheduler";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.securityContext = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.securityContext.fsGroup = 1001;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.securityContext.fsGroupChangePolicy = "Always";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.serviceAccount = "default";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.serviceAccountName = "default";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.terminationGracePeriodSeconds = 30;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[0] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[0].effect = "NoExecute";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[0].key = "node.kubernetes.io/not-ready";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[0].operator = "Exists";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[0].tolerationSeconds = 300;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[1] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[1].effect = "NoExecute";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[1].key = "node.kubernetes.io/unreachable";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[1].operator = "Exists";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.tolerations[1].tolerationSeconds = 300;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[0] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[0].emptyDir = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[1] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[1].secret = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[1].secret.defaultMode = 256;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[1].secret.secretName = "templates-api-etcd-jwt-token";
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[2] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[2].projected = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[2].projected.defaultMode = 420;
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[2].projected.sources = [];
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[2].projected.sources[0] = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[2].projected.sources[0].secret = {};
+<Pod/templates-api-etcd-pre-upgrade-wr6fr>.spec.volumes[2].projected.sources[0].secret.name = "templates-api-etcd";
@@ -1428 +1780 @@
-<ReplicaSet/templates-api-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/templates-api:fcccad6-1750669920";
+<ReplicaSet/templates-api-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/templates-api:69b36a6-1750670143";
@@ -1499,0 +1852,12 @@
+<Secret/sh.helm.release.v1.templates-api-etcd.v2> = {};
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.apiVersion = "v1";
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.data = {};
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.kind = "Secret";
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.metadata = {};
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.metadata.labels = {};
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.metadata.labels.name = "templates-api-etcd";
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.metadata.labels.owner = "helm";
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.metadata.labels.version = "2";
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.metadata.name = "sh.helm.release.v1.templates-api-etcd.v2";
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.metadata.namespace = "templates-api";
+<Secret/sh.helm.release.v1.templates-api-etcd.v2>.type = "helm.sh/release.v1";


(see artifacts in the Github Action for more information)

Copy link

Stream Kubernetes Diff [CI]

Between base fcccad6 ⬅️ head 69b36a6.

Expand
--- /tmp/artifacts/test-k8s-state.old.json.processed.kv	2025-06-23 09:28:02.181519559 +0000
+++ /tmp/artifacts/test-k8s-state.new.json.processed.kv	2025-06-23 09:28:02.639527715 +0000
@@ -203 +203 @@
-<Deployment/stream-api>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Deployment/stream-api>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -367 +367 @@
-<Deployment/stream-http-source>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Deployment/stream-http-source>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -528 +528 @@
-<Deployment/stream-storage-coordinator>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Deployment/stream-storage-coordinator>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -725 +725 @@
-<Endpoints/stream-storage-writer-reader>.subsets[0].addresses[0].hostname = "stream-storage-writer-reader-0";
+<Endpoints/stream-storage-writer-reader>.subsets[0].addresses[0].hostname = "stream-storage-writer-reader-1";
@@ -729 +729 @@
-<Endpoints/stream-storage-writer-reader>.subsets[0].addresses[0].targetRef.name = "stream-storage-writer-reader-0";
+<Endpoints/stream-storage-writer-reader>.subsets[0].addresses[0].targetRef.name = "stream-storage-writer-reader-1";
@@ -732 +732 @@
-<Endpoints/stream-storage-writer-reader>.subsets[0].addresses[1].hostname = "stream-storage-writer-reader-1";
+<Endpoints/stream-storage-writer-reader>.subsets[0].addresses[1].hostname = "stream-storage-writer-reader-0";
@@ -736 +736 @@
-<Endpoints/stream-storage-writer-reader>.subsets[0].addresses[1].targetRef.name = "stream-storage-writer-reader-1";
+<Endpoints/stream-storage-writer-reader>.subsets[0].addresses[1].targetRef.name = "stream-storage-writer-reader-0";
@@ -1222,2 +1222,2 @@
-<Pod/stream-api-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
-<Pod/stream-api-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Pod/stream-api-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
+<Pod/stream-api-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -2200,0 +2201,157 @@
+<Pod/stream-etcd-pre-upgrade-rxfrp> = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.apiVersion = "v1";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.kind = "Pod";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.generateName = "stream-etcd-pre-upgrade-";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels.app = "stream-etcd";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["app.kubernetes.io/component"] = "etcd-pre-upgrade-job";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["app.kubernetes.io/instance"] = "stream-etcd";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["app.kubernetes.io/managed-by"] = "Helm";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["app.kubernetes.io/name"] = "etcd";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["app.kubernetes.io/version"] = "3.5.21";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["batch.kubernetes.io/controller-uid"] = "96768719-dd55-48f5-978f-12d1300a4895";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["batch.kubernetes.io/job-name"] = "stream-etcd-pre-upgrade";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["controller-uid"] = "96768719-dd55-48f5-978f-12d1300a4895";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["helm.sh/chart"] = "etcd-11.3.4";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["job-name"] = "stream-etcd-pre-upgrade";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.labels["stream-etcd-client"] = "true";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.name = "stream-etcd-pre-upgrade-rxfrp";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.namespace = "stream";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.ownerReferences = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.ownerReferences[0] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.ownerReferences[0].apiVersion = "batch/v1";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.ownerReferences[0].blockOwnerDeletion = true;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.ownerReferences[0].controller = true;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.ownerReferences[0].kind = "Job";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.metadata.ownerReferences[0].name = "stream-etcd-pre-upgrade";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labelSelect...
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labelSelect...
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labelSelect...
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labelSelect...
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.labelSelect...
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].podAffinityTerm.topologyKey...
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].weight = 1;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.automountServiceAccountToken = false;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].args = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].args[0] = "/opt/bitnami/scripts/etcd/preupgrade.sh";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].command = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].command[0] = "/opt/bitnami/scripts/etcd/entrypoint.sh";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[0] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[0].name = "BITNAMI_DEBUG";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[0].value = "false";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[1] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[1].name = "ETCD_ON_K8S";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[1].value = "yes";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[2] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[2].name = "ETCD_DATA_DIR";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[2].value = "/bitnami/etcd/data";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[3] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[3].name = "ETCD_ROOT_PASSWORD_FILE";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[3].value = "/opt/bitnami/etcd/secrets/etcd-root-password";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[4] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[4].name = "ETCD_INITIAL_CLUSTER";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[4].value = "stream-etcd-0=http://stream-etcd-0.stream-etcd-headless.stream.svc.cluste...
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[5] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[5].name = "ETCD_DISABLE_STORE_MEMBER_ID";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[5].value = "yes";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[6] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[6].name = "ETCD_QUOTA_BACKEND_BYTES";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[6].value = "8589934592";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[7] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[7].name = "ETCD_SNAPSHOT_COUNT";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[7].value = "10000";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[8] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[8].name = "GOMEMLIMIT";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[8].value = "200MiB";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[9] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[9].name = "ETCD_MAX_TXN_OPS";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].env[9].value = "1024";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].image = "docker.io/bitnami/etcd:3.5.21-debian-12-r1";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].imagePullPolicy = "IfNotPresent";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].name = "pre-upgrade-job";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources.limits = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources.limits.cpu = "375m";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources.limits.memory = "384Mi";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources.limits["ephemeral-storage"] = "2Gi";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources.requests = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources.requests.cpu = "250m";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources.requests.memory = "256Mi";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].resources.requests["ephemeral-storage"] = "50Mi";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.allowPrivilegeEscalation = false;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.capabilities = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.capabilities.drop = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.capabilities.drop[0] = "ALL";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.privileged = false;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.readOnlyRootFilesystem = true;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.runAsGroup = 1001;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.runAsNonRoot = true;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.runAsUser = 1001;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.seLinuxOptions = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.seccompProfile = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].securityContext.seccompProfile.type = "RuntimeDefault";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].terminationMessagePath = "/dev/termination-log";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].terminationMessagePolicy = "File";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[0] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[0].mountPath = "/opt/bitnami/etcd/conf/";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[0].subPath = "app-conf-dir";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[1] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[1].mountPath = "/tmp";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[1].subPath = "tmp-dir";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[2] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[2].mountPath = "/opt/bitnami/etcd/certs/token/";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[2].readOnly = true;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[3] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.containers[0].volumeMounts[3].mountPath = "/opt/bitnami/etcd/secrets";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.dnsPolicy = "ClusterFirst";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.enableServiceLinks = true;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.nodeName = "stream";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.nodeSelector = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.nodeSelector.nodepool = "main";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.preemptionPolicy = "PreemptLowerPriority";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.priority = 0;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.restartPolicy = "Never";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.schedulerName = "default-scheduler";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.securityContext = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.securityContext.fsGroup = 1001;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.securityContext.fsGroupChangePolicy = "Always";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.serviceAccount = "default";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.serviceAccountName = "default";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.terminationGracePeriodSeconds = 30;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[0] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[0].effect = "NoExecute";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[0].key = "node.kubernetes.io/not-ready";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[0].operator = "Exists";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[0].tolerationSeconds = 300;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[1] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[1].effect = "NoExecute";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[1].key = "node.kubernetes.io/unreachable";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[1].operator = "Exists";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.tolerations[1].tolerationSeconds = 300;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[0] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[0].emptyDir = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[1] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[1].secret = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[1].secret.defaultMode = 256;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[1].secret.secretName = "stream-etcd-jwt-token";
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[2] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[2].projected = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[2].projected.defaultMode = 420;
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[2].projected.sources = [];
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[2].projected.sources[0] = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[2].projected.sources[0].secret = {};
+<Pod/stream-etcd-pre-upgrade-rxfrp>.spec.volumes[2].projected.sources[0].secret.name = "stream-etcd";
@@ -2367,2 +2524,2 @@
-<Pod/stream-http-source-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
-<Pod/stream-http-source-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Pod/stream-http-source-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
+<Pod/stream-http-source-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -2759,2 +2916,2 @@
-<Pod/stream-storage-coordinator-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
-<Pod/stream-storage-coordinator-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Pod/stream-storage-coordinator-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
+<Pod/stream-storage-coordinator-<hash>>.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -2995 +3152 @@
-<Pod/stream-storage-writer-reader-0>.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Pod/stream-storage-writer-reader-0>.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -3078 +3235 @@
-<Pod/stream-storage-writer-reader-0>.spec.containers[1].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Pod/stream-storage-writer-reader-0>.spec.containers[1].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -3248 +3405 @@
-<Pod/stream-storage-writer-reader-1>.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Pod/stream-storage-writer-reader-1>.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -3331 +3488 @@
-<Pod/stream-storage-writer-reader-1>.spec.containers[1].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<Pod/stream-storage-writer-reader-1>.spec.containers[1].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -3569 +3726 @@
-<ReplicaSet/stream-api-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<ReplicaSet/stream-api-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -3740 +3897 @@
-<ReplicaSet/stream-http-source-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<ReplicaSet/stream-http-source-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -3908 +4065 @@
-<ReplicaSet/stream-storage-coordinator-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<ReplicaSet/stream-storage-coordinator-<hash>>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -3949,0 +4107,12 @@
+<Secret/sh.helm.release.v1.stream-etcd.v2> = {};
+<Secret/sh.helm.release.v1.stream-etcd.v2>.apiVersion = "v1";
+<Secret/sh.helm.release.v1.stream-etcd.v2>.data = {};
+<Secret/sh.helm.release.v1.stream-etcd.v2>.kind = "Secret";
+<Secret/sh.helm.release.v1.stream-etcd.v2>.metadata = {};
+<Secret/sh.helm.release.v1.stream-etcd.v2>.metadata.labels = {};
+<Secret/sh.helm.release.v1.stream-etcd.v2>.metadata.labels.name = "stream-etcd";
+<Secret/sh.helm.release.v1.stream-etcd.v2>.metadata.labels.owner = "helm";
+<Secret/sh.helm.release.v1.stream-etcd.v2>.metadata.labels.version = "2";
+<Secret/sh.helm.release.v1.stream-etcd.v2>.metadata.name = "sh.helm.release.v1.stream-etcd.v2";
+<Secret/sh.helm.release.v1.stream-etcd.v2>.metadata.namespace = "stream";
+<Secret/sh.helm.release.v1.stream-etcd.v2>.type = "helm.sh/release.v1";
@@ -4498 +4667 @@
-<StatefulSet/stream-storage-writer-reader>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<StatefulSet/stream-storage-writer-reader>.spec.template.spec.containers[0].image = "docker.io/keboola/stream-api:69b36a6-1750670390";
@@ -4578 +4747 @@
-<StatefulSet/stream-storage-writer-reader>.spec.template.spec.containers[1].image = "docker.io/keboola/stream-api:fcccad6-1750669930";
+<StatefulSet/stream-storage-writer-reader>.spec.template.spec.containers[1].image = "docker.io/keboola/stream-api:69b36a6-1750670390";


(see artifacts in the Github Action for more information)

@Matovidlo Matovidlo merged commit c7e2e71 into main Jun 23, 2025
32 of 33 checks passed
@Matovidlo Matovidlo deleted the ci-add-linter branch June 23, 2025 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants