Step-by-step instructions on how to allow Code Engine to access repositories in IBM Git.

IBM Cloud® Code Engine is a fully managed, serverless platform that runs your containerized workloads, including web apps, microservices, event-driven functions or batch jobs. Code Engine even builds container images for you from your source code. 

One of the best features of Code Engine is application scaling. It can scale down to zero instances when there is no access, and this will help reduce the running cost.

Right now, a number of users have their applications running in Cloud Foundry (CF), and its source code is often stored in IBM Git, which sets its repositories private by default. In this article, I will introduce how to allow Code Engine to access repositories in IBM Git. There are three sections of actions you need to perform.

Prerequisites

  • An IBM Cloud account and access to deploy apps in IBM Cloud Code Engine
  • A basic understanding of Code Engine and how to write a Dockerfile

Step 1: Prepare an SSH key pair

In order to let Code Engine to access repositories in IBM Git, you need to use an SSH key pair. Since Code Engine does not accept passphrased keys, let’s create a new set of key pairs. Please note I used MacOS in this example.

  1. Create a new SSH key pair in RSA format. Run the following command in your terminal window. Please specify a new key name:
    $ ssh-keygen -t rsa
    Enter file in which to save the key (/Users/knobutan/.ssh/id_rsa): /Users/knobutan/.ssh/ce-rsa
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 

    Do not passphrase your SSH key. The SSH key must be unencrypted when you use it in Code Engine.

  2. Check that the keys are correctly created. The above command will create two files. One is a private key and the other is a public key. You need to place the public key on your IBM Git — then you will be able to connect from your local machine using the private key. Go to /Users/<Username>/.ssh directory and check there are two files. The file with the .pub extension is the public key, and the one without is the private key:
    config        known_hosts    ce-rsa        ce-rsa.pub

Step 2: Register the public key in IBM Git

In this example, IBM Git in US-South is used. Please change the URL if necessary.

  1. Go to https://us-south.git.cloud.ibm.com/-/profile/keys and paste what’s in the .pub file in the Key section. Fill in the title and expiry if necessary, and click on Add Key:
  2. Once the public key is added, go back to your terminal and test the connection. By default, your terminal uses id_rsa, so we need to add extra lines in the config file to use the newly created private key. Please specify an appropriate Git server endpoint and the private key:
    Host ibmusgit
      HostName us-south.git.cloud.ibm.com
      IdentityFile ~/.ssh/ce-rsa
      User git
  3. Run SSH and check the connection works correctly. Use the Host name defined in the above step:
    $ ssh ibmusgit
    Welcome to GitLab, @knobutan!

Step 3: Create a Code repo access

Now we need to add the private key to your Code Engine project so that it can connect to your IBM Git repositories.

  1. Open your Code Engine project. If you do not have one yet, create one.
  2. Click Create and enter these details:
    • Code repo server: us-south.git.cloud.ibm.com
    • SSH private key: Open your private key in terminal. Copy everything, including the first and the last line, and paste in the field:
  3. Click Create.

Let’s deploy an application

Your Code Engine project should be able to pull code from your IBM Git repositories now, so let’s test it out. 

For this blog post, I am deploying an application from my IBM Git repository. I will post another blog with a set of code to test it out.

  1. Go to your project and open Applications from the left menu. Click Create.
  2. Select Source Code.
  3. Click Specify build details and enter these details. Be careful with format for thr Code repo URL.
    • Code repo URL: git@us-south.git.cloud.ibm.com:<Username>/<Repository name>.git (For example: git@us-south.git.cloud.ibm.com:knobutan/CFtoCE.git)
    • Code repo access: Select what you created in Step 2:
  4. Specify the rest and click Create.

The outcome should show that the build was successful:

The application should be successfully deployed:

What’s next?

For more details of Code repo access, please refer to this page.

For any questions about Code Engine or other information about the platform, please contact IBM Cloud support.

Categories

More from Cloud

Kubernetes version 1.28 now available in IBM Cloud Kubernetes Service

2 min read - We are excited to announce the availability of Kubernetes version 1.28 for your clusters that are running in IBM Cloud Kubernetes Service. This is our 23rd release of Kubernetes. With our Kubernetes service, you can easily upgrade your clusters without the need for deep Kubernetes knowledge. When you deploy new clusters, the default Kubernetes version remains 1.27 (soon to be 1.28); you can also choose to immediately deploy version 1.28. Learn more about deploying clusters here. Kubernetes version 1.28 In…

Temenos brings innovative payments capabilities to IBM Cloud to help banks transform

3 min read - The payments ecosystem is at an inflection point for transformation, and we believe now is the time for change. As banks look to modernize their payments journeys, Temenos Payments Hub has become the first dedicated payments solution to deliver innovative payments capabilities on the IBM Cloud for Financial Services®—an industry-specific platform designed to accelerate financial institutions' digital transformations with security at the forefront. This is the latest initiative in our long history together helping clients transform. With the Temenos Payments…

Foundational models at the edge

7 min read - Foundational models (FMs) are marking the beginning of a new era in machine learning (ML) and artificial intelligence (AI), which is leading to faster development of AI that can be adapted to a wide range of downstream tasks and fine-tuned for an array of applications.  With the increasing importance of processing data where work is being performed, serving AI models at the enterprise edge enables near-real-time predictions, while abiding by data sovereignty and privacy requirements. By combining the IBM watsonx data…

The next wave of payments modernization: Minimizing complexity to elevate customer experience

3 min read - The payments ecosystem is at an inflection point for transformation, especially as we see the rise of disruptive digital entrants who are introducing new payment methods, such as cryptocurrency and central bank digital currencies (CDBC). With more choices for customers, capturing share of wallet is becoming more competitive for traditional banks. This is just one of many examples that show how the payments space has evolved. At the same time, we are increasingly seeing regulators more closely monitor the industry’s…