Skip to content

MB-72965: Update Enterprise Analytics Docker Hub overview for 2.2.1 - #245

Open
mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965
Open

mblow wants to merge 1 commit into
couchbase:masterfrom
mblow:MB-72965

Conversation

@mblow

@mblow mblow commented Jul 31, 2026

Copy link
Copy Markdown
Member

The overview page had not been updated since 2.0.0. Refresh it against the 2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

  • Drop the hardcoded :2.0.0 image tag from all docker run commands. The README is copied byte-identically into every version directory and any version's build can overwrite the Docker Hub description, so a pinned tag cannot be correct everywhere. This matches couchbase-server, sync-gateway and couchbase-edge-server, none of which pin a version.
  • Sync the feature list with the docs, and add the 2.1/2.2 headline features: Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and SQL Server CDC, Index Advisor, JWT authentication and the async REST API. Version-gated entries are marked so the text stays accurate in the older version directories.
  • Fix the S3Mock bucket env var: initialBuckets was renamed to COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current adobe/s3mock the old name silently creates no bucket.
  • Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data to /opt/enterprise-analytics/var, which is what the image declares as VOLUME and what the docs recommend mapping. Mounting only .../data loses the cluster configuration when the container is recreated.
  • Complete the ports table: the image also exposes 9123, 11207, 11210 and 11280, all of which the docs classify as client-to-node.
  • Add --partitions 16 to setting-enterprise-analytics; the default of 128 is needless overhead for a development cluster.
  • Note which blob storage settings are fixed at cluster setup (the storage scheme and the number of storage partitions) and which can be changed afterwards, and list the azblob and gs schemes.
  • Add a container requirements section covering the AVX2 requirement on x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch availability and the production ulimits.
  • Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

  • Add robot-ea, which drives the 2.2.1 setup wizard and console against a S3Mock backend and captures the seven images the overview embeds. There was previously no automation for Enterprise Analytics; the published images were manual captures that still showed 2.0.0 and included browser chrome.
  • Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot runs natively on arm64 as well as amd64.
  • Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note that deployReadme runs regardless of whether a Dockerfile already exists, so go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of other products whose deployed copies have drifted from source; those were reverted to keep this change scoped.

The overview page had not been updated since 2.0.0. Refresh it against the
2.2.1 documentation and add tooling to regenerate its screenshots.

Overview (generate/resources/enterprise-analytics/README.md):

- Drop the hardcoded :2.0.0 image tag from all docker run commands. The
  README is copied byte-identically into every version directory and any
  version's build can overwrite the Docker Hub description, so a pinned tag
  cannot be correct everywhere. This matches couchbase-server, sync-gateway
  and couchbase-edge-server, none of which pin a version.
- Sync the feature list with the docs, and add the 2.1/2.2 headline features:
  Azure Blob Storage and GCS as storage layers, Apache Iceberg, Oracle and
  SQL Server CDC, Index Advisor, JWT authentication and the async REST API.
  Version-gated entries are marked so the text stays accurate in the older
  version directories.
- Fix the S3Mock bucket env var: initialBuckets was renamed to
  COM_ADOBE_TESTING_S3MOCK_STORE_INITIAL_BUCKETS. Against a current
  adobe/s3mock the old name silently creates no bucket.
- Correct the volume path from /opt/enterprise-analytics/var/lib/couchbase/data
  to /opt/enterprise-analytics/var, which is what the image declares as VOLUME
  and what the docs recommend mapping. Mounting only .../data loses the cluster
  configuration when the container is recreated.
- Complete the ports table: the image also exposes 9123, 11207, 11210 and
  11280, all of which the docs classify as client-to-node.
- Add --partitions 16 to setting-enterprise-analytics; the default of 128 is
  needless overhead for a development cluster.
- Note which blob storage settings are fixed at cluster setup (the storage
  scheme and the number of storage partitions) and which can be changed
  afterwards, and list the azblob and gs schemes.
- Add a container requirements section covering the AVX2 requirement on
  x86_64 (the entrypoint aborts without it), RAM and disk minimums, multi-arch
  availability and the production ulimits.
- Add an Additional References section and link the license properly.

Screenshots (generate/screenshots):

- Add robot-ea, which drives the 2.2.1 setup wizard and console against a
  S3Mock backend and captures the seven images the overview embeds. There was
  previously no automation for Enterprise Analytics; the published images were
  manual captures that still showed 2.0.0 and included browser chrome.
- Build on mcr.microsoft.com/playwright, which is multi-arch, so the robot
  runs natively on arm64 as well as amd64.
- Document both robots, and the upload and CloudFront invalidation steps.

The sample query now counts airlines rather than airports so that the
screenshot agrees with the surrounding text.

Only the 2.2.0 and 2.2.1 deployed copies of the overview are updated. Note
that deployReadme runs regardless of whether a Dockerfile already exists, so
go generate will also rewrite the 2.0.0, 2.1.0 and 2.1.1 copies, and those of
other products whose deployed copies have drifted from source; those were
reverted to keep this change scoped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mblow

mblow commented Jul 31, 2026

Copy link
Copy Markdown
Member Author

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

@mhocouchbase

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, remind me how I can get the images updated on cloudfront, and if that needs to happen before or after merging this PR. I have the images generated locally.

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

@mblow

mblow commented Aug 3, 2026 •

Copy link
Copy Markdown
Member Author

They are under a s3 bucket, s3://cb-dockerhub-screenshots-origin. Do you have access to upload to this? Also need to create a cloudfront invalidation if same files are changed. I don't know if there is a jenkins job for this.

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

@mhocouchbase

mhocouchbase commented Aug 3, 2026 •

Copy link
Copy Markdown
Contributor

Hi @mhocouchbase, I can rework to use unique filenames to avoid having the to do the invalidation- since this is for a new version. It sounds like this would be easier- let me know,

I don't have a preference to be honest. Invalidation is not difficult.
Do you think this is going to happen often, i.e. every release or every major/minor release? Currently, the files are under s3://cb-dockerhub-screenshots-origin/ea. Maybe create a release specific folder s3://cb-dockerhub-screenshots-origin/ea-2.2.x?

mblow added a commit to mblow/docker that referenced this pull request Oct 19, 2026
The overview was carried over from the Enterprise Analytics 2.0 page and
had not been refreshed for 2.1, 2.2 or 3.0; its screenshots still showed
Enterprise Analytics 2.0. This ports the fixes from the shelved 2.2.1
overview update (couchbase#245), describes what 3.0 adds, and adds a screenshot
robot for Operational Insights.

Overview (generate/resources/operational-insights/README.md):

- Correct the volume path to /opt/couchbase/var, which the image
  declares as VOLUME. Mounting only .../var/lib/couchbase/data loses the
  cluster configuration when the container is recreated.
- Drop the pinned :3.0.0 tag from the docker run commands. The README is
  copied into every version directory, so a pinned tag cannot be right
  everywhere; couchbase-server and sync-gateway do not pin one either.
- Describe the 3.0 features (vector search and CLUSTER BY, Python UDFs,
  multi-statement requests, the query plan cache) alongside those added
  in 2.1 and 2.2 (Azure Blob Storage and GCS, Iceberg, Oracle and SQL
  Server CDC, Index Advisor, JWT, the async REST API).
- Configure blob storage through /settings/operationalInsights rather
  than /settings/analytics, and use 16 storage partitions; the default
  of 128 is needless overhead for a development cluster. Note that the
  scheme and partition count are fixed at setup.
- Complete the ports table, and add container requirements (AVX2, RAM,
  disk, multi-arch, ulimits), an SELinux note, a section on upgrading
  from Enterprise Analytics, references and license links.
- Point the images at a per-release folder, oi/3.0.0/, so no CloudFront
  invalidation is needed and earlier pages keep their own images. They
  are already uploaded.

The two-node walkthrough was run as written against 3.0.0-1092: the
settings call, cluster-init, server-add and rebalance all succeed, and
queries run against the Versity S3 Gateway backed storage.

Screenshots (generate/screenshots):

- Add robot-oi, which drives the setup wizard against Versity S3 Gateway
  with static credentials, loads travel-sample and runs the sample
  query, capturing the five images the overview embeds. The gateway
  creates its own bucket, because --exit-code-from implies
  --abort-on-container-exit and a one-shot bucket service would stop the
  stack when it finished.
- Build on the multi-arch mcr.microsoft.com/playwright image, so the
  robot runs natively on arm64 as well as amd64.
- IMAGE selects the repository, so a build not yet on Docker Hub can be
  captured. The published images come from 3.0.0-1092, the GA build.
- Write to output/oi, and document the per-release upload.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
udkyo pushed a commit that referenced this pull request Oct 19, 2026
…#254)

The overview was carried over from the Enterprise Analytics 2.0 page and
had not been refreshed for 2.1, 2.2 or 3.0; its screenshots still showed
Enterprise Analytics 2.0. This ports the fixes from the shelved 2.2.1
overview update (#245), describes what 3.0 adds, and adds a screenshot
robot for Operational Insights.

Overview (generate/resources/operational-insights/README.md):

- Correct the volume path to /opt/couchbase/var, which the image
  declares as VOLUME. Mounting only .../var/lib/couchbase/data loses the
  cluster configuration when the container is recreated.
- Drop the pinned :3.0.0 tag from the docker run commands. The README is
  copied into every version directory, so a pinned tag cannot be right
  everywhere; couchbase-server and sync-gateway do not pin one either.
- Describe the 3.0 features (vector search and CLUSTER BY, Python UDFs,
  multi-statement requests, the query plan cache) alongside those added
  in 2.1 and 2.2 (Azure Blob Storage and GCS, Iceberg, Oracle and SQL
  Server CDC, Index Advisor, JWT, the async REST API).
- Configure blob storage through /settings/operationalInsights rather
  than /settings/analytics, and use 16 storage partitions; the default
  of 128 is needless overhead for a development cluster. Note that the
  scheme and partition count are fixed at setup.
- Complete the ports table, and add container requirements (AVX2, RAM,
  disk, multi-arch, ulimits), an SELinux note, a section on upgrading
  from Enterprise Analytics, references and license links.
- Point the images at a per-release folder, oi/3.0.0/, so no CloudFront
  invalidation is needed and earlier pages keep their own images. They
  are already uploaded.

The two-node walkthrough was run as written against 3.0.0-1092: the
settings call, cluster-init, server-add and rebalance all succeed, and
queries run against the Versity S3 Gateway backed storage.

Screenshots (generate/screenshots):

- Add robot-oi, which drives the setup wizard against Versity S3 Gateway
  with static credentials, loads travel-sample and runs the sample
  query, capturing the five images the overview embeds. The gateway
  creates its own bucket, because --exit-code-from implies
  --abort-on-container-exit and a one-shot bucket service would stop the
  stack when it finished.
- Build on the multi-arch mcr.microsoft.com/playwright image, so the
  robot runs natively on arm64 as well as amd64.
- IMAGE selects the repository, so a build not yet on Docker Hub can be
  captured. The published images come from 3.0.0-1092, the GA build.
- Write to output/oi, and document the per-release upload.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants