Back to Charts

⚠️ Repo Archive Notice

incubator/honeydipper/README.md

latest5.1 KB
Original Source

⚠️ Repo Archive Notice

As of Nov 13, 2020, charts in this repo will no longer be updated. For more information, see the Helm Charts Deprecation and Archive Notice, and Update.

Honeydipper

Honeydipper is basically, your swiss army knife for systems engineering and operations. An event-driven, policy-based orchestration system, with a pluggable open architecture.

DEPRECATION NOTICE

This chart is deprecated and no longer supported.

Introduction

This chart creates a deployment to run the Honeydipper daemon, and exposes a service pointing to the webhook listener.

Prerequisites

  • Kubernetes 1.10+

Required Configuration

Honeydipper daemon loads most of the configurations from git repos. To start, a few environment variables are required to bootstrap repo. Below are the settings required.

  • daemon.env.REPO, defaults to https://github.com/honeydipper/honeydipper-config-essentials.git

Please refer to values.yaml for detailed example.

Customization

The following options are supported . See values.yaml for more detailed explanation and examples:

ParameterDescriptionDefault
daemon.dnsConfigdnsConfig specifies the DNS parameters of the pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy
daemon.serviceAccountNamename of the ServiceAccount to use to run this pod, More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
daemon.replicaCountThe number of replicas of daemons to start1
daemon.image.repositoryThe docker image for Honeydipper daemonhoneydipper/honeydipper
daemon.image.tagThe version tag of the docker image to uselatest
daemon.image.pullPolicyPull policy for the docker imageAlways
daemon.argsHoneydipper daemon args, should be a list of Honeydipper daemon services, empty means all
daemon.resourcesThe pod resource spec, cpu limit, memory limit, etc., as defined in a pod spec
daemon.nodeSelectorA map of node selectors for the pod, as defined in a pod spec
daemon.affinityA map of affinity settings for the pod, as defined in a pod spec
daemon.annotationsA map of annotations as defined in a deployment metadata
daemon.tolerationsA list of toleration settings for the pod, as defined in a pod spec
daemon.extraVolumesA list of volumns to be added to the pod
daemon.extraVolumeMountsA list of volumns to be mounted to main daemon container
daemon.envA list of environment variables to be added to the main daemon container
drivers.webhook.service.typeThe exposed service type for the webhookLoadBalancer
drivers.webhook.service.portThe exposed service port for the webhook, needs to match the driver configurations set in the configuration repo8080
drivers.webhook.service.nodePortThe exposed service node port for the webhook. If set to 0, Kubernetes will assign a random port.0
drivers.webhook.ingress.enabledUse ingress controller for the webhook servicefalse
drivers.webhook.ingress.annotationsIf using ingress controllers, specify a map of anotations
drivers.webhook.ingress.pathIf using ingress controllers, specify the path mapped to webhook
drivers.webhook.ingress.hostsIf using ingress controllers, specify a list of host names for the webhook
drivers.webhook.ingress.tlsIf using ingress controllers, specify the secret that defines the key and certs
drivers.redis.localUse redis sidecar container for eventbus, this is only useful for testing. In production, multiple replicas of daemon should share the redis servertrue
drivers.redis.image.repositoryWhen using redis sidecar container for eventbus, this is used to specify the image repositoryredis
drivers.redis.image.tagWhen using redis sidecar container for eventbus, this is used to specify the image tag5

Specifying environment

Using command line:

helm
helm -f values.yaml install --name test incubator/honeydipper

In values file

yaml
daemon:
  env:
    - name: REPO
      value: [email protected]:example/example.git
    - name: BOOTSTRAP_PATH
      value: /submodule
    - name: BRANCH
      value: test_branch
    - name: SECRET_VARIABLE
      valueFrom:
        secretRef:
          name: my-secret
          key: my-key

Mounting volumes

Using values file

yaml
daemon:
  extraVolumeMounts:
    - name: my-config
      mountPath: /etc/myconfig/file
      subPath: file
  extraVolumes:
    - name: my-config
      configMap:
        name: my-config

Testing the Deployment

To perform a sanity test (i.e. ensure Honeydipper daemon is running, and when you curl the webhook url http(s)://your-service-url/health, you should get a 200 response code.)

  1. Install the chart
bash
helm install -f test-values.yaml --name trial incubator/honeydipper --debug
  1. Run the tests
bash
helm test trial