chore: rename cameleer3 to cameleer
Rename Java packages from com.cameleer3 to com.cameleer, module directories from cameleer3-* to cameleer-*, and all references throughout workflows, Dockerfiles, docs, migrations, and pom.xml. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -12,12 +12,12 @@
|
||||
|
||||
## File Structure
|
||||
|
||||
### New files (core module — `cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/`)
|
||||
### New files (core module — `cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/`)
|
||||
- `ResolvedContainerConfig.java` — typed record with all resolved config fields
|
||||
- `ConfigMerger.java` — pure function, three-layer merge logic
|
||||
- `DeployStage.java` — enum for deployment progress stages
|
||||
|
||||
### New files (app module — `cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/`)
|
||||
### New files (app module — `cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/`)
|
||||
- `TraefikLabelBuilder.java` — generates Traefik Docker labels
|
||||
- `DockerNetworkManager.java` — lazy network creation + container attachment
|
||||
- `DockerEventMonitor.java` — persistent Docker event stream listener
|
||||
@@ -51,7 +51,7 @@
|
||||
### Task 1: Database Migration
|
||||
|
||||
**Files:**
|
||||
- Create: `cameleer3-server-app/src/main/resources/db/migration/V7__deployment_orchestration.sql`
|
||||
- Create: `cameleer-server-app/src/main/resources/db/migration/V7__deployment_orchestration.sql`
|
||||
|
||||
- [ ] **Step 1: Create the migration file**
|
||||
|
||||
@@ -79,7 +79,7 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 3: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-app/src/main/resources/db/migration/V7__deployment_orchestration.sql
|
||||
git add cameleer-server-app/src/main/resources/db/migration/V7__deployment_orchestration.sql
|
||||
git commit -m "feat: V7 migration — deployment orchestration columns"
|
||||
```
|
||||
|
||||
@@ -88,15 +88,15 @@ git commit -m "feat: V7 migration — deployment orchestration columns"
|
||||
### Task 2: DeploymentStatus Enum + DeployStage Enum
|
||||
|
||||
**Files:**
|
||||
- Modify: `cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/DeploymentStatus.java`
|
||||
- Create: `cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/DeployStage.java`
|
||||
- Modify: `cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/DeploymentStatus.java`
|
||||
- Create: `cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/DeployStage.java`
|
||||
|
||||
- [ ] **Step 1: Update DeploymentStatus enum**
|
||||
|
||||
Replace the content of `DeploymentStatus.java`:
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.core.runtime;
|
||||
package com.cameleer.server.core.runtime;
|
||||
|
||||
public enum DeploymentStatus {
|
||||
STOPPED, STARTING, RUNNING, DEGRADED, STOPPING, FAILED
|
||||
@@ -106,7 +106,7 @@ public enum DeploymentStatus {
|
||||
- [ ] **Step 2: Create DeployStage enum**
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.core.runtime;
|
||||
package com.cameleer.server.core.runtime;
|
||||
|
||||
public enum DeployStage {
|
||||
PRE_FLIGHT, PULL_IMAGE, CREATE_NETWORK, START_REPLICAS, HEALTH_CHECK, SWAP_TRAFFIC, COMPLETE
|
||||
@@ -121,8 +121,8 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 4: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/DeploymentStatus.java \
|
||||
cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/DeployStage.java
|
||||
git add cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/DeploymentStatus.java \
|
||||
cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/DeployStage.java
|
||||
git commit -m "feat: add DEGRADED, STOPPING statuses and DeployStage enum"
|
||||
```
|
||||
|
||||
@@ -131,14 +131,14 @@ git commit -m "feat: add DEGRADED, STOPPING statuses and DeployStage enum"
|
||||
### Task 3: Update Deployment Record
|
||||
|
||||
**Files:**
|
||||
- Modify: `cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Deployment.java`
|
||||
- Modify: `cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/Deployment.java`
|
||||
|
||||
- [ ] **Step 1: Update the Deployment record**
|
||||
|
||||
Replace the content of `Deployment.java`:
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.core.runtime;
|
||||
package com.cameleer.server.core.runtime;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
@@ -178,7 +178,7 @@ Expected: Compilation errors in `PostgresDeploymentRepository.java` (wrong const
|
||||
- [ ] **Step 3: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/Deployment.java
|
||||
git add cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/Deployment.java
|
||||
git commit -m "feat: add targetState, deploymentStrategy, replicaStates, deployStage to Deployment"
|
||||
```
|
||||
|
||||
@@ -187,18 +187,18 @@ git commit -m "feat: add targetState, deploymentStrategy, replicaStates, deployS
|
||||
### Task 4: Update PostgresDeploymentRepository
|
||||
|
||||
**Files:**
|
||||
- Modify: `cameleer3-server-app/src/main/java/com/cameleer3/server/app/storage/PostgresDeploymentRepository.java`
|
||||
- Modify: `cameleer-server-app/src/main/java/com/cameleer/server/app/storage/PostgresDeploymentRepository.java`
|
||||
|
||||
- [ ] **Step 1: Update the repository to handle new columns**
|
||||
|
||||
Replace the full content of `PostgresDeploymentRepository.java`:
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.app.storage;
|
||||
package com.cameleer.server.app.storage;
|
||||
|
||||
import com.cameleer3.server.core.runtime.Deployment;
|
||||
import com.cameleer3.server.core.runtime.DeploymentRepository;
|
||||
import com.cameleer3.server.core.runtime.DeploymentStatus;
|
||||
import com.cameleer.server.core.runtime.Deployment;
|
||||
import com.cameleer.server.core.runtime.DeploymentRepository;
|
||||
import com.cameleer.server.core.runtime.DeploymentStatus;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@@ -340,7 +340,7 @@ public class PostgresDeploymentRepository implements DeploymentRepository {
|
||||
|
||||
- [ ] **Step 2: Update RuntimeBeanConfig to pass ObjectMapper to the repository**
|
||||
|
||||
In `cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/RuntimeBeanConfig.java`, change the `deploymentRepository()` bean:
|
||||
In `cameleer-server-app/src/main/java/com/cameleer/server/app/config/RuntimeBeanConfig.java`, change the `deploymentRepository()` bean:
|
||||
|
||||
```java
|
||||
@Bean
|
||||
@@ -357,8 +357,8 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 4: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-app/src/main/java/com/cameleer3/server/app/storage/PostgresDeploymentRepository.java \
|
||||
cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/RuntimeBeanConfig.java
|
||||
git add cameleer-server-app/src/main/java/com/cameleer/server/app/storage/PostgresDeploymentRepository.java \
|
||||
cameleer-server-app/src/main/java/com/cameleer/server/app/config/RuntimeBeanConfig.java
|
||||
git commit -m "feat: update PostgresDeploymentRepository for orchestration columns"
|
||||
```
|
||||
|
||||
@@ -367,13 +367,13 @@ git commit -m "feat: update PostgresDeploymentRepository for orchestration colum
|
||||
### Task 5: ResolvedContainerConfig + ConfigMerger
|
||||
|
||||
**Files:**
|
||||
- Create: `cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/ResolvedContainerConfig.java`
|
||||
- Create: `cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/ConfigMerger.java`
|
||||
- Create: `cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/ResolvedContainerConfig.java`
|
||||
- Create: `cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/ConfigMerger.java`
|
||||
|
||||
- [ ] **Step 1: Create ResolvedContainerConfig record**
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.core.runtime;
|
||||
package com.cameleer.server.core.runtime;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -407,7 +407,7 @@ public record ResolvedContainerConfig(
|
||||
- [ ] **Step 2: Create ConfigMerger**
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.core.runtime;
|
||||
package com.cameleer.server.core.runtime;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
@@ -517,8 +517,8 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 4: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/ResolvedContainerConfig.java \
|
||||
cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/ConfigMerger.java
|
||||
git add cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/ResolvedContainerConfig.java \
|
||||
cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/ConfigMerger.java
|
||||
git commit -m "feat: ResolvedContainerConfig record and three-layer ConfigMerger"
|
||||
```
|
||||
|
||||
@@ -527,14 +527,14 @@ git commit -m "feat: ResolvedContainerConfig record and three-layer ConfigMerger
|
||||
### Task 6: Update ContainerRequest
|
||||
|
||||
**Files:**
|
||||
- Modify: `cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/ContainerRequest.java`
|
||||
- Modify: `cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/ContainerRequest.java`
|
||||
|
||||
- [ ] **Step 1: Expand ContainerRequest with new fields**
|
||||
|
||||
Replace `ContainerRequest.java`:
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.core.runtime;
|
||||
package com.cameleer.server.core.runtime;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -682,9 +682,9 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 5: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-core/src/main/java/com/cameleer3/server/core/runtime/ContainerRequest.java \
|
||||
cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DockerRuntimeOrchestrator.java \
|
||||
cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DeploymentExecutor.java
|
||||
git add cameleer-server-core/src/main/java/com/cameleer/server/core/runtime/ContainerRequest.java \
|
||||
cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DockerRuntimeOrchestrator.java \
|
||||
cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DeploymentExecutor.java
|
||||
git commit -m "feat: expand ContainerRequest with cpuLimit, ports, restart policy, additional networks"
|
||||
```
|
||||
|
||||
@@ -693,14 +693,14 @@ git commit -m "feat: expand ContainerRequest with cpuLimit, ports, restart polic
|
||||
### Task 7: TraefikLabelBuilder
|
||||
|
||||
**Files:**
|
||||
- Create: `cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/TraefikLabelBuilder.java`
|
||||
- Create: `cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/TraefikLabelBuilder.java`
|
||||
|
||||
- [ ] **Step 1: Create TraefikLabelBuilder**
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.app.runtime;
|
||||
package com.cameleer.server.app.runtime;
|
||||
|
||||
import com.cameleer3.server.core.runtime.ResolvedContainerConfig;
|
||||
import com.cameleer.server.core.runtime.ResolvedContainerConfig;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
@@ -719,7 +719,7 @@ public final class TraefikLabelBuilder {
|
||||
|
||||
// Core labels
|
||||
labels.put("traefik.enable", "true");
|
||||
labels.put("managed-by", "cameleer3-server");
|
||||
labels.put("managed-by", "cameleer-server");
|
||||
labels.put("cameleer.app", appSlug);
|
||||
labels.put("cameleer.environment", envSlug);
|
||||
|
||||
@@ -767,7 +767,7 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 3: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/TraefikLabelBuilder.java
|
||||
git add cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/TraefikLabelBuilder.java
|
||||
git commit -m "feat: TraefikLabelBuilder with path-based and subdomain routing"
|
||||
```
|
||||
|
||||
@@ -776,12 +776,12 @@ git commit -m "feat: TraefikLabelBuilder with path-based and subdomain routing"
|
||||
### Task 8: DockerNetworkManager
|
||||
|
||||
**Files:**
|
||||
- Create: `cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DockerNetworkManager.java`
|
||||
- Create: `cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DockerNetworkManager.java`
|
||||
|
||||
- [ ] **Step 1: Create DockerNetworkManager**
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.app.runtime;
|
||||
package com.cameleer.server.app.runtime;
|
||||
|
||||
import com.github.dockerjava.api.DockerClient;
|
||||
import com.github.dockerjava.api.model.Network;
|
||||
@@ -912,9 +912,9 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 5: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DockerNetworkManager.java \
|
||||
cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DockerRuntimeOrchestrator.java \
|
||||
cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/RuntimeOrchestratorAutoConfig.java
|
||||
git add cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DockerNetworkManager.java \
|
||||
cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DockerRuntimeOrchestrator.java \
|
||||
cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/RuntimeOrchestratorAutoConfig.java
|
||||
git commit -m "feat: DockerNetworkManager with lazy network creation and container attachment"
|
||||
```
|
||||
|
||||
@@ -923,15 +923,15 @@ git commit -m "feat: DockerNetworkManager with lazy network creation and contain
|
||||
### Task 9: DockerEventMonitor
|
||||
|
||||
**Files:**
|
||||
- Create: `cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DockerEventMonitor.java`
|
||||
- Create: `cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DockerEventMonitor.java`
|
||||
|
||||
- [ ] **Step 1: Create DockerEventMonitor**
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.app.runtime;
|
||||
package com.cameleer.server.app.runtime;
|
||||
|
||||
import com.cameleer3.server.core.runtime.Deployment;
|
||||
import com.cameleer3.server.core.runtime.DeploymentStatus;
|
||||
import com.cameleer.server.core.runtime.Deployment;
|
||||
import com.cameleer.server.core.runtime.DeploymentStatus;
|
||||
import com.github.dockerjava.api.DockerClient;
|
||||
import com.github.dockerjava.api.async.ResultCallback;
|
||||
import com.github.dockerjava.api.model.Event;
|
||||
@@ -1003,7 +1003,7 @@ public class DockerEventMonitor {
|
||||
|
||||
// Only process containers managed by us
|
||||
Map<String, String> labels = event.getActor() != null ? event.getActor().getAttributes() : null;
|
||||
if (labels == null || !"cameleer3-server".equals(labels.get("managed-by"))) return;
|
||||
if (labels == null || !"cameleer-server".equals(labels.get("managed-by"))) return;
|
||||
|
||||
String action = event.getAction();
|
||||
log.debug("Docker event: {} for container {} ({})", action, containerId.substring(0, 12),
|
||||
@@ -1079,7 +1079,7 @@ Expected: BUILD SUCCESS (may need `PostgresDeploymentRepository` to be injected
|
||||
- [ ] **Step 3: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DockerEventMonitor.java
|
||||
git add cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DockerEventMonitor.java
|
||||
git commit -m "feat: DockerEventMonitor — persistent event stream for container lifecycle"
|
||||
```
|
||||
|
||||
@@ -1088,7 +1088,7 @@ git commit -m "feat: DockerEventMonitor — persistent event stream for containe
|
||||
### Task 10: Rewrite DeploymentExecutor
|
||||
|
||||
**Files:**
|
||||
- Modify: `cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DeploymentExecutor.java`
|
||||
- Modify: `cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DeploymentExecutor.java`
|
||||
|
||||
This is the largest task — the orchestration hub that ties everything together.
|
||||
|
||||
@@ -1097,10 +1097,10 @@ This is the largest task — the orchestration hub that ties everything together
|
||||
Replace the full content of `DeploymentExecutor.java`:
|
||||
|
||||
```java
|
||||
package com.cameleer3.server.app.runtime;
|
||||
package com.cameleer.server.app.runtime;
|
||||
|
||||
import com.cameleer3.server.app.storage.PostgresDeploymentRepository;
|
||||
import com.cameleer3.server.core.runtime.*;
|
||||
import com.cameleer.server.app.storage.PostgresDeploymentRepository;
|
||||
import com.cameleer.server.core.runtime.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -1183,7 +1183,7 @@ public class DeploymentExecutor {
|
||||
globalCpuShares,
|
||||
globalRoutingMode,
|
||||
globalRoutingDomain,
|
||||
globalServerUrl.isBlank() ? "http://cameleer3-server:8081" : globalServerUrl
|
||||
globalServerUrl.isBlank() ? "http://cameleer-server:8081" : globalServerUrl
|
||||
);
|
||||
ResolvedContainerConfig config = ConfigMerger.resolve(
|
||||
globalDefaults, env.defaultContainerConfig(), app.containerConfig());
|
||||
@@ -1421,7 +1421,7 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 3: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-app/src/main/java/com/cameleer3/server/app/runtime/DeploymentExecutor.java
|
||||
git add cameleer-server-app/src/main/java/com/cameleer/server/app/runtime/DeploymentExecutor.java
|
||||
git commit -m "feat: rewrite DeploymentExecutor with staged deploy, config merge, replicas"
|
||||
```
|
||||
|
||||
@@ -1430,7 +1430,7 @@ git commit -m "feat: rewrite DeploymentExecutor with staged deploy, config merge
|
||||
### Task 11: Update DeploymentController
|
||||
|
||||
**Files:**
|
||||
- Modify: `cameleer3-server-app/src/main/java/com/cameleer3/server/app/controller/DeploymentController.java`
|
||||
- Modify: `cameleer-server-app/src/main/java/com/cameleer/server/app/controller/DeploymentController.java`
|
||||
|
||||
- [ ] **Step 1: Update the stop endpoint to use stopDeployment**
|
||||
|
||||
@@ -1460,7 +1460,7 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 3: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-app/src/main/java/com/cameleer3/server/app/controller/DeploymentController.java
|
||||
git add cameleer-server-app/src/main/java/com/cameleer/server/app/controller/DeploymentController.java
|
||||
git commit -m "feat: update stop endpoint to use DeploymentExecutor for replica cleanup"
|
||||
```
|
||||
|
||||
@@ -1469,7 +1469,7 @@ git commit -m "feat: update stop endpoint to use DeploymentExecutor for replica
|
||||
### Task 12: Update application.yml
|
||||
|
||||
**Files:**
|
||||
- Modify: `cameleer3-server-app/src/main/resources/application.yml`
|
||||
- Modify: `cameleer-server-app/src/main/resources/application.yml`
|
||||
|
||||
- [ ] **Step 1: Add the server-url property**
|
||||
|
||||
@@ -1489,7 +1489,7 @@ Expected: BUILD SUCCESS
|
||||
- [ ] **Step 3: Commit**
|
||||
|
||||
```bash
|
||||
git add cameleer3-server-app/src/main/resources/application.yml
|
||||
git add cameleer-server-app/src/main/resources/application.yml
|
||||
git commit -m "feat: add CAMELEER_SERVER_URL config property"
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user