Announcements
The Google Cloud Community will be in read-only from July 16 - July 22 as we migrate to a new platform; refer to this community post for more details.
Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Install APIgee Hybrid v1.13 error

I am installing Apigee Hybrid following the instructions at https://cloud.google.com/apigee/docs/hybrid/v1.13/install-helm-charts.
I am currently on Step 10 in Part 2: Hybrid runtime setup.

I have successfully installed the components: Apigee Operator/Controller, datastore, telemetry, Redis, and ingress manager. However, when installing the organization, I encountered an error where the apigee-udca container cannot run.

Here is the error log:

----------------------------------------------------------------------------------
{"level":"info","ts":1734264178.4265897,"caller":"aau/main.go:37","msg":"Starting aau"}
{"level":"info","ts":1734264178.4674225,"caller":"log/logger.go:60","msg":"No http forward proxy configured"}
{"level":"info","ts":1734264178.4676564,"caller":"log/logger.go:60","msg":"No http forward proxy configured"}
{"level":"error","ts":1734264179.0240057,"caller":"log/logger.go:85","msg":"Error while fetching runtime config. Got non 2xx status code 404","stacktrace":"edge-internal.git.corp.google.com/uap/aau/log.Errorf\n\t/go/src/edge-internal/uap/aau/log/logger.go:85\nedge-internal.git.corp.google.com/uap/aau/client.(*client).setTenantBuckets\n\t/go/src/edge-internal/uap/aau/client/client.go:362\nedge-internal.git.corp.google.com/uap/aau/client.(*client).InitializeClient\n\t/go/src/edge-internal/uap/aau/client/client.go:396\nedge-internal.git.corp.google.com/uap/aau/manager.NewManager\n\t/go/src/edge-internal/uap/aau/manager/manager.go:70\nmain.main\n\t/go/src/edge-internal/uap/aau/main.go:45\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:271"}
{"level":"fatal","ts":1734264179.024604,"caller":"log/logger.go:95","msg":"Unable to initialize client for AAU Manager. Details: http error received with code = 404 for service = \"RUNTIME_CONFIG\" with message = \"<!DOCTYPE html>\\n<html lang=en>\\n <meta charset=utf-8>\\n <meta name=viewport content=\\\"initial-scale=1, minimum-scale=1, width=device-width\\\">\\n <title>Error 404 (Not Found)!!1</title>\\n <style>\\n *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}\\n </style>\\n <a href=//www.google.com/><span id=logo aria-label=Google></span></a>\\n <p><b>404.</b> <ins>Thatโ€™s an error.</ins>\\n <p>The requested URL <code>/v1/organizations/apigee-demo-443715/runtimeConfig</code> was not found on this server. <ins>Thatโ€™s all we know.</ins>\\n\"","stacktrace":"edge-internal.git.corp.google.com/uap/aau/log.Fatalf\n\t/go/src/edge-internal/uap/aau/log/logger.go:95\nedge-internal.git.corp.google.com/uap/aau/manager.NewManager\n\t/go/src/edge-internal/uap/aau/manager/manager.go:72\nmain.main\n\t/go/src/edge-internal/uap/aau/main.go:45\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:271"}
-------------------------------------------------------------------------------------------------------------------

I look forward to your support to continue the next steps.

Solved Solved
0 9 904
1 ACCEPTED SOLUTION

I am unable to complete Step 7: Enable Control Plane access.

The "PATCH"  HTTP method should be used, not POST.  It's a documentation bug we will correct. Please use: 

curl -X PATCH   -H "Authoriztion: Bearer $TOKEN"   'https://apigee.googleapis.com/v1/organizations/bmenasha-compute-service-1/controlPlaneAccess'    .....

> I attempted to deploy the Helm chart for apigee-virtualhost,

 

This can happen when you don't define the values for the "virtualhosts" property or more likely the supplied "envgroup" property is set to a name that is not among the names in the "virtualhosts" value. 

For example. if you define one virtualhost like


virtualhosts:
- name: lab-apigee2024-group-release
  selector:
    app: apigee-ingressgateway
    ingress_name: INGRESS_NAME
  sslCertPath: PATH_TO_CERT_FILE
  sslKeyPath: PATH_TO_KEY_FILE

 

you must deploy with envgroup set to  lab-apigee2024-group-release

helm upgrade my-chart-name apigee-virtualhost/ --install --namespace apigee --atomic --set envgroup=lab-apigee2024-group-release -f overrides.yaml 

 

View solution in original post

9 REPLIES 9

Hello @hungdv-007, we truly appreciate your patience as we keep track of your question. Weโ€™ll make sure you get a helpful answer, and we also invite the community to pitch in with their thoughts. 

While we wait, consider checking our articles and upcoming events ๐Ÿ™‚

Did you set a custom value for the "contractProvider" property? https://cloud.google.com/apigee/docs/hybrid/v1.14/config-prop-ref.html#top-level    that is the value used to construct the URL that is resulting in a 404.   If you didn't chang this property value, then the url to be requested is https://apigee.googleapis.com/v1/organizations/apigee-demo-443715/runtimeConfig  , you can try requesting that url (or use the hostname in contractProvider) and ensure it's resolving to a valid IP address.

Typically one would change contractProvider to use a regional endpoint as described here https://cloud.google.com/apigee/docs/hybrid/v1.14/using-data-residency-with-apigee-hybrid  . You should ensure this value is correct and you can make requests to the configured hostname  (control plane service endpoint  like us-apigee.googleapis.com   as described here https://cloud.google.com/apigee/docs/locations#available-apigee-api-control-plane-hosting-jurisdicti...)  without getting this 404. 

 

 

Hi @hungdv-007, thank you for sharing your question and engaging with our Apigee community! It looks like youโ€™ve received a helpful reply that could address your concernโ€”thanks @bmenasha for your reply!

@hungdv-007, If it worked for you, consider marking it as an accepted solution to help others benefit from the shared knowledge. Weโ€™re thrilled to have you as part of our community and appreciate your participation. Looking forward to seeing you around! ๐Ÿ˜Š

Thank you for your enthusiastic support. I am continuing with the installation.

I was able to get past that error, but new issues have arisen:

  1. I am unable to complete Step 7: Enable Control Plane access. Please refer to the illustration below.

    hungdv007_0-1735061216924.png

     

  2. I attempted to deploy the Helm chart for apigee-virtualhost, but it failed. The illustration is provided below.

    hungdv007_1-1735061232528.png


    What is wrong? Thank for your help!

I am unable to complete Step 7: Enable Control Plane access.

The "PATCH"  HTTP method should be used, not POST.  It's a documentation bug we will correct. Please use: 

curl -X PATCH   -H "Authoriztion: Bearer $TOKEN"   'https://apigee.googleapis.com/v1/organizations/bmenasha-compute-service-1/controlPlaneAccess'    .....

> I attempted to deploy the Helm chart for apigee-virtualhost,

 

This can happen when you don't define the values for the "virtualhosts" property or more likely the supplied "envgroup" property is set to a name that is not among the names in the "virtualhosts" value. 

For example. if you define one virtualhost like


virtualhosts:
- name: lab-apigee2024-group-release
  selector:
    app: apigee-ingressgateway
    ingress_name: INGRESS_NAME
  sslCertPath: PATH_TO_CERT_FILE
  sslKeyPath: PATH_TO_KEY_FILE

 

you must deploy with envgroup set to  lab-apigee2024-group-release

helm upgrade my-chart-name apigee-virtualhost/ --install --namespace apigee --atomic --set envgroup=lab-apigee2024-group-release -f overrides.yaml 

 

Hi @bmenasha @AlexET ,

Thanks for your support!

I have a few more questions about this:

  • After completing "Step 7: Enable Control Plane Access," do I need to upgrade the services that have already been deployed again?
  • For "Step 11 (Optional): Configure Workload Identity," I am using a Kubernetes cluster on a private cloud, so can I skip this step?
  • On my Kubernetes cluster, I have installed Istio. Can I just integrate it with this ingress gateway? Do you have any additional recommendations for me on this? If possible, please share some documentation on this topicโ€”it would be greatly appreciated.

Thank you very much once again!

> After completing "Step 7: Enable Control Plane Access," do I need to upgrade the services that have already been deployed again?

No, there is no need to redploy.

 

>  For "Step 11 (Optional): Configure Workload Identity," I am using a Kubernetes cluster on a private cloud, so can I skip this step?

Yes, if you downloaded and are deploying service account keys in Step #4, you can skip this step.

On my Kubernetes cluster, I have installed Istio. Can I just integrate it with this ingress gateway?

Yes you can configure your custom istio install to accept the ingress traffic. We state this in our documentation here: https://cloud.google.com/apigee/docs/hybrid/v1.14/managing-ingress.html .

You would configure Istio to direct traffic to the ingress gateways cluster IP address  like any other kubernetes service. 

Thanks

Thank you!

I will continue researching and configuring Apigee to understand the flow.