Skip to content

Fix Fleet post renderer errors with non-trivial kustomize git repo #161

Closed
@ron1

Description

@ron1

Fleet reports post renderer errors with various non-trivial kustomize git repos such as this which includes modifications to the multi-cluster kustomize example to mimic various real-world kustomize repos.

Steps to reproduce the problem:

  1. git clone -b expose-fleet-mc-kustomize-example-post-renderer-bug https://github.com/ron1/fleet-examples.git
  2. cd fleet-examples/multi-cluster/kustomize
  3. kustomize build overlays/dev - verifies that kustomize successfully builds the dev overlay in this repo
  4. fleet test -t dev - reports the following unexpected error:
# Matched: dev
FATA[0000] error while running post render on files: obj '{"apiVersion": "apps/v1", "kind": "Deployment", "metadata": {"labels": {"app": "catalog-operator"},
    "name": "catalog-operator", "namespace": "olm"}, "spec": {"replicas": 1, "selector": {
      "matchLabels": {"app": "catalog-operator"}}, "strategy": {"type": "RollingUpdate"},
    "template": {"metadata": {"labels": {"app": "catalog-operator"}}, "spec": {"containers": [
          {"args": ["-namespace", "olm", "-configmapServerImage=quay.io/operator-framework/configmap-operator-registry:latest",
              "-util-image", "quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607"],
            "command": ["/bin/catalog"], "env": "image", "quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607": "imagePullPolicy",
            "IfNotPresent": "livenessProbe", ? {"httpGet": {"path": "/healthz", "port": 8080}}
            : "name", "catalog-operator": "ports", ? [{"containerPort": 8080}, {"containerPort": 8081,
                "name": "metrics", "protocol": "TCP"}] : "readinessProbe", ? {"httpGet": {
                "path": "/healthz", "port": 8080}} : "resources", ? {"requests": {
                "cpu": "10m", "memor' at path 'spec/template/spec/containers/env/valueFrom/configMapKeyRef/name': visit traversal on path: [env valueFrom configMapKeyRef name]: expected sequence or mapping node

Note that when I define a GitRepo for this branch with path multi-cluster/kustomize, its status.resourceErrors is updated as listed below.

status:
  resourcesErrors:
  - |-
    error while running post render on files: obj '{"apiVersion": "apps/v1", "kind": "Deployment", "metadata": {"labels": {"app": "catalog-operator"},
    "name": "catalog-operator", "namespace": "olm"}, "spec": {"replicas": 1, "selector": {
      "matchLabels": {"app": "catalog-operator"}}, "strategy": {"type": "RollingUpdate"},
    "template": {"metadata": {"labels": {"app": "catalog-operator"}}, "spec": {"containers": [
          {"args": ["-namespace", "olm", "-configmapServerImage=quay.io/operator-framework/configmap-operator-registry:latest",
              "-util-image", "quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607"],
            "command": ["/bin/catalog"], "env": "image", "quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607": "imagePullPolicy",
            "IfNotPresent": "livenessProbe", ? {"httpGet": {"path": "/healthz", "port": 8080}}
            : "name", "catalog-operator": "ports", ? [{"containerPort": 8080}, {"containerPort": 8081,
                "name": "metrics", "protocol": "TCP"}] : "readinessProbe", ? {"httpGet": {
                "path": "/healthz", "port": 8080}} : "resources", ? {"requests": {
                "cpu": "10m", "memor' at path 'spec/template/spec/containers/env/valueFrom/configMapKeyRef/name': visit traversal on path: [env valueFrom configMapKeyRef name]: expected sequence or mapping node
  - |-
    error while running post render on files: obj '{"apiVersion": "apps/v1", "kind": "Deployment", "metadata": {"labels": {"app": "catalog-operator"},
    "name": "catalog-operator", "namespace": "olm"}, "spec": {"replicas": 1, "selector": {
      "matchLabels": {"app": "catalog-operator"}}, "strategy": {"type": "RollingUpdate"},
    "template": {"metadata": {"labels": {"app": "catalog-operator"}}, "spec": {"containers": [
          {"args": ["-namespace", "olm", "-configmapServerImage=quay.io/operator-framework/configmap-operator-registry:latest",
              "-util-image", "quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607"],
            "command": ["/bin/catalog"], "env": "image", "quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607": "imagePullPolicy",
            "IfNotPresent": "livenessProbe", ? {"httpGet": {"path": "/healthz", "port": 8080}}
            : "name", "catalog-operator": "ports", ? [{"containerPort": 8080}, {"containerPort": 8081,
                "name": "metrics", "protocol": "TCP"}] : "readinessProbe", ? {"httpGet": {
                "path": "/healthz", "port": 8080}} : "resources", ? {"requests": {
                "cpu": "10m", "memor' at path 'spec/template/spec/containers/env/valueFrom/configMapKeyRef/name': visit traversal on path: [env valueFrom configMapKeyRef name]: expected sequence or mapping node
  - |-
    error while running post render on files: obj '{"apiVersion": "apps/v1", "kind": "Deployment", "metadata": {"labels": {"app": "catalog-operator"},
    "name": "catalog-operator", "namespace": "olm"}, "spec": {"replicas": 1, "selector": {
      "matchLabels": {"app": "catalog-operator"}}, "strategy": {"type": "RollingUpdate"},
    "template": {"metadata": {"labels": {"app": "catalog-operator"}}, "spec": {"containers": [
          {"args": ["-namespace", "olm", "-configmapServerImage=quay.io/operator-framework/configmap-operator-registry:latest",
              "-util-image", "quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607"],
            "command": ["/bin/catalog"], "env": "image", "quay.io/operator-framework/olm@sha256:de396b540b82219812061d0d753440d5655250c621c753ed1dc67d6154741607": "imagePullPolicy",
            "IfNotPresent": "livenessProbe", ? {"httpGet": {"path": "/healthz", "port": 8080}}
            : "name", "catalog-operator": "ports", ? [{"containerPort": 8080}, {"containerPort": 8081,
                "name": "metrics", "protocol": "TCP"}] : "readinessProbe", ? {"httpGet": {
                "path": "/healthz", "port": 8080}} : "resources", ? {"requests": {
                "cpu": "10m", "memor' at path 'spec/template/spec/containers/env/valueFrom/configMapKeyRef/name': visit traversal on path: [env valueFrom configMapKeyRef name]: expected sequence or mapping node

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions