Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Chu Peng 楚鹏
minikube
提交
8a268815
M
minikube
项目概览
Chu Peng 楚鹏
/
minikube
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
minikube
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
8a268815
编写于
9月 01, 2020
作者:
T
Thomas Strömberg
提交者:
GitHub
9月 01, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #8159 from Asarew/docker-host-volumes
Support for mounting host volumes on start with docker driver
上级
3fbbb557
a31e359b
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
75 addition
and
2 deletion
+75
-2
cmd/minikube/cmd/start_flags.go
cmd/minikube/cmd/start_flags.go
+3
-1
pkg/drivers/kic/kic.go
pkg/drivers/kic/kic.go
+1
-0
pkg/drivers/kic/oci/types.go
pkg/drivers/kic/oci/types.go
+47
-0
pkg/minikube/config/types.go
pkg/minikube/config/types.go
+1
-0
pkg/minikube/node/start.go
pkg/minikube/node/start.go
+3
-1
pkg/minikube/registry/drvs/docker/docker.go
pkg/minikube/registry/drvs/docker/docker.go
+10
-0
pkg/minikube/registry/drvs/podman/podman.go
pkg/minikube/registry/drvs/podman/podman.go
+10
-0
未找到文件。
cmd/minikube/cmd/start_flags.go
浏览文件 @
8a268815
...
...
@@ -331,7 +331,9 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
},
}
cc
.
VerifyComponents
=
interpretWaitFlag
(
*
cmd
)
if
viper
.
GetBool
(
createMount
)
&&
driver
.
IsKIC
(
drvName
)
{
cc
.
ContainerVolumeMounts
=
[]
string
{
viper
.
GetString
(
mountString
)}
}
cnm
,
err
:=
cni
.
New
(
cc
)
if
err
!=
nil
{
return
cc
,
config
.
Node
{},
errors
.
Wrap
(
err
,
"cni"
)
...
...
pkg/drivers/kic/kic.go
浏览文件 @
8a268815
...
...
@@ -68,6 +68,7 @@ func NewDriver(c Config) *Driver {
// Create a host using the driver's config
func
(
d
*
Driver
)
Create
()
error
{
params
:=
oci
.
CreateParams
{
Mounts
:
d
.
NodeConfig
.
Mounts
,
Name
:
d
.
NodeConfig
.
MachineName
,
Image
:
d
.
NodeConfig
.
ImageDigest
,
ClusterLabel
:
oci
.
ProfileLabelKey
+
"="
+
d
.
MachineName
,
...
...
pkg/drivers/kic/oci/types.go
浏览文件 @
8a268815
...
...
@@ -16,6 +16,13 @@ limitations under the License.
package
oci
import
(
"errors"
"fmt"
"path/filepath"
"strings"
)
const
(
// DefaultBindIPV4 is The default IP the container will listen on.
DefaultBindIPV4
=
"127.0.0.1"
...
...
@@ -102,6 +109,46 @@ type Mount struct {
Propagation
MountPropagation
`protobuf:"varint,5,opt,name=propagation,proto3,enum=runtime.v1alpha2.MountPropagation" json:"propagation,omitempty"`
}
// ParseMountString parses a mount string of format:
// '[host-path:]container-path[:<options>]' The comma-delimited 'options' are
// [rw|ro], [Z], [srhared|rslave|rprivate].
func
ParseMountString
(
spec
string
)
(
m
Mount
,
err
error
)
{
switch
fields
:=
strings
.
Split
(
spec
,
":"
);
len
(
fields
)
{
case
0
:
err
=
errors
.
New
(
"invalid empty spec"
)
case
1
:
m
.
ContainerPath
=
fields
[
0
]
case
3
:
for
_
,
opt
:=
range
strings
.
Split
(
fields
[
2
],
","
)
{
switch
opt
{
case
"Z"
:
m
.
SelinuxRelabel
=
true
case
"ro"
:
m
.
Readonly
=
true
case
"rw"
:
m
.
Readonly
=
false
case
"rslave"
:
m
.
Propagation
=
MountPropagationHostToContainer
case
"rshared"
:
m
.
Propagation
=
MountPropagationBidirectional
case
"private"
:
m
.
Propagation
=
MountPropagationNone
default
:
err
=
fmt
.
Errorf
(
"unknown mount option: '%s'"
,
opt
)
}
}
fallthrough
case
2
:
m
.
HostPath
,
m
.
ContainerPath
=
fields
[
0
],
fields
[
1
]
if
!
filepath
.
IsAbs
(
m
.
ContainerPath
)
{
err
=
fmt
.
Errorf
(
"'%s' container path must be absolute"
,
m
.
ContainerPath
)
}
default
:
err
=
errors
.
New
(
"spec must be in form: <host path>:<container path>[:<options>]"
)
}
return
m
,
err
}
// PortMapping specifies a host port mapped into a container port.
// In yaml this looks like:
// containerPort: 80
...
...
pkg/minikube/config/types.go
浏览文件 @
8a268815
...
...
@@ -45,6 +45,7 @@ type ClusterConfig struct {
HyperkitVpnKitSock
string
// Only used by the Hyperkit driver
HyperkitVSockPorts
[]
string
// Only used by the Hyperkit driver
DockerEnv
[]
string
// Each entry is formatted as KEY=VALUE.
ContainerVolumeMounts
[]
string
// Only used by container drivers: Docker, Podman
InsecureRegistry
[]
string
RegistryMirror
[]
string
HostOnlyCIDR
string
// Only used by the virtualbox driver
...
...
pkg/minikube/node/start.go
浏览文件 @
8a268815
...
...
@@ -136,7 +136,9 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) {
}
var
wg
sync
.
WaitGroup
go
configureMounts
(
&
wg
)
if
!
driver
.
IsKIC
(
starter
.
Cfg
.
Driver
)
{
go
configureMounts
(
&
wg
)
}
wg
.
Add
(
1
)
go
func
()
{
...
...
pkg/minikube/registry/drvs/docker/docker.go
浏览文件 @
8a268815
...
...
@@ -49,10 +49,20 @@ func init() {
}
func
configure
(
cc
config
.
ClusterConfig
,
n
config
.
Node
)
(
interface
{},
error
)
{
mounts
:=
make
([]
oci
.
Mount
,
len
(
cc
.
ContainerVolumeMounts
))
for
i
,
spec
:=
range
cc
.
ContainerVolumeMounts
{
var
err
error
mounts
[
i
],
err
=
oci
.
ParseMountString
(
spec
)
if
err
!=
nil
{
return
nil
,
err
}
}
return
kic
.
NewDriver
(
kic
.
Config
{
MachineName
:
driver
.
MachineName
(
cc
,
n
),
StorePath
:
localpath
.
MiniPath
(),
ImageDigest
:
cc
.
KicBaseImage
,
Mounts
:
mounts
,
CPU
:
cc
.
CPUs
,
Memory
:
cc
.
Memory
,
OCIBinary
:
oci
.
Docker
,
...
...
pkg/minikube/registry/drvs/podman/podman.go
浏览文件 @
8a268815
...
...
@@ -63,10 +63,20 @@ func init() {
}
func
configure
(
cc
config
.
ClusterConfig
,
n
config
.
Node
)
(
interface
{},
error
)
{
mounts
:=
make
([]
oci
.
Mount
,
len
(
cc
.
ContainerVolumeMounts
))
for
i
,
spec
:=
range
cc
.
ContainerVolumeMounts
{
var
err
error
mounts
[
i
],
err
=
oci
.
ParseMountString
(
spec
)
if
err
!=
nil
{
return
nil
,
err
}
}
return
kic
.
NewDriver
(
kic
.
Config
{
MachineName
:
driver
.
MachineName
(
cc
,
n
),
StorePath
:
localpath
.
MiniPath
(),
ImageDigest
:
strings
.
Split
(
cc
.
KicBaseImage
,
"@"
)[
0
],
// for podman does not support docker images references with both a tag and digest.
Mounts
:
mounts
,
CPU
:
cc
.
CPUs
,
Memory
:
cc
.
Memory
,
OCIBinary
:
oci
.
Podman
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录