Fastest way to iterate on a Replicated Release

Hey,

Is working with channels actually the best way for quick dev iterations? Doesn’t that mean that every developer requires a separate channel and that you will end up with tons of different releases?

What about having 1 channel, which is deployed by each developer separately (i.e. containing latest main release) to a fresh VM (for example), where iteration happens inside the cluster, rather then over the channels?

An example process:

  1. Take Staging channel, which contains the changes from the latest main (maybe a GitHub action creates a new release every time you merge a branch or commit to main)
  2. Run Replicated’s 1 liner (in case of embedded cluster)
  3. Once everything is installed, download manifests from local cluster.
kubectl kots download $APPSLUG --decrypt-password-values --dest $TMP_DIR --namespace $NAMESPACE 
  1. Make any changes here inside your repository.
  2. Patch / replace downloaded manifests with the.changes you just made.
  3. Deploy new changes to the cluster.
kubectl kots upload --namespace $NAMESPACE --slug $APPSLUG $TMP_DIR/$APPSLUG/ --deploy --skip-preflights

The benefits I see here are:

  • Only 1 channel needed for development (stops polluting vendor portal with X dev channels)
  • The iteration cycles are very quick (commands usually takes 2-5 seconds to execute each)
  • No need to create releases and pollute release sequence.

Let me know your thoughts! I am keen to understand if I miss-understood the preferred DevEx when iterating over the product.

3 Likes