Description
Issue
Copilot / Istio on BOSH support is deprecated and was never deemed suitable for production. Code in Cloud Controller concerning this can likely be removed.
Context
Copilot was a service that converted routing information from Cloud Controller and Diego LRPs into routing configuration that Istio and Envoy could understand. Efforts to bring Istio to CF for VMs through a BOSH release have been paused for over three years now and were formally deprecated in March 2020.
See this deprecation notice:
https://github.com/cloudfoundry-attic/istio-release#deprecated
That means the core code around starting an LRP on Diego can be simplified and no longer pass through the CopilotRunnerDelegator
/ Copilot Adapter layer and that this code can be removed.
Areas to look into
Some parts such as the Copilot config might need to remain in the schema as optional. I'm not sure if it's backwards compatible to just remove that. Likewise, there is a Copilot Bulk Syncer BOSH job that I'm not sure is part of any supported CF deployment manifest, but extra care should be taken with that. Otherwise, the Adapter and RunnerDelegator layers should be pretty safe to remove.
- Copilot Adapter: https://github.com/cloudfoundry/cloud_controller_ng/blob/4f93650c218bab3729c3cfd05dc49ed69c326581/lib/cloud_controller/copilot/adapter.rb
- Copilot RunnerDelegator: https://github.com/cloudfoundry/cloud_controller_ng/blob/4f93650c218bab3729c3cfd05dc49ed69c326581/lib/cloud_controller/backends/copilot_runner_delegator.rb
- Copilot Bulk Syncer: https://github.com/cloudfoundry/cloud_controller_ng/blob/4f93650c218bab3729c3cfd05dc49ed69c326581/lib/cloud_controller/copilot/scheduler.rb
Notes
- I was reminded of this by Frequent error in worker logs: "copilot.enabled" is not a valid config key #1883.