IBM Cloud Docs
FAQs

FAQs

Answers to common questions about the IBM Cloud® Code Engine service.

What is IBM Cloud Code Engine?

Code Engine is developed by IBM and it is built with many open source components. The goal is to extend the capabilities of Kubernetes to help you create modern, source-centric containerized, and serverless apps that run on your Kubernetes cluster. The platform is designed to address the needs of developers who today must decide what type of app they want to run in the cloud: 12-factor apps, containers, or functions. For more information, see About Code Engine.

With Code Engine, you can deploy applications, run jobs, and even build source code from a single dashboard.

What is a project?

A project is a grouping of Code Engine entities such as applications, jobs, and builds. A project is based on a Kubernetes namespace. The name of your project must be unique within your IBM Cloud® resource group, user account, and region. Projects are used to manage resources and provide access to its entities.

A project provides the following items.

  • Provides a unique namespace for entity names.
  • Manages access to project resources (inbound access).
  • Manages access to backing services, registries, and repositories (outbound access).
  • Has an automatically generated certificate for Transport Layer Service (TLS).

For more information about projects, see Manage projects.

Where can I find code samples?

You can find code samples to help you explore the capabilities of Code Engine. Visit our Code Engine code samples repository on GitHub.

I need more memory! Can I increase my limits?

Yes, you can increase your Code Engine limits by contacting IBM support.

Do I need a Docker Hub account to use Code Engine?

Code Engine does not require a Docker Hub account. Although Code Engine does run containers, you do not need to understand container technology to deploy workloads on Code Engine. You can start with source code and Code Engine builds the container image for you and stores it in an IBM Cloud Container Registry namespace that is owned by your account. Although IBM Cloud Container Registry is used as the default container registry, Code Engine can push and pull images from any other public and private registry that is accessible from IBM Cloud.

What is the difference between a Docker build on my system and a build in Code Engine?

The result of a Docker build that you run on your local system is the same container image that you get if you run a build with the same Dockerfile in Code Engine. However, the build in Code Engine is not running on your local system, but instead in the Code Engine system. This build in Code Engine gives you several advantages.

  1. You are not required to install software, such as Docker Desktop, locally.
  2. You can use the resources that are provided by Code Engine. For example, you can take advantage of the speed of IBM Cloud to push and pull container registry images for you.
  3. You can build your container image by using the Buildpacks build strategy instead of Dockerfile, which detects your sources for various languages and automatically builds a container out of it.
  4. If you have an image that was built with a non-Intel based processor, Code Engine can rebuild it for you.

Why do images that are built with non-Intel processors not work with Code Engine?

If you have an image that exists in a container registry and the image was built with a non-Intel based processor, Code Engine cannot run your container image. Code Engine uses Intel-based processing. You can build your own image if you use Intel processing (x86 processor). You can also choose to let Code Engine handle the build process for you. For more information, see Planning your build.

Do Code Engine apps support WebSockets?

Yes! You can find a sample app that uses WebSockets by visiting our Code Engine samples repository on GitHub.

The maximum time for any connection to an application is 10 minutes, even if the connection is not idle. With Code Engine, you can configure this connection time with the timeout value. With the CLI, use the --timeout option with the app create command or the app update command. From the console, you can set the Timeout value for your app from the Resources & scaling tab. For an app that use WebSockets, the client must reconnect to the app after the connection is closed. So, if your app needs a persistent connection, create a new connection before the timeout value is reached.

Do Code Engine apps support gRPC?

Yes! You can find a sample app that uses gRPC by visiting our Code Engine samples repository on GitHub.

Because gRPC depends on HTTP/2, you must set the port name to h2c and the port value to 8080, and then your Code Engine application can support HTTP/2 traffic. Use the Code Engine CLI to configure the --port h2c:8080 option with the app create command or the app update command to configure your application to use gRPC. See Implementing applications with gRPC.

Does Code Engine provide a way to limit access to a particular entity within a Code Engine project?

No, in Code Engine, roles that are applied to any Code Engine entity are only scoped to the project that is selected as the current context. Thus, you cannot control permissions on individual resources within a Code Engine project.

Does Code Engine provide an OpenAPI specification for the deployed function?

No, Code Engine does not generate or provide an OpenAPI specification for the functions you deploy. There are packages and tools available for many programming languages to generate an OpenAPI specification from code.

How can I review the Code Engine service terms?

For the latest service level agreement terms, see the terms of service.

How can I give feedback?

Your feedback on Code Engine is important to us and helps us improve. You can provide feedback in multiple ways:

  • Click Open doc issue at the end of a documentation page to open an issue and provide your comments.
  • Share feedback through Slack. You can join the discussion in the #code-engine channel.