Skip to content

Feat/additional workspaces#1

Merged
mcgilly17 merged 10 commits into
mainfrom
feat/additional-workspaces
Mar 20, 2026
Merged

Feat/additional workspaces#1
mcgilly17 merged 10 commits into
mainfrom
feat/additional-workspaces

Conversation

@mcgilly17
Copy link
Copy Markdown
Owner

No description provided.

…spaces types

- Add ConfigMapNameSelector and configMapRef to WorkspaceSpec for GitOps-backed workspace files
- Add AdditionalWorkspace type with name, configMapRef, initialFiles, and initialDirectories
- Add AdditionalWorkspaces field to WorkspaceSpec (max 10 items)
- Regenerate deepcopy, CRD YAML, and Helm chart CRDs
…tors

Extract ValidateWorkspaceFilename and ValidateWorkspaceDirectory into
internal/resources/validation.go so both the webhook and the controller
can validate filenames (e.g. keys from external ConfigMaps).
- Validate configMapRef.name is non-empty when set
- Use exported ValidateWorkspaceFilename/Directory from resources package
- Validate additional workspace names (non-empty, no duplicates)
- Validate additional workspace configMapRef, initialFiles, initialDirectories
- Add tests for all additional workspace validation cases
…kspace ConfigMap builder

- Add externalFiles and additionalExternalFiles parameters to BuildWorkspaceConfigMap
- Merge external configMapRef entries with priority below inline initialFiles
- Add namespaced key helpers (AdditionalWorkspaceCMKey, ParseAdditionalWorkspaceCMKey)
- Additional workspaces get ENVIRONMENT.md but not BOOTSTRAP.md or self-configure files
…builder

- Add externalWorkspaceFiles and additionalExternalFiles params to
  BuildStatefulSet, BuildInitScript, buildPodAnnotations, calculateConfigHash
- Init script creates workspace-<name> dirs and seeds files with same
  seed-once semantics as default workspace
- Config hash includes additional workspace external file content for
  rollout detection
…gMaps

- Resolve spec.workspace.configMapRef external ConfigMap with validation
- Resolve additionalWorkspaces[].configMapRef with per-workspace error handling
- Set WorkspaceReady condition (True/False) based on resolution success
- Extend findInstancesForConfigMap watcher for additional workspace ConfigMaps
- Thread resolved files through to BuildWorkspaceConfigMap and BuildStatefulSet
…tests

- Update all BuildStatefulSet, BuildInitScript, BuildWorkspaceConfigMap call
  sites for new externalFiles/additionalExternalFiles parameters
- Add unit tests for additional workspace ConfigMap keys, merge priority,
  operator file injection, init script generation, config hash, and
  key encoding roundtrip
…ests

- Test external ConfigMap merge into operator-managed workspace ConfigMap
- Test WorkspaceReady condition for missing ConfigMap
- Test additional workspace namespaced keys and init script generation
- Test additional workspace missing ConfigMap sets WorkspaceReady=False
- README: add external ConfigMap reference, GitOps example, and
  multi-agent additionalWorkspaces example
- API reference: add configMapRef, additionalWorkspaces field table,
  per-workspace merge priority
Reuse err variable instead of redeclaring with := in tailscale,
skill pack resolver, and configmap reconciliation blocks.
@mcgilly17 mcgilly17 merged commit df3e92f into main Mar 20, 2026
8 checks passed
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.

1 participant