Skip to content

AggregatedOperatorException: Exception(s) during workflow execution #189

Open
@cmoulliard

Description

@cmoulliard

Issue

The following template definition

apiVersion: io.javaoperatorsdk.operator.glue/v1beta1
kind: GlueOperator
metadata:
  name: ingress-platform
spec:
  parent:
    apiVersion: halkyon.io/v1alpha1
    kind: Platform
  childResources:
    - name: jobs
      bulk: true
      resourceTemplate: |
        items:
        {#for pkg in parent.spec.packages}
        {#for s in pkg.pipeline.steps}
        - apiVersion: batch/v1
          kind: Job
          metadata:
            name: {s.name}
            namespace: default
          spec:
            template:
              spec:
                containers:
                  - name: {s.name}
                    image: {s.image}
                    command:
                    {#if s.script??}
                    - /bin/sh
                    - -exc
                    - |
                      echo "Helm values ..."
                      {#if s.values??}
                      echo {s.values}
                      {/if}
                      {s.script}
                    {/if}
                restartPolicy: Never
            backoffLimit: 4
        {/for}
        {/for}

Data

spec:
  version: 0.1.0
  description: "A simple platform"
  packages:
    - name: nginx-ingress
      description: "nginx-ingress package"
      pipeline:
        steps:
        - name: pre-install
          image: registry.access.redhat.com/ubi9
          script: |
            echo "This is a pre-installation running a job"
        - name: install-nginx-ingress
          image: dtzar/helm-kubectl
          repoUrl: https://kubernetes.github.io/ingress-nginx
          version: 4.12.2
          script: |
            helm version
          values: |
            ingress:
              enabled: true
        - name: post-install
          image: registry.access.redhat.com/ubi9
          script: |
            echo "This is a post-installation running a job"

raises this error

2025-05-27 17:34:49,353 ERROR [io.jav.ope.pro.eve.EventProcessor] (ReconcilerExecutor-glue-179) Error during event processing ExecutionScope{ resource id: ResourceID{name='simple-platform-platform', namespace='default'}, version: 98104}

Exception in GlueReconciler.java:90
          88      addFinalizersToParentResource(primary, context);
          89      var actualWorkflow = buildWorkflowAndRegisterInformers(primary, context);
        → 90      var result = actualWorkflow.reconcile(primary, context);
          91      cleanupRemovedResourcesFromWorkflow(context, primary);
          92      informerRegister.deRegisterInformerOnResourceFlowChange(context, primary);

Exception in GlueReconciler.java:39
          37  import static io.javaoperatorsdk.operator.glue.reconciler.operator.GlueOperatorReconciler.PARENT_RELATED_RESOURCE_NAME;
          38  
        → 39  @ControllerConfiguration(name = GlueReconciler.GLUE_RECONCILER_NAME)
          40  public class GlueReconciler implements Reconciler<Glue>, Cleaner<Glue> {
          41  

: io.javaoperatorsdk.operator.AggregatedOperatorException: Exception(s) during workflow execution. Details:
 - jobs -> while parsing a block mapping
 in reader, line 1, column 1:
    items:
    ^
expected <block end>, but found ']'
 in reader, line 19, column 1:
    ]
    ^

        at org.snakeyaml.engine.v2.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:729)
        at org.snakeyaml.engine.v2.parser.ParserImpl.lambda$produce$1(ParserImpl.java:232)
        at java.base/java.util.Optional.ifPresent(Optional.java:178)
        at org.snakeyaml.engine.v2.parser.ParserImpl.produce(ParserImpl.java:232)
        at org.snakeyaml.engine.v2.parser.ParserImpl.peekEvent(ParserImpl.java:206)
        at org.snakeyaml.engine.v2.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:57)
        at org.snakeyaml.engine.v2.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:43)
        at org.snakeyaml.engine.v2.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:135)
        at org.snakeyaml.engine.v2.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:115)
        at org.snakeyaml.engine.v2.composer.Composer.composeSequenceNode(Composer.java:284)
        at org.snakeyaml.engine.v2.composer.Composer.composeNode(Composer.java:208)
        at org.snakeyaml.engine.v2.composer.Composer.composeValueNode(Composer.java:364)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingChildren(Composer.java:343)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingNode(Composer.java:321)
        at org.snakeyaml.engine.v2.composer.Composer.composeNode(Composer.java:210)
        at org.snakeyaml.engine.v2.composer.Composer.next(Composer.java:162)
        at org.snakeyaml.engine.v2.api.Load$YamlIterator.next(Load.java:234)
        at io.fabric8.kubernetes.client.utils.KubernetesSerialization.parseYaml(KubernetesSerialization.java:274)
        at io.fabric8.kubernetes.client.utils.KubernetesSerialization.unmarshal(KubernetesSerialization.java:255)
        at io.fabric8.kubernetes.client.utils.KubernetesSerialization.unmarshal(KubernetesSerialization.java:345)
        at io.fabric8.kubernetes.client.utils.KubernetesSerialization.unmarshal(KubernetesSerialization.java:330)
        at io.fabric8.kubernetes.client.utils.Serialization.unmarshal(Serialization.java:186)
        at io.javaoperatorsdk.operator.glue.dependent.GenericBulkDependentResource.desiredResources(GenericBulkDependentResource.java:33)
        at io.javaoperatorsdk.operator.glue.dependent.GenericBulkDependentResource.desiredResources(GenericBulkDependentResource.java:17)
        at io.javaoperatorsdk.operator.processing.dependent.BulkDependentResourceReconciler.reconcile(BulkDependentResourceReconciler.java:36)
        at io.javaoperatorsdk.operator.processing.dependent.AbstractDependentResource.reconcile(AbstractDependentResource.java:66)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.WorkflowReconcileExecutor$NodeReconcileExecutor.doRun(WorkflowReconcileExecutor.java:145)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.NodeExecutor.run(NodeExecutor.java:20)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)

        at io.javaoperatorsdk.operator.processing.dependent.workflow.BaseWorkflowResult.throwAggregateExceptionIfErrorsPresent(BaseWorkflowResult.java:95)
        at io.javaoperatorsdk.operator.processing.dependent.workflow.DefaultWorkflow.reconcile(DefaultWorkflow.java:103)
        at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.reconcile(GlueReconciler.java:90)
        at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler.reconcile(GlueReconciler.java:39)
        at io.javaoperatorsdk.operator.glue.reconciler.glue.GlueReconciler_ClientProxy.reconcile(Unknown Source)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions