Summary
Feature release adding RS_SETUP_PROFILE tiers for lean deployments against external Elasticsearch/OpenSearch clusters (as few as 4 primary shards). Also includes Render one-click deploy with minimal-profile defaults, nil-safe guards when optional meta indices are skipped, and a binary publish workflow fix for Packer AMI builds. Bumps the default version to 9.4.0.
New features
Setup profiles (RS_SETUP_PROFILE)
Control which meta (system) Elasticsearch indices are created at startup. Unset defaults to full (backward compatible).
| Profile | Primary shards (fresh install) | Indexes created |
|---|---|---|
minimal
| 4 | .users, .permissions, .pipelines, .pipeline_vars
|
standard
| 12 | minimal + .synonyms, .searchrelevancy, .logs, .pipeline_logs, .pipeline_invocations, .analytics, .user_sessions, .analytics_preferences
|
full
| ~35–48 | All meta indexes (current behavior) |
- Central registry —
util/setup_profile.gowithShouldCreateMetaIndex()gates index creation across all plugins. - Shard reduction —
MetaIndexShards()forces 1 primary shard per index onminimalandstandard;fullkeeps per-plugin defaults. - JWT on lean profiles —
.publickeyis not created onminimal/standard; setJWT_RSA_PUBLIC_KEY_LOCfor JWT auth instead. - Example config —
config/minimal.env.examplefor local testing. - Smoke tests —
scripts/smoke-minimal.shvalidates auth, pipelines, pipeline vars, and ES proxy under the minimal profile.
Render one-click deploy
render.yamlblueprint — Docker web service withRS_SETUP_PROFILE=minimal, health check at/arc/health.- README — Deploy to Render button and pairing guide with Aiven free OpenSearch for a free end-to-end stack.
ES_CLUSTER_URL,USERNAME, andPASSWORDare prompted at deploy time (sync: false).
Fixes
- Nil-safe lean profiles — Guard against panics when optional meta indices are not created:
- Nodes plugin: skip
.nodesindex init and cron jobs;/arc/_healthreturnshealth: okwithout node counts. - Pipelines: skip invocation record writes when
.pipeline_invocationsis absent. - Analytics / applycache middleware: skip persistence and cache-stats rollover when respective indices are absent.
- Nodes plugin: skip
- Binary publish workflow — Restore
rs-linux-ami.zip/rs-linux-cluster.zipasset names expected by Packer AMIupgrade.sh.
Configuration
| Variable | Description |
|---|---|
RS_SETUP_PROFILE
| minimal, standard, or full (default: full)
|
JWT_RSA_PUBLIC_KEY_LOC
| Load JWT public key from disk when .publickey index is not created
|
See docs/env-vars.md for full setup profile documentation.
Build & release
- Default version bumped from 9.3.0 → 9.4.0 (
Makefile,Dockerfile).
Upgrade notes
- Existing deployments — No action required. Unset
RS_SETUP_PROFILEkeepsfullbehavior identical to 9.3.0. - New lean / demo deployments — Set
RS_SETUP_PROFILE=minimalwhen pointing at a shared or free-tier OpenSearch cluster (e.g. Aiven + Render). Only 4 meta indices are created; features like analytics, logs, rules, cache, and node tracking are unavailable until you move tostandardorfull. - Health endpoints —
/arc/health(upstream cluster ping, no auth) and/arc/_health(ARC node health) both work on minimal;_healthreturnsnode_count: 0since.nodesis not created.