
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Enable required APIs
/ 25
Provide cluster-admin role and Install cert-manager
/ 25
Create service accounts
/ 25
Install Apigee hybrid runtime components
/ 25
In this lab, you install and configure the Apigee hybrid runtime plane in a cluster on Google Kubernetes Engine (GKE) in Google Cloud. The hybrid deployment model enables you to deploy and manage the Apigee runtime in Kubernetes containers while Apigee hosts the management plane in Google Cloud.
In this lab, you perform the following tasks:
Reference documentation for the steps described here's at Big picture.
For each lab, you get a new Google Cloud project and set of resources for a fixed time at no cost.
Sign in to Qwiklabs using an incognito window.
Note the lab's access time (for example, 1:15:00
), and make sure you can finish within that time.
There is no pause feature. You can restart if needed, but you have to start at the beginning.
When ready, click Start lab.
Note your lab credentials (Username and Password). You will use them to sign in to the Google Cloud Console.
Click Open Google Console.
Click Use another account and copy/paste credentials for this lab into the prompts.
If you use other credentials, you'll receive errors or incur charges.
Accept the terms and skip the recovery resource page.
To use Apigee hybrid, you must enable a set of Google Cloud APIs for the project. The lab automatically enables most of the APIs needed to install Apigee hybrid. In this task, you use the Google Cloud Console to verify that certain Google Cloud and Apigee APIs are enabled, and enable any required APIs.
Sign in to the Google Cloud Console with your lab credentials.
In the Google Cloud Console, click the Navigation menu (), and then select APIs & Services > Library.
In the Search for APIs & Services box, type Apigee, and then select apigee api.
Click the Apigee API.
If the Apigee API isn't enabled, click Enable.
Repeat the previous steps to enable the Apigee Connect API.
In the Google Cloud Console, on the Navigation menu (), click APIs & Services > Enabled APIs & Services.
Scroll the page to view the API table. In the Name column, verify that the APIs listed earlier are included.
If any of the APIs are not listed, repeat the steps above to enable the API.
Click Check my progress to verify the objective.
To use Apigee hybrid, you must create an organization resource bound to your Google Cloud project. In this task, you execute a script that calls an Apigee management API to create the organization.
For more details about the process and API, see Create an organization.
On the Google Cloud Console title bar, click Activate Cloud Shell ().
If prompted, click Continue.
It takes a few moments to provision and connect to the environment. When you're connected, you're already authenticated, and the project is set to your Google Cloud PROJECT_ID.
Copy the provision_hybrid_org.sh
script from Cloud Storage to your home directory:
If prompted, click Authorize.
Make the script executable:
Verify that the GOOGLE_CLOUD_PROJECT environment variable is set:
This variable must be set to your Google Cloud project. If it is not set, run the command:
Execute the script, passing in the Google Cloud project ID and region as arguments:
The project ID is set as your Apigee hybrid organization name. The script takes a minute or two to finish. After the script finishes successfully, it generates output that reports on the status of the hybrid organization.
Wait for the script to finish before proceeding to the next task.
In this task, you set up the required environment variables in Cloud Shell. These settings are needed to run gcloud commands that are used to create the cluster and install Apigee hybrid runtime components.
The following environment variables and their values are configured:
Environment variable name |
Environment variable value |
PROJECT_ID |
Your Google Cloud project ID |
GCP_REGION |
The Google Cloud region used |
GCP_ZONE |
The Google Cloud zone used |
ORG |
Your Apigee hybrid organization name |
ENV |
The Apigee hybrid environment name |
ENV_GROUP |
The Apigee hybrid environment group name |
INGRESS_DN |
Domain name for your Apigee ingress (used to invoke the APIs you develop) |
The following steps will set up the required variables for the lab.
Copy the environment setup script from Cloud Storage to your home directory:
To set the environment variables, run the following command:
Apigee environments provide a runtime executing context for an API proxy as it progresses in its lifecycle from development through production. In order for an API to process requests in Apigee, you must deploy the API proxy to an environment.
In this task, you create two Apigee hybrid environments, test and stage in the Google Cloud console.
In the Google Cloud console navigation menu, click View all products.
In the View all products page, scroll to the Integration Services section, click the pin next to Apigee, and then click Apigee.
In the Apigee navigation menu, scroll to the Management section, and click Environments.
To add an environment, in the Environments tab, click Create Environment.
To provide the environment details, for Name, type test.
The Display Name is automatically populated.
Leave the remaining settings as their defaults, and click Create.
A new environment is created with Status: Inactive.
Repeat the same steps to create another environment named stage.
Navigate back to the Environments page, and click Create Environment.
To provide the environment details, for Name, type stage.
Leave the remaining settings as their defaults, and click Create.
Environment groups let you group environments together, and provide the hostnames for routing API traffic to proxies that are deployed to the environments within the group. You must create at least one environment group, and you must assign at least one hostname to the group.
In this task, you create an environment group and assign the test, and stage environments to the group.
Navigate back to the Environments page, and click the Environment Groups tab.
To create and Environment Group, click Create Environment Group.
Configure the environment group with the following settings:
Property |
Value |
Environment group name |
test-group |
Hostnames |
|
Environments |
stage, test |
All API proxies that are deployed to environments within this group will be accessible at runtime using the hostnames defined for the group.
Click Create.
In this task, you prepare and authenticate to the cluster using your Cloud Shell login credentials as a cluster administrator. The Apigee hybrid cluster hosts all of the Apigee hybrid runtime components needed to deploy and run API proxies on the hybrid platform.
In the Google Cloud Console, on the Navigation menu (), click Kubernetes Engine > Clusters.
In your Cloud Shell terminal, fetch the apigee-hybrid cluster credentials:
Create the cluster-admin role binding for the current user:
Run the command to update your .profile
file:
This will get the cluster's authentication and endpoint data and setup the current context in future Cloud Shell environments.
In this subtask, you configure persistent SSD storage for Cassandra, the datastore used by Apigee hybrid.
Create a yaml
configuration for the StorageClass:
Apply the new StorageClass to your cluster:
To change the default StorageClass, execute the following commands:
Verify that apigee-sc
is the new default StorageClass:
View the StorageClass details:
The new StorageClass uses the pd-ssd
or Performance (SSD) Persistent Disk type of storage that is suitable for enterprise applications that require lower latency. For more information review the documentation.
Apigee hybrid uses cert-manager
to manage certificates for hybrid workloads. cert-manager is a certificate controller for Kubernetes and OpenShift workloads.
To install cert-manager
in the cluster, in Cloud Shell, run:
Verify that cert-manager
was installed successfully:
The output of the command should list objects for cert-manager, cert-manager-cainjector, and cert-manager-webhook.
In the Google Cloud Console, navigate to Kubernetes Engine > Workloads.
Click Check my progress to verify the objective.
In this task, you download and create the dependencies that are required to install Apigee hybrid. Apigee hybrid uses Helm charts for installation and management. These charts are hosted in the Google Artifact Registry: oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
.
Helm is an open-source tool that helps manage and deploy applications in a Kubernetes cluster. It uses a packaging format called a Helm chart to describe and package resources for a Kubernetes cluster.
Create a base installation directory for your hybrid installation and a subdirectory to store the helm charts:
Set an environment variable, and change to the helm charts directory:
Set environment variables for the helm charts repo and version:
Use the helm pull
command to fetch all of the Apigee hybrid Helm charts:
For each of the Apigee hybrid runtime components, a helm chart subdirectory is created that contains the yaml files, templates, and chart dependencies.
Apigee hybrid uses Google Cloud service accounts to authorize hybrid components when they communicate with each other and with services in the management plane. In this task, you create all the service accounts that are needed by Apigee hybrid.
You use the create-service-account
tool from the Apigee hybrid distribution to create and store all required service accounts and their keys. Each service account certificate file is created in the helm chart directory for the corresponding hybrid component.
Make the create-service-account
tool executable:
To create each service account, run the tool and provide the Apigee hybrid runtime component profile
, and directory
location to store the certificate file of each service account:
If prompted, type y and press ENTER to proceed.
Create service accounts from the remaining Apigee hybrid components:
Because the apigee-udca
service account is needed for both organization-scope and environment-scope operations, copy the component's service account certificate file to the apigee-env
chart directory:
Verify that the service account files were created in the correct directories by checking the contents of each chart's directory.
Your output should look similar to:
Apigee hybrid requires TLS certificates for secure communication between client applications and the runtime ingress gateway. In this subtask, you create a self-signed certificate and add the related files to the $APIGEE_HELM_CHARTS/certs directory.
Create a directory to store your TLS credential files:
Because Helm charts cannot read files outside the chart directory, and the TLS credentials are managed with the apigee-virtualhost
chart, create your directory that contains the credential files within the $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/
directory.
Execute the command to create the TLS credentials (certificate and key files), and store them in your $APIGEE_HELM_CHARTS/apigee-virtualhost/certs
directory:
Inspect the details of the certificate:
The certificate subject name:
A self-signed certificate is created that you can use for this lab installation.
Verify that the certificate is valid:
Click Check my progress to verify the objective.
Most of the configuration settings needed to install Apigee hybrid for this lab can use default values. However, some settings do not have any defaults and must be set in an overrides file. In this task, you create the apigee namespace in your cluster, and an overrides file that provide values for these configuration settings.
To create the apigee namespace, run the command:
Verify that the namespace was created:
For more details on the overrides file, see Configure the hybrid runtime.
Create a new file named overrides-test.yaml
in your $APIGEE_HELM_CHARTS directory.
The overrides.yaml provides the configuration for your unique Apigee hybrid installation. The overrides file in this step provides a basic configuration for a small-footprint hybrid runtime installation, and includes the configuration for the test
and stage
Apigee hybrid runtime environments that you created earlier in this lab.
Verify the file's content to confirm that the environment variable values were correctly substituted:
To establish communication between the hybrid runtime and control planes, additional configuration is needed. In this task, you authorize the synchronizer, and Analytics publisher components to access the control plane.
Synchronizer access is enabled by making a call to an Apigee hybrid management API.
To grant synchronizer access, first fetch the email address of the synchronizer service account:
To enable the required permissions for the synchronizer runtime component, call the controlPlaneAccess
management API:
In order to call an Apigee hybrid management API, you must provide an OAuth access token for authorization purposes. The command generates an OAuth access token using the signed-in user admin account.
The JSON response from the API call contains the name/ID of a long running operation (LRO), and its state which should be IN_PROGRESS.
Extract the LRO ID from the JSON response:
Verify that the update operation has completed:
The response JSON should contain a state attribute with a value of "FINISHED", indicating that the operation is completed. If not, wait for a few seconds and repeat the curl
command above.
Several Apigee hybrid runtime components publish analytics and debug information to provide information for reporting and debugging. To enable publishing this data, you need to grant additional permissions to the runtime service account to publish data directly to the control plane.
To enable analytics publisher access, first fetch the email address of the runtime component service account:
Set permissions for the runtime service account to publish data to the control plane:
The response from the curl
command contains a long running operation (LRO) ID, and indicates that the operation is IN_PROGRESS.
Extract the LRO ID from the JSON response:
Verify that the update operation has completed:
The response JSON should contain a state attribute with a value of "FINISHED", indicating that the operation is completed. If not, wait for a few seconds and repeat the curl
command above.
To verify access to the control plane, call the API to get a list of service accounts:
Verify that the output of the curl
command is similar to:
With the preparation and configuration in place, in this task you install the hybrid runtime components into the cluster.
For more details on the installation steps, see the details here: Install hybrid runtime
Apigee hybrid uses custom resource definitions (CRDs) to create and manage custom Kubernetes resources in your cluster. These definitions enable the configuration and management of the Cassandra StatefulSet, hybrid runtime components, Apigee organization, environments, and other objects.
Refer to the Apigee Resources documentation for more details.
Make sure you are in the $APIGEE_HELM_CHARTS directory:
To install the Apigee CRDs, run the following command:
To validate the installation, run:
The command output should look similar to:
In this subtask, you use Helm to install the following Apigee hybrid runtime components:
The sequence in which you install the components matters.
Perform a "dry run" (test run) to install the Apigee Operator/Controller component:
If there are any errors in the output of the command, check the overrides.yaml
file for any configuration issues, and retry the command. You can ignore any warnings that may be reported.
If there are no errors in the dry run command output, proceed with the installation:
Verify the installation of the Apigee Operator/Controller in the cluster:
You should see output similar to:
Verify that the deployment
is up and running:
Install the Apigee hybrid datastore component:
Before proceeding to the next step, verify that apigeedatastore
is up and running by checking its state:
Install Apigee telemetry:
Before proceeding to the next step, verify that the apigee-telemetry
component is up and running:
Install Apigee Redis:
Before proceeding to the next step, verify that the apigee-redis
component is up and running:
Install Apigee Ingress manager:
Verify that the apigee-ingressgateway-manager
component is up and running:
Install the Apigee organization:
Verify the Apigee Organization is up and running by checking the state of the respective org:
Install the test
Apigee hybrid environment:
Install the stage
Apigee hybrid environment:
Verify that both the environments are up and running:
Rerun the command until both environments are in the running state before proceeding to the next step.
Install the environment group (virtualhost):
Verify that the ApigeeRoute is running:
Finally, in the Google Cloud Console, on the Navigation menu, click Kubernetes Engine, and under Resource Management, click Workloads.
All the workloads should display OK or Succeeded in the Status column. This indicates that you've successfully installed and configured the Apigee hybrid runtime plane.
Click Check my progress to verify the objective.
In this task, you test the hybrid installation by creating and deploying a simple API proxy to the test
environment. After the proxy is deployed, you make a request to the API and verify the response.
In the Google Cloud console left navigation pane, click Apigee, and then click API proxies.
a. If Apigee is not available in the navigation pane, click View all products. b. Scroll through the list of products, and in the Integration Services section click the pin next to Apigee. c. Click Apigee.
In the Apigee navigation menu, under Proxy development, click API proxies.
On the API Proxies page, click Create.
On the Create a proxy page, configure the proxy details with the following settings:
Property |
Value |
Proxy template |
Reverse proxy (Most common) |
Proxy name |
TestInstall |
Base path |
/v1/testinstall |
Target (Existing API) |
https://httpbin.org/status |
For Deploy environments, select test, and click Ok.
Click Create.
Wait for the proxy to be deployed to the test environment. Once deployed, you should see a green check mark in the Status column under Deployments.
In the Cloud Shell window, set an environment variable to contain the value of the external IP address of the apigee-ingressgateway hybrid runtime component:
To invoke the TestInstall API proxy, run the following command:
Verify that the response from the API is:
This validates the hybrid runtime installation and the ingress configuration by successfully processing the input API request and generating the correct response.
In this task, you test the stage
environment by deploying an API proxy to it and verifying its functionality.
In the Google Cloud console, navigate back to the API Proxies page.
To create another API proxy, click Create.
On the Create a proxy page, configure the proxy details with the following settings:
Property |
Value |
Proxy template |
Reverse proxy (Most common) |
Proxy name |
HelloAPI |
Base path |
/v1/hello |
Target (Existing API) |
https://mocktarget.apigee.net |
Click Next.
For Deploy environments, select stage, and click Ok.
Click Create.
Wait for the proxy to be deployed to the stage environment. Once deployed, you should see a green check mark in the Status column under Deployments.
To invoke the HelloAPI
proxy, in Cloud Shell, run the following command:
Verify that the response from the API is:
Hello, Guest!
Repeat the curl call to the HelloAPI proxy, passing in the user query parameter:
Verify that the response from the API is:
Hello, learner!
You have successfully created the new environment and verified that API requests are correctly routed to an API proxy deployed to that environment.
You have successfully installed and tested Apigee's runtime on GKE and linked it to your Apigee hybrid organization.
In this lab you:
When you have completed your lab, click End Lab. Google Cloud Skills Boost removes the resources you’ve used and cleans the account for you.
You will be given an opportunity to rate the lab experience. Select the applicable number of stars, type a comment, and then click Submit.
The number of stars indicates the following:
You can close the dialog box if you don't want to provide feedback.
For feedback, suggestions, or corrections, please use the Support tab.
Copyright 2025 Google LLC All rights reserved. Google and the Google logo are trademarks of Google LLC. All other company and product names may be trademarks of the respective companies with which they are associated.
This content is not currently available
We will notify you via email when it becomes available
Great!
We will contact you via email if it becomes available
One lab at a time
Confirm to end all existing labs and start this one