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

Make a 2.0.0 release of Helm Chart (to match OpenWhisk 2.0.0 release) #781

Open
xahys opened this issue Jul 31, 2024 · 5 comments
Open

Make a 2.0.0 release of Helm Chart (to match OpenWhisk 2.0.0 release) #781

xahys opened this issue Jul 31, 2024 · 5 comments

Comments

@xahys
Copy link

xahys commented Jul 31, 2024

Hello!
It's not a problem, but may be helpful.

I noticed that a more stable version of Openwhisk is located here on GitHub in the Master branch.

If you push Chart from Helm via repo, chart version getting from Tags

helm show chart openwhisk/openwhisk
apiVersion: v2
description: Apache OpenWhisk is an open source serverless cloud platform
home: https://openwhisk.apache.org
version: 1.0.0

But in the master branch, many problems were solved and a lot of PR was done, especially affecting errors such as here (#735). I think, more problems already been resolved, but changes was save in master branch.

So, could you check out the master branch and, if possible, create a TAG 1.0.1 and push it into Helm? Thank you very much!

@yorickdevries
Copy link

This would help me a lot as well

@dgrove-oss
Copy link
Member

Hi. I'm sorry this project has languished, but we've unfortunately picked up a fair amount of technical debt that needs to be dealt with before we can make a decent release.

Some of the big items are:

  1. The CI infrastructure needs to be ported from TravisCI to GitHub Actions (that's why it hasn't run in over a year).
  2. We need to update to modern versions of Kubernetes (and of Kafka, ZooKeeper, etc).
  3. The entire OpenWhisk project is behind on switching to multi-arch Docker images (Produce multi-arch docker images openwhisk#5503) which has really limited my personal ability to help fix this as my development machine is an arm-based Mac with rancher-desktop.

@dgrove-oss dgrove-oss changed the title Can someone create version 1.0.1 from the master and push it into Helm? Make a 2.0.0 release of Helm Chart (to match OpenWhisk 2.0.0 release) Aug 13, 2024
@singhsegv
Copy link

singhsegv commented Aug 26, 2024

Hey @dgrove-oss

I've been using OpenWhisk on k8s for a research project and wanted to test how the performance differs with the latest version of invoker/controller/etc.

I'd love to pick this up if someone can point me to the right direction and help to understand what all needs to be changed.

Currently just changing the docker image tags to latest one end up with these error:

Exception in thread "main" pureconfig.error.ConfigReaderException: Cannot convert configuration to a org.apache.openwhisk.core.etcd.EtcdConfig. Failures are:
  at 'whisk':
    - Key not found: 'etcd'.

	at pureconfig.package$.getResultOrThrow(package.scala:139)
	at pureconfig.package$.loadConfigOrThrow(package.scala:161)
	at org.apache.openwhisk.core.loadBalancer.FPCPoolBalancer$.instance(FPCPoolBalancer.scala:721)
	at org.apache.openwhisk.core.controller.Controller.<init>(Controller.scala:119)
	at org.apache.openwhisk.core.controller.Controller$.start(Controller.scala:338)
	at org.apache.openwhisk.core.controller.Controller$.main(Controller.scala:291)
	at org.apache.openwhisk.core.controller.Controller.main(Controller.scala)

@dgrove-oss
Copy link
Member

dgrove-oss commented Aug 29, 2024

@style95 -- maybe you have some suggestions? Core openwhisk's inability to build on arm64 has really limited my ability to do anything with the core project or openwhisk-deploy-kube for the last couple of years.

@style95
Copy link
Member

style95 commented Aug 29, 2024

@singhsegv
I believe this is because the scheduler is now enabled by default in the core project.
https://github.com/apache/openwhisk/blob/master/common/scala/src/main/resources/reference.conf#L21C1-L32C2

And I see it is not aligned with openwhisk-deploy-kube where the scheduler is disabled by default.
https://github.com/apache/openwhisk-deploy-kube/blob/master/helm/openwhisk/values.yaml#L275

Since you just updated the images, the ShardingPoolBalancer would be enabled and no etcd configuration would exist in the helm chart while as you can see in the log, the FPCPoolBalancer is enabled in the image.

I think you have two options.

  1. Enable the scheduler and add ETCD-related configurations.
    I think you need to update the helm chart too and enable this configuration.

  2. Disable the scheduler and change the underlying implementations to the ShardingPoolBalancer family.
    This is trickier as you need to update the helm chart for this way manually.

The main thing is to change all the relevant SPI implementation.

  LoadBalancerProvider = org.apache.openwhisk.core.loadBalancer.FPCPoolBalancer
  EntitlementSpiProvider = org.apache.openwhisk.core.entitlement.FPCEntitlementProvider
  InvokerProvider = org.apache.openwhisk.core.invoker.FPCInvokerReactive
  InvokerServerProvider = org.apache.openwhisk.core.invoker.FPCInvokerServer

https://github.com/apache/openwhisk/blob/master/common/scala/src/main/resources/reference.conf#L26C3-L30

I think they should be changed like below.

  LoadBalancerProvider = org.apache.openwhisk.core.loadBalancer.ShardingContainerPoolBalancer
  EntitlementSpiProvider = org.apache.openwhisk.core.entitlement.LocalEntitlementProvider
  InvokerProvider = org.apache.openwhisk.core.invoker.InvokerReactive
  InvokerServerProvider = org.apache.openwhisk.core.invoker.DefaultInvokerServer

Since you cannot change the reference.conf file as it resides in the image.
You need to configure them via helm chart.

I see currently the helm chart is defined with the assumption that ShardingPoolBalancer is enabled by default but it is actually not.
https://github.com/apache/openwhisk-deploy-kube/blob/master/helm/openwhisk/templates/invoker-pod.yaml#L149

So you need to configure implementation in a way like the below.
This is supposed to be updated in the openwhisk-deploy-kube but I couldn't work on it yet.

          - name: "CONFIG_whisk_spi_InvokerProvider"
            value: "org.apache.openwhisk.core.invoker.InvokerReactive"

Since I haven't tried this yet as well, not one hundred percent sure but it should be ideally addressed in this way.

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

No branches or pull requests

5 participants