Skip to content

Commit 3254715

Browse files
committed
Add ganesha nfs server
Signed-off-by: Roman Mohr <[email protected]>
1 parent 6bfdf02 commit 3254715

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

cmd/run.go

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"io"
1414
"os"
1515
"os/signal"
16+
"path/filepath"
1617
"strconv"
1718
"sync"
1819
)
@@ -73,6 +74,11 @@ func run(cmd *cobra.Command, args []string) error {
7374
return err
7475
}
7576

77+
nfs_data, err := cmd.Flags().GetString("nfs-data")
78+
if err != nil {
79+
return err
80+
}
81+
7682
cluster := args[0]
7783

7884
background, err := cmd.Flags().GetBool("background")
@@ -160,7 +166,7 @@ func run(cmd *cobra.Command, args []string) error {
160166
}
161167
registryMounts = []mount.Mount{
162168
{
163-
Type: "volume",
169+
Type: mount.TypeVolume,
164170
Source: vol.Name,
165171
Target: "/var/lib/registry",
166172
},
@@ -182,6 +188,41 @@ func run(cmd *cobra.Command, args []string) error {
182188
return err
183189
}
184190

191+
if nfs_data != "" {
192+
nfs_data, err := filepath.Abs(nfs_data)
193+
if err != nil {
194+
return err
195+
}
196+
// Pull the ganesha image
197+
reader, err = cli.ImagePull(ctx, "docker.io/janeczku/nfs-ganesha", types.ImagePullOptions{})
198+
if err != nil {
199+
panic(err)
200+
}
201+
io.Copy(os.Stdout, reader)
202+
203+
// Start the ganesha image
204+
nfsServer, err := cli.ContainerCreate(ctx, &container.Config{
205+
Image: "janeczku/nfs-ganesha",
206+
}, &container.HostConfig{
207+
Mounts: []mount.Mount{
208+
{
209+
Type: mount.TypeBind,
210+
Source: nfs_data,
211+
Target: "/data/nfs",
212+
},
213+
},
214+
Privileged: true,
215+
NetworkMode: container.NetworkMode("container:" + dnsmasq.ID),
216+
}, nil, prefix+"-nfs-ganesha")
217+
if err != nil {
218+
return err
219+
}
220+
createdContainers = append(createdContainers, nfsServer.ID)
221+
if err := cli.ContainerStart(ctx, nfsServer.ID, types.ContainerStartOptions{}); err != nil {
222+
return err
223+
}
224+
}
225+
185226
wg := sync.WaitGroup{}
186227
wg.Add(int(nodes))
187228
// start one vm after each other

0 commit comments

Comments
 (0)