Skip to content
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

No configurator for the following root elements services #2376

Open
1 task
839998664 opened this issue Sep 29, 2023 · 8 comments
Open
1 task

No configurator for the following root elements services #2376

839998664 opened this issue Sep 29, 2023 · 8 comments
Labels

Comments

@839998664
Copy link

839998664 commented Sep 29, 2023

Your checklist for this issue

🚨 Please review the Support Policy

  • The question was asked in the project's Gitter chat
  • [ x] Jenkins version
  • [ x] Plugin version
  • [x ] OS
  • [x ] Reproduction steps

Description

Please describe your issue here, and explain what you have already tried to resolve it.
I am spinning up a new Jenkins instance using the docker image jenkins/jenkins:alpine. The list of plugins I have installed is as follows:

atlassian-jira-software-cloud:latest
blueocean:latest
build-timeout:latest
cloudbees-folder:latest
configuration-as-code:latest
credentials-binding:latest
ec2:latest
email-ext:latest
git-client:latest
gradle:latest
job-dsl:latest
matrix-auth:latest
pipeline-stage-view:latest
saml:latest
ssh-slaves:latest
timestamper:latest
workflow-aggregator:latest
ws-cleanup:latest

I have a set of yaml files with the configuration as code. I am getting an error
SEVERE jenkins.InitReactorRunner$1#onTaskFailed: Failed ConfigurationAsCode.init
io.jenkins.plugins.casc.ConfiguratorException: No configurator for the following root elements services

The configuration was working fine until a week ago and I have not made any changes to it. It stopped working while I was trying to split the configuration for the ec2 plugin into multiple files a few days ago. I thought it was related to the way I split the Yaml but reassembling it in the way it was before did not fix the issue either. So, obviously something else is amiss. I noticed that a new version of the CASC plugin came out a couple of days ago though.

@timja
Copy link
Member

timja commented Sep 29, 2023

Services is not a valid root element.

No configurator for the following root elements services

@839998664
Copy link
Author

Also, right before this error occurs I am getting a warning as below:
WARNING i.j.p.casc.BaseConfigurator#createAttribute: Can't handle class org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl#file: type is abstract but not Describable.

@839998664
Copy link
Author

839998664 commented Sep 30, 2023

Another update, I think this is related to the way I have split the yaml for ec2 plugin...
ec2.yaml looks like:

jenkins:
 clouds:
  - amazonEC2:
      name: "XXXX"
      ....
      templates:

AMI1.yaml

jenkins:
 clouds:
  - amazonEC2:
     name: "XXXX"
     templates:
     - ami: "ami-1"
       amiType:
        windowsType:
        .....

Similarly I have multiple templates yaml files, hoping that they will merge into a single one.

@839998664
Copy link
Author

Just tried again by merging everything back together into a single yaml file ... Still get the same error.

@timja
Copy link
Member

timja commented Oct 1, 2023

Reduce it to a minimal error and post your full yaml.

the original error shows you nesting it under ‘services’ which is wrong

@839998664
Copy link
Author

839998664 commented Oct 1, 2023

There is nothing named services in any of the twelve YAML config files, so I cannot pinpoint the issue or narrow it down to a particular part of the configuration.
-- Not entirely correct ... Turned out that, in a gist, I was copying everything in to the Jenkins_home including my compose.yaml file, which indeed had a services map right at the top ....

@839998664
Copy link
Author

So, I removed the compose.yaml file from the jenkins home. Now the error I get with the below templates of the ec2 configuration is:
ec2.yaml

jenkins:
  clouds:
    - amazonEC2:
        name: "cloudname"
        instanceCapStr: "50"
        region: "region"
        sshKeysCredentialsId: "credentialsId"

ec2/ami-1.yaml

jenkins:
  clouds:
    - amazonEC2:
      templates:       
      - ami: "ami-000391b8832ffa6f0"
        amiType:
          windowsData:
            allowSelfSignedCertificate: true
            password: "password"
            specifyPassword: true
            useHTTPS: false
        associatePublicIp: false
        connectBySSHProcess: false
        connectionStrategy: PRIVATE_IP
        deleteRootOnTermination: false
        description: "ami-1"
        ebsEncryptRootVolume: ENCRYPTED
        ebsOptimized: true
        hostKeyVerificationStrategy: CHECK_NEW_SOFT
        idleTerminationMinutes: "30"
        initScript: ""
        instanceCapStr: "2"
        javaPath: "java"
        labelString: "label"
        maxTotalUses: -1
        metadataEndpointEnabled: true
        metadataHopsLimit: 1
        metadataSupported: true
        metadataTokensRequired: false
        minimumNumberOfInstances: 0
        minimumNumberOfSpareInstances: 0
        mode: EXCLUSIVE
        monitoring: false
        numExecutors: 2
        remoteAdmin: "Administrator"
        remoteFS: "/"
        securityGroups: ""
        stopOnTerminate: false
        subnetId: "subnet"
        t2Unlimited: false
        tenancy: Default
        tags:
        - name: "jenkins_server_url"
          value: "url"
        - name: "Name"
          value: "ami-1"
        - name: "AWS_Internal"
          value: "idleoff=2"
        type: T3Medium
        useEphemeralDevices: false
      useInstanceProfileForCredentials: false

ec2/ami-2.yaml

jenkins:
  clouds:
    - amazonEC2:
      templates:       
      - ami: "ami-000391b8832ffa6f0"
        amiType:
          windowsData:
            allowSelfSignedCertificate: true
            password: "password"
            specifyPassword: true
            useHTTPS: false
        associatePublicIp: false
        connectBySSHProcess: false
        connectionStrategy: PRIVATE_IP
        deleteRootOnTermination: false
        description: "ami-2"
        ebsEncryptRootVolume: ENCRYPTED
        ebsOptimized: true
        hostKeyVerificationStrategy: CHECK_NEW_SOFT
        idleTerminationMinutes: "30"
        initScript: ""
        instanceCapStr: "2"
        javaPath: "java"
        labelString: "label"
        maxTotalUses: -1
        metadataEndpointEnabled: true
        metadataHopsLimit: 1
        metadataSupported: true
        metadataTokensRequired: false
        minimumNumberOfInstances: 0
        minimumNumberOfSpareInstances: 0
        mode: EXCLUSIVE
        monitoring: false
        numExecutors: 2
        remoteAdmin: "Administrator"
        remoteFS: "/"
        securityGroups: ""
        stopOnTerminate: false
        subnetId: "subnet"
        t2Unlimited: false
        tenancy: Default
        tags:
        - name: "jenkins_server_url"
          value: "url"
        - name: "Name"
          value: "ami-2"
        - name: "AWS_Internal"
          value: "idleoff=2"
        type: T3Medium
        useEphemeralDevices: false
      useInstanceProfileForCredentials: false
2023-10-01 17:20:27.667+0000 [id=33]    WARNING i.j.p.casc.BaseConfigurator#createAttribute: Can't handle class org.jenkinsci.plugins.plaincredentials.impl.FileCredentialsImpl#file: type is abstract but not Describable.
2023-10-01 17:20:27.834+0000 [id=33]    SEVERE  jenkins.InitReactorRunner$1#onTaskFailed: Failed ConfigurationAsCode.init
java.lang.IllegalArgumentException: No hudson.slaves.Cloud implementation found for templates
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$lookupDescriptor$11(HeteroDescribableConfigurator.java:226)
        at io.vavr.control.Option.orElse(Option.java:321)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lookupDescriptor(HeteroDescribableConfigurator.java:224)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$configure$3(HeteroDescribableConfigurator.java:84)
        at io.vavr.Tuple2.apply(Tuple2.java:238)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.configure(HeteroDescribableConfigurator.java:84)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.check(HeteroDescribableConfigurator.java:92)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.check(HeteroDescribableConfigurator.java:55)
        at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:355)
        at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:293)
        at io.jenkins.plugins.casc.ConfigurationAsCode.lambda$checkWith$9(ConfigurationAsCode.java:803)
        at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:737)
        at io.jenkins.plugins.casc.ConfigurationAsCode.checkWith(ConfigurationAsCode.java:803)
        at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:789)
        at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:658)
        at io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:315)
        at io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:307)
Caused: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:109)
Caused: java.lang.Error
        at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:115)
        at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:185)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:305)
        at jenkins.model.Jenkins$5.runTask(Jenkins.java:1170)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:221)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
        at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
2023-10-01 17:20:27.843+0000 [id=24]    SEVERE  hudson.util.BootFailure#publish: Failed to initialize Jenkins
java.lang.IllegalArgumentException: No hudson.slaves.Cloud implementation found for templates
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$lookupDescriptor$11(HeteroDescribableConfigurator.java:226)
        at io.vavr.control.Option.orElse(Option.java:321)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lookupDescriptor(HeteroDescribableConfigurator.java:224)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.lambda$configure$3(HeteroDescribableConfigurator.java:84)
        at io.vavr.Tuple2.apply(Tuple2.java:238)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.configure(HeteroDescribableConfigurator.java:84)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.check(HeteroDescribableConfigurator.java:92)
        at io.jenkins.plugins.casc.impl.configurators.HeteroDescribableConfigurator.check(HeteroDescribableConfigurator.java:55)
        at io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:355)
        at io.jenkins.plugins.casc.BaseConfigurator.check(BaseConfigurator.java:293)
        at io.jenkins.plugins.casc.ConfigurationAsCode.lambda$checkWith$9(ConfigurationAsCode.java:803)
        at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:737)
        at io.jenkins.plugins.casc.ConfigurationAsCode.checkWith(ConfigurationAsCode.java:803)
        at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:789)
        at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:658)
        at io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:315)
        at io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:307)
Caused: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:109)
Caused: java.lang.Error
        at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:115)
        at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:185)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:305)
        at jenkins.model.Jenkins$5.runTask(Jenkins.java:1170)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:221)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
        at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused: org.jvnet.hudson.reactor.ReactorException
        at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:290)
        at jenkins.InitReactorRunner.run(InitReactorRunner.java:49)
        at jenkins.model.Jenkins.executeReactor(Jenkins.java:1205)
        at jenkins.model.Jenkins.<init>(Jenkins.java:992)
        at hudson.model.Hudson.<init>(Hudson.java:86)
        at hudson.model.Hudson.<init>(Hudson.java:82)
        at hudson.WebAppMain$3.run(WebAppMain.java:247)
Caused: hudson.util.HudsonFailedToLoad
        at hudson.WebAppMain$3.run(WebAppMain.java:264)
2023-10-01 17:20:27.892+0000 [id=24]    INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Stopping Jenkins
2023-10-01 17:20:27.946+0000 [id=24]    INFO    jenkins.model.Jenkins$16#onAttained: Started termination
2023-10-01 17:20:27.971+0000 [id=24]    INFO    h.p.b.global.Lifecycle#shutdown: Shutdown complete - Global TimeOut ScheduledExecutorService had 0 tasks pending
2023-10-01 17:20:28.021+0000 [id=24]    INFO    jenkins.model.Jenkins$16#onAttained: Completed termination
2023-10-01 17:20:28.022+0000 [id=24]    INFO    jenkins.model.Jenkins#_cleanUpDisconnectComputers: Starting node disconnection
2023-10-01 17:20:28.036+0000 [id=24]    INFO    jenkins.model.Jenkins#_cleanUpShutdownPluginManager: Stopping plugin manager
2023-10-01 17:20:28.076+0000 [id=24]    INFO    jenkins.model.Jenkins#_cleanUpPersistQueue: Persisting build queue
2023-10-01 17:20:28.084+0000 [id=24]    INFO    jenkins.model.Jenkins#_cleanUpAwaitDisconnects: Waiting for node disconnection completion
2023-10-01 17:20:28.086+0000 [id=24]    SEVERE  jenkins.model.Jenkins#_cleanUpPluginServletFilters: Failed to stop filters
java.lang.ClassNotFoundException: org.jenkinsci.plugins.ssegateway.SubscriptionConfigQueue$SubscriptionConfig
        at java.base/java.net.URLClassLoader.findClass(Unknown Source)
        at jenkins.util.URLClassLoader2.findClass(URLClassLoader2.java:35)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
Caused: java.lang.NoClassDefFoundError: org/jenkinsci/plugins/ssegateway/SubscriptionConfigQueue$SubscriptionConfig
        at org.jenkinsci.plugins.ssegateway.SubscriptionConfigQueue.stop(SubscriptionConfigQueue.java:106)
        at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.destroy(Endpoint.java:253)
        at hudson.util.PluginServletFilter.cleanUp(PluginServletFilter.java:191)
        at jenkins.model.Jenkins._cleanUpPluginServletFilters(Jenkins.java:3985)
        at jenkins.model.Jenkins.cleanUp(Jenkins.java:3682)
        at hudson.WebAppMain$3.run(WebAppMain.java:268)
2023-10-01 17:20:28.087+0000 [id=24]    INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Jenkins stopped

@timja
Copy link
Member

timja commented Oct 1, 2023

see https://github.com/jenkinsci/configuration-as-code-plugin/tree/master/demos/ec2

under amazonEc2 templates needs to be indented

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants