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

Remove deprecated Nodejs18 support from serverless #1205

Closed
3 tasks
kwiatekus opened this issue Oct 14, 2024 · 1 comment
Closed
3 tasks

Remove deprecated Nodejs18 support from serverless #1205

kwiatekus opened this issue Oct 14, 2024 · 1 comment
Assignees
Labels
kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt.
Milestone

Comments

@kwiatekus
Copy link
Contributor

kwiatekus commented Oct 14, 2024

Description
Remove support to Nodejs18 serverless runtime

AC

  • Users should not be able to create new Nodejs18 functions
  • Users do not loose their existing Nodejs18 function - those keep running but cannot be edited unless runtime filed is changed.
  • Removed runtime should be part of new release and included in the releasae notes and in the "whats new" announcement for customers

Related
We can do it at 16-10-2024 as it fulfills the deprecation period announced by the notice to customers
Nodejs 18 runtime was deprecated with #747

@kwiatekus kwiatekus added the kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. label Oct 14, 2024
@kwiatekus kwiatekus added this to the 1.6.0 milestone Oct 14, 2024
@kwiatekus
Copy link
Contributor Author

@Cortey @MichalKalke I tested it the following way:

  • I installed operator from latest version (1.5.1) and enabled serverless.
  • I created nodejs18 function and waited until its served
  • I updated operator's image tag main
  • Operator restarted the function controller, which reconciled functions.
  • My function entered into Configured: False, which is expected, because of: invalid source.inline.dependencies value: cannot find runtime: nodejs18
NAME   CONFIGURED   BUILT   RUNNING   RUNTIME    VERSION   AGE
test   False        True    True      nodejs18   3         15m

What is unexpected though is that the function controller keeps reconciling it in an infinite loop. Looks like this state is not considered as a final step.. and the reconciliation loop expects to be continued. This is visible when using watch option via kubectl:

k get functions test -w                                                                                                                                                              
NAME   CONFIGURED   BUILT   RUNNING   RUNTIME    VERSION   AGE
test   False        True    True      nodejs18   3         16m
test   False        True    True      nodejs18   3         16m
test   False        True    True      nodejs18   3         16m
test   False        True    True      nodejs18   3         16m
test   False        True    True      nodejs18   3         16m
test   False        True    True      nodejs18   3         16m
test   False        True    True      nodejs18   3         16m

but also in the logs of the controller:

k logs -n kyma-system serverless-ctrl-mngr-95cb5dc4c-8dtxw -f
...
version":3,"requeueAfter":1,"requeue":false,"error":null}}
{"level":"INFO","timestamp":"2024-10-24T13:40:47Z","logger":"controllers.function","caller":"serverless/fsm.go:76","message":"reconciliation result","context":{"kind":"Function","name":"test","namespace":"default","version":3,"requeueAfter":1,"requeue":false,"error":null}}
{"level":"INFO","timestamp":"2024-10-24T13:40:48Z","logger":"controllers.function","caller":"serverless/fsm.go:76","message":"reconciliation result","context":{"kind":"Function","name":"test","namespace":"default","version":3,"requeueAfter":1,"requeue":false,"error":null}}
{"level":"INFO","timestamp":"2024-10-24T13:40:49Z","logger":"controllers.function","caller":"serverless/fsm.go:76","message":"reconciliation result","context":{"kind":"Function","name":"test","namespace":"default","version":3,"requeueAfter":1,"requeue":false,"error":null}}
{"level":"INFO","timestamp":"2024-10-24T13:40:50Z","logger":"controllers.function","caller":"serverless/fsm.go:76","message":"reconciliation result","context":{"kind":"Function","name":"test","namespace":"default","version":3,"requeueAfter":1,"requeue":false,"error":null}}
{"level":"INFO","timestamp":"2024-10-24T13:40:51Z","logger":"controllers.function","caller":"serverless/fsm.go:76","message":"reconciliation result","context":{"kind":"Function","name":"test","namespace":"default","version":3,"requeueAfter":1,"requeue":false,"error":null}}
{"level":"INFO","timestamp":"2024-10-24T13:40:52Z","logger":"controllers.function","caller":"serverless/fsm.go:76","message":"reconciliation result","context":{"kind":"Function","name":"test","namespace":"default","version":3,"requeueAfter":1,"requeue":false,"error":null}}

...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt.
Projects
None yet
Development

No branches or pull requests

3 participants