Forking Node MOdule
• Mark Eschbach
Maurice has reached the point where I am ready to deploy the initial version on my K8S cluster. In the future I would love to setup a helm chart however for now it’s a bit more heavy weight than what I really need.
The first major hurtle is how to mount the configuration file. Kubernetes allows one to mount a secrets volume. However the volume must be mounted as a directory. This is not unreasonable, however does deviate from the Docker volume design which does allow for mounting individual files.
Sometimes I over build just enough
that it works out. I can easily override the location of the configuration file by passing an additional argument to
the program contianing the path to execute. To help in debugging I found
Example K8S configuration
To spare anyone else who might be interested in deploying this service here is the YAML you’ll need. Remember to
replace the secrets with a
base64 encoding of your
apiVersion: v1 kind: Namespace metadata: name: maurice-prod --- apiVersion: apps/v1 kind: Deployment metadata: name: maurice namespace: maurice-prod labels: app: maurice spec: replicas: 1 selector: matchLabels: app: maurice template: metadata: labels: app: maurice spec: containers: - name: watcher image: meschbach/maurice:0.1.0 command: ["node","/app/maurice.js"] args: ["/var/maurice/config.json"] volumeMounts: - name: config mountPath: "/var/maurice" readOnly: true volumes: - name: config secret: secretName: 'asset-watcher-config' --- apiVersion: v1 kind: Secret metadata: name: asset-watcher-config namespace: mee-stocks data: config.json: '<your-base64-encoded-config>'