Is this a BUG REPORT or FEATURE REQUEST?:
BUG REPORT
What happened:
Creating Java function will make function as NOT_READY and pod is marked as Init:CrashLoopBackOff
What you expected to happen:
Function should have been created successfully
How to reproduce it (as minimally and precisely as possible):
Create Java file. Hello.java
package io.kubeless;
import io.kubeless.Event;
import io.kubeless.Context;
import java.lang.RuntimeException;
public class Hello {
public String hello(Event event, Context context) {
return "Hello world!";
}
}
Add pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>function</artifactId>
<name>function</name>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>io.kubeless</groupId>
<artifactId>params</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<parent>
<groupId>io.kubeless</groupId>
<artifactId>kubeless</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
</project>
Deploy function
kubeless function deploy hello-java -f Hello.java -d pom.xml --handler Hello.hello -r java1.8
[36mINFO[0m[0000] Deploying function...
[36mINFO[0m[0000] Function hello-java submitted for deployment
[36mINFO[0m[0000] Check the deployment status executing 'kubeless function ls hello-java'
Kubeless function list
kubeless function ls
NAME NAMESPACE HANDLER RUNTIME DEPENDENCIES STATUS
hello default hello.world python2.7 1/1 READY
hello-java default Hello.hello java1.8 <project xmlns="http://maven.apache.org/POM/4.0.0" 0/1 NOT READY
xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins...
xsi:schemaLocation="http://maven.apache.org/POM...
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>function</artifactId>
<name>function</name>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>io.kubeless</groupId>
<artifactId>params</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<parent>
<groupId>io.kubeless</groupId>
<artifactId>kubeless</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
</project>
nodejs default node.less nodejs8 1/1 READY
Pod status
NAME READY STATUS RESTARTS AGE
hello-94657547f-4th28 1/1 Running 0 1h
hello-java-57c87d8cd-s9l65 0/1 Init:CrashLoopBackOff 3 1m
nodejs-798475b6cf-g6k4h 1/1 Running 0 38m
Pod description
kubectl.exe describe pods hello-java-57c87d8cd-s9l65
Name: hello-java-57c87d8cd-s9l65
Namespace: default
Node: docker-for-desktop/192.168.65.3
Start Time: Tue, 27 Nov 2018 13:36:45 +0530
Labels: created-by=kubeless
function=hello-java
pod-template-hash=137438478
Annotations: prometheus.io/path=/metrics
prometheus.io/port=8080
prometheus.io/scrape=true
Status: Pending
IP: 10.1.16.188
Controlled By: ReplicaSet/hello-java-57c87d8cd
Init Containers:
prepare:
Container ID: docker://348af8d0208fb87aeabdc962da9fa1c3b225b0a84ee5933c3a9f7e0c9fd91503
Image: kubeless/unzip@sha256:f162c062973cca05459834de6ed14c039d45df8cdb76097f50b028a1621b3697
Image ID: docker-pullable://kubeless/unzip@sha256:f162c062973cca05459834de6ed14c039d45df8cdb76097f50b028a1621b3697
Port: <none>
Host Port: <none>
Command:
sh
-c
Args:
echo '73cae57c53af18d70df64876eda1d4efd7b14e490fecbbf50851ad930bfc9b49 /src/Hello.java' > /tmp/func.sha256 && sha256sum -c /tmp/func.sha256 && cp /src/Hello.java /kubeless/Hello.java && cp /src/pom.xml /kubeless
State: Terminated
Reason: Completed
Exit Code: 0
Started: Tue, 27 Nov 2018 13:36:47 +0530
Finished: Tue, 27 Nov 2018 13:36:47 +0530
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/kubeless from hello-java (rw)
/src from hello-java-deps (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-l2t6z (ro)
compile:
Container ID: docker://e6281ba7ec3c188b56ea31ffa0234e8b35096d32e5e530ef9c586e243d894cf5
Image: kubeless/java-init@sha256:a14d846bfe53f359f706a260b95f0a9a755883b053dbd17b724e7a3cdff5bae6
Image ID: docker-pullable://kubeless/java-init@sha256:a14d846bfe53f359f706a260b95f0a9a755883b053dbd17b724e7a3cdff5bae6
Port: <none>
Host Port: <none>
Command:
sh
-c
Args:
/compile-function.sh
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Error
Message: [INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Child module /kubeless/function/params of /kubeless/function/pom.xml does not exist @
[ERROR] Child module /kubeless/function/function of /kubeless/function/pom.xml does not exist @
[ERROR] Child module /kubeless/function/handler of /kubeless/function/pom.xml does not exist @
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project io.kubeless:kubeless:1.0-SNAPSHOT (/kubeless/function/pom.xml) has 3 errors
[ERROR] Child module /kubeless/function/params of /kubeless/function/pom.xml does not exist
[ERROR] Child module /kubeless/function/function of /kubeless/function/pom.xml does not exist
[ERROR] Child module /kubeless/function/handler of /kubeless/function/pom.xml does not exist
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
Exit Code: 1
Started: Tue, 27 Nov 2018 13:40:09 +0530
Finished: Tue, 27 Nov 2018 13:40:11 +0530
Ready: False
Restart Count: 5
Environment:
KUBELESS_INSTALL_VOLUME: /kubeless
KUBELESS_FUNC_NAME: hello
Mounts:
/kubeless from hello-java (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-l2t6z (ro)
Containers:
hello-java:
Container ID:
Image: kubeless/java@sha256:d2a59e50e8181174ad3c6096cd5d3ce82f46b7e22a6f3a109b0816787e7190d9
Image ID:
Port: 8080/TCP
Host Port: 0/TCP
State: Waiting
Reason: PodInitializing
Ready: False
Restart Count: 0
Liveness: http-get http://:8080/healthz delay=3s timeout=1s period=30s #success=1 #failure=3
Environment:
FUNC_HANDLER: hello
MOD_NAME: Hello
FUNC_TIMEOUT: 180
FUNC_RUNTIME: java1.8
FUNC_MEMORY_LIMIT: 0
FUNC_PORT: 8080
KUBELESS_INSTALL_VOLUME: /kubeless
Mounts:
/kubeless from hello-java (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-l2t6z (ro)
Conditions:
Type Status
Initialized False
Ready False
PodScheduled True
Volumes:
hello-java:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
hello-java-deps:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: hello-java
Optional: false
default-token-l2t6z:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-l2t6z
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 4m default-scheduler Successfully assigned hello-java-57c87d8cd-s9l65 to docker-for-desktop
Normal SuccessfulMountVolume 4m kubelet, docker-for-desktop MountVolume.SetUp succeeded for volume "hello-java"
Normal SuccessfulMountVolume 4m kubelet, docker-for-desktop MountVolume.SetUp succeeded for volume "default-token-l2t6z"
Normal SuccessfulMountVolume 4m kubelet, docker-for-desktop MountVolume.SetUp succeeded for volume "hello-java-deps"
Normal Pulled 4m kubelet, docker-for-desktop Container image "kubeless/unzip@sha256:f162c062973cca05459834de6ed14c039d45df8cdb76097f50b028a1621b3697" already present on machine
Normal Created 4m kubelet, docker-for-desktop Created container
Normal Started 4m kubelet, docker-for-desktop Started container
Normal Created 2m (x4 over 4m) kubelet, docker-for-desktop Created container
Normal Started 2m (x4 over 4m) kubelet, docker-for-desktop Started container
Warning BackOff 2m (x6 over 3m) kubelet, docker-for-desktop Back-off restarting failed container
Normal Pulled 2m (x5 over 4m) kubelet, docker-for-desktop Container image "kubeless/java-init@sha256:a14d846bfe53f359f706a260b95f0a9a755883b053dbd17b724e7a3cdff5bae6" already present on machine
Anything else we need to know?:
Environment:
- Kubernetes version (use
kubectl version
):
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:17:39Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
- Kubeless version (use
kubeless version
):
Kubeless version: v1.0.0
- Cloud provider or physical cluster:
Using kubernetes on docker edge channel for windows.