You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.3 KiB

  1. ---
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. name: node-feature-discovery-master
  6. namespace: {{ node_feature_discovery_namespace }}
  7. labels:
  8. app.kubernetes.io/name: node-feature-discovery
  9. role: master
  10. spec:
  11. replicas: {{ node_feature_discovery_master_replicas }}
  12. selector:
  13. matchLabels:
  14. app.kubernetes.io/name: node-feature-discovery
  15. role: master
  16. template:
  17. metadata:
  18. labels:
  19. app.kubernetes.io/name: node-feature-discovery
  20. role: master
  21. spec:
  22. serviceAccountName: node-feature-discovery
  23. enableServiceLinks: false
  24. containers:
  25. - name: master
  26. securityContext:
  27. allowPrivilegeEscalation: false
  28. capabilities:
  29. drop:
  30. - ALL
  31. readOnlyRootFilesystem: true
  32. runAsNonRoot: true
  33. image: {{ node_feature_discovery_image_repo }}:{{ node_feature_discovery_image_tag }}
  34. imagePullPolicy: IfNotPresent
  35. livenessProbe:
  36. grpc:
  37. port: 8082
  38. initialDelaySeconds: 10
  39. periodSeconds: 10
  40. readinessProbe:
  41. grpc:
  42. port: 8082
  43. initialDelaySeconds: 5
  44. periodSeconds: 10
  45. failureThreshold: 10
  46. ports:
  47. - containerPort: 8082
  48. name: grpc
  49. - containerPort: 8081
  50. name: metrics
  51. env:
  52. - name: NODE_NAME
  53. valueFrom:
  54. fieldRef:
  55. fieldPath: spec.nodeName
  56. command:
  57. - "nfd-master"
  58. args:
  59. - "-port=8080"
  60. {% if not node_feature_discovery_enable_nodefeature_api %}
  61. - "-enable-nodefeature-api=false"
  62. {% elif node_feature_discovery_master_replicas > 1 %}
  63. - "-enable-leader-election"
  64. {% endif %}
  65. {% if node_feature_discovery_master_crd_controller != none %}
  66. - "-crd-controller={{ node_feature_discovery_master_crd_controller }}"
  67. {% else %}
  68. {% if node_feature_discovery_master_instance %}
  69. ## By default, disable crd controller for other than the default instances
  70. - "-crd-controller=false"
  71. {% else %}
  72. ## By default, disable crd controller for other than the default instances
  73. - "-crd-controller=true"
  74. {% endif %}
  75. {% endif %}
  76. - "-metrics=8081"
  77. volumeMounts:
  78. - name: nfd-master-conf
  79. mountPath: "/etc/kubernetes/node-feature-discovery"
  80. readOnly: true
  81. volumes:
  82. - name: nfd-master-conf
  83. configMap:
  84. name: node-feature-discovery-master-conf
  85. items:
  86. - key: nfd-master.conf
  87. path: nfd-master.conf
  88. affinity:
  89. nodeAffinity:
  90. preferredDuringSchedulingIgnoredDuringExecution:
  91. - preference:
  92. matchExpressions:
  93. - key: node-role.kubernetes.io/master
  94. operator: In
  95. values:
  96. - ""
  97. weight: 1
  98. - preference:
  99. matchExpressions:
  100. - key: node-role.kubernetes.io/control-plane
  101. operator: In
  102. values:
  103. - ""
  104. weight: 1
  105. tolerations:
  106. - effect: NoSchedule
  107. key: node-role.kubernetes.io/master
  108. operator: Equal
  109. - effect: NoSchedule
  110. key: node-role.kubernetes.io/control-plane
  111. operator: Equal