Skip to main content
Version: 0.1 (next)

Environments and instances

Each Product runs in a few environments, in promotion order: a pre-production zone (<product>-rc) and a production zone (<product>-prod). Each one is an instance of the app with its own address, settings and data.

On the Product page​

The Environments section at the top of a Product's page shows one tile per environment, in promotion order:

  • Production or Pre-production as the title (it links to the environment's page), the zone, the cluster when the zone runs on a workload cluster, and Argo CD's health.
  • A preview: the screenshot Infrared took after the zone's last Release. Click it to open the site.
  • The address and who can open it: Sign-in, Public, or Inside the cluster for a zone with no address.
  • Version (linked to its Release), when it was Deployed and how (automatically, or by the person who approved the promotion), and From: the Change it came from and who started it, or a Release started by hand.
  • Runtime: Argo CD sync and health and ready pods; the last Smoke check (or none set); open Incidents.
  • Config: the zone's values.yaml and Argo CD Application in the gitops repo.
  • Next: a newer version on its way, with a link to approve it.

Pre-production and Production tiles, each with a screenshot, address, access, version, runtime, smoke check and config links

Under the tiles are links to the Product's status page, its repos and its latest GitHub release.

An environment's page​

Click an environment's title to open it. Open site opens its address and Instance settings goes to its settings.

SectionWhat it shows
Resource useCPU, memory, network in and network out of the zone's pods over the last hour, 6 hours, 24 hours or 7 days (from VictoriaMetrics), with the CPU each pod reserves and its memory limit as a line
PodsEach pod's status, why it isn't running (for example CrashLoopBackOff), restarts, start time and node
StorageEach persistent volume, its claim, status and size (only when the zone has volumes)
Application logsThe last 100, 200 or 1,000 log lines of each pod, refreshed every 10 seconds
Recent eventsThe zone's Kubernetes events, with warnings marked

An environment&#39;s page: CPU, memory and network charts, the pods table, application logs and recent events An environment&#39;s page: CPU, memory and network charts, the pods table, application logs and recent events

Instance settings​

Product → Settings → Instances lists the environments in promotion order. Org admins change each one and choose Save (or Discard); Infrared writes the change into the zone's values file through the gitops repo, and Argo CD applies it. Others see the settings read-only.

The Instances panel: address, promotion, capacity and storage for pre-production and production

SettingWhat it does
Who can open itSigned-in only, Public (anyone with the address; Infrared asks you to confirm), or No address (reachable only inside the cluster)
AddressesMore addresses under the org's verified domains, such as www.acme.com, up to 10: see Domains and addresses
Releases arriveAutomatically, or After approval (the default for production)
ReplicasHow many pods run the app, 0 to 20
CPU per pod and Memory per podWhat each pod reserves; memory is also its limit. Chart default leaves the chart's value
StoragePersistent volumes, up to 8: a name, a size and where the app sees it (for example data, 1Gi, /data). Each environment has its own. Removing a volume keeps its data in the cluster; delete its claim by hand to free the space. With a volume, pods are replaced rather than overlapped, since only one pod can mount it

Storage needs a chart that knows about volumes, so the section appears for Products Infrared scaffolded from a zip or a template, and for zones that already have volumes.

Add an environment​

When a Product has only one of the pair, the bottom of the Instances panel offers Add a production environment (or Add a pre-production environment). Give it a Zone name (<product>-prod or <product>-rc by default), choose its Promotion and Who can open it, then Add zone. It goes last in the promotion order; Infrared writes its files to the gitops repo, and the next Release promotes to it.

Once a Product has shipped to its pre-production zone and has no production zone, its page also says so, and an org admin can add <product>-prod there with one click: promoted after approval, behind sign-in until you make it public. A zone that runs nothing yet while a newer Release exists gets a Promote <version> button that opens that Release.

Remove an environment​

Remove this environment, at the bottom of each instance, takes it away for good. Infrared first says what goes with it (the running app, its addresses, its persistent storage and every file in it, and its gitops files; production gets an extra warning) and asks you to type the zone's name. Remove <zone> permanently goes ahead; Keep it backs out.

An environment&#39;s card with the removal warning open: what goes with it, the name to type, and Remove permanently

Then Infrared:

  1. tells Argo CD to delete everything the zone's Application deployed;
  2. deletes the zone's values file and Application from the gitops repo through a pull request it merges;
  3. deletes the Application, and waits while Argo CD deletes the app;
  4. deletes the zone's namespace on the management cluster, with its volumes and certificates. It deletes only a namespace labelled as the Product's. On a workload cluster the namespace itself stays.

The Instances panel shows progress until the zone is gone. The repo, builds and Release history stay; adding the environment again starts it empty.

Deleting the Product (Settings → Delete product, then Delete <product> permanently) does the same for every environment, and also removes the Product's build and chart from the gitops repo. Its GitHub repos are not touched. If the gitops repo can't be reached, the Product is deleted and its files stay.

Logos​

Product → Settings → Logo shows the current logo and where it comes from in the repo. Suggest ten logos designs ten from the site's own colors (from its latest screenshot) and what its live page says, each in parallel in its own preassigned direction (a symbol, a monogram, a wordmark, a badge and so on; for a black-and-white site, each with its own tasteful color pairing). Claude designs them with the org's model provider key, which can take a few minutes; without a key, Infrared offers built-in monograms and a wordmark. Use this commits the SVG to the repo as the Product's logo; Suggest ten more tries again. Replace image uploads your own SVG, PNG, JPEG or WebP, up to 512 KiB. Every suggested SVG is checked to contain no scripts, links, styles or external references. Clicking the logo at the top of the Product's page opens this panel.

The Logo panel: the current logo, Suggest ten logos and Replace image

API​

CallReturns
GET /v1/orgs/{org}/products/{name}/zonesEach environment as it runs
GET /v1/orgs/{org}/products/{name}/zones/{zone}One environment in detail: pods, volumes, events, reservations
GET .../zones/{zone}/metrics?hours=6CPU, memory and network series, 1 to 168 hours back (default 1)
GET .../zones/{zone}/logs?tail=200Recent log lines per pod, as text (tail up to 2000, default 200)
POST /v1/orgs/{org}/products/{name}/logo/suggestionsLogo suggestions (org admins)
PUT /v1/orgs/{org}/products/{name}/logoUpload a logo: the raw image as the body with its Content-Type; Infrared commits it to the repo