Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
0bf8a51f
Unverified
Commit
0bf8a51f
authored
Oct 20, 2018
by
k8s-ci-robot
Committed by
GitHub
Oct 20, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #69666 from fabriziopandini/kubeadm-graduate-preflight
Kubeadm graduate preflight phase
parents
2b8af574
22da6a66
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
164 additions
and
59 deletions
+164
-59
init.go
cmd/kubeadm/app/cmd/init.go
+101
-14
BUILD
cmd/kubeadm/app/cmd/phases/BUILD
+2
-0
preflight.go
cmd/kubeadm/app/cmd/phases/preflight.go
+51
-43
.generated_docs
docs/.generated_docs
+4
-2
kubeadm_init_phase.md
docs/admin/kubeadm_init_phase.md
+0
-0
kubeadm_init_phase_preflight.md
docs/admin/kubeadm_init_phase_preflight.md
+0
-0
kubeadm-init-phase-preflight.1
docs/man/man1/kubeadm-init-phase-preflight.1
+3
-0
kubeadm-init-phase.1
docs/man/man1/kubeadm-init-phase.1
+3
-0
No files found.
cmd/kubeadm/app/cmd/init.go
View file @
0bf8a51f
...
@@ -37,6 +37,7 @@ import (
...
@@ -37,6 +37,7 @@ import (
kubeadmapiv1beta1
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
kubeadmapiv1beta1
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
cmdutil
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
cmdutil
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
kubeadmconstants
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
kubeadmconstants
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
...
@@ -126,6 +127,9 @@ type initData struct {
...
@@ -126,6 +127,9 @@ type initData struct {
skipTokenPrint
bool
skipTokenPrint
bool
dryRun
bool
dryRun
bool
ignorePreflightErrors
sets
.
String
ignorePreflightErrors
sets
.
String
certificatesDir
string
dryRunDir
string
client
clientset
.
Interface
}
}
// NewCmdInit returns "kubeadm init" command.
// NewCmdInit returns "kubeadm init" command.
...
@@ -160,7 +164,8 @@ func NewCmdInit(out io.Writer) *cobra.Command {
...
@@ -160,7 +164,8 @@ func NewCmdInit(out io.Writer) *cobra.Command {
options
.
bto
.
AddTTLFlag
(
cmd
.
PersistentFlags
())
options
.
bto
.
AddTTLFlag
(
cmd
.
PersistentFlags
())
// initialize the workflow runner with the list of phases
// initialize the workflow runner with the list of phases
// TODO: add the phases to the runner. e.g. initRunner.AppendPhase(phases.PreflightMaster)
initRunner
.
AppendPhase
(
phases
.
NewPreflightMasterPhase
())
// TODO: add other phases to the runner.
// sets the data builder function, that will be used by the runner
// sets the data builder function, that will be used by the runner
// both when running the entire workflow or single phases
// both when running the entire workflow or single phases
...
@@ -297,31 +302,113 @@ func newInitData(cmd *cobra.Command, options *initOptions) (initData, error) {
...
@@ -297,31 +302,113 @@ func newInitData(cmd *cobra.Command, options *initOptions) (initData, error) {
return
initData
{},
err
return
initData
{},
err
}
}
// if dry running creates a temporary folder for saving kubeadm generated files
dryRunDir
:=
""
if
options
.
dryRun
{
if
dryRunDir
,
err
=
ioutil
.
TempDir
(
""
,
"kubeadm-init-dryrun"
);
err
!=
nil
{
return
initData
{},
fmt
.
Errorf
(
"couldn't create a temporary directory: %v"
,
err
)
}
}
return
initData
{
return
initData
{
cfg
:
cfg
,
cfg
:
cfg
,
certificatesDir
:
cfg
.
CertificatesDir
,
skipTokenPrint
:
options
.
skipTokenPrint
,
skipTokenPrint
:
options
.
skipTokenPrint
,
dryRun
:
options
.
dryRun
,
dryRun
:
options
.
dryRun
,
dryRunDir
:
dryRunDir
,
ignorePreflightErrors
:
ignorePreflightErrorsSet
,
ignorePreflightErrors
:
ignorePreflightErrorsSet
,
},
nil
},
nil
}
}
// runInit executes master node provisioning
// Cfg returns initConfiguration.
func
runInit
(
i
*
initData
,
out
io
.
Writer
)
error
{
func
(
d
initData
)
Cfg
()
*
kubeadmapi
.
InitConfiguration
{
fmt
.
Println
(
"[preflight] running pre-flight checks"
)
return
d
.
cfg
if
err
:=
preflight
.
RunInitMasterChecks
(
utilsexec
.
New
(),
i
.
cfg
,
i
.
ignorePreflightErrors
);
err
!=
nil
{
}
return
err
// DryRun returns the DryRun flag.
func
(
d
initData
)
DryRun
()
bool
{
return
d
.
dryRun
}
// SkipTokenPrint returns the SkipTokenPrint flag.
func
(
d
initData
)
SkipTokenPrint
()
bool
{
return
d
.
skipTokenPrint
}
// IgnorePreflightErrors returns the IgnorePreflightErrors flag.
func
(
d
initData
)
IgnorePreflightErrors
()
sets
.
String
{
return
d
.
ignorePreflightErrors
}
// CertificateWriteDir returns the path to the certificate folder or the temporary folder path in case of DryRun.
func
(
d
initData
)
CertificateWriteDir
()
string
{
if
d
.
dryRun
{
return
d
.
dryRunDir
}
}
return
d
.
certificatesDir
}
if
!
i
.
dryRun
{
// CertificateDir returns the CertificateDir as originally specified by the user.
fmt
.
Println
(
"[preflight/images] Pulling images required for setting up a Kubernetes cluster"
)
func
(
d
initData
)
CertificateDir
()
string
{
fmt
.
Println
(
"[preflight/images] This might take a minute or two, depending on the speed of your internet connection"
)
return
d
.
certificatesDir
fmt
.
Println
(
"[preflight/images] You can also perform this action in beforehand using 'kubeadm config images pull'"
)
}
if
err
:=
preflight
.
RunPullImagesCheck
(
utilsexec
.
New
(),
i
.
cfg
,
i
.
ignorePreflightErrors
);
err
!=
nil
{
return
err
// KubeConfigDir returns the path of the kubernetes configuration folder or the temporary folder path in case of DryRun.
func
(
d
initData
)
KubeConfigDir
()
string
{
if
d
.
dryRun
{
return
d
.
dryRunDir
}
return
kubeadmconstants
.
KubernetesDir
}
// KubeConfigDir returns the path where manifest should be stored or the temporary folder path in case of DryRun.
func
(
d
initData
)
ManifestDir
()
string
{
if
d
.
dryRun
{
return
d
.
dryRunDir
}
return
kubeadmconstants
.
GetStaticPodDirectory
()
}
// KubeletDir returns path of the kubelet configuration folder or the temporary folder in case of DryRun.
func
(
d
initData
)
KubeletDir
()
string
{
if
d
.
dryRun
{
return
d
.
dryRunDir
}
return
kubeadmconstants
.
KubeletRunDirectory
}
// Client returns a Kubernetes client to be used by kubeadm.
// This function is implemented as a singleton, thus avoiding to recreate the client when it is used by different phases.
// Important. This function must be called after the admin.conf kubeconfig file is created.
func
(
d
initData
)
Client
()
(
clientset
.
Interface
,
error
)
{
if
d
.
client
==
nil
{
if
d
.
dryRun
{
// If we're dry-running; we should create a faked client that answers some GETs in order to be able to do the full init flow and just logs the rest of requests
dryRunGetter
:=
apiclient
.
NewInitDryRunGetter
(
d
.
cfg
.
NodeRegistration
.
Name
,
d
.
cfg
.
Networking
.
ServiceSubnet
)
d
.
client
=
apiclient
.
NewDryRunClient
(
dryRunGetter
,
os
.
Stdout
)
}
else
{
// If we're acting for real, we should create a connection to the API server and wait for it to come up
var
err
error
d
.
client
,
err
=
kubeconfigutil
.
ClientSetFromFile
(
kubeadmconstants
.
GetAdminKubeConfigPath
())
if
err
!=
nil
{
return
nil
,
err
}
}
}
}
else
{
fmt
.
Println
(
"[preflight/images] Would pull the required images (like 'kubeadm config images pull')"
)
}
}
return
d
.
client
,
nil
}
// Tokens returns an array of token strings.
func
(
d
initData
)
Tokens
()
[]
string
{
tokens
:=
[]
string
{}
for
_
,
bt
:=
range
d
.
cfg
.
BootstrapTokens
{
tokens
=
append
(
tokens
,
bt
.
Token
.
String
())
}
return
tokens
}
// runInit executes master node provisioning
func
runInit
(
i
*
initData
,
out
io
.
Writer
)
error
{
// Get directories to write files to; can be faked if we're dry-running
// Get directories to write files to; can be faked if we're dry-running
glog
.
V
(
1
)
.
Infof
(
"[init] Getting certificates directory from configuration"
)
glog
.
V
(
1
)
.
Infof
(
"[init] Getting certificates directory from configuration"
)
...
...
cmd/kubeadm/app/cmd/phases/BUILD
View file @
0bf8a51f
...
@@ -26,6 +26,7 @@ go_library(
...
@@ -26,6 +26,7 @@ go_library(
"//cmd/kubeadm/app/apis/kubeadm/validation:go_default_library",
"//cmd/kubeadm/app/apis/kubeadm/validation:go_default_library",
"//cmd/kubeadm/app/cmd/options:go_default_library",
"//cmd/kubeadm/app/cmd/options:go_default_library",
"//cmd/kubeadm/app/cmd/phases/certs:go_default_library",
"//cmd/kubeadm/app/cmd/phases/certs:go_default_library",
"//cmd/kubeadm/app/cmd/phases/workflow:go_default_library",
"//cmd/kubeadm/app/cmd/util:go_default_library",
"//cmd/kubeadm/app/cmd/util:go_default_library",
"//cmd/kubeadm/app/constants:go_default_library",
"//cmd/kubeadm/app/constants:go_default_library",
"//cmd/kubeadm/app/features:go_default_library",
"//cmd/kubeadm/app/features:go_default_library",
...
@@ -50,6 +51,7 @@ go_library(
...
@@ -50,6 +51,7 @@ go_library(
"//pkg/util/normalizer:go_default_library",
"//pkg/util/normalizer:go_default_library",
"//pkg/version:go_default_library",
"//pkg/version:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/version:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
...
...
cmd/kubeadm/app/cmd/phases/preflight.go
View file @
0bf8a51f
...
@@ -21,11 +21,13 @@ import (
...
@@ -21,11 +21,13 @@ import (
"fmt"
"fmt"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/util/sets"
kubeadmapi
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
kubeadmscheme
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
kubeadmscheme
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/scheme"
kubeadmapiv1beta1
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
kubeadmapiv1beta1
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
"k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/options"
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow"
cmdutil
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
cmdutil
"k8s.io/kubernetes/cmd/kubeadm/app/cmd/util"
"k8s.io/kubernetes/cmd/kubeadm/app/preflight"
"k8s.io/kubernetes/cmd/kubeadm/app/preflight"
kubeadmutil
"k8s.io/kubernetes/cmd/kubeadm/app/util"
kubeadmutil
"k8s.io/kubernetes/cmd/kubeadm/app/util"
...
@@ -35,13 +37,9 @@ import (
...
@@ -35,13 +37,9 @@ import (
)
)
var
(
var
(
masterPreflightLongDesc
=
normalizer
.
LongDesc
(
`
Run master pre-flight checks, functionally equivalent to what implemented by kubeadm init.
`
+
cmdutil
.
AlphaDisclaimer
)
masterPreflightExample
=
normalizer
.
Examples
(
`
masterPreflightExample
=
normalizer
.
Examples
(
`
# Run master pre-flight checks.
# Run master pre-flight checks
using a config file
.
kubeadm
alpha phase preflight master
kubeadm
init phase preflight --config kubeadm-config.yml
`
)
`
)
nodePreflightLongDesc
=
normalizer
.
LongDesc
(
`
nodePreflightLongDesc
=
normalizer
.
LongDesc
(
`
...
@@ -56,6 +54,52 @@ var (
...
@@ -56,6 +54,52 @@ var (
errorMissingConfigFlag
=
errors
.
New
(
"the --config flag is mandatory"
)
errorMissingConfigFlag
=
errors
.
New
(
"the --config flag is mandatory"
)
)
)
// preflightMasterData defines the behavior that a runtime data struct passed to the PreflightMaster master phase
// should have. Please note that we are using an interface in order to make this phase reusable in different workflows
// (and thus with different runtime data struct, all of them requested to be compliant to this interface)
type
preflightMasterData
interface
{
Cfg
()
*
kubeadmapi
.
InitConfiguration
DryRun
()
bool
IgnorePreflightErrors
()
sets
.
String
}
// NewPreflightMasterPhase creates a kubeadm workflow phase that implements preflight checks for a new master node.
func
NewPreflightMasterPhase
()
workflow
.
Phase
{
return
workflow
.
Phase
{
Name
:
"preflight"
,
Short
:
"Run master pre-flight checks"
,
Long
:
"Run master pre-flight checks, functionally equivalent to what implemented by kubeadm init."
,
Example
:
masterPreflightExample
,
Run
:
runPreflightMaster
,
}
}
// runPreflightMaster executes preflight checks logic.
func
runPreflightMaster
(
c
workflow
.
RunData
)
error
{
data
,
ok
:=
c
.
(
preflightMasterData
)
if
!
ok
{
return
fmt
.
Errorf
(
"preflight phase invoked with an invalid data struct"
)
}
fmt
.
Println
(
"[preflight] running pre-flight checks"
)
if
err
:=
preflight
.
RunInitMasterChecks
(
utilsexec
.
New
(),
data
.
Cfg
(),
data
.
IgnorePreflightErrors
());
err
!=
nil
{
return
nil
}
if
!
data
.
DryRun
()
{
fmt
.
Println
(
"[preflight] Pulling images required for setting up a Kubernetes cluster"
)
fmt
.
Println
(
"[preflight] This might take a minute or two, depending on the speed of your internet connection"
)
fmt
.
Println
(
"[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'"
)
if
err
:=
preflight
.
RunPullImagesCheck
(
utilsexec
.
New
(),
data
.
Cfg
(),
data
.
IgnorePreflightErrors
());
err
!=
nil
{
return
err
}
}
else
{
fmt
.
Println
(
"[preflight] Would pull the required images (like 'kubeadm config images pull')"
)
}
return
nil
}
// NewCmdPreFlight calls cobra.Command for preflight checks
// NewCmdPreFlight calls cobra.Command for preflight checks
func
NewCmdPreFlight
()
*
cobra
.
Command
{
func
NewCmdPreFlight
()
*
cobra
.
Command
{
var
cfgPath
string
var
cfgPath
string
...
@@ -70,47 +114,11 @@ func NewCmdPreFlight() *cobra.Command {
...
@@ -70,47 +114,11 @@ func NewCmdPreFlight() *cobra.Command {
options
.
AddConfigFlag
(
cmd
.
PersistentFlags
(),
&
cfgPath
)
options
.
AddConfigFlag
(
cmd
.
PersistentFlags
(),
&
cfgPath
)
options
.
AddIgnorePreflightErrorsFlag
(
cmd
.
PersistentFlags
(),
&
ignorePreflightErrors
)
options
.
AddIgnorePreflightErrorsFlag
(
cmd
.
PersistentFlags
(),
&
ignorePreflightErrors
)
cmd
.
AddCommand
(
NewCmdPreFlightMaster
(
&
cfgPath
,
&
ignorePreflightErrors
))
cmd
.
AddCommand
(
NewCmdPreFlightNode
(
&
cfgPath
,
&
ignorePreflightErrors
))
cmd
.
AddCommand
(
NewCmdPreFlightNode
(
&
cfgPath
,
&
ignorePreflightErrors
))
return
cmd
return
cmd
}
}
// NewCmdPreFlightMaster calls cobra.Command for master preflight checks
func
NewCmdPreFlightMaster
(
cfgPath
*
string
,
ignorePreflightErrors
*
[]
string
)
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"master"
,
Short
:
"Run master pre-flight checks"
,
Long
:
masterPreflightLongDesc
,
Example
:
masterPreflightExample
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
if
len
(
*
cfgPath
)
==
0
{
kubeadmutil
.
CheckErr
(
errorMissingConfigFlag
)
}
ignorePreflightErrorsSet
,
err
:=
validation
.
ValidateIgnorePreflightErrors
(
*
ignorePreflightErrors
)
kubeadmutil
.
CheckErr
(
err
)
cfg
:=
&
kubeadmapiv1beta1
.
InitConfiguration
{}
kubeadmscheme
.
Scheme
.
Default
(
cfg
)
internalcfg
,
err
:=
configutil
.
ConfigFileAndDefaultsToInternalConfig
(
*
cfgPath
,
cfg
)
kubeadmutil
.
CheckErr
(
err
)
err
=
configutil
.
VerifyAPIServerBindAddress
(
internalcfg
.
APIEndpoint
.
AdvertiseAddress
)
kubeadmutil
.
CheckErr
(
err
)
fmt
.
Println
(
"[preflight] running pre-flight checks"
)
err
=
preflight
.
RunInitMasterChecks
(
utilsexec
.
New
(),
internalcfg
,
ignorePreflightErrorsSet
)
kubeadmutil
.
CheckErr
(
err
)
fmt
.
Println
(
"[preflight] pre-flight checks passed"
)
},
}
return
cmd
}
// NewCmdPreFlightNode calls cobra.Command for node preflight checks
// NewCmdPreFlightNode calls cobra.Command for node preflight checks
func
NewCmdPreFlightNode
(
cfgPath
*
string
,
ignorePreflightErrors
*
[]
string
)
*
cobra
.
Command
{
func
NewCmdPreFlightNode
(
cfgPath
*
string
,
ignorePreflightErrors
*
[]
string
)
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
...
...
docs/.generated_docs
View file @
0bf8a51f
...
@@ -64,7 +64,6 @@ docs/admin/kubeadm_alpha_phase_kubelet_config_write-to-disk.md
...
@@ -64,7 +64,6 @@ docs/admin/kubeadm_alpha_phase_kubelet_config_write-to-disk.md
docs/admin/kubeadm_alpha_phase_kubelet_write-env-file.md
docs/admin/kubeadm_alpha_phase_kubelet_write-env-file.md
docs/admin/kubeadm_alpha_phase_mark-master.md
docs/admin/kubeadm_alpha_phase_mark-master.md
docs/admin/kubeadm_alpha_phase_preflight.md
docs/admin/kubeadm_alpha_phase_preflight.md
docs/admin/kubeadm_alpha_phase_preflight_master.md
docs/admin/kubeadm_alpha_phase_preflight_node.md
docs/admin/kubeadm_alpha_phase_preflight_node.md
docs/admin/kubeadm_alpha_phase_selfhosting.md
docs/admin/kubeadm_alpha_phase_selfhosting.md
docs/admin/kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md
docs/admin/kubeadm_alpha_phase_selfhosting_convert-from-staticpods.md
...
@@ -81,6 +80,8 @@ docs/admin/kubeadm_config_upload_from-file.md
...
@@ -81,6 +80,8 @@ docs/admin/kubeadm_config_upload_from-file.md
docs/admin/kubeadm_config_upload_from-flags.md
docs/admin/kubeadm_config_upload_from-flags.md
docs/admin/kubeadm_config_view.md
docs/admin/kubeadm_config_view.md
docs/admin/kubeadm_init.md
docs/admin/kubeadm_init.md
docs/admin/kubeadm_init_phase.md
docs/admin/kubeadm_init_phase_preflight.md
docs/admin/kubeadm_join.md
docs/admin/kubeadm_join.md
docs/admin/kubeadm_reset.md
docs/admin/kubeadm_reset.md
docs/admin/kubeadm_token.md
docs/admin/kubeadm_token.md
...
@@ -158,7 +159,6 @@ docs/man/man1/kubeadm-alpha-phase-kubelet-config.1
...
@@ -158,7 +159,6 @@ docs/man/man1/kubeadm-alpha-phase-kubelet-config.1
docs/man/man1/kubeadm-alpha-phase-kubelet-write-env-file.1
docs/man/man1/kubeadm-alpha-phase-kubelet-write-env-file.1
docs/man/man1/kubeadm-alpha-phase-kubelet.1
docs/man/man1/kubeadm-alpha-phase-kubelet.1
docs/man/man1/kubeadm-alpha-phase-mark-master.1
docs/man/man1/kubeadm-alpha-phase-mark-master.1
docs/man/man1/kubeadm-alpha-phase-preflight-master.1
docs/man/man1/kubeadm-alpha-phase-preflight-node.1
docs/man/man1/kubeadm-alpha-phase-preflight-node.1
docs/man/man1/kubeadm-alpha-phase-preflight.1
docs/man/man1/kubeadm-alpha-phase-preflight.1
docs/man/man1/kubeadm-alpha-phase-selfhosting-convert-from-staticpods.1
docs/man/man1/kubeadm-alpha-phase-selfhosting-convert-from-staticpods.1
...
@@ -177,6 +177,8 @@ docs/man/man1/kubeadm-config-upload-from-flags.1
...
@@ -177,6 +177,8 @@ docs/man/man1/kubeadm-config-upload-from-flags.1
docs/man/man1/kubeadm-config-upload.1
docs/man/man1/kubeadm-config-upload.1
docs/man/man1/kubeadm-config-view.1
docs/man/man1/kubeadm-config-view.1
docs/man/man1/kubeadm-config.1
docs/man/man1/kubeadm-config.1
docs/man/man1/kubeadm-init-phase-preflight.1
docs/man/man1/kubeadm-init-phase.1
docs/man/man1/kubeadm-init.1
docs/man/man1/kubeadm-init.1
docs/man/man1/kubeadm-join.1
docs/man/man1/kubeadm-join.1
docs/man/man1/kubeadm-reset.1
docs/man/man1/kubeadm-reset.1
...
...
docs/admin/kubeadm_
alpha_phase_preflight_master
.md
→
docs/admin/kubeadm_
init_phase
.md
View file @
0bf8a51f
File moved
docs/
man/man1/kubeadm-alpha-phase-preflight-master.1
→
docs/
admin/kubeadm_init_phase_preflight.md
View file @
0bf8a51f
File moved
docs/man/man1/kubeadm-init-phase-preflight.1
0 → 100644
View file @
0bf8a51f
This file is autogenerated, but we've stopped checking such files into the
repository to reduce the need for rebases. Please run hack/generate-docs.sh to
populate this file.
docs/man/man1/kubeadm-init-phase.1
0 → 100644
View file @
0bf8a51f
This file is autogenerated, but we've stopped checking such files into the
repository to reduce the need for rebases. Please run hack/generate-docs.sh to
populate this file.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment