From d9ce11ea370d9c49a7dfb8351dbb6d6cca3db90c Mon Sep 17 00:00:00 2001 From: Steven Wade Date: Tue, 22 Jan 2019 21:05:52 +0000 Subject: [PATCH] Adding affinity options to KIAM agent and server deployments. (#10815) * Adding affinity options to KIAM agent and server deployments. Signed-off-by: Steven Wade * Bumping the KIAM chart version. Signed-off-by: Steven Wade --- stable/kiam/Chart.yaml | 2 +- stable/kiam/README.md | 2 ++ stable/kiam/templates/agent-daemonset.yaml | 4 +++ stable/kiam/templates/server-daemonset.yaml | 4 +++ stable/kiam/values.yaml | 28 +++++++++++++++++++++ 5 files changed, 39 insertions(+), 1 deletion(-) diff --git a/stable/kiam/Chart.yaml b/stable/kiam/Chart.yaml index 87a5177c61..3df6bbeb0c 100644 --- a/stable/kiam/Chart.yaml +++ b/stable/kiam/Chart.yaml @@ -1,5 +1,5 @@ name: kiam -version: 2.0.1-rc4 +version: 2.0.1-rc5 appVersion: 3.0-rc1 description: Integrate AWS IAM with Kubernetes keywords: diff --git a/stable/kiam/README.md b/stable/kiam/README.md index f000b4c24f..8932091b67 100644 --- a/stable/kiam/README.md +++ b/stable/kiam/README.md @@ -119,6 +119,7 @@ Parameter | Description | Default `agent.tlsFiles.cert` | Base64 encoded strings for the agent's certificate | `null` `agent.tlsFiles.key` | Base64 encoded strings for the agent's private key | `null` `agent.tolerations` | Tolerations to be applied to agent pods | `[]` +`agent.affinity` | Node affinity for pod assignment | `{}` `agent.updateStrategy` | Strategy for agent DaemonSet updates (requires Kubernetes 1.6+) | `OnDelete` `server.enabled` | If true, create server | `true` `server.name` | Server container name | `server` @@ -150,6 +151,7 @@ Parameter | Description | Default `server.tlsFiles.cert` | Base64 encoded strings for the server's certificate | `null` `server.tlsFiles.key` | Base64 encoded strings for the server's private key | `null` `server.tolerations` | Tolerations to be applied to server pods | `[]` +`server.affinity` | Node affinity for pod assignment | `{}` `server.updateStrategy` | Strategy for server DaemonSet updates (requires Kubernetes 1.6+) | `OnDelete` `server.useHostNetwork` | If true, use hostNetwork on server to bypass agent iptable rules | `false` `rbac.create` | If `true`, create & use RBAC resources | `true` diff --git a/stable/kiam/templates/agent-daemonset.yaml b/stable/kiam/templates/agent-daemonset.yaml index 847cbdee5b..090e87af58 100644 --- a/stable/kiam/templates/agent-daemonset.yaml +++ b/stable/kiam/templates/agent-daemonset.yaml @@ -41,6 +41,10 @@ spec: {{- end }} tolerations: {{ toYaml .Values.agent.tolerations | indent 8 }} + {{- if .Values.agent.affinity }} + affinity: +{{ toYaml .Values.agent.affinity | indent 10 }} + {{- end }} volumes: - name: tls secret: diff --git a/stable/kiam/templates/server-daemonset.yaml b/stable/kiam/templates/server-daemonset.yaml index ce3952ae86..59762f5e61 100644 --- a/stable/kiam/templates/server-daemonset.yaml +++ b/stable/kiam/templates/server-daemonset.yaml @@ -37,6 +37,10 @@ spec: {{- end }} tolerations: {{ toYaml .Values.server.tolerations | indent 8 }} + {{- if .Values.server.affinity }} + affinity: +{{ toYaml .Values.server.affinity | indent 10 }} + {{- end }} volumes: - name: tls secret: diff --git a/stable/kiam/values.yaml b/stable/kiam/values.yaml index 74b6c8f81f..02a00dec4b 100644 --- a/stable/kiam/values.yaml +++ b/stable/kiam/values.yaml @@ -57,6 +57,20 @@ agent: ## Agent container resources ## Ref https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/ ## + + # Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core + # Expects input structure as per specification for example: + # affinity: + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: foo.bar.com/role + # operator: In + # values: + # - master + affinity: {} + resources: {} ## Additional container arguments ## @@ -129,6 +143,20 @@ server: ## Ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/ ## updateStrategy: OnDelete + + # Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#affinity-v1-core + # Expects input structure as per specification for example: + # affinity: + # nodeAffinity: + # requiredDuringSchedulingIgnoredDuringExecution: + # nodeSelectorTerms: + # - matchExpressions: + # - key: foo.bar.com/role + # operator: In + # values: + # - master + affinity: {} + ## Node labels for pod assignment ## Ref: https://kubernetes.io/docs/user-guide/node-selection/ ##