Merge pull request #3028 from Kami-no/cilium

cilium v1.1.2
This commit is contained in:
Chad Swenson
2018-08-09 10:35:29 -05:00
committed by GitHub
7 changed files with 268 additions and 195 deletions

View File

@@ -97,7 +97,7 @@ Supported Components
- Network Plugin - Network Plugin
- [calico](https://github.com/projectcalico/calico) v2.6.8 - [calico](https://github.com/projectcalico/calico) v2.6.8
- [canal](https://github.com/projectcalico/canal) (given calico/flannel versions) - [canal](https://github.com/projectcalico/canal) (given calico/flannel versions)
- [cilium](https://github.com/cilium/cilium) v1.0.0-rc8 - [cilium](https://github.com/cilium/cilium) v1.1.2
- [contiv](https://github.com/contiv/install) v1.1.7 - [contiv](https://github.com/contiv/install) v1.1.7
- [flanneld](https://github.com/coreos/flannel) v0.10.0 - [flanneld](https://github.com/coreos/flannel) v0.10.0
- [weave](https://github.com/weaveworks/weave) v2.4.0 - [weave](https://github.com/weaveworks/weave) v2.4.0

View File

@@ -40,7 +40,7 @@ vault_version: 0.10.1
weave_version: "2.4.0" weave_version: "2.4.0"
pod_infra_version: 3.0 pod_infra_version: 3.0
contiv_version: 1.1.7 contiv_version: 1.1.7
cilium_version: "v1.0.0-rc8" cilium_version: "v1.1.2"
# Download URLs # Download URLs
kubeadm_download_url: "https://storage.googleapis.com/kubernetes-release/release/{{ kubeadm_version }}/bin/linux/amd64/kubeadm" kubeadm_download_url: "https://storage.googleapis.com/kubernetes-release/release/{{ kubeadm_version }}/bin/linux/amd64/kubeadm"

View File

@@ -12,9 +12,9 @@ cilium_policy_dir: /etc/kubernetes/policy
# Limits for apps # Limits for apps
cilium_memory_limit: 500M cilium_memory_limit: 500M
cilium_cpu_limit: 200m cilium_cpu_limit: 500m
cilium_memory_requests: 64M cilium_memory_requests: 64M
cilium_cpu_requests: 50m cilium_cpu_requests: 100m
# Optional features # Optional features
cilium_enable_prometheus: false cilium_enable_prometheus: false

View File

@@ -1,29 +1,49 @@
kind: ConfigMap ---
apiVersion: v1 apiVersion: v1
kind: ConfigMap
metadata: metadata:
name: cilium-config name: cilium-config
namespace: kube-system namespace: kube-system
data: data:
# This etcd-config contains the etcd endpoints of your cluster. If you use # This etcd-config contains the etcd endpoints of your cluster. If you use
# TLS please make sure you uncomment the ca-file line and add the respective # TLS please make sure you follow the tutorial in https://cilium.link/etcd-config
# certificate has a k8s secret, see explanation bellow in the comment labeled
# "ETCD-CERT"
etcd-config: |- etcd-config: |-
--- ---
endpoints: endpoints:
{% for ip_addr in etcd_access_addresses.split(',') %} {% for ip_addr in etcd_access_addresses.split(',') %}
- {{ ip_addr }} - {{ ip_addr }}
{% endfor %} {% endfor %}
#
# In case you want to use TLS in etcd, uncomment the following line # In case you want to use TLS in etcd, uncomment the 'ca-file' line
# and add the certificate as explained in the comment labeled "ETCD-CERT" # and create a kubernetes secret by following the tutorial in
# https://cilium.link/etcd-config
ca-file: "{{ cilium_cert_dir }}/ca_cert.crt" ca-file: "{{ cilium_cert_dir }}/ca_cert.crt"
#
# In case you want client to server authentication, uncomment the following # In case you want client to server authentication, uncomment the following
# lines and add the certificate and key in cilium-etcd-secrets bellow # lines and create a kubernetes secret by following the tutorial in
# https://cilium.link/etcd-config
key-file: "{{ cilium_cert_dir }}/key.pem" key-file: "{{ cilium_cert_dir }}/key.pem"
cert-file: "{{ cilium_cert_dir }}/cert.crt" cert-file: "{{ cilium_cert_dir }}/cert.crt"
# If you want to run cilium in debug mode change this value to true # If you want to run cilium in debug mode change this value to true
debug: "{{ cilium_debug }}" debug: "{{ cilium_debug }}"
disable-ipv4: "{{ cilium_disable_ipv4 }}" disable-ipv4: "{{ cilium_disable_ipv4 }}"
# If you want to clean cilium state; change this value to true
clean-cilium-state: "false"
legacy-host-allows-world: "false"
# If you want cilium monitor to aggregate tracing for packets, set this level
# to "low", "medium", or "maximum". The higher the level, the less packets
# that will be seen in monitor output.
monitor-aggregation-level: "none"
# Regular expression matching compatible Istio sidecar istio-proxy
# container image names
sidecar-istio-proxy-image: "cilium/istio_proxy"
# Encapsulation mode for communication between nodes
# Possible values:
# - disabled
# - vxlan (default)
# - geneve
tunnel: "vxlan"

View File

@@ -1,10 +1,10 @@
--- ---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: metadata:
name: cilium name: cilium
rules: rules:
- apiGroups: - apiGroups:
- "networking.k8s.io" - "networking.k8s.io"
resources: resources:
- networkpolicies - networkpolicies
@@ -12,7 +12,7 @@ rules:
- get - get
- list - list
- watch - watch
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
- namespaces - namespaces
@@ -24,7 +24,7 @@ rules:
- get - get
- list - list
- watch - watch
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
- pods - pods
@@ -34,10 +34,10 @@ rules:
- list - list
- watch - watch
- update - update
- apiGroups: - apiGroups:
- extensions - extensions
resources: resources:
- networkpolicies #FIXME remove this when we drop support for k8s NP-beta GH-1202 - networkpolicies # FIXME remove this when we drop support for k8s NP-beta GH-1202
- thirdpartyresources - thirdpartyresources
- ingresses - ingresses
verbs: verbs:
@@ -45,7 +45,7 @@ rules:
- get - get
- list - list
- watch - watch
- apiGroups: - apiGroups:
- "apiextensions.k8s.io" - "apiextensions.k8s.io"
resources: resources:
- customresourcedefinitions - customresourcedefinitions
@@ -55,10 +55,12 @@ rules:
- list - list
- watch - watch
- update - update
- apiGroups: - apiGroups:
- cilium.io - cilium.io
resources: resources:
- ciliumnetworkpolicies - ciliumnetworkpolicies
- ciliumnetworkpolicies/status
- ciliumendpoints - ciliumendpoints
- ciliumendpoints/status
verbs: verbs:
- "*" - "*"

View File

@@ -1,6 +1,6 @@
--- ---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata: metadata:
name: cilium name: cilium
roleRef: roleRef:
@@ -8,8 +8,8 @@ roleRef:
kind: ClusterRole kind: ClusterRole
name: cilium name: cilium
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: cilium name: cilium
namespace: kube-system namespace: kube-system
- kind: Group - kind: Group
name: system:nodes name: system:nodes

View File

@@ -1,10 +1,21 @@
--- ---
apiVersion: extensions/v1beta1 apiVersion: apps/v1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
name: cilium name: cilium
namespace: kube-system namespace: kube-system
spec: spec:
updateStrategy:
type: "RollingUpdate"
rollingUpdate:
# Specifies the maximum number of Pods that can be unavailable during the update process.
# The current default value is 1 or 100% for daemonsets; Adding an explicit value here
# to avoid confusion, as the default value is specific to the type (daemonset/deployment).
maxUnavailable: "100%"
selector:
matchLabels:
k8s-app: cilium
kubernetes.io/cluster-service: "true"
template: template:
metadata: metadata:
labels: labels:
@@ -26,19 +37,32 @@ spec:
{% if rbac_enabled %} {% if rbac_enabled %}
serviceAccountName: cilium serviceAccountName: cilium
{% endif %} {% endif %}
initContainers:
- name: clean-cilium-state
image: docker.io/library/busybox:1.28.4
imagePullPolicy: IfNotPresent
command: ['sh', '-c', 'if [ "${CLEAN_CILIUM_STATE}" = "true" ]; then rm -rf /var/run/cilium/state; rm -rf /sys/fs/bpf/tc/globals/cilium_*; fi']
volumeMounts:
- name: bpf-maps
mountPath: /sys/fs/bpf
- name: cilium-run
mountPath: /var/run/cilium
env:
- name: "CLEAN_CILIUM_STATE"
valueFrom:
configMapKeyRef:
name: cilium-config
optional: true
key: clean-cilium-state
containers: containers:
- image: {{ cilium_image_repo }}:{{ cilium_image_tag }} - image: {{ cilium_image_repo }}:{{ cilium_image_tag }}
imagePullPolicy: Always imagePullPolicy: Always
name: cilium-agent name: cilium-agent
command: [ "cilium-agent" ] command: ["cilium-agent"]
args: args:
- "--debug=$(CILIUM_DEBUG)" - "--debug=$(CILIUM_DEBUG)"
- "-t" - "--kvstore=etcd"
- "vxlan" - "--kvstore-opt=etcd.config=/var/lib/etcd-config/etcd.config"
- "--kvstore"
- "etcd"
- "--kvstore-opt"
- "etcd.config=/var/lib/etcd-config/etcd.config"
- "--disable-ipv4=$(DISABLE_IPV4)" - "--disable-ipv4=$(DISABLE_IPV4)"
{% if cilium_enable_prometheus %} {% if cilium_enable_prometheus %}
ports: ports:
@@ -79,6 +103,30 @@ spec:
optional: true optional: true
key: prometheus-serve-addr key: prometheus-serve-addr
{% endif %} {% endif %}
- name: "CILIUM_LEGACY_HOST_ALLOWS_WORLD"
valueFrom:
configMapKeyRef:
name: cilium-config
optional: true
key: legacy-host-allows-world
- name: "CILIUM_SIDECAR_ISTIO_PROXY_IMAGE"
valueFrom:
configMapKeyRef:
name: cilium-config
key: sidecar-istio-proxy-image
optional: true
- name: "CILIUM_TUNNEL"
valueFrom:
configMapKeyRef:
key: tunnel
name: cilium-config
optional: true
- name: "CILIUM_MONITOR_AGGREGATION_LEVEL"
valueFrom:
configMapKeyRef:
key: monitor-aggregation-level
name: cilium-config
optional: true
resources: resources:
limits: limits:
cpu: {{ cilium_cpu_limit }} cpu: {{ cilium_cpu_limit }}
@@ -149,9 +197,6 @@ spec:
- name: etc-cni-netd - name: etc-cni-netd
hostPath: hostPath:
path: /etc/cni/net.d path: /etc/cni/net.d
- name: cilium-certs
hostPath:
path: {{ cilium_cert_dir }}
# To read the etcd config stored in config maps # To read the etcd config stored in config maps
- name: etcd-config-path - name: etcd-config-path
configMap: configMap:
@@ -159,6 +204,12 @@ spec:
items: items:
- key: etcd-config - key: etcd-config
path: etcd.config path: etcd.config
# To read the k8s etcd secrets in case the user might want to use TLS
- name: cilium-certs
hostPath:
path: {{ cilium_cert_dir }}
restartPolicy: Always
tolerations: tolerations:
- effect: NoSchedule - effect: NoSchedule
key: node-role.kubernetes.io/master key: node-role.kubernetes.io/master