# demo-helm A demo helm chart to deploy a simple web app written in Python. ## Build and push the sample app image Use the `Makefile` to build and push the image. ``` make push-app-image ``` ## Helm install/upgrade ### New Deployments ``` helm install charts/demo-helm OR helm install charts/demo-helm --generate-name ``` ### Upgrading Deployments Get your deployment ID ``` helm list ``` ``` helm upgrade demo-helm-1633825301 charts/demo-helm ``` You can wait for successful deployment too. ``` helm upgrade demo-helm-1633825301 charts/demo-helm --wait ``` ## Setting registry pull secrets You have to have an image pull secret. So first you need the secrets: From: [The k8s docs] ``` kubectl create secret docker-registry regcred \ --docker-server=https://registry.runcible.io \ --docker-username= \ --docker-password= \ --docker-email= ``` Then you need to specify the secret in your deployment spec like so: ``` spec: containers: - image: registry.runcible.io/demo-helm:1.0.1 imagePullPolicy: Always name: backend ports: - name: backend containerPort: 5000 imagePullSecrets: - name: regcred ``` ## Creating the Database password as a secret ``` kubectl -n create secret generic database_secret \ --from-literal=password= ``` [The k8s docs](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line) # References - [SQLAlchemy patterns I used to use]: (https://git.runcible.io/androiddrew/molten_exp/src/branch/master/market_look/model.py)