Remove ServiceClass user-facing surface (tools, CLI, scenarios) [1/4]#633
Merged
Conversation
This was referenced May 6, 2026
QuentinBisson
added a commit
that referenced
this pull request
May 6, 2026
…tance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118.
d41f708 to
e74fa98
Compare
QuentinBisson
added a commit
that referenced
this pull request
May 6, 2026
…tance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118.
First of four PRs (see #632) for the full ServiceClass removal. After this PR, end users can no longer reach ServiceClass via MCP tools or CLI verbs, but the runtime, types, and CRD are still in place. The next PR removes the runtime; the one after that removes the API types and CRD. MCP tools removed: - core_serviceclass_* (list/get/create/update/delete/available/validate) - core_service_create / _delete / _get / _validate core_service_get and core_service_status overlapped on static services but core_service_get also returned ServiceClass-only fields (Outputs, ServiceClassName, ServiceClassType). After this PR, core_service_status covers the remaining service inspection needs. CLI subcommands removed: - muster create service ... - muster create serviceclass ... - muster check serviceclass ... - muster get serviceclass ... - muster list serviceclass ... - muster events --resource-type=serviceclass and --resource-type=service - muster test --concept=serviceclass BDD scenarios: - Deleted 22 serviceclass-* scenarios (entirely about ServiceClass) - Deleted 19 service-create-* / service-delete* / service-get* / service-validate / service-lifecycle / service-persistence / service-restart / service-state-transitions / service-{start,stop}{,-already-*} scenarios — all required user-creatable service instances - Renamed service-get-non-existent.yaml -> service-status-non-existent.yaml and switched the tool to core_service_status - Edited four workflow-create*.yaml scenarios to use core_workflow_list instead of core_serviceclass_list as a probe step - Edited mcpserver-service-management.yaml to drop the three core_service_get inspection steps; the equivalent core_service_status calls right after them already cover the same checks - Deleted four end-to-end scenarios that depended on ServiceClass: behavior-developer-onboarding-journey, example_with_mock, user-journey-platform-setup, workflow-conditional-service-check, workflow-run-with-serviceclass, reconciler-status-sync CHANGELOG: ### Removed entry under [Unreleased] documenting the user-visible surface change. Build, vet, gofmt, helm-lint, helm-test all green. muster test runs 118 scenarios at 100%.
e74fa98 to
1ef1763
Compare
QuentinBisson
added a commit
that referenced
this pull request
May 7, 2026
…tance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118.
QuentinBisson
added a commit
that referenced
this pull request
May 7, 2026
…tance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118.
Removes the 22 stale entries for core_service_* and core_serviceclass_* tools that no longer exist after the user-facing surface removal.
paurosello
approved these changes
May 7, 2026
Contributor
paurosello
left a comment
There was a problem hiding this comment.
Schema regenerated and pre-commit clean. Scope discipline good — runtime/CRD/types untouched as advertised. Note: my earlier review flagged ConceptServiceClass as dead, but it's still used in internal/agent/test_mcp_handlers.go to map MCP-exposed concept: serviceclass test calls; left in place since stripping that handler arm is arguably part 2/4 territory.
…tate
The ServiceClass-based scenarios deleted in this PR bundled coverage of
ServiceClass-instance lifecycle with workflow-engine and orchestrator
behavior that survives the removal. Two new scenarios pin that
surviving coverage to a static MCPServer service substrate:
- workflow-conditional-static.yaml: inline tool conditions, from_step,
allow_failure, expect_not, condition_evaluation, and step skipping.
Replaces the workflow-engine assertions previously in
workflow-conditional-service-check.yaml.
- service-state-static.yaml: core_service_restart happy-path and
start/stop idempotency ("already running", "already stopped").
Replaces the orchestrator state-machine assertions previously in
service-restart.yaml, service-start-already-running.yaml, and
service-stop-already-stopped.yaml.
QuentinBisson
added a commit
that referenced
this pull request
May 7, 2026
…tance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118.
QuentinBisson
added a commit
that referenced
this pull request
May 8, 2026
…tance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118.
QuentinBisson
added a commit
that referenced
this pull request
May 8, 2026
…tance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118.
QuentinBisson
added a commit
that referenced
this pull request
May 11, 2026
…tance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118.
QuentinBisson
added a commit
that referenced
this pull request
May 12, 2026
* chore: regenerate schema.json after ServiceClass tool removal Removes the 22 stale entries for core_service_* and core_serviceclass_* tools that no longer exist after the user-facing surface removal. * chore: add trailing newline to schema.json (pre-commit fix) * Remove ServiceClass runtime (internal/serviceclass, GenericServiceInstance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118. --------- Co-authored-by: Pau Rosello <pau@giantswarm.io>
QuentinBisson
added a commit
that referenced
this pull request
May 12, 2026
* chore: regenerate schema.json after ServiceClass tool removal Removes the 22 stale entries for core_service_* and core_serviceclass_* tools that no longer exist after the user-facing surface removal. * chore: add trailing newline to schema.json (pre-commit fix) * Remove ServiceClass runtime (internal/serviceclass, GenericServiceInstance, reconciler) Second of four PRs (see #632). Builds on #633 (PR 1). After this PR the ServiceClass runtime is gone — `GenericServiceInstance`, the `internal/serviceclass` adapter, the `ServiceClass` reconciler, the ServiceClass event generators, and the supporting test infrastructure all leave the tree. The API types (`internal/api/serviceclass.go`, `internal/api/serviceinstance.go`) and the CRD itself are still in place; PR 3 takes those out. Deleted: - internal/serviceclass/ (entire package) - internal/services/instance.go (GenericServiceInstance) - internal/services/response_processor.go - internal/reconciler/serviceclass_reconciler.go + test - .muster/serviceclasses/*.yaml.example - examples/serviceclass-*.yaml Edited: - internal/app/services.go: drop the ServiceClass adapter and reconciler registration (and the serviceclass import). - internal/orchestrator/orchestrator.go: rewrite to remove CreateServiceClassInstance / DeleteServiceClassInstance / GetServiceClassInstance / ListServiceClassInstances / SubscribeToServiceInstanceEvents / generateServiceInstanceEvent / buildServiceInstanceEventMessage, the `instances` map and `instanceEvents` slice, `CreateServiceRequest`, `ServiceInstanceInfo`, `ServiceInstanceEvent`, `processServiceClassRequirements` (replaced with the slim `processAutoStartMCPServers`), and the dead `ToolCaller` field + Config.ToolCaller + Set/GetToolCaller (no remaining callers; the toolCaller value flows directly into the workflow adapter from internal/app/services.go). - internal/orchestrator/api_adapter.go: rewrite. Drop convertToAPIServiceInstance, the ServiceClassInstance methods, and the ServiceClass-specific tool handlers; keep only the static-service surface. - internal/orchestrator/doc.go: tight rewrite (was a 200-line ServiceClass-era artifact). - internal/api/service.go: trim ServiceManagerHandler to the static- service surface (StartService / StopService / RestartService / GetServiceStatus / GetAllServices / SubscribeToStateChanges + ToolProvider). The CreateService / DeleteService / GetService / SubscribeToServiceInstanceEvents members are gone. - internal/events/types.go, templates.go, generator.go: drop the ServiceClass and ServiceInstance event reasons / templates / generator + the `ServiceClass` field on EventData. - internal/events/api_adapter.go: fix the user-visible resourceType description ("Filter by resource type (MCPServer, ServiceClass, Workflow, ServiceInstance)" → "... (MCPServer, Workflow)"). - internal/events/generator_test.go: drop the TestEventGenerator_ServiceInstanceEvent test (its target is gone). - internal/testing/types.go: drop ConceptServiceClass, ServiceClassConfig, the ServiceClasses field on MusterPreConfiguration, and ExpectedServiceClasses on MusterInstance. - internal/testing/muster_manager.go: drop extractExpectedServiceClasses{,FromInstance}, checkServiceClassAvailability, the convertServiceClassConfigToCRDSpec chain, and the ServiceClass CRD generation block. Also drop checkServiceAvailability (calls now-nonexistent core_service_get) and extractExpectedServicesFromInstance (always returned empty), and the matching readiness-loop block. - internal/testing/test_reporter.go: drop the ServiceClass section in the reporter. - internal/testing/logger.go: drop the "serviceclass-" prefix trim in GenerateScenarioPrefix. - internal/agent/test_mcp_handlers.go: drop the case "serviceclass" branches; align error message. - internal/agent/test_mcp_server.go: drop "serviceclass" from concept flag descriptions. - internal/agent/client.go: fix the CallToolJSON doc-comment example (was core_service_get — gone — now uses core_service_status). - internal/agent/doc.go: fix the doc-comment examples (core_service_create, core_serviceclass_list — both gone) to use core_workflow_run / core_workflow_list. - internal/workflow/executor.go: drop the "// This follows the same pattern as ServiceClass.ValidateServiceArgs" narrative comment. Build, vet, gofmt, helm-lint all clean. muster test 118/118. * Remove ServiceClass API types, CRD, and Helm RBAC Third of four PRs (see #632). Stacked on top of #634 (PR 2). After this PR the ServiceClass surface is gone end-to-end: API types, the ServiceClass CRD, the related client and reconciler interface methods, and the Helm RBAC entry. Public docs still reference ServiceClass and will be cleaned up in PR 4. **Operational note (REQUIRED before upgrading past this PR):** delete any ServiceClass custom resources in your cluster before upgrading; otherwise they will be orphaned when the CRD is removed: kubectl delete serviceclasses.muster.giantswarm.io --all -A MCPServer and Workflow CRs are unaffected. Deleted: - pkg/apis/muster/v1alpha1/serviceclass_types.go - internal/api/serviceclass.go (ArgDefinition promoted to types.go) - internal/api/serviceinstance.go - helm/muster/crds/muster.giantswarm.io_serviceclasses.yaml Edited: - pkg/apis/muster/v1alpha1/workflow_types.go: promote ArgDefinition here (kubebuilder markers preserved). - pkg/apis/muster/v1alpha1/zz_generated.deepcopy.go: regenerated with controller-gen v0.21.0; drop ServiceClass*, LifecycleTools, ToolCall, HealthCheckConfig, HealthCheckExpectation, HealthCheckToolCall, TimeoutConfig, ServiceConfig deepcopies. - helm/muster/crds: regenerated with controller-gen v0.21.0 (matches CI). - internal/api/types.go: promote api.ArgDefinition (was in serviceclass.go); drop ServiceClass / ServiceInstance / ServiceConfig / lifecycle types. - internal/api/requests.go: drop ServiceClassCreateRequest / ServiceClassUpdateRequest / ServiceClassValidateRequest / ServiceValidateRequest. - internal/api/handlers.go: drop ServiceClassManagerHandler interface, RegisterServiceClassManager, GetServiceClassManager, the serviceClassManagerHandler var; gofmt the var block. - internal/api/orchestrator_test.go: drop the ServiceClass mock handler methods. - internal/client/{filesystem,kubernetes,muster}_client.go: drop the ServiceClass interface methods and implementations; drop the *musterv1alpha1.ServiceClass switch arms. - internal/client/doc.go: trim ServiceClass mentions. - internal/reconciler/types.go: drop GetServiceClass and UpdateServiceClassStatus from StatusUpdater. - internal/reconciler/kubernetes_detector.go: drop the case ResourceTypeServiceClass informer setup. - internal/reconciler/test_helpers_test.go: drop the MockStatusUpdater.ServiceClasses field and supporting tracking methods. - internal/events/generator.go: drop ServiceClassEvent (its caller is gone in PR 2). - internal/events/generator_test.go: drop the matching mock ServiceClass methods on mockMusterClient. - internal/config/{types,storage,storage_test}.go: drop ServiceClass mentions; drop the storage_test entry that exercised the removed serviceclasses entityType. - helm/muster/templates/rbac.yaml, helm/muster/tests/rbac_test.yaml, helm/muster/values.yaml: narrow the muster ClusterRole to just mcpservers + workflows (and matching /status subresources). Drop the ServiceClass mentions from the comments. - schema.json: regenerated via 'muster test --generate-schema'. - CHANGELOG: ### Removed entry under [Unreleased] documenting the CR cleanup step operators must run before upgrading past this PR. Build, vet, gofmt, helm-lint, helm-test (44/44), make generate-crds (no diff) all clean. muster test 118/118. * fix(deepcopy): add explicit v1 alias for meta/v1 import to satisfy goimports --------- Co-authored-by: Pau Rosello <pau@giantswarm.io>
QuentinBisson
added a commit
that referenced
this pull request
May 12, 2026
* Sweep ServiceClass references from public docs [4/4] Removes ServiceClass mentions, examples, and configuration from the public docs alongside dangling references to deleted MCP tools (core_service_create, _delete, _get, _validate). Strict delete-and-trim approach: SC paragraphs, sections, and code blocks are removed without synthesizing replacement Workflow/MCPServer examples that would duplicate content already in the dedicated workflow / MCPServer guides. ADR 007 (CRD status reconciliation) is marked Status: Partially superseded with the historical body intact. Refs #632. * Drop dead Service Instance Health scenario and Instantiation lifecycle bullet * Drop ServiceClass mention from internal/template package doc The docs sweep targeted docs/ only; the package doc-comment for internal/template still mentioned ServiceClass tool calls. After PRs #633-#635, only workflow steps remain as a consumer. * refactor(client): collapse per-CRD duplication via client.Object helpers (#627) Adds internal/client/{filesystem,kubernetes}/store.go with shared helpers parameterised over the controller-runtime client.Object / client.ObjectList interfaces. Per-CRD files shrink from ~165 LOC (filesystem) / ~70 LOC (kubernetes) to ~40 LOC of thin wrappers. Side-effects of the consolidation: - Filesystem ListXxx now sets list.Items via meta.SetList rather than appending to a typed slice. Equivalent end state for callers. - Kubernetes ListXxx uniformly guards against an empty namespace (previously inconsistent across CRDs — InNamespace("") was a no-op so behaviour was already equivalent, just cleaner). - All five kubernetes verbs now wrap returned errors with a 'failed to <verb> %s %s/%s' prefix; previously workflow.go did not wrap. errors.Is/As against k8s sentinels still works through %w. - kubernetes CreateEventForCRD double switch (kind→GVK + kind→Get) collapses to a single crdFactories map keyed on CRD kind. No public method signatures change; no behaviour change at the MusterClient interface boundary. Refs #140.
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.
First of four PRs (see #632) for the full ServiceClass removal. After this PR, end users can no longer reach ServiceClass via MCP tools or CLI verbs, but the runtime, types, and CRD are still in place. The next stacked PR removes the runtime; the one after that removes the API types and CRD.
What's removed
MCP tools:
core_serviceclass_*(list/get/create/update/delete/available/validate)core_service_create/_delete/_get/_validatecore_service_getoverlapped withcore_service_statuson static services but also returned ServiceClass-only fields (Outputs,ServiceClassName,ServiceClassType). After this PR,core_service_statuscovers the remaining service inspection needs.CLI subcommands:
muster create service ...muster create serviceclass ...muster check serviceclass ...muster get serviceclass ...muster list serviceclass ...muster events --resource-type=serviceclassand--resource-type=servicemuster test --concept=serviceclassBDD scenarios:
serviceclass-*scenarios (entirely about ServiceClass)service-create-*/service-delete*/service-get*/service-validate/service-lifecycle/service-persistence/service-restart/service-state-transitions/service-{start,stop}{,-already-*}scenarios — all required user-creatable service instancesbehavior-developer-onboarding-journey,example_with_mock,user-journey-platform-setup,workflow-conditional-service-check,workflow-run-with-serviceclass,reconciler-status-syncEdits (not deletes):
service-get-non-existent.yaml→service-status-non-existent.yaml, switched tocore_service_statusworkflow-create*.yamlscenarios switched their probe step fromcore_serviceclass_listtocore_workflow_listmcpserver-service-management.yamldropped its threecore_service_getinspection steps (the equivalentcore_service_statuscalls right after them already cover the same checks)Out of scope (later PRs)
internal/serviceclass/,GenericServiceInstance,internal/reconciler/serviceclass_reconciler.go) — PR 2pkg/apis/muster/v1alpha1/serviceclass_types.go,helm/muster/crds/muster.giantswarm.io_serviceclasses.yaml) — PR 3Verification
Closes part of #632.