Hosting Containerized Cloud-Native Stacks (Kubernetes) on GCP Marketplace
Google
Cloud Marketplace is the fastest way for the customers to get started
on Google Cloud Platform (GCP). GCP Marketplace offers ready-to-go
development stacks, solutions, and services to accelerate development so
that the users can spend less time installing and more time developing
the application.
Why Google cloud marketplace?
Deploy in a few clicks.
Production-ready solutions.
Augment platform capabilities.
Streamlined billing.
Built using Deployment Manager.
Security update notifications.
Steps to place the application on Google cloud marketplace:
The technical integration of the overall procedure is shown in the below diagram.
The main seven steps need to be followed while placing an application to the marketplace are described below.
Step 1: Fetch the helm chart
Download
the helm chart of the application from its repository or write the
required helm chart of the application. The helm chart mainly contains
values.yaml, chart.yaml, and templates files.
The above diagram shows the sample tree structure of the helm chart. Click here to get to know more about helm charts.
Step 2: Create the initial schema
Write
the schema.yaml file for the application because a schema defines the
general structure to which files should adhere. The general structure of
the schema.yaml file.
Step 3: Add an application descriptor
In
the template folder of the helm chart, add a file named
application.yaml with the contents shown below. The file mainly
describes the application and is used in the UI.
Step 4: Write the Dockerfile
Container
images are typically built using a Dockerfile and the docker build
command-line tool. It is better to publish the Dockerfile and container
build instructions in the public repository for the application. This
enables customers to modify or rebuild the images, which is sometimes
necessary to certify images for enterprise production environments. If
the application image depends on a base image such as Debian, or a
language run time image such as Python or OpenJDK, then one must use one
of GCP Marketplace's certified container images.
Build the Dockerfile using the following command
sudo docker build -t mongodb .
Step 5: Push the Docker image to the registry
Container Registry repository must have the following structure:
The Application's main image must be in the root of the repository. The application's image should be in gcr.io/boxbe00034/mongodb format.
Deployer folder contains the image to be deployed.
If
your application uses additional container images, each additional
image must be in its own folder. For example, if your application
requires an Ubuntu 16.04 image, add the image to gcr.io/boxbe00034/mongodb/ubuntu16_04.
All the images in your application must be tagged with the minor version using semantic versioning of the application.
Push
the built application to the remote GCR (Google Container Registry) so
that the application running in the cluster can access the image. The
command to push the application to the container registry is :
docker --push gcr.io/boxbe00034/mongodb : 4.0
Once you push the application to the registry, the image registry looks as shown below:
Step 6: Submitting the application
In
Partner Portal, you must add marketing information about your solution,
and set up the product versions that you want to list.
Step 7: Getting the GCP Marketplace security check
Once
you submit the solution, automatically through the GCP Marketplace
platform testing and reviewing operations will take place. Automated
testing includes security scanning, functional testing, and integration
testing. This platform also provides the application’s end-to-end
customer experience, including marketing materials, installation flow,
security, and user guide.
Summary
When
the application is supposed to publish in the marketplace, it should
undergo many important steps, which include, building the image, test,
deploy and reviewed by the marketplace teams. This document describes
the most important steps to be followed while on boarding an application
to the GCP marketplace. This procedure can also be followed for
publishing applications in other cloud and container marketplaces such
as AWS Marketplace, Azure Marketplace, IBM Cloud Marketplace, Oracle
Cloud Marketplace and so on, with minimal changes on the platform,
programming and operational dependencies respect to marketplace terms
and conditions.
For
building custom based cloud-native stack development & integration,
hosting private or public marketplace repositories for existing
applications and newly build cloud-native stacks, if you require more
details about cloud-native microservices & cloud-native stack
transformation, please refer to Yobitel Communications. www.yobitel.com.