Using private docker registry

By default, helm charts currently use docker hub to download images to deploy OpenWhisk components on Kubernetes. If your Kubernetes provider does not allow public docker registry, you can use your hosted docker image registry to deploy OpenWhisk on Kubernetes.

  • All openwhisk images should be uploaded to your hosted docker registry server.

    • openwhisk/apigateway
    • apache/couchdb
    • openwhisk/controller
    • openwhisk/invoker
    • wurstmeister/kafka
    • openwhisk/ow-utils
    • zookeeper
    • nginx
    • redis
    • busybox
    • openwhisk/alarmprovider
    • openwhisk/kafkaprovider
  • Add details of your docker registry information in mycluster.yml.

    docker:
      registry:
        name: "registry-name/"
        username: username
        password: "Password"
    
    • enabling registry information will cause all your images to be pulled from private docker registry only.
    • Append / in your docker registry name.

Enabling registry.name will create a docker-registry secret as {ReleaseName}-private-registry.auth in Kubernetes which will be used in pod/jobs as imagePullSecrets.

# If ReleaseName is owdev and namespace is openwhisk
# kubectl get secrets owdev-private-registry.auth -o yaml

apiVersion: v1
data:
  .dockerconfigjson: <Base64 encoded>
kind: Secret
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{".dockerconfigjson":"Base64 Encoded"},"kind":"Secret","metadata":{"annotations":{},"labels":{"app":"owdev-openwhisk","chart":"openwhisk-0.1.4","heritage":"Tiller","release":"owdev"},"name":"owdev-private-registry.auth","namespace":"openwhisk"},"type":"kubernetes.io/dockerconfigjson"}
  creationTimestamp: "2019-04-04T06:44:43Z"
  labels:
    app: owdev-openwhisk
    chart: openwhisk-0.1.4
    heritage: Tiller
    release: owdev
  name: owdev-private-registry.auth
  namespace: openwhisk
  resourceVersion: "18273580"
  selfLink: /api/v1/namespaces/openwhisk/secrets/owdev-private-registry.auth
  uid: 20f03275-56a5-11e9-9164-005056a3e755
type: kubernetes.io/dockerconfigjson