Closed krancour closed 7 years ago
I mentioned the following offline, but I'll repeat here as well.
Many in the sig-service-catalog have discussed providing a reference implementation of a CF broker API based broker that adheres to the design in https://github.com/kubernetes-incubator/service-catalog/pull/13. My opinion on this issue is that we should:
Now that we've split steward into steward-framework and steward-cf, helm and command modes are effectively removed. We can always add them back by building a steward-helm
and/or steward-cmd
project in the future. Closing.
The obvious benefit of dropping these two modes is that it frees us to focus efforts on CF mode, Steward's internal state machine, and most importantly the UX.
Benefits aside, I'll try to defend why we can afford to lose these modes:
STDOUT
. These must conform to a specification mutually understood by Steward. That message format remains defined, at this time, by the CF service broker API.STDOUT
. The first is that doing so represent a vulnerability. Binding responses contain credentials and we should assume anything written toSTDOUT
is logged. Second, usingSTDOUT
as a communication channel precludes brokers from writing anything but the properly formatted response toSTDOUT
. Currently, this makes it impossible for command mode brokers to write debug messages toSTDOUT
, which is a major implementation constraint. In reaction to both of these issues, #169 has proposed that command mode brokers begin using a webhook (which Steward would listen for) as a new, more secure channel for sending responses. However such a change pushes additional responsibility onto broker developers and introduces a test-time dependency on Steward (or a mocked out webhook endpoint). I would assert that by the time #169 were addressed, the complexity inherent in implementing a command mode broker will have risen to a level on par with that of implementing a CF mode broker.