Giter Club home page Giter Club logo

activiti-cloud-charts's People

Contributors

almerico avatar igdianov avatar miguelruizdev avatar mteodori avatar rgauss avatar roxanaspatariu avatar ryandawsonuk avatar salaboy avatar sohelsaiyed avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

activiti-cloud-charts's Issues

activiti-cloud-modeling persistence

I can't figure out how to make activiti-cloud-modeling persistent. I'm using AWS EKS, and the nodes are fulfilled using Spot instances, which means nodes can be lost and replaced at any time, so I need a way to make the data persistent across replacement pods.

I deployed full example using

helm install --name example \
  --set global.gateway.domain=REPLACEME \
  activiti-cloud-charts/activiti-cloud-full-example

Testing persistence by:

  1. Access Activiti Modeler with default user

  2. Create a new project, so now I see it in the project list

  3. Using kubectl, I delete the pod (to simulate a lost pod): kubectl delete pod example-activiti-cloud-modeling-87cd6b58c-46q5v

  4. Kubernetes automatically spins up new pod to replace deleted one

  5. Access Activiti Modeler again, and now I can't see the project I had previously created

extraEnv and extraVolumeMounts

The keycloak chart uses concepts like extraEnv and extraVolumes and extraVolumeMounts. https://github.com/kubernetes/charts/tree/master/stable/keycloak

This is called the 'sidecar pattern'. It allows the consumer of the chart to specify their own k8s objects to be deployed with the chart through the values.yaml, mount them into the chart and define them using go templating functions like normal chart definitions. (See the PR that introduced to the keycloak chart.)

This will be useful for us as it will allow users to mount configmaps for exposecontroller urls (@almerico and @igdianov already doing this with the keycloak chart) and inject environment variables or properties for security policies.

An example change would be like:

image

error converting YAML to JSON with deployment.yaml

I see this error with the activiti-cloud-charts template.

Exception rendering template for activiti-cloud-demo-ui:0.1.9 : while parsing a block mapping in 'reader', line 52, column 11: - name: ACT_IDM_CLIENT_ID ^ expected <block end>, but found Scalar in 'reader', line 53, column 20: value: """" ^ ^

Lint shows this

[ERROR] templates/deployment.yaml: unable to parse YAML

error converting YAML to JSON: yaml: line 29: did not find expected key

Error: 1 chart(s) linted, 1 chart(s) failed

But the error is actually in line 40 of deployment.yaml which appears to contain
unnecessary double quotes. It appears to be confusing the pipelined quote
function.

The website given by README used in HELM repo is 404?

I followed the guide: install this chart by running against a Kubernetes Cluster,and enter the "helm repo add activiti-cloud-charts https://activiti.github.io/activiti-cloud-charts/",but it shows "Error: Looks like "https://activiti.github.io/activiti-cloud-charts/" is not a valid chart repository or cannot be reached: Get https://activiti.github.io/activiti-cloud-charts/index.yaml: read tcp 10.1.18.107:45268->185.199.109.153:443: read: connection reset by peer",and i visited "https://activiti.github.io/activiti-cloud-charts/" ,it shows 404,file not found``````````````````````

websockets

Want to add graphql websockets ingress/gateway config but have parked it as problems with graphql and websockets separation that are not related to k8s - see Activiti/Activiti#1714 (comment)

Readiness probe failed Liveness probe failed

Output of helm version:
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}

Output of kubectl version:
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:37:52Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:30:26Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Cloud Provider/Platform (AKS, GKE, Minikube etc.):
Custom binary install, 1 master(192.168.0.110) + 2 node(192.168.0.111ใ€192.168.0.112)

When I install with helm:
helm install --name example activiti-cloud-charts/activiti-cloud-full-example --set global.gateway.domain=192.168.0.110

kubectl get pod
NAME READY STATUS RESTARTS AGE
example-activiti-cloud-audit-5bfd45c849-t9ql2 0/1 Running 9 30m
example-activiti-cloud-connector-5fc9f4994f-gs67d 0/1 Running 9 30m
example-activiti-cloud-gateway-c9d4b8cb5-cg9b6 1/1 Running 0 30m
example-activiti-cloud-modeling-d75969bb6-rpgqg 2/2 Running 0 30m
example-activiti-cloud-notifications-graphql-6fbb59b8d4-6vpxk 0/1 Pending 0 30m
example-activiti-cloud-query-7b8b7b967d-922n9 0/1 Pending 0 30m
example-rabbitmq-0 0/1 Pending 0 30m
example-runtime-bundle-56479dd6c4-lwgsb 0/1 Pending 0 30m

kubectl describe pod example-activiti-cloud-connector-5fc9f4994f-gs67d
Events:
Type Reason Age From Message


Normal Scheduled 30m default-scheduler Successfully assigned default/example-activiti-cloud-connector-5fc9f4994f-gs67d to 192.168.0.112
Warning Unhealthy 27m kubelet, 192.168.0.112 Readiness probe failed: HTTP probe failed with statuscode: 503
Warning Unhealthy 27m kubelet, 192.168.0.112 Readiness probe failed: Get http://172.17.87.5:8080/actuator/health: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Warning Unhealthy 27m (x2 over 27m) kubelet, 192.168.0.112 Liveness probe failed: HTTP probe failed with statuscode: 503
Normal Killing 27m kubelet, 192.168.0.112 Killing container with id docker://activiti-cloud-connector:Container failed liveness probe.. Container will be killed and recreated.
Normal Pulling 27m (x2 over 30m) kubelet, 192.168.0.112 pulling image "activiti/example-cloud-connector:7.0.0.SR1"
Normal Pulled 26m (x2 over 29m) kubelet, 192.168.0.112 Successfully pulled image "activiti/example-cloud-connector:7.0.0.SR1"
Normal Created 26m (x2 over 29m) kubelet, 192.168.0.112 Created container
Normal Started 26m (x2 over 29m) kubelet, 192.168.0.112 Started container
Warning Unhealthy 25m (x3 over 27m) kubelet, 192.168.0.112 Liveness probe failed: Get http://172.17.87.5:8080/actuator/health: dial tcp 172.17.87.5:8080: connect: connection refused
Warning Unhealthy 20m (x2 over 27m) kubelet, 192.168.0.112 Liveness probe failed: Get http://172.17.87.5:8080/actuator/health: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
Warning BackOff 5m34s (x30 over 13m) kubelet, 192.168.0.112 Back-off restarting failed container
Warning Unhealthy 35s (x49 over 28m) kubelet, 192.168.0.112 Readiness probe failed: Get http://172.17.87.5:8080/actuator/health: dial tcp 172.17.87.5:8080: connect: connection refused

kubectl logs example-activiti-cloud-connector-5fc9f4994f-gs67d
2019-03-24 08:16:33.112 WARN [example-cloud-connector,b8010d44b6a6d26c,b8010d44b6a6d26c,false] 1 --- [nio-8080-exec-3] o.s.b.a.amqp.RabbitHealthIndicator : Rabbit health check failed

org.springframework.amqp.AmqpIOException: java.net.UnknownHostException: example-rabbitmq
at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:71)
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:509)
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:682)
at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:214)
at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1984)
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1958)
at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1938)
at org.springframework.boot.actuate.amqp.RabbitHealthIndicator.getVersion(RabbitHealthIndicator.java:48)
at org.springframework.boot.actuate.amqp.RabbitHealthIndicator.doHealthCheck(RabbitHealthIndicator.java:44)
at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:84)
at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:98)
at org.springframework.boot.actuate.health.HealthEndpoint.health(HealthEndpoint.java:50)
at org.springframework.boot.actuate.health.HealthEndpointWebExtension.health(HealthEndpointWebExtension.java:54)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:246)
at org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:76)
at org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation.invoke(AbstractDiscoveredOperation.java:61)
at org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$ServletWebOperationAdapter.handle(AbstractWebMvcEndpointHandlerMapping.java:294)
at org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(AbstractWebMvcEndpointHandlerMapping.java:355)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.keycloak.adapters.springsecurity.filter.KeycloakAuthenticatedActionsFilter.doFilter(KeycloakAuthenticatedActionsFilter.java:57)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.keycloak.adapters.springsecurity.filter.KeycloakSecurityContextRequestFilter.doFilter(KeycloakSecurityContextRequestFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.keycloak.adapters.springsecurity.filter.KeycloakPreAuthActionsFilter.doFilter(KeycloakPreAuthActionsFilter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:90)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.keycloak.adapters.springsecurity.filter.KeycloakAuthenticatedActionsFilter.doFilter(KeycloakAuthenticatedActionsFilter.java:74)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.keycloak.adapters.springsecurity.filter.KeycloakSecurityContextRequestFilter.doFilter(KeycloakSecurityContextRequestFilter.java:77)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.keycloak.adapters.springsecurity.filter.KeycloakPreAuthActionsFilter.doFilter(KeycloakPreAuthActionsFilter.java:86)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.cloud.sleuth.instrument.web.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at brave.servlet.TracingFilter.doFilter(TracingFilter.java:86)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:117)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:106)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.keycloak.adapters.tomcat.AbstractAuthenticatedActionsValve.invoke(AbstractAuthenticatedActionsValve.java:67)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
at org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.invoke(AbstractKeycloakAuthenticatorValve.java:181)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.UnknownHostException: example-rabbitmq
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:797)
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1505)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1364)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1298)
at com.rabbitmq.client.DnsRecordIpAddressResolver.resolveIpAddresses(DnsRecordIpAddressResolver.java:83)
at com.rabbitmq.client.DnsRecordIpAddressResolver.getAddresses(DnsRecordIpAddressResolver.java:73)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1098)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1054)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:994)
at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:462)
... 141 common frames omitted

Order of conditions in application chart

I think they're backwards compared to how we want to use them. So

condition: runtime-bundle.enabled,application.runtime-bundle.enabled

Should be reversed. Aim is that user of chart only controls via the application.runtime-bundle.enabled option

Example that shows how to install via 'helm install' without JX

I suspect the resource limits could all be lowered significantly and it should still work as we've had the same components working in minikube before. Then you could install everything inc rb to minikube with just a helm install.

Maybe put this in the README.md of the chart for the runtime bundle

conditions for application and infrastructure paths

The condition on demo ui right now is activiti-cloud-demo-ui.enabled. So to turn it off you set:

activiti-cloud-demo-ui:
enabled: false

But this isn't intuitive as it is inside the application chart. We should add an extra application.activiti-cloud-demo-ui.enabled like in the helm docs. And so on for the other subcharts.

demo ui to work on a gw path

Currently if you put it on a gw path you get 404 for all the resource downloads. But it should work to use e.g. npm run build -- --base-href โ€œ/activiti-cloud-demo-ui/". So we could make that a variable and use it in the Dockerfile https://github.com/ryandawsonuk/activiti-cloud-demo-ui/blob/develop/Dockerfile#L7
then we'd be able to pass in an env var at the chart level to tell the ui which path it is meant to be on
and default it to "/". This would mean we'd only need ingresses for the gateway and keycloak

Keycloak not compatitible with Firefox due to incorrect corf headers

Firefox only support for the header format as follow:

Access-Control-Allow-Methods: <method>, <method>, ...
Access-Control-Allow-Headers: <header-name>, <header-name>, ...

notice there's no double quotes around the values, but the ingress definition for keycloak added the header with two double quotes around the header , like :
https://github.com/Activiti/activiti-cloud-charts/blob/master/activiti-keycloak/values.yaml

      more_set_headers 'Access-Control-Allow-Methods: "POST, GET, OPTIONS, PUT, PATCH, DELETE"';
      more_set_headers 'Access-Control-Allow-Headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,authorization"';

this will Firefox raise an exception saying POST method is not in Access-Control-Allow-Methods when posting a form to keycloak.
deleting these quotes can fix the problem. #73

reference link:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Access-Control-Allow-Methods

Keycloak persistence

Enabling Keycloak persistence should be added to the documentation. The following was tested on AWS EKS for Activiti Cloud 7.0.0 SR1

helm install --name example \
  --set global.gateway.domain=REPLACEME \
  --set infrastructure.activiti-keycloak.keycloak.keycloak.persistence.deployPostgres=true \
  --set infrastructure.activiti-keycloak.keycloak.keycloak.persistence.dbVendor=postgres \
  --set infrastructure.activiti-keycloak.keycloak.postgresql.persistence.enabled=true \
  --set keycloak.persistence.deployPostgres=true \
  activiti-cloud-charts/activiti-cloud-full-example

Turns out setting keycloak.persistence.deployPostgres is necessary because keycloak itself has a condition on the postgresql dependency, and apparently values used for dependency conditions in requirements.yaml don't pass through subcharts (so infrastructure.activiti-keycloak.keycloak.keycloak.persistence.deployPostgres is not the same as keycloak.persistence.deployPostgres).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.