[
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)