Skip to content

When deploying with skaffold invalid spec.tolerations are introduced #167

@asfourco

Description

@asfourco

Context:

Helm chart version: 2.18.1

We are using skaffold and kustomize to build and deploy uptime-kuma to our GKE cluster in our GCP project. Normal flow is verify that the manifest is properly constructed using skaffold render, and then deploy with skaffold deploy

Issue

With this new helm chart version, new tolerations are introduced incorrectly, error message:

skaffold deploy
Starting deploy...
 - serviceaccount/uptime-kuma unchanged
 - persistentvolumeclaim/uptime-kuma-pvc unchanged
 - ingress.networking.k8s.io/uptime-kuma configured
 - pod/uptime-kuma-test-connection configured
 - Error from server (Invalid): error when applying patch:
 - {"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"
 {\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/instance\":\"uptime-
 kuma\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"uptime-
 kuma\",\"app.kubernetes.io/version\":\"1.23.13\",\"helm.sh/chart\":\"uptime-kuma-2.18.1\",\"skaffold.dev/run-id\":\"7f18b68f-
 680a-4d69-b18d-ec521b94de34\"},\"name\":\"uptime-kuma\",\"namespace\":\"monitoring\"},\"spec\":{\"ports\":
 [{\"name\":\"http\",\"port\":3001,\"protocol\":\"TCP\",\"targetPort\":3001}],\"selector\":
 {\"app.kubernetes.io/instance\":\"uptime-kuma\",\"app.kubernetes.io/name\":\"uptime-kuma\"},\"tolerations\":
[{\"effect\":\"NoSchedule\",\"key\":\"kubernetes.io/arch\",\"operator\":\"Equal\",\"value\":\"arm64\"}],\"type\":\"ClusterIP\"}}\n"}
,"labels":{"skaffold.dev/run-id":"7f18b68f-680a-4d69-b18d-ec521b94de34"}},"spec":{"tolerations":
[{"effect":"NoSchedule","key":"kubernetes.io/arch","operator":"Equal","value":"arm64"}]}}
 - to:
 - Resource: "/v1, Resource=services", GroupVersionKind: "/v1, Kind=Service"
 - Name: "uptime-kuma", Namespace: "monitoring"
 - for: "STDIN": error when patching "STDIN":  "" is invalid: patch: Invalid value: 
 "map[metadata:map[annotations:map[kubectl.kubernetes.io/last-applied-configuration:
 {\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app.kubernetes.io/instance\":\"uptime-
 kuma\",\"app.kubernetes.io/managed-by\":\"Helm\",\"app.kubernetes.io/name\":\"uptime-
 kuma\",\"app.kubernetes.io/version\":\"1.23.13\",\"helm.sh/chart\":\"uptime-kuma-2.18.1\",\"skaffold.dev/run-id\":\"7f18b68f-
 680a-4d69-b18d-ec521b94de34\"},\"name\":\"uptime-kuma\",\"namespace\":\"monitoring\"},\"spec\":{\"ports\":
 [{\"name\":\"http\",\"port\":3001,\"protocol\":\"TCP\",\"targetPort\":3001}],\"selector\":
 {\"app.kubernetes.io/instance\":\"uptime-kuma\",\"app.kubernetes.io/name\":\"uptime-kuma\"},\"tolerations\":
 [{\"effect\":\"NoSchedule\",\"key\":\"kubernetes.io/arch\",\"operator\":\"Equal\",\"value\":\"arm64\"}],\"type\":\"ClusterIP\"}}\n] 
 labels:map[skaffold.dev/run-id:7f18b68f-680a-4d69-b18d-ec521b94de34]] spec:map[tolerations:[map[effect:NoSchedule 
 key:kubernetes.io/arch operator:Equal value:arm64]]]]": strict decoding error: unknown field "spec.tolerations"
 
 - Error from server (Invalid): error when applying patch:
 
 - {"metadata":{"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"
 {\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":
 {\"app.kubernetes.io/instance\":\"uptime-kuma\",\"app.kubernetes.io/managed-
 by\":\"Helm\",\"app.kubernetes.io/name\":\"uptime-
 kuma\",\"app.kubernetes.io/version\":\"1.23.13\",\"helm.sh/chart\":\"uptime-kuma-2.18.1\",\"skaffold.dev/run-id\":\"7f18b68f-
 680a-4d69-b18d-ec521b94de34\"},\"name\":\"uptime-kuma\",\"namespace\":\"monitoring\"},\"spec\":
 {\"replicas\":1,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/instance\":\"uptime-
 kuma\",\"app.kubernetes.io/name\":\"uptime-kuma\"}},\"strategy\":{\"type\":\"Recreate\"},\"template\":{\"metadata\":
 {\"labels\":{\"app.kubernetes.io/instance\":\"uptime-kuma\",\"app.kubernetes.io/name\":\"uptime-kuma\",\"skaffold.dev/run-
 id\":\"7f18b68f-680a-4d69-b18d-ec521b94de34\"}},\"spec\":{\"containers\":[{\"env\":
 [{\"name\":\"UPTIME_KUMA_PORT\",\"value\":\"3001\"}],\"image\":\"louislam/uptime-kuma:1.23.13-
 debian\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"exec\":{\"command\":
 [\"extra/healthcheck\"]},\"initialDelaySeconds\":15,\"timeoutSeconds\":2},\"name\":\"uptime-kuma\",\"ports\":
 [{\"containerPort\":3001,\"name\":\"http\",\"protocol\":\"TCP\"}],\"readinessProbe\":{\"httpGet\":
 {\"path\":\"/\",\"port\":3001,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":5},\"resources\":{\"requests\":
 {\"cpu\":\"250m\",\"memory\":\"64Mi\"}},\"securityContext\":{},\"volumeMounts\":
 [{\"mountPath\":\"/app/data\",\"name\":\"storage\"}]}],\"nodeSelector\":
 {\"app/service\":\"public\"},\"securityContext\":{},\"serviceAccountName\":\"uptime-kuma\",\"tolerations\":
 [{\"effect\":\"NoSchedule\",\"key\":\"app/service\",\"operator\":\"Equal\",\"value\":\"public\"}],\"volumes\":
 [{\"name\":\"storage\",\"persistentVolumeClaim\":{\"claimName\":\"uptime-kuma-pvc\"}}]}},\"tolerations\":
 [{\"effect\":\"NoSchedule\",\"key\":\"kubernetes.io/arch\",\"operator\":\"Equal\",\"value\":\"arm64\"}]}}\n"},"labels":
 {"skaffold.dev/run-id":"7f18b68f-680a-4d69-b18d-ec521b94de34"}},"spec":{"template":{"metadata":{"labels":
 {"skaffold.dev/run-id":"7f18b68f-680a-4d69-b18d-ec521b94de34"}}},"tolerations":
 [{"effect":"NoSchedule","key":"kubernetes.io/arch","operator":"Equal","value":"arm64"}]}}
 
 - to:
 
 - Resource: "apps/v1, Resource=deployments", GroupVersionKind: "apps/v1, Kind=Deployment"
 
 - Name: "uptime-kuma", Namespace: "monitoring"
 
 - for: "STDIN": error when patching "STDIN":  "" is invalid: patch: Invalid value: 
 "map[metadata:map[annotations:map[kubectl.kubernetes.io/last-applied-configuration:
 {\"apiVersion\":\"apps/v1\",\"kind\":\"Deployment\",\"metadata\":{\"annotations\":{},\"labels\":
 {\"app.kubernetes.io/instance\":\"uptime-kuma\",\"app.kubernetes.io/managed-
 by\":\"Helm\",\"app.kubernetes.io/name\":\"uptime-
 kuma\",\"app.kubernetes.io/version\":\"1.23.13\",\"helm.sh/chart\":\"uptime-kuma-2.18.1\",\"skaffold.dev/run-id\":\"7f18b68f-
 680a-4d69-b18d-ec521b94de34\"},\"name\":\"uptime-kuma\",\"namespace\":\"monitoring\"},\"spec\":
 {\"replicas\":1,\"selector\":{\"matchLabels\":{\"app.kubernetes.io/instance\":\"uptime-
 kuma\",\"app.kubernetes.io/name\":\"uptime-kuma\"}},\"strategy\":{\"type\":\"Recreate\"},\"template\":{\"metadata\":
 {\"labels\":{\"app.kubernetes.io/instance\":\"uptime-kuma\",\"app.kubernetes.io/name\":\"uptime-kuma\",\"skaffold.dev/run-
 id\":\"7f18b68f-680a-4d69-b18d-ec521b94de34\"}},\"spec\":{\"containers\":[{\"env\":
 [{\"name\":\"UPTIME_KUMA_PORT\",\"value\":\"3001\"}],\"image\":\"louislam/uptime-kuma:1.23.13-
 debian\",\"imagePullPolicy\":\"IfNotPresent\",\"livenessProbe\":{\"exec\":{\"command\":
 [\"extra/healthcheck\"]},\"initialDelaySeconds\":15,\"timeoutSeconds\":2},\"name\":\"uptime-kuma\",\"ports\":
 [{\"containerPort\":3001,\"name\":\"http\",\"protocol\":\"TCP\"}],\"readinessProbe\":{\"httpGet\":
 {\"path\":\"/\",\"port\":3001,\"scheme\":\"HTTP\"},\"initialDelaySeconds\":5},\"resources\":{\"requests\":
 {\"cpu\":\"250m\",\"memory\":\"64Mi\"}},\"securityContext\":{},\"volumeMounts\":
 [{\"mountPath\":\"/app/data\",\"name\":\"storage\"}]}],\"nodeSelector\":
 {\"app/service\":\"public\"},\"securityContext\":{},\"serviceAccountName\":\"uptime-kuma\",\"tolerations\":
 [{\"effect\":\"NoSchedule\",\"key\":\"app/service\",\"operator\":\"Equal\",\"value\":\"public\"}],\"volumes\":
 [{\"name\":\"storage\",\"persistentVolumeClaim\":{\"claimName\":\"uptime-kuma-pvc\"}}]}},\"tolerations\":
 [{\"effect\":\"NoSchedule\",\"key\":\"kubernetes.io/arch\",\"operator\":\"Equal\",\"value\":\"arm64\"}]}}\n] 
 labels:map[skaffold.dev/run-id:7f18b68f-680a-4d69-b18d-ec521b94de34]] 
 spec:map[template:map[metadata:map[labels:map[skaffold.dev/run-id:7f18b68f-680a-4d69-b18d-ec521b94de34]]] 
 tolerations:[map[effect:NoSchedule key:kubernetes.io/arch operator:Equal value:arm64]]]]": strict decoding error: unknown 
 field "spec.tolerations"

Workaround

  1. Render the manifest: skaffold render > deployment.yaml
  2. Remove the spec.tolerations in the Service and Deployment sections
  3. Deploy with kubectl apply -f deployment.yaml

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is neededquestionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions