- Where can I download the playground CLI?
- Using kubectl command
- My application is deployed but not running
- I cannot deploy an application
- My application seems broken
- I cannot connect to my app
- I deployed some applications and now there is none
- Somehow my applications where rebooted?
- My application fails to start due to some permission issue
- My components fail to start when trying to use port 80
- I have found a problem and it is not covered on the FAQ. Help!
I you want to use the
kubectl command, you need to obtain the kubeconfig` file to access to your cluster.
$ playground get-kubeconfig ASSOCIATED SERVER https://220.127.116.11 Use this kubeconfig to connect to the cluster and deploy applications: kubectl --kubeconfig <napptive-kubeconfig> ...
napptive-kubeconfig file will be saved in the current directory. Now you can use the kubectl command to perform the query you consider. Some examples below:
$ kubectl --kubeconfig napptive-kubeconfig get components $ kubectl --kubeconfig napptive-kubeconfig get healthscopes $ kubectl --kubeconfig napptive-kubeconfig get ingress
In some cases, an application configuration may be deployed, but some requirements may fail. Each cluster is assigned with a quota, and if the application requests more resources than available, it will not be possible to deploy the application. To diagnose the issue:
Check your available quota
The quota information can be obtained through the CLI or web.
using the CLI:
$ playground cluster info Server version: v1.18.12-gke.1206 OAM: v0.2.1 CPU MEM (MB) STORAGE (MB) 0.15/2 269/1000 0/1000
Obtain information about the application
- List the running applications and check the status to see if any is not running (use
playground appson the CLI or access through the web).
- Obtain information from the application and the individual components.
$ kubectl --kubeconfig <path_to>/napptive-kubeconfig get components.core.oam.dev failing-component
or through the underlying low-level deployment
$ kubectl --kubeconfig <path_to>/napptive-kubeconfig get deployment failing-component -oyaml
Quota errors will be reflect on the status as:
status: conditions: - lastTransitionTime: "<datetime>" lastUpdateTime: "<datetime>" message: Created new replica set "failing-component-<hash>" reason: NewReplicaSetCreated status: "True" type: Progressing - lastTransitionTime: "<datetime>" lastUpdateTime: "<datetime>" message: Deployment does not have minimum availability. reason: MinimumReplicasUnavailable status: "False" type: Available - lastTransitionTime: "<datetime>" lastUpdateTime: "<datetime>" message: 'pods "failing-component-<hash>" is forbidden: exceeded quota: user-quota, requested: memory=256Mi, used: memory=768Mi, limited: memory=1G' reason: FailedCreate status: "True" type: ReplicaFailure
To address this scenario, we recommend checking the request resources for each component and adjusting them if necessary.
Deployment failures may be related to three scenarios: kubeconfig issues, application definition issues, or quota limitations.
- Invalid kubeconfig file
Try redownloading the kubeconfig file and deploy the application again.
Using the web:
or with the CLI
$ playground get-kubeconfig
Check the Getting started for information on how to use them.
- Invalid YAML files
- Quota exceeded
See previous FAQ question on how to diagnose this issue.
To connect to the web interface of a deployed application first list the associate services:
$ kubectl --kubeconfig <path_to>/napptive-kubeconfig get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE drawio ClusterIP 10.48.4.209 <none> 8080/TCP 133m
And use port-forwarding
$ kubectl --kubeconfig <path_to>/napptive-kubeconfig port-forward service/drawio 7000:8080 Forwarding from 127.0.0.1:7000 -> 8080 Forwarding from [::1]:7000 -> 8080
And connect to localhost:7000 to reach the web. Notice that the port-fordwarding syntax specifies the ports as
This limitation only applies to the free playground layer and will be removed in the future. Does this not address your specific problem? we want to hear from you! Let’s discuss how we can help you.
The playground is offered as a free service with some restrictions. In particular, applications will be shutdown after 24 hours. If you need more time contact us and discover our offerings.
As any other SaaS based cloud, sometimes the underlying infrastructure changes (e.g., new hardware is deployed, maintenance operations). In those cases you may experience a reboot of the applications.
You may see some errors either after executing
kubectl create commands such as:
Error from server (Forbidden): error when creating "some_pod.yaml": pods "try-run-as-root" is forbidden: PodSecurityPolicy: unable to admit pod: [spec.containers.securityContext.runAsUser: Invalid value: 0: running with the root UID is forbidden]
or when listing pods:
$ k --kubeconfig napptive-kubeconfig get pods NAME READY STATUS RESTARTS AGE my-component-74c66cff8c-l4fv5 0/1 CreateContainerConfigError 0 5s
with the pod reporting:
message: container has runAsNonRoot and image will run as root reason: CreateContainerConfigError
These errors are related to the security mechanisms implemented in the Playground to provide security in a multi-tenant environment. Check Understanding the Playground to obtain an overview of the security restrictions that apply. The common remediation for this problems is to add:
containers: - name: <my-container> securityContext: runAsUser: 1000
The security mechanisms implemented in the Playground to provide security in a multi-tenant environment. As a result running containers with
root user or binding to commonly reserved ports such as 80 is forbidden. Check Understanding the Playground to obtain an overview of the security restrictions that apply. The common remediation for this problem is to change the port the component is listening on. This is usually done by modifying an environment variable that is component dependent. Check the documentation of the component for more information.
We are happy to help you achieve your objectives, contact us and discover how we can help you achieve your goals.