Skip to content

feat(foundry): deploy the p987 telemetry ingest service - #166

Merged
gauchoracing merged 1 commit into
mainfrom
bk1031/p987-k8s
Aug 29, 2026
Merged

gauchoracing merged 1 commit into
mainfrom
bk1031/p987-k8s

Conversation

@BK1031

@BK1031 BK1031 commented Aug 29, 2026

Copy link
Copy Markdown
Contributor
  • Add manifests/mapache/p987.yaml — Deployment (2 replicas, same topology spread as gr26) + Service on 7020
  • Register p987.yaml in the kustomization and pin the image
  • Add the p987 upstream and /api/p987/* route to the kerbecs configmap
  • Add p987 to mapache-secrets rolloutTargets so it restarts on rotation

Consumes the p987/# MQTT namespace that TCM-987 publishes to, which nothing in the cluster was reading. Narrower than gr26 — live path only, so no foreman worker pool and no shelter cold-storage ingest, and therefore no FOREMAN_ENDPOINT and no AWS credentials. MQTT uses a shared subscription ($share/p987-cluster/p987/#) so frames split across replicas instead of each replica writing the same row.

No manual steps required. It reuses existing mapache-secrets keys (CLICKHOUSE_*, KERBECS_PASSWORD, MQTT_*), so there's no new VaultSecretSync and no new Vault access rule to create. The p987_can table is created by the service on first ClickHouse connect, same as gr26_can.

On the image tag: pinned to :latest with imagePullPolicy: Always because p987 merged after v3.9.9 and has no release tag yet. Gaucho-Racing/Mapache#227 adds p987 to the deploy workflow's tag-bump allowlist, so the next services release rewrites this to a real version — merge that one first or this pin will never move.

kustomize build verified locally.

gr-foundry only. kubernetes/gr-prod/ is still pinned at 3.9.6 and there's no EKS left in infra/environments/prod, so I treated it as dormant and left it alone — say the word if it should be mirrored there too.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 29, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-29T16:55:43.293850Z b539a6f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b539a6f69b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

upstream: p987
rewrite:
strip_prefix: /api
envelope: default

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve the p987 WebSocket upgrade

When clients connect to /api/p987/live, this catch-all applies the default response envelope, which interferes with the WebSocket upgrade and leaves the new service's live endpoint unusable through Kerbecs. The equivalent /api/gr26/live route is explicitly configured as passthrough; add a specific p987 live passthrough route before this catch-all.

Useful? React with 👍 / 👎.

TCM-987 publishes under the p987 topic namespace and nothing in the
cluster consumed it. Adds the ingest service alongside gr26.

Narrower than gr26: live path only, so no foreman worker pool and no
shelter cold-storage ingest, which means no FOREMAN_ENDPOINT and no AWS
credentials. It subscribes, decodes, writes ClickHouse and republishes to
query/live/*. MQTT uses a shared subscription so frames split across
replicas rather than each replica writing the same row.

Pinned to :latest with imagePullPolicy Always because p987 merged after
v3.9.9 and has no release tag yet. The mapache deploy workflow now
includes p987 in its tag-bump list, so the next services release replaces
this with a real version.

Reuses the existing mapache-secrets keys, so no new VaultSecretSync and no
new Vault access rule. Added to rolloutTargets so it restarts on rotation.
@gauchoracing
gauchoracing merged commit 4536b35 into main Aug 29, 2026
3 checks passed
@gauchoracing
gauchoracing deleted the bk1031/p987-k8s branch August 29, 2026 17:00
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