
layer-nvidia-cuda does the hardware detection and sets a state that the worker can react to. When gpu is available, worker updates config and restarts kubelet to enable gpu mode. Worker then notifies master that it's in gpu mode via the kube-control relation. When master sees that a worker is in gpu mode, it updates to privileged mode and restarts kube-apiserver. The kube-control interface has subsumed the kube-dns interface functionality. An 'allow-privileged' config option has been added to both worker and master charms. The gpu enablement respects the value of this option; i.e., we can't enable gpu mode if the operator has set allow-privileged="false".
25 lines
659 B
YAML
25 lines
659 B
YAML
repo: https://github.com/kubernetes/kubernetes.git
|
|
includes:
|
|
- 'layer:basic'
|
|
- 'layer:debug'
|
|
- 'layer:docker'
|
|
- 'layer:nagios'
|
|
- 'layer:tls-client'
|
|
- 'layer:nvidia-cuda'
|
|
- 'interface:http'
|
|
- 'interface:kubernetes-cni'
|
|
- 'interface:kube-dns'
|
|
- 'interface:kube-control'
|
|
options:
|
|
basic:
|
|
packages:
|
|
- 'nfs-common'
|
|
- 'ceph-common'
|
|
- 'socat'
|
|
tls-client:
|
|
ca_certificate_path: '/srv/kubernetes/ca.crt'
|
|
server_certificate_path: '/srv/kubernetes/server.crt'
|
|
server_key_path: '/srv/kubernetes/server.key'
|
|
client_certificate_path: '/srv/kubernetes/client.crt'
|
|
client_key_path: '/srv/kubernetes/client.key'
|