[ 
https://issues.apache.org/jira/browse/CAMEL-26614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrea Cosentino updated CAMEL-26614:
-------------------------------------
    Description: 
The local Pub/Sub service of camel-test-infra-google-pubsub runs the Pub/Sub 
emulator of the Cloud SDK image 
({{gcr.io/google.com/cloudsdktool/cloud-sdk:emulators}}, 1.67 GB). Floci GCP 
([https://github.com/floci-io/floci-gcp], MIT) emulates Pub/Sub too, in a 278 
MB image, and CAMEL-26622 adds its container to the Google test-infra.

h4. Parked
On Floci GCP 0.12.0, 17 of the 18 integration tests of camel-google-pubsub 
pass, but {{MessageOrderingIT}} fails every time, while it passes on the Cloud 
SDK emulator. Floci GCP keeps the {{enable_message_ordering}} of a 
subscription, but its {{StreamingPull}} responses do not carry 
{{subscription_properties.message_ordering_enabled}}, and the Java client 
(google-cloud-pubsub 1.160.0) delivers the messages of an ordering key one at a 
time only when that flag is set. So the Pub/Sub service stays on the Cloud SDK 
emulator until Floci GCP sends it.

h4. Change, once Floci GCP sends the flag
* Run the {{pub-sub}} local service of {{camel-test-infra-google-pubsub}} on 
the Floci GCP container of {{camel-test-infra-google-common}}; its gRPC address 
is reached in plain text, so the camel-google-pubsub integration tests do not 
change.
* Remove the {{google.pubsub.container}} key and the {{testcontainers-gcloud}} 
dependency.
* Regenerate the test-infra metadata of the catalog.

Floci GCP ships linux/amd64 and linux/arm64 images only; the ppc64le and s390x 
skips of camel-google-pubsub stay.

_Claude Code on behalf of Andrea Cosentino_

  was:
The AWS test-infra runs its local services on Floci since 
[#23404|https://github.com/apache/camel/pull/23404], and CAMEL-26615 brings 
Floci AZ to the Azure test-infra.

Floci GCP ([https://github.com/floci-io/floci-gcp], MIT) is the Google Cloud 
emulator of the same family. One container answers gRPC and REST on port 4588 
for Pub/Sub, Cloud Storage, Firestore, Datastore, Secret Manager, BigQuery, 
Cloud Functions (control plane), Cloud KMS, Cloud Logging and more. The image 
is mirrored as {{mirror.gcr.io/floci/floci-gcp}} (latest release 0.12.0).

Today only camel-google-pubsub has a local test service 
({{camel-test-infra-google-pubsub}}, on 
{{gcr.io/google.com/cloudsdktool/cloud-sdk:emulators}}). The integration tests 
of the other Google components run only against a real project.

h4. Change
* Add a Floci GCP container to a new {{camel-test-infra-google-common}} module, 
with the image in {{container.properties}}, a readiness wait, the project id 
and the endpoint.
* Run the {{pub-sub}} local service of {{camel-test-infra-google-pubsub}} on 
it, and check the camel-google-pubsub integration tests against it.
* Regenerate the test-infra metadata of the catalog.

Floci GCP ships linux/amd64 and linux/arm64 images only; the ppc64le and s390x 
skips of camel-google-pubsub stay.

h4. Follow-ups
One issue for each Google component:
* CAMEL-26622: camel-google-storage - run the integration tests on Floci GCP
* CAMEL-26623: camel-google-firestore - run the integration tests on Floci GCP
* CAMEL-26624: camel-google-secret-manager - run the integration tests on Floci 
GCP
* CAMEL-26625: camel-google-bigquery - run the integration tests on Floci GCP
* CAMEL-26626: camel-google-functions - run the integration tests on Floci GCP

Floci GCP does not emulate the Google Workspace APIs (calendar, drive, mail, 
sheets) or the AI APIs (speech-to-text, text-to-speech, vision, vertexai), so 
those components are not covered.

_Claude Code on behalf of Andrea Cosentino_

        Summary: camel-test-infra-google-pubsub - move the Pub/Sub service from 
the Cloud SDK emulator to Floci GCP  (was: camel-test-infra-google - add a 
Floci GCP container and run the Pub/Sub service on it)

> camel-test-infra-google-pubsub - move the Pub/Sub service from the Cloud SDK 
> emulator to Floci GCP
> --------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26614
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26614
>             Project: Camel
>          Issue Type: Test
>          Components: camel-google, camel-google-pubsub, camel-test-infra
>            Reporter: Andrea Cosentino
>            Assignee: Andrea Cosentino
>            Priority: Major
>
> The local Pub/Sub service of camel-test-infra-google-pubsub runs the Pub/Sub 
> emulator of the Cloud SDK image 
> ({{gcr.io/google.com/cloudsdktool/cloud-sdk:emulators}}, 1.67 GB). Floci GCP 
> ([https://github.com/floci-io/floci-gcp], MIT) emulates Pub/Sub too, in a 278 
> MB image, and CAMEL-26622 adds its container to the Google test-infra.
> h4. Parked
> On Floci GCP 0.12.0, 17 of the 18 integration tests of camel-google-pubsub 
> pass, but {{MessageOrderingIT}} fails every time, while it passes on the 
> Cloud SDK emulator. Floci GCP keeps the {{enable_message_ordering}} of a 
> subscription, but its {{StreamingPull}} responses do not carry 
> {{subscription_properties.message_ordering_enabled}}, and the Java client 
> (google-cloud-pubsub 1.160.0) delivers the messages of an ordering key one at 
> a time only when that flag is set. So the Pub/Sub service stays on the Cloud 
> SDK emulator until Floci GCP sends it.
> h4. Change, once Floci GCP sends the flag
> * Run the {{pub-sub}} local service of {{camel-test-infra-google-pubsub}} on 
> the Floci GCP container of {{camel-test-infra-google-common}}; its gRPC 
> address is reached in plain text, so the camel-google-pubsub integration 
> tests do not change.
> * Remove the {{google.pubsub.container}} key and the 
> {{testcontainers-gcloud}} dependency.
> * Regenerate the test-infra metadata of the catalog.
> Floci GCP ships linux/amd64 and linux/arm64 images only; the ppc64le and 
> s390x skips of camel-google-pubsub stay.
> _Claude Code on behalf of Andrea Cosentino_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to