Below are details from my OpenShift Local console and the pods. My intuition suggests I missed a deployment or configuration step. Is anyone able to suggest what is wrong please?
I configured the OpenShift Local node with 12 CPUs, 32 GB RAM, and 64 GB disk storage and created a namespace called "forms-flow". Next, I cloned the Helm charts repo script scripts/install-forms-flow.sh master branch (commit 210f490e5abb61dc76f23f3f1b92a16f2288c344) and ran the installer with these options:
$ git clone https://github.com/AOT-Technologies/forms-flow-ai-charts.git
$ cd forms-flow-ai-charts/scripts
$ bash install-forms-flow.sh
Install using forms-flow package registry? (y/n):n
Please enter the domain name (ex: apps.bronze.aot-technologies.com):apps-crc.testing
Please enter the namespace (ex: forms-flow):forms-flow
Is this a premium installation? (y/n):n
Use the latest version release? (y) or stable release (n):n
I should note that there were a lot of errors logged immediately after the "Happy Helming" message, which I think may be normal and not really errors:
14.0.2 is not equal to 10.0.9 ERROR CWNAKNVCIEJVOEJVJO
14.0.1 is not equal to 10.0.9 ERROR CWNAKNVCIEJVOEJVJO
14.0.0 is not equal to 10.0.9 ERROR CWNAKNVCIEJVOEJVJO
Further down the output, there is what appears to be a genuine error:
Error: INSTALLATION FAILED: 1 error occurred:
* Secret "forms-flow-ai-auth" is invalid: data[.dockerconfigjson]: Invalid value: "<secret contents redacted>": unexpected end of JSON input
However, looking at secrets in the forms-flow namespace, I don't see one named forms-flow-ai-auth, so maybe it's just an issue with the Helm chart project, or I need to create the secret. Here are all the secrets in the namespace:
Am I using the correct Helm chart branch, or did I somehow miss a step? I would be very grateful for any advice on how to get these pods running. Thanks in advance.
SteveF4
PS. Below are details from my installation.
Here's a screenshot showing my OpenShift console, and I will include details from each pod console log below the screenshot:
The forms-flow-documents-api pod console log shows this:
[2024-04-10 13:23:39 +0000] [7] [INFO] Starting gunicorn 21.2.0
[2024-04-10 13:23:39 +0000] [7] [INFO] Listening at: http://0.0.0.0:5006 (7)
[2024-04-10 13:23:39 +0000] [7] [INFO] Using worker: gthread
[2024-04-10 13:23:39 +0000] [8] [INFO] Booting worker with pid: 8
[2024-04-10 13:23:39 +0000] [9] [INFO] Booting worker with pid: 9
[2024-04-10 13:23:39 +0000] [10] [INFO] Booting worker with pid: 10
[2024-04-10 13:23:39 +0000] [11] [INFO] Booting worker with pid: 11
[2024-04-10 13:23:39 +0000] [12] [INFO] Booting worker with pid: 12
Configure logging, from conf:/forms-flow-documents/app/src/formsflow_documents/logging.conf
Configure logging, from conf:/forms-flow-documents/app/src/formsflow_documents/logging.conf
Configure logging, from conf:/forms-flow-documents/app/src/formsflow_documents/logging.conf
Configure logging, from conf:/forms-flow-documents/app/src/formsflow_documents/logging.conf
Configure logging, from conf:/forms-flow-documents/app/src/formsflow_documents/logging.conf
[2024-04-10 13:23:55 +0000] [7] [ERROR] Worker (pid:8) exited with code 3
[2024-04-10 13:23:55 +0000] [7] [ERROR] Worker (pid:10) was sent SIGTERM!
[2024-04-10 13:23:55 +0000] [7] [ERROR] Worker (pid:11) was sent SIGTERM!
[2024-04-10 13:23:55 +0000] [7] [ERROR] Worker (pid:9) was sent SIGTERM!
[2024-04-10 13:23:55 +0000] [7] [ERROR] Worker (pid:12) was sent SIGTERM!
[2024-04-10 13:23:55 +0000] [7] [ERROR] Shutting down: Master
[2024-04-10 13:23:55 +0000] [7] [ERROR] Reason: Worker failed to boot.
The forms-flow-data-analysis pod console log shows an error about a self-signed certificate:
There was a problem when trying to write in your cache folder (/.cache/huggingface/hub). You should set the environment variable TRANSFORMERS_CACHE to a writable directory.
WARNING: SECRET_KEY being set as a one-shot
Configure logging, from conf:/venv/lib/python3.10/site-packages/api/logging.conf
Traceback (most recent call last):
File "/usr/local/lib/python3.10/urllib/request.py", line 1348, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/usr/local/lib/python3.10/http/client.py", line 1283, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/local/lib/python3.10/http/client.py", line 1329, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.10/http/client.py", line 1278, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.10/http/client.py", line 1038, in _send_output
self.send(msg)
File "/usr/local/lib/python3.10/http/client.py", line 976, in send
self.connect()
File "/usr/local/lib/python3.10/http/client.py", line 1455, in connect
self.sock = self._context.wrap_socket(self.sock,
File "/usr/local/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/usr/local/lib/python3.10/ssl.py", line 1104, in _create
self.do_handshake()
File "/usr/local/lib/python3.10/ssl.py", line 1375, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1007)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/venv/bin/gunicorn", line 8, in <module>
sys.exit(run())
File "/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
File "/venv/lib/python3.10/site-packages/gunicorn/app/base.py", line 236, in run
super().run()
File "/venv/lib/python3.10/site-packages/gunicorn/app/base.py", line 72, in run
Arbiter(self).run()
File "/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", line 58, in __init__
self.setup(app)
File "/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", line 118, in setup
self.app.wsgi()
File "/venv/lib/python3.10/site-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
return self.load_wsgiapp()
File "/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
return util.import_app(self.app_uri)
File "/venv/lib/python3.10/site-packages/gunicorn/util.py", line 371, in import_app
mod = importlib.import_module(module)
File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/forms-flow-data-analysis-api/app/gunicorn_config.py", line 14, in <module>
app = create_app()
File "/venv/lib/python3.10/site-packages/api/__init__.py", line 48, in create_app
setup_jwt_manager(app, jwt)
File "/venv/lib/python3.10/site-packages/api/__init__.py", line 72, in setup_jwt_manager
jwt_manager.init_app(app)
File "/venv/lib/python3.10/site-packages/flask_jwt_oidc/jwt_manager.py", line 111, in init_app
jurl = urlopen(url=self.well_known_config)
File "/usr/local/lib/python3.10/urllib/request.py", line 216, in urlopen
return opener.open(url, data, timeout)
File "/usr/local/lib/python3.10/urllib/request.py", line 519, in open
response = self._open(req, data)
File "/usr/local/lib/python3.10/urllib/request.py", line 536, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
File "/usr/local/lib/python3.10/urllib/request.py", line 496, in _call_chain
result = func(*args)
File "/usr/local/lib/python3.10/urllib/request.py", line 1391, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "/usr/local/lib/python3.10/urllib/request.py", line 1351, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1007)>
The forms-flow-bpm pod shows this on the console:
____ _ ____ _ _ __
/ ___| __ _ _ __ ___ _ _ _ __ __| | __ _ | _ \| | __ _| |_ / _| ___ _ __ _ __ ___
| | / _` | '_ ` _ \| | | | '_ \ / _` |/ _` | | |_) | |/ _` | __| |_ / _ \| '__| '_ ` _ \
| |__| (_| | | | | | | |_| | | | | (_| | (_| | | __/| | (_| | |_| _| (_) | | | | | | | |
\____/\__,_|_| |_| |_|\__,_|_| |_|\__,_|\__,_| |_| |_|\__,_|\__|_| \___/|_| |_| |_| |_|
Spring-Boot: (v3.1.5)
Camunda Platform: (v7.20.0)
Camunda Platform Spring Boot Starter: (v7.20.0)
2024-04-10 13:23:32 - Starting CamundaApplication using Java 17-ea with PID 1 (/app/forms-flow-bpm.jar started by 1000690000 in /app)
2024-04-10 13:23:32 - No active profile set, falling back to 1 default profile: "default"
2024-04-10 13:23:40 - Tomcat initialized with port(s): 8080 (http)
Apr 10, 2024 1:23:40 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Apr 10, 2024 1:23:40 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Tomcat]
Apr 10, 2024 1:23:40 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/10.1.15]
Apr 10, 2024 1:23:40 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring embedded WebApplicationContext
2024-04-10 13:23:40 - Root WebApplicationContext: initialization completed in 7202 ms
2024-04-10 13:23:42 - STARTER-SB040 Setting up jobExecutor with corePoolSize=3, maxPoolSize:10
2024-04-10 13:23:42 - ENGINE-12003 Plugin 'CompositeProcessEnginePlugin[genericPropertiesConfiguration, camundaProcessEngineConfiguration, camundaDatasourceConfiguration, camundaJobConfiguration, camundaHistoryConfiguration, camundaMetricsConfiguration, camundaAuthorizationConfiguration, failedJobConfiguration, CreateFilterConfiguration[filterName=All tasks], org.camunda.bpm.extension.keycloak.plugin.KeycloakIdentityProvider@129fed45, disableDeploymentResourcePattern, eventPublisherPlugin, ApplicationContextClassloaderSwitchPlugin, ConnectProcessEnginePlugin, SpringBootSpinProcessEnginePlugin]' activated on process engine 'default'
2024-04-10 13:23:44 - KEYCLOAK-01001 PLUGIN KeycloakIdentityProvider activated on process engine default
2024-04-10 13:23:44 - STARTER-SB020 ProcessApplication enabled: autoDeployment via springConfiguration#deploymentResourcePattern is disabled
2024-04-10 13:23:44 - EVENTING-001: Initialized Camunda Spring Boot Eventing Engine Plugin.
2024-04-10 13:23:44 - EVENTING-003: Task events will be published as Spring Events.
2024-04-10 13:23:44 - EVENTING-005: Execution events will be published as Spring Events.
2024-04-10 13:23:44 - EVENTING-009: Listeners will not be invoked if a skipCustomListeners API parameter is set to true by user.
2024-04-10 13:23:44 - EVENTING-007: History events will be published as Spring events.
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2024-04-10 13:23:44 - CNCT-01004 Discovered provider for connector id 'http-connector' and class 'org.camunda.connect.httpclient.impl.HttpConnectorImpl': 'org.camunda.connect.httpclient.impl.HttpConnectorProviderImpl'
2024-04-10 13:23:44 - CNCT-01004 Discovered provider for connector id 'soap-http-connector' and class 'org.camunda.connect.httpclient.soap.impl.SoapHttpConnectorImpl': 'org.camunda.connect.httpclient.soap.impl.SoapHttpConnectorProviderImpl'
2024-04-10 13:23:44 - CNCT-01004 Discovered provider for connector id 'mail-send' and class 'org.camunda.bpm.extension.mail.send.SendMailConnector': 'org.camunda.bpm.extension.mail.send.SendMailProvider'
2024-04-10 13:23:44 - CNCT-01004 Discovered provider for connector id 'mail-poll' and class 'org.camunda.bpm.extension.mail.poll.PollMailConnector': 'org.camunda.bpm.extension.mail.poll.PollMailProvider'
2024-04-10 13:23:44 - CNCT-01004 Discovered provider for connector id 'mail-delete' and class 'org.camunda.bpm.extension.mail.delete.DeleteMailConnector': 'org.camunda.bpm.extension.mail.delete.DeleteMailProvider'
2024-04-10 13:23:44 - SPIN-01010 Discovered Spin data format provider: org.camunda.spin.impl.json.jackson.format.JacksonJsonDataFormatProvider[name = application/json]
2024-04-10 13:23:45 - SPIN-01010 Discovered Spin data format provider: org.camunda.spin.impl.xml.dom.format.DomXmlDataFormatProvider[name = application/xml]
2024-04-10 13:23:45 - SPIN-01009 Discovered Spin data format: org.camunda.spin.impl.xml.dom.format.DomXmlDataFormat[name = application/xml]
2024-04-10 13:23:45 - SPIN-01009 Discovered Spin data format: org.camunda.spin.impl.json.jackson.format.JacksonJsonDataFormat[name = application/json]
2024-04-10 13:23:46 - FEEL/SCALA-01001 Spin value mapper detected
2024-04-10 13:23:46 - Engine created. [value-mapper: CompositeValueMapper(List(org.camunda.feel.impl.JavaValueMapper@de7e193, org.camunda.spin.plugin.impl.feel.integration.SpinValueMapper@13e5d243)), function-provider: org.camunda.bpm.dmn.feel.impl.scala.function.CustomFunctionTransformer@889a8a8, clock: SystemClock, configuration: Configuration(false)]
2024-04-10 13:23:47 - HikariPool-1 - Starting...
2024-04-10 13:23:47 - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@32d418a9
2024-04-10 13:23:47 - HikariPool-1 - Start completed.
2024-04-10 13:23:53 - ENGINE-00001 Process Engine default created.
2024-04-10 13:23:53 - STARTER-SB016 Skip initial filter creation, the filter with this name already exists: All tasks
2024-04-10 13:23:54 - Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'OAuth2LoginSecurityConfig': Unsatisfied dependency expressed through field 'clientService': Error creating bean with name 'authorizedClientService' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2WebSecurityConfiguration.class]: Unsatisfied dependency expressed through method 'authorizedClientService' parameter 0: Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "https://forms-flow-idm-forms-flow.apps-crc.testing/auth/realms/forms-flow-ai"
Apr 10, 2024 1:23:54 PM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service [Tomcat]
Apr 10, 2024 1:23:54 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
WARNING: The web application [camunda] appears to have started a thread named [HikariPool-1 housekeeper] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@17-ea/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17-ea/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
java.base@17-ea/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672)
java.base@17-ea/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@17-ea/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@17-ea/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061)
java.base@17-ea/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1121)
java.base@17-ea/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17-ea/java.lang.Thread.run(Thread.java:831)
Apr 10, 2024 1:23:54 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
WARNING: The web application [camunda] appears to have started a thread named [Camunda BPM Runtime Telemetry Reporter] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@17-ea/java.lang.Object.wait(Native Method)
java.base@17-ea/java.util.TimerThread.mainLoop(Timer.java:553)
java.base@17-ea/java.util.TimerThread.run(Timer.java:506)
Apr 10, 2024 1:23:54 PM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
WARNING: The web application [camunda] appears to have started a thread named [Camunda Metrics Reporter] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@17-ea/java.lang.Object.wait(Native Method)
java.base@17-ea/java.util.TimerThread.mainLoop(Timer.java:553)
java.base@17-ea/java.util.TimerThread.run(Timer.java:506)
2024-04-10 13:23:54 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server
2024-04-10 13:23:54 - ENGINE-00007 Process Engine default closed
2024-04-10 13:23:54 - HikariPool-1 - Shutdown initiated...
2024-04-10 13:23:54 - HikariPool-1 - Shutdown completed.
2024-04-10 13:23:54 -
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-04-10 13:23:54 - Application run failed
org.springframework.context.ApplicationContextException: Unable to start web server
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:164)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:610)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:738)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:440)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295)
at org.camunda.bpm.extension.CamundaApplication.main(CamundaApplication.java:44)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:95)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:466)
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:142)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:104)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:489)
at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:211)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:183)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:161)
... 16 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'OAuth2LoginSecurityConfig': Unsatisfied dependency expressed through field 'clientService': Error creating bean with name 'authorizedClientService' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2WebSecurityConfiguration.class]: Unsatisfied dependency expressed through method 'authorizedClientService' parameter 0: Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "https://forms-flow-idm-forms-flow.apps-crc.testing/auth/realms/forms-flow-ai"
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:767)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:747)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:492)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1416)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:412)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1332)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1162)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:210)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:201)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addServletContextInitializerBeans(ServletContextInitializerBeans.java:96)
at org.springframework.boot.web.servlet.ServletContextInitializerBeans.<init>(ServletContextInitializerBeans.java:85)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getServletContextInitializerBeans(ServletWebServerApplicationContext.java:261)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:235)
at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:52)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4850)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:917)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:488)
at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:123)
... 21 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'authorizedClientService' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2WebSecurityConfiguration.class]: Unsatisfied dependency expressed through method 'authorizedClientService' parameter 0: Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "https://forms-flow-idm-forms-flow.apps-crc.testing/auth/realms/forms-flow-ai"
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:801)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:545)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1332)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1162)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:764)
... 71 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clientRegistrationRepository' defined in class path resource [org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2ClientRegistrationRepositoryConfiguration.class]: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "https://forms-flow-idm-forms-flow.apps-crc.testing/auth/realms/forms-flow-ai"
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:654)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:642)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1332)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1162)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1417)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337)
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:910)
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788)
... 84 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository]: Factory method 'clientRegistrationRepository' threw exception with message: Unable to resolve Configuration with the provided Issuer of "https://forms-flow-idm-forms-flow.apps-crc.testing/auth/realms/forms-flow-ai"
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:171)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:650)
... 98 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unable to resolve Configuration with the provided Issuer of "https://forms-flow-idm-forms-flow.apps-crc.testing/auth/realms/forms-flow-ai"
at org.springframework.security.oauth2.client.registration.ClientRegistrations.getBuilder(ClientRegistrations.java:228)
at org.springframework.security.oauth2.client.registration.ClientRegistrations.fromIssuerLocation(ClientRegistrations.java:152)
at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesMapper.getBuilderFromIssuerIfPossible(OAuth2ClientPropertiesMapper.java:97)
at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesMapper.getClientRegistration(OAuth2ClientPropertiesMapper.java:71)
at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesMapper.lambda$asClientRegistrations$0(OAuth2ClientPropertiesMapper.java:65)
at java.base/java.util.HashMap.forEach(HashMap.java:1425)
at org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientPropertiesMapper.asClientRegistrations(OAuth2ClientPropertiesMapper.java:64)
at org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientRegistrationRepositoryConfiguration.clientRegistrationRepository(OAuth2ClientRegistrationRepositoryConfiguration.java:49)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:139)
... 99 common frames omitted
Caused by: org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://forms-flow-idm-forms-flow.apps-crc.testing/auth/realms/forms-flow-ai/.well-known/openid-configuration": PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at org.springframework.web.client.RestTemplate.createResourceAccessException(RestTemplate.java:888)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:868)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:714)
at org.springframework.security.oauth2.client.registration.ClientRegistrations.lambda$oidc$0(ClientRegistrations.java:163)
at org.springframework.security.oauth2.client.registration.ClientRegistrations.getBuilder(ClientRegistrations.java:216)
... 111 common frames omitted
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:369)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:312)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:307)
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1357)
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1232)
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1175)
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458)
at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:199)
at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)
at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1501)
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1415)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:450)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:421)
at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:579)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142)
at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:75)
at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:862)
... 114 common frames omitted
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)
at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)
at java.base/sun.security.validator.Validator.validate(Validator.java:264)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1341)
... 132 common frames omitted
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)
at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)
... 137 common frames omitted
And the forms-flow-api pod console shows this error:
starting application.
starting database migration.
Configure logging, from conf:/forms-flow-api/app/src/formsflow_api/logging.conf
Traceback (most recent call last):
File "/venv/bin/flask", line 8, in <module>
sys.exit(main())
File "/venv/lib/python3.10/site-packages/flask/cli.py", line 1064, in main
cli.main()
File "/venv/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/venv/lib/python3.10/site-packages/click/core.py", line 1682, in invoke
cmd_name, cmd, args = self.resolve_command(ctx, args)
File "/venv/lib/python3.10/site-packages/click/core.py", line 1729, in resolve_command
cmd = self.get_command(ctx, cmd_name)
File "/venv/lib/python3.10/site-packages/flask/cli.py", line 579, in get_command
app = info.load_app()
File "/venv/lib/python3.10/site-packages/flask/cli.py", line 309, in load_app
app = locate_app(import_name, name)
File "/venv/lib/python3.10/site-packages/flask/cli.py", line 219, in locate_app
__import__(module_name)
File "/forms-flow-api/app/manage.py", line 13, in <module>
APP = create_app()
File "/forms-flow-api/app/src/formsflow_api/app.py", line 56, in create_app
register_log_handlers(
File "/venv/lib/python3.10/site-packages/formsflow_api_utils/utils/file_log_handler.py", line 79, in register_log_handlers
os.makedirs(log_dir)
File "/usr/local/lib/python3.10/os.py", line 225, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 'logs'
database migration completed.
[2024-04-10 13:22:25 +0000] [8] [INFO] Starting gunicorn 21.2.0
[2024-04-10 13:22:25 +0000] [8] [INFO] Listening at: http://0.0.0.0:5000 (8)
[2024-04-10 13:22:25 +0000] [8] [INFO] Using worker: gthread
[2024-04-10 13:22:25 +0000] [9] [INFO] Booting worker with pid: 9
[2024-04-10 13:22:25 +0000] [10] [INFO] Booting worker with pid: 10
[2024-04-10 13:22:25 +0000] [11] [INFO] Booting worker with pid: 11
[2024-04-10 13:22:25 +0000] [12] [INFO] Booting worker with pid: 12
[2024-04-10 13:22:25 +0000] [13] [INFO] Booting worker with pid: 13
Configure logging, from conf:/forms-flow-api/app/src/formsflow_api/logging.conf
Configure logging, from conf:/forms-flow-api/app/src/formsflow_api/logging.conf
Configure logging, from conf:/forms-flow-api/app/src/formsflow_api/logging.conf
Configure logging, from conf:/forms-flow-api/app/src/formsflow_api/logging.conf
Configure logging, from conf:/forms-flow-api/app/src/formsflow_api/logging.conf
[2024-04-10 13:22:35 +0000] [8] [ERROR] Worker (pid:9) exited with code 3
[2024-04-10 13:22:35 +0000] [8] [ERROR] Worker (pid:10) was sent SIGTERM!
[2024-04-10 13:22:35 +0000] [8] [ERROR] Worker (pid:12) was sent SIGTERM!
[2024-04-10 13:22:35 +0000] [8] [ERROR] Worker (pid:11) was sent SIGTERM!
[2024-04-10 13:22:35 +0000] [8] [ERROR] Worker (pid:13) was sent SIGTERM!
[2024-04-10 13:22:35 +0000] [8] [ERROR] Shutting down: Master
[2024-04-10 13:22:35 +0000] [8] [ERROR] Reason: Worker failed to boot.
Hi there,
I'm using an OpenShift Local 4.15.3 (CodeReady Containers) single-node cluster. After following the cloud installation instructions and using the Helm charts repo script
scripts/install-forms-flow.sh
, all pods are deployed but four are in a CrashLoopBackOff state, and I haven't been able to get them to run:Below are details from my OpenShift Local console and the pods. My intuition suggests I missed a deployment or configuration step. Is anyone able to suggest what is wrong please?
I configured the OpenShift Local node with 12 CPUs, 32 GB RAM, and 64 GB disk storage and created a namespace called "forms-flow". Next, I cloned the Helm charts repo script scripts/install-forms-flow.sh master branch (commit 210f490e5abb61dc76f23f3f1b92a16f2288c344) and ran the installer with these options:
I should note that there were a lot of errors logged immediately after the "Happy Helming" message, which I think may be normal and not really errors:
Further down the output, there is what appears to be a genuine error:
However, looking at secrets in the forms-flow namespace, I don't see one named forms-flow-ai-auth, so maybe it's just an issue with the Helm chart project, or I need to create the secret. Here are all the secrets in the namespace:
Am I using the correct Helm chart branch, or did I somehow miss a step? I would be very grateful for any advice on how to get these pods running. Thanks in advance.
SteveF4
PS. Below are details from my installation.
Here's a screenshot showing my OpenShift console, and I will include details from each pod console log below the screenshot:
The forms-flow-documents-api pod console log shows this:
The forms-flow-data-analysis pod console log shows an error about a self-signed certificate:
The forms-flow-bpm pod shows this on the console:
And the forms-flow-api pod console shows this error: