<p>I have a <em>.NET core web API</em> and <em>Angular 7</em> app that I need to deploy to multiple client servers, potentially running a plethora of different OS setups. </p>

<p>Dockerising the whole app seems like the best way to handle this, so I can ensure that it all works wherever it goes. </p>

<p>My question is on my understanding of Kubernetes and the distribution of the application. We use Azure Dev Ops for build pipelines, so if I'm correct would it work as follows:</p>

<p>1) Azure Dev Ops builds and deploys the image as a Docker container.<br>
2) Kubernetes could realise there is a new version of the docker image and push this around all of the different client servers? <br>
3) Client specific app settings could be handled by Kubernetes secrets.</p>

<p>Is that a reasonable setup? Have I missed anything? And are there any recommendations on setup/guides I can follow to get started.</p>

<p>Thanks in advance, James</p>

<p>Azure DevOps will perform the CI part of your pipeline. Once it is completed, Azure DevOps will push images to ACR. CD part should be done either directly from Azure DevOps (You may have to install a private agent on your on-prem servers &amp; configure firewall etc) or Kubernetes native CD tools such as <a href="https://www.spinnaker.io/" rel="nofollow noreferrer">Spinnaker</a> or <a href="https://jenkins-x.io/" rel="nofollow noreferrer">Jenkins-X</a>. Secrets should be kept in Kubernetes secrets.</p>
