You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -18,11 +21,11 @@ InfiniBand Kubernetes provides a daemon `ib-kubernetes`, that works in conjuctio
18
21
19
22
## Subnet Manager Plugins
20
23
21
-
InifiBand Kubernets uses [Golang plugins](https://golang.org/pkg/plugin/) to add the guids to PKey subnet manager.
24
+
InifiBand Kubernets uses [Golang plugins](https://golang.org/pkg/plugin/) to communicate with the fabric subnet manager
22
25
Subnet manager plugins exists in `pkg/sm/plugins`. There are currently 2 plugins:
23
26
24
-
1. UFM Plugin: This plugin communicate with [Mellanox UFM ](https://www.mellanox.com/products/management-software/ufm) rest api to add the Generated Guids to PKey.
25
-
2.Noop Plugin: This plugin doesn't do any special operations, it can be used as template for developing user's own plugin.
27
+
1. UFM Plugin
28
+
2.NOOP Plugin
26
29
27
30
## Build
28
31
@@ -41,54 +44,148 @@ Upon successful build the binary will be available in `build/ib-kubernetes`.
41
44
42
45
To build all the plugins binaries for InfiniBand Kubernetes that exist in `pkg/sm/plugins`
43
46
44
-
```shell script
45
-
# building all plugins
47
+
#### Building all plugins
48
+
```
46
49
$ make plugins
50
+
```
47
51
48
-
# building one plugin, make <plugin-name>-plugin
49
-
$ make noop-plugin
52
+
#### Building a specific plugin
53
+
```
54
+
make <plugin name>-plugin
55
+
```
56
+
Example:
57
+
```
58
+
$ make ufm-plugin
50
59
```
51
60
Upon successful build the plugins binaries will be available in `build/plugins/`.
52
61
53
-
Note: to build all binaries at once run `$ make`.
62
+
Note: to build all binaries at once run `make`.
54
63
55
64
### Building Container Image
56
65
57
66
To build container image
58
67
59
-
```shell script
60
-
# Building image mellanox/ib-kubernetes
68
+
#### Building image mellanox/ib-kubernetes
69
+
```
61
70
$ make image
71
+
```
62
72
63
-
# Building image with custom tag and Dockerfile
73
+
#### Building image with custom tag and Dockerfile
74
+
```
64
75
$ DOCKERFILE=myfile TAG=mytag make image
65
76
```
66
77
67
78
## Configuration Reference
68
79
69
-
User can provide the following configurations as environment variables or for the ConfigMap :
70
-
*`DAEMON_SM_PLUGIN`: Name of the subnet manager plugin. Currently supported `"noop"` and `"ufm"`.
71
-
*`DAEMON_PERIODIC_UPDATE`: Interval in seconds to send add and remove request to subnet manager.
72
-
*`GUID_POOL_RANGE_START`: The first guid in the pool e.g: `"02:00:00:00:00:00:00:00"`.
73
-
*`GUID_POOL_RANGE_END`: The Last guid in the pool.
80
+
IB Kubernetes configration as ConfigMap :
81
+
```yaml
82
+
apiVersion: v1
83
+
kind: ConfigMap
84
+
metadata:
85
+
name: ib-kubernetes-config
86
+
namespace: kube-system
87
+
data:
88
+
DAEMON_SM_PLUGIN: "ufm"# Name of the subnet manager plugin
89
+
DAEMON_PERIODIC_UPDATE: "5"# Interval in seconds to send add and remove request to subnet manager
90
+
GUID_POOL_RANGE_START: "02:00:00:00:00:00:00:00"# The first guid in the pool
91
+
GUID_POOL_RANGE_END: "02:FF:FF:FF:FF:FF:FF:FF"# The last guid in the pool
92
+
```
93
+
94
+
## Plugins
95
+
96
+
Subnet Manager Plugin to configure PKeys (Partition Keys) in the InfiniBand fabric.
74
97
75
-
**Configurations if "ufm" subnet manager plugin is used for `deployment/ib-kubernetes-ufm-secret.yaml`:**
76
-
*`UFM_USERNAME`: Username of UFM.
77
-
*`UFM_PASSWORD`: Password of UFM.
78
-
*`UFM_ADDRESS`: IP address or hostname of UFM server.
79
-
*`UFM_HTTP_SCHEMA`: http/https, default is https.
80
-
*`UFM_PORT`: REST API port of UFM default is 443 (https), if `httpSchema` is set to http then the default is 80.
81
-
*`UFM_CERTIFICATE`: Secure certificate if using secure connection.
98
+
### NOOP Plugin
99
+
100
+
Plugin that does nothing. Example for developing user subnet manager plugin
101
+
102
+
### UFM (Unified Fabric Manager) Plugin
103
+
104
+
[UFM](https://www.mellanox.com/products/management-software/ufm) is a powerful platform for managing scale-out computing environments.
105
+
UFM Plugin allow to configure PKeys (Partition Keys) via UFM.
106
+
107
+
#### Plugin Configuration
108
+
109
+
```yaml
110
+
apiVersion: v1
111
+
kind: Secret
112
+
metadata:
113
+
name: ib-kubernetes-ufm-secret
114
+
namespace: kube-system
115
+
stringData:
116
+
UFM_USERNAME: "admin"# UFM Username
117
+
UFM_PASSWORD: "123456"# UFM Password
118
+
UFM_ADDRESS: ""# UFM Hostname/IP Address
119
+
UFM_HTTP_SCHEMA: ""# http/https. Default: https
120
+
UFM_PORT: ""# UFM REST API port. Defaults: 443(https), 80(http)
121
+
string:
122
+
UFM_CERTIFICATE: ""# UFM Certificate in base64 format. (if not provided client will not verify server's certificate chain and host name)
123
+
```
124
+
125
+
#### UFM CERTIFICATE
126
+
127
+
UFM utilizes certificates to authenticate requests, during deployment you should provide UFM with a valid certificate
128
+
in your organization or create a self signed one.
129
+
130
+
##### Self Signed Certificates
131
+
132
+
Optional step if don't have a valid certificate for UFM.
0 commit comments