Remove agent config directory syncing from both backends#187
Merged
Conversation
Eliminates automatic syncing of agent config directories (~/.claude/, ~/.cursor/, etc.) into containers at session start. Users who need config persistence must now use PVC volumes. This simplifies the codebase by removing complex rsync/copy logic, plugin path rewriting, and associated test coverage. It also addresses GitOps migration blockers by eliminating post-apply imperative steps that cannot be represented declaratively. Changes: - Remove config_excludes and config_sync_files_only from AgentConfig - Remove _sync_agent_config, _copy_dir, and _rewrite_plugin_paths from BaseConfigSyncer and both backend implementations - Remove copy_agent_config function from entrypoint scripts - Update KNOWN_ISSUES.md to reflect simplified sync requirements - Remove ~1100 lines of test code covering removed functionality - Update docs/OPENSHIFT.md to document config persistence via PVC Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Package session config (stub GCP ADC, gitconfig user.name/email, sandbox config script, .ready marker) into a ConfigMap mounted at /credentials. StatefulSet now runs entrypoint-session.sh directly with PAUDE_HEADLESS=1 instead of sleep infinity + oc exec. This eliminates all oc cp/oc exec orchestration from paude create and removes config syncing from paude connect. Drops cursor auth and global gitignore syncing entirely. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The config sync removal in bc01c7d deleted PAUDE_AGENT_SEED_DIR from shared.py but left the integration test asserting it exists, causing CI failure. Also removes ~230 lines of unit tests that tested seed copy logic no longer present in the entrypoint scripts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The ConfigMap conditionally included the gitconfig key only when the host had git user config, but the StatefulSet volume mount always referenced it, causing a FailedMount error in environments like CI. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The upgrade integration test was failing because the pod would time out waiting to become Ready. The entrypoint tried to install the "gemini" agent from the internet, but the pod's egress was restricted by NetworkPolicy. Adding PAUDE_SKIP_AGENT_INSTALL=1 prevents the installation attempt and allows the test to proceed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When using ConfigMap-based sessions, the container would crash loop because entrypoint-session.sh exits after completing setup in headless mode, causing the container to terminate. This breaks the Kubernetes integration tests. Wrap the entrypoint command with bash to run sleep infinity after the entrypoint completes, keeping the container alive for the agent to connect. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The PR removed _syncer_instance from OpenShiftBackend as part of config sync removal, but the upgrade integration test still tried to mock it, causing an AttributeError. This commit removes the stale mock and the now-unused MagicMock import. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Eliminates automatic syncing of agent config directories
(~/.claude/, ~/.cursor/, etc.) into containers at session start.
Users who need config persistence must now use PVC volumes.
This simplifies the codebase by removing complex rsync/copy logic,
plugin path rewriting, and associated test coverage. It also
addresses GitOps migration blockers by eliminating post-apply
imperative steps that cannot be represented declaratively.
Changes:
from BaseConfigSyncer and both backend implementations
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com