2019-01-09 16:54:15 +00:00
package cmds
import (
2020-08-19 23:54:58 +00:00
"context"
2021-07-16 02:28:47 +00:00
"sync"
2021-10-15 17:24:14 +00:00
"time"
2020-08-19 23:54:58 +00:00
2022-03-02 23:47:27 +00:00
"github.com/k3s-io/k3s/pkg/version"
2020-08-29 19:46:55 +00:00
"github.com/urfave/cli"
2019-01-09 16:54:15 +00:00
)
2020-04-27 16:45:51 +00:00
const (
Galal hussein etcd backup restore (#2154)
* Add etcd snapshot and restore
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* fix error logs
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* goimports
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* fix flag describtion
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* Add disable snapshot and retention
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* use creation time for snapshot retention
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* unexport method, update var name
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* adjust snapshot flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var name, string concat
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* revert previous change, create constants
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* type assertion error checking
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* simplify logic, remove unneeded function
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add comment
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update disable snapshots flag and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* move function
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update defaultSnapshotIntervalMinutes to 12 like rke
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update directory perms
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update etc-snapshot-dir usage
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update interval to 12 hours
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* fix usage typo
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update deps target to work, add build/data target for creation, and generate
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* remove dead make targets
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* error handling, cluster reset functionality
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* error handling, cluster reset functionality
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* remove intermediate dapper file
Signed-off-by: Brian Downs <brian.downs@gmail.com>
Co-authored-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
2020-08-28 23:57:40 +00:00
defaultSnapshotRentention = 5
defaultSnapshotIntervalHours = 12
2020-04-27 16:45:51 +00:00
)
2021-07-20 03:24:52 +00:00
type StartupHookArgs struct {
APIServerReady <- chan struct { }
KubeConfigAdmin string
Skips map [ string ] bool
Disables map [ string ] bool
}
2021-07-20 21:25:00 +00:00
type StartupHook func ( context . Context , * sync . WaitGroup , StartupHookArgs ) error
2021-07-20 03:24:52 +00:00
2019-01-09 16:54:15 +00:00
type Server struct {
2021-04-21 22:56:20 +00:00
ClusterCIDR cli . StringSlice
2021-02-01 19:11:17 +00:00
AgentToken string
AgentTokenFile string
Token string
TokenFile string
ClusterSecret string
2021-04-21 22:56:20 +00:00
ServiceCIDR cli . StringSlice
2021-02-01 19:11:17 +00:00
ServiceNodePortRange string
2021-04-21 22:56:20 +00:00
ClusterDNS cli . StringSlice
2021-02-01 19:11:17 +00:00
ClusterDomain string
2020-04-28 22:00:30 +00:00
// The port which kubectl clients can access k8s
HTTPSPort int
// The port which custom k3s API runs on
SupervisorPort int
// The port which kube-apiserver runs on
APIServerPort int
APIServerBindAddress string
2019-10-15 21:17:26 +00:00
DataDir string
DisableAgent bool
KubeConfigOutput string
KubeConfigMode string
2020-08-29 19:46:55 +00:00
TLSSan cli . StringSlice
2019-10-15 21:17:26 +00:00
BindAddress string
2022-06-14 05:06:55 +00:00
EnablePProf bool
2020-08-29 19:46:55 +00:00
ExtraAPIArgs cli . StringSlice
2021-11-12 05:03:15 +00:00
ExtraEtcdArgs cli . StringSlice
2020-08-29 19:46:55 +00:00
ExtraSchedulerArgs cli . StringSlice
ExtraControllerArgs cli . StringSlice
ExtraCloudControllerArgs cli . StringSlice
2019-10-15 21:17:26 +00:00
Rootless bool
2019-11-16 00:12:27 +00:00
DatastoreEndpoint string
DatastoreCAFile string
DatastoreCertFile string
DatastoreKeyFile string
2019-10-15 21:17:26 +00:00
AdvertiseIP string
AdvertisePort int
DisableScheduler bool
2019-10-27 05:53:25 +00:00
ServerURL string
2019-10-15 21:17:26 +00:00
FlannelBackend string
2022-01-14 15:54:55 +00:00
FlannelIPv6Masq bool
2022-05-17 19:25:43 +00:00
EgressSelectorMode string
2019-10-15 21:17:26 +00:00
DefaultLocalStoragePath string
DisableCCM bool
2019-10-17 21:46:15 +00:00
DisableNPC bool
2021-06-25 18:54:36 +00:00
DisableHelmController bool
2020-04-27 16:31:25 +00:00
DisableKubeProxy bool
2021-02-12 15:35:57 +00:00
DisableAPIServer bool
DisableControllerManager bool
DisableETCD bool
2019-10-27 05:53:25 +00:00
ClusterInit bool
ClusterReset bool
Galal hussein etcd backup restore (#2154)
* Add etcd snapshot and restore
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* fix error logs
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* goimports
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* fix flag describtion
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* Add disable snapshot and retention
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* use creation time for snapshot retention
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* unexport method, update var name
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* adjust snapshot flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var name, string concat
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* revert previous change, create constants
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* type assertion error checking
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* simplify logic, remove unneeded function
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add comment
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update disable snapshots flag and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* move function
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update defaultSnapshotIntervalMinutes to 12 like rke
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update directory perms
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update etc-snapshot-dir usage
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update interval to 12 hours
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* fix usage typo
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update deps target to work, add build/data target for creation, and generate
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* remove dead make targets
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* error handling, cluster reset functionality
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* error handling, cluster reset functionality
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* remove intermediate dapper file
Signed-off-by: Brian Downs <brian.downs@gmail.com>
Co-authored-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
2020-08-28 23:57:40 +00:00
ClusterResetRestorePath string
2019-12-12 22:41:10 +00:00
EncryptSecrets bool
2021-12-07 22:31:32 +00:00
EncryptForce bool
2022-02-28 17:14:32 +00:00
EncryptOutput string
2021-12-07 22:31:32 +00:00
EncryptSkip bool
2021-05-10 22:58:41 +00:00
SystemDefaultRegistry string
2021-07-20 03:24:52 +00:00
StartupHooks [ ] StartupHook
2021-01-21 21:09:15 +00:00
EtcdSnapshotName string
Galal hussein etcd backup restore (#2154)
* Add etcd snapshot and restore
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* fix error logs
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* goimports
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* fix flag describtion
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* Add disable snapshot and retention
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* use creation time for snapshot retention
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* unexport method, update var name
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* adjust snapshot flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var name, string concat
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* revert previous change, create constants
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* type assertion error checking
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* simplify logic, remove unneeded function
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add comment
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update disable snapshots flag and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* move function
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update defaultSnapshotIntervalMinutes to 12 like rke
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update directory perms
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update etc-snapshot-dir usage
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update interval to 12 hours
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* fix usage typo
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update deps target to work, add build/data target for creation, and generate
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* remove dead make targets
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* error handling, cluster reset functionality
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* error handling, cluster reset functionality
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* remove intermediate dapper file
Signed-off-by: Brian Downs <brian.downs@gmail.com>
Co-authored-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
2020-08-28 23:57:40 +00:00
EtcdDisableSnapshots bool
2021-01-23 01:40:48 +00:00
EtcdExposeMetrics bool
Galal hussein etcd backup restore (#2154)
* Add etcd snapshot and restore
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* fix error logs
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* goimports
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* fix flag describtion
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* Add disable snapshot and retention
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* use creation time for snapshot retention
Signed-off-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
* unexport method, update var name
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* adjust snapshot flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var name, string concat
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* revert previous change, create constants
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* type assertion error checking
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* pr remediation
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* updates
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* simplify logic, remove unneeded function
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update flags
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add comment
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* exit on restore completion, update flag names, move retention check
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update disable snapshots flag and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* move function
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update var and field names
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update defaultSnapshotIntervalMinutes to 12 like rke
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update directory perms
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update etc-snapshot-dir usage
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update interval to 12 hours
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* fix usage typo
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* add cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* wire in cron
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update deps target to work, add build/data target for creation, and generate
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* remove dead make targets
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* error handling, cluster reset functionality
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* error handling, cluster reset functionality
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* update
Signed-off-by: Brian Downs <brian.downs@gmail.com>
* remove intermediate dapper file
Signed-off-by: Brian Downs <brian.downs@gmail.com>
Co-authored-by: galal-hussein <hussein.galal.ahmed.11@gmail.com>
2020-08-28 23:57:40 +00:00
EtcdSnapshotDir string
EtcdSnapshotCron string
EtcdSnapshotRetention int
2022-01-14 17:31:22 +00:00
EtcdSnapshotCompress bool
2022-02-25 21:00:00 +00:00
EtcdListFormat string
2021-03-03 18:14:12 +00:00
EtcdS3 bool
EtcdS3Endpoint string
EtcdS3EndpointCA string
EtcdS3SkipSSLVerify bool
EtcdS3AccessKey string
EtcdS3SecretKey string
EtcdS3BucketName string
EtcdS3Region string
EtcdS3Folder string
2021-10-15 17:24:14 +00:00
EtcdS3Timeout time . Duration
2021-09-05 15:56:15 +00:00
EtcdS3Insecure bool
2022-06-09 16:29:51 +00:00
ServiceLBNamespace string
2019-01-09 16:54:15 +00:00
}
2021-06-30 20:29:03 +00:00
var (
ServerConfig Server
2021-12-07 22:31:32 +00:00
DataDirFlag = cli . StringFlag {
Name : "data-dir,d" ,
Usage : "(data) Folder to hold state default /var/lib/rancher/" + version . Program + " or ${HOME}/.rancher/" + version . Program + " if not root" ,
Destination : & ServerConfig . DataDir ,
}
ServerToken = cli . StringFlag {
Name : "token,t" ,
Usage : "(cluster) Shared secret used to join a server or agent to a cluster" ,
Destination : & ServerConfig . Token ,
EnvVar : version . ProgramUpper + "_TOKEN" ,
}
ClusterCIDR = cli . StringSliceFlag {
2021-06-30 20:29:03 +00:00
Name : "cluster-cidr" ,
Usage : "(networking) IPv4/IPv6 network CIDRs to use for pod IPs (default: 10.42.0.0/16)" ,
Value : & ServerConfig . ClusterCIDR ,
}
ServiceCIDR = cli . StringSliceFlag {
Name : "service-cidr" ,
Usage : "(networking) IPv4/IPv6 network CIDRs to use for service IPs (default: 10.43.0.0/16)" ,
Value : & ServerConfig . ServiceCIDR ,
}
ServiceNodePortRange = cli . StringFlag {
Name : "service-node-port-range" ,
Usage : "(networking) Port range to reserve for services with NodePort visibility" ,
Destination : & ServerConfig . ServiceNodePortRange ,
Value : "30000-32767" ,
}
ClusterDNS = cli . StringSliceFlag {
Name : "cluster-dns" ,
Usage : "(networking) IPv4 Cluster IP for coredns service. Should be in your service-cidr range (default: 10.43.0.10)" ,
Value : & ServerConfig . ClusterDNS ,
}
ClusterDomain = cli . StringFlag {
Name : "cluster-domain" ,
Usage : "(networking) Cluster Domain" ,
Destination : & ServerConfig . ClusterDomain ,
Value : "cluster.local" ,
}
ExtraAPIArgs = cli . StringSliceFlag {
Name : "kube-apiserver-arg" ,
Usage : "(flags) Customized flag for kube-apiserver process" ,
Value : & ServerConfig . ExtraAPIArgs ,
}
2021-11-12 05:03:15 +00:00
ExtraEtcdArgs = cli . StringSliceFlag {
Name : "etcd-arg" ,
Usage : "(flags) Customized flag for etcd process" ,
Value : & ServerConfig . ExtraEtcdArgs ,
}
2021-06-30 20:29:03 +00:00
ExtraSchedulerArgs = cli . StringSliceFlag {
Name : "kube-scheduler-arg" ,
Usage : "(flags) Customized flag for kube-scheduler process" ,
Value : & ServerConfig . ExtraSchedulerArgs ,
}
ExtraControllerArgs = cli . StringSliceFlag {
Name : "kube-controller-manager-arg" ,
Usage : "(flags) Customized flag for kube-controller-manager process" ,
Value : & ServerConfig . ExtraControllerArgs ,
}
)
2019-01-09 16:54:15 +00:00
2021-11-12 00:01:23 +00:00
var ServerFlags = [ ] cli . Flag {
ConfigFlag ,
DebugFlag ,
VLevel ,
VModule ,
LogFile ,
AlsoLogToStderr ,
cli . StringFlag {
Name : "bind-address" ,
Usage : "(listener) " + version . Program + " bind address (default: 0.0.0.0)" ,
Destination : & ServerConfig . BindAddress ,
} ,
cli . IntFlag {
Name : "https-listen-port" ,
Usage : "(listener) HTTPS listen port" ,
Value : 6443 ,
Destination : & ServerConfig . HTTPSPort ,
} ,
cli . StringFlag {
Name : "advertise-address" ,
Usage : "(listener) IPv4 address that apiserver uses to advertise to members of the cluster (default: node-external-ip/node-ip)" ,
Destination : & ServerConfig . AdvertiseIP ,
} ,
cli . IntFlag {
Name : "advertise-port" ,
Usage : "(listener) Port that apiserver uses to advertise to members of the cluster (default: listen-port)" ,
Destination : & ServerConfig . AdvertisePort ,
} ,
cli . StringSliceFlag {
Name : "tls-san" ,
Usage : "(listener) Add additional hostnames or IPv4/IPv6 addresses as Subject Alternative Names on the server TLS cert" ,
Value : & ServerConfig . TLSSan ,
} ,
2021-12-07 22:31:32 +00:00
DataDirFlag ,
2021-11-12 00:01:23 +00:00
ClusterCIDR ,
ServiceCIDR ,
ServiceNodePortRange ,
ClusterDNS ,
ClusterDomain ,
cli . StringFlag {
Name : "flannel-backend" ,
2022-05-11 20:11:00 +00:00
Usage : "(networking) backend<=option1=val1,option2=val2> where backend is one of 'none', 'vxlan', 'ipsec', 'host-gw', 'wireguard-native', or 'wireguard' (deprecated)" ,
2021-11-12 00:01:23 +00:00
Destination : & ServerConfig . FlannelBackend ,
Value : "vxlan" ,
} ,
2022-01-14 15:54:55 +00:00
cli . BoolFlag {
Name : "flannel-ipv6-masq" ,
Usage : "(networking) Enable IPv6 masquerading for pod" ,
Destination : & ServerConfig . FlannelIPv6Masq ,
} ,
2022-05-17 19:25:43 +00:00
cli . StringFlag {
Name : "egress-selector-mode" ,
Usage : "(networking) One of 'agent', cluster', 'pod', 'disabled'" ,
Destination : & ServerConfig . EgressSelectorMode ,
2022-06-10 01:20:50 +00:00
Value : "agent" ,
2022-05-17 19:25:43 +00:00
} ,
2022-06-09 16:29:51 +00:00
cli . StringFlag {
Name : "servicelb-namespace" ,
Usage : "(networking) Namespace of the pods for the servicelb component" ,
Destination : & ServerConfig . ServiceLBNamespace ,
Value : "kube-system" ,
} ,
2021-12-07 22:31:32 +00:00
ServerToken ,
2021-11-12 00:01:23 +00:00
cli . StringFlag {
Name : "token-file" ,
Usage : "(cluster) File containing the cluster-secret/token" ,
Destination : & ServerConfig . TokenFile ,
EnvVar : version . ProgramUpper + "_TOKEN_FILE" ,
} ,
cli . StringFlag {
Name : "write-kubeconfig,o" ,
Usage : "(client) Write kubeconfig for admin client to this file" ,
Destination : & ServerConfig . KubeConfigOutput ,
EnvVar : version . ProgramUpper + "_KUBECONFIG_OUTPUT" ,
} ,
cli . StringFlag {
Name : "write-kubeconfig-mode" ,
Usage : "(client) Write kubeconfig with this mode" ,
Destination : & ServerConfig . KubeConfigMode ,
EnvVar : version . ProgramUpper + "_KUBECONFIG_MODE" ,
} ,
2022-06-14 05:06:55 +00:00
cli . BoolFlag {
Name : "enable-pprof" ,
Usage : "(experimental) Enable pprof endpoint on supervisor port" ,
Destination : & ServerConfig . EnablePProf ,
} ,
2021-11-12 00:01:23 +00:00
ExtraAPIArgs ,
2021-11-12 05:03:15 +00:00
ExtraEtcdArgs ,
2021-11-12 00:01:23 +00:00
ExtraControllerArgs ,
ExtraSchedulerArgs ,
cli . StringSliceFlag {
Name : "kube-cloud-controller-manager-arg" ,
Usage : "(flags) Customized flag for kube-cloud-controller-manager process" ,
Value : & ServerConfig . ExtraCloudControllerArgs ,
} ,
cli . StringFlag {
Name : "datastore-endpoint" ,
Usage : "(db) Specify etcd, Mysql, Postgres, or Sqlite (default) data source name" ,
Destination : & ServerConfig . DatastoreEndpoint ,
EnvVar : version . ProgramUpper + "_DATASTORE_ENDPOINT" ,
} ,
cli . StringFlag {
Name : "datastore-cafile" ,
Usage : "(db) TLS Certificate Authority file used to secure datastore backend communication" ,
Destination : & ServerConfig . DatastoreCAFile ,
EnvVar : version . ProgramUpper + "_DATASTORE_CAFILE" ,
} ,
cli . StringFlag {
Name : "datastore-certfile" ,
Usage : "(db) TLS certification file used to secure datastore backend communication" ,
Destination : & ServerConfig . DatastoreCertFile ,
EnvVar : version . ProgramUpper + "_DATASTORE_CERTFILE" ,
} ,
cli . StringFlag {
Name : "datastore-keyfile" ,
Usage : "(db) TLS key file used to secure datastore backend communication" ,
Destination : & ServerConfig . DatastoreKeyFile ,
EnvVar : version . ProgramUpper + "_DATASTORE_KEYFILE" ,
} ,
& cli . BoolFlag {
Name : "etcd-expose-metrics" ,
Usage : "(db) Expose etcd metrics to client interface. (Default false)" ,
Destination : & ServerConfig . EtcdExposeMetrics ,
} ,
& cli . BoolFlag {
Name : "etcd-disable-snapshots" ,
Usage : "(db) Disable automatic etcd snapshots" ,
Destination : & ServerConfig . EtcdDisableSnapshots ,
} ,
& cli . StringFlag {
Name : "etcd-snapshot-name" ,
Usage : "(db) Set the base name of etcd snapshots. Default: etcd-snapshot-<unix-timestamp>" ,
Destination : & ServerConfig . EtcdSnapshotName ,
Value : "etcd-snapshot" ,
} ,
& cli . StringFlag {
Name : "etcd-snapshot-schedule-cron" ,
Usage : "(db) Snapshot interval time in cron spec. eg. every 5 hours '* */5 * * *'" ,
Destination : & ServerConfig . EtcdSnapshotCron ,
Value : "0 */12 * * *" ,
} ,
& cli . IntFlag {
Name : "etcd-snapshot-retention" ,
Usage : "(db) Number of snapshots to retain" ,
Destination : & ServerConfig . EtcdSnapshotRetention ,
Value : defaultSnapshotRentention ,
} ,
& cli . StringFlag {
Name : "etcd-snapshot-dir" ,
Usage : "(db) Directory to save db snapshots. (Default location: ${data-dir}/db/snapshots)" ,
Destination : & ServerConfig . EtcdSnapshotDir ,
} ,
2022-01-14 17:31:22 +00:00
& cli . BoolFlag {
Name : "etcd-snapshot-compress" ,
Usage : "(db) Compress etcd snapshot" ,
Destination : & ServerConfig . EtcdSnapshotCompress ,
} ,
2021-11-12 00:01:23 +00:00
& cli . BoolFlag {
Name : "etcd-s3" ,
Usage : "(db) Enable backup to S3" ,
Destination : & ServerConfig . EtcdS3 ,
} ,
& cli . StringFlag {
Name : "etcd-s3-endpoint" ,
Usage : "(db) S3 endpoint url" ,
Destination : & ServerConfig . EtcdS3Endpoint ,
Value : "s3.amazonaws.com" ,
} ,
& cli . StringFlag {
Name : "etcd-s3-endpoint-ca" ,
Usage : "(db) S3 custom CA cert to connect to S3 endpoint" ,
Destination : & ServerConfig . EtcdS3EndpointCA ,
} ,
& cli . BoolFlag {
Name : "etcd-s3-skip-ssl-verify" ,
Usage : "(db) Disables S3 SSL certificate validation" ,
Destination : & ServerConfig . EtcdS3SkipSSLVerify ,
} ,
& cli . StringFlag {
Name : "etcd-s3-access-key" ,
Usage : "(db) S3 access key" ,
EnvVar : "AWS_ACCESS_KEY_ID" ,
Destination : & ServerConfig . EtcdS3AccessKey ,
} ,
& cli . StringFlag {
Name : "etcd-s3-secret-key" ,
Usage : "(db) S3 secret key" ,
EnvVar : "AWS_SECRET_ACCESS_KEY" ,
Destination : & ServerConfig . EtcdS3SecretKey ,
} ,
& cli . StringFlag {
Name : "etcd-s3-bucket" ,
Usage : "(db) S3 bucket name" ,
Destination : & ServerConfig . EtcdS3BucketName ,
} ,
& cli . StringFlag {
Name : "etcd-s3-region" ,
Usage : "(db) S3 region / bucket location (optional)" ,
Destination : & ServerConfig . EtcdS3Region ,
Value : "us-east-1" ,
} ,
& cli . StringFlag {
Name : "etcd-s3-folder" ,
Usage : "(db) S3 folder" ,
Destination : & ServerConfig . EtcdS3Folder ,
} ,
& cli . BoolFlag {
Name : "etcd-s3-insecure" ,
Usage : "(db) Disables S3 over HTTPS" ,
Destination : & ServerConfig . EtcdS3Insecure ,
} ,
& cli . DurationFlag {
Name : "etcd-s3-timeout" ,
Usage : "(db) S3 timeout" ,
Destination : & ServerConfig . EtcdS3Timeout ,
Value : 30 * time . Second ,
} ,
cli . StringFlag {
Name : "default-local-storage-path" ,
Usage : "(storage) Default local storage path for local provisioner storage class" ,
Destination : & ServerConfig . DefaultLocalStoragePath ,
} ,
cli . StringSliceFlag {
Name : "disable" ,
Usage : "(components) Do not deploy packaged components and delete any deployed components (valid items: " + DisableItems + ")" ,
} ,
cli . BoolFlag {
Name : "disable-scheduler" ,
Usage : "(components) Disable Kubernetes default scheduler" ,
Destination : & ServerConfig . DisableScheduler ,
} ,
cli . BoolFlag {
Name : "disable-cloud-controller" ,
Usage : "(components) Disable " + version . Program + " default cloud controller manager" ,
Destination : & ServerConfig . DisableCCM ,
} ,
cli . BoolFlag {
Name : "disable-kube-proxy" ,
Usage : "(components) Disable running kube-proxy" ,
Destination : & ServerConfig . DisableKubeProxy ,
} ,
cli . BoolFlag {
Name : "disable-network-policy" ,
Usage : "(components) Disable " + version . Program + " default network policy controller" ,
Destination : & ServerConfig . DisableNPC ,
} ,
cli . BoolFlag {
Name : "disable-helm-controller" ,
Usage : "(components) Disable Helm controller" ,
Destination : & ServerConfig . DisableHelmController ,
} ,
cli . BoolFlag {
Name : "disable-apiserver" ,
Hidden : true ,
Usage : "(experimental/components) Disable running api server" ,
Destination : & ServerConfig . DisableAPIServer ,
} ,
cli . BoolFlag {
Name : "disable-controller-manager" ,
Hidden : true ,
Usage : "(experimental/components) Disable running kube-controller-manager" ,
Destination : & ServerConfig . DisableControllerManager ,
} ,
cli . BoolFlag {
Name : "disable-etcd" ,
Hidden : true ,
Usage : "(experimental/components) Disable running etcd" ,
Destination : & ServerConfig . DisableETCD ,
} ,
NodeNameFlag ,
WithNodeIDFlag ,
NodeLabels ,
NodeTaints ,
ImageCredProvBinDirFlag ,
ImageCredProvConfigFlag ,
DockerFlag ,
CRIEndpointFlag ,
PauseImageFlag ,
SnapshotterFlag ,
PrivateRegistryFlag ,
AirgapExtraRegistryFlag ,
NodeIPFlag ,
NodeExternalIPFlag ,
ResolvConfFlag ,
FlannelIfaceFlag ,
FlannelConfFlag ,
2022-06-08 08:38:07 +00:00
FlannelCniConfFileFlag ,
2021-11-12 00:01:23 +00:00
ExtraKubeletArgs ,
ExtraKubeProxyArgs ,
ProtectKernelDefaultsFlag ,
cli . BoolFlag {
Name : "rootless" ,
Usage : "(experimental) Run rootless" ,
Destination : & ServerConfig . Rootless ,
} ,
cli . StringFlag {
Name : "agent-token" ,
Usage : "(cluster) Shared secret used to join agents to the cluster, but not servers" ,
Destination : & ServerConfig . AgentToken ,
EnvVar : version . ProgramUpper + "_AGENT_TOKEN" ,
} ,
cli . StringFlag {
Name : "agent-token-file" ,
Usage : "(cluster) File containing the agent secret" ,
Destination : & ServerConfig . AgentTokenFile ,
EnvVar : version . ProgramUpper + "_AGENT_TOKEN_FILE" ,
} ,
cli . StringFlag {
Name : "server,s" ,
Usage : "(cluster) Server to connect to, used to join a cluster" ,
EnvVar : version . ProgramUpper + "_URL" ,
Destination : & ServerConfig . ServerURL ,
} ,
cli . BoolFlag {
Name : "cluster-init" ,
Usage : "(cluster) Initialize a new cluster using embedded Etcd" ,
EnvVar : version . ProgramUpper + "_CLUSTER_INIT" ,
Destination : & ServerConfig . ClusterInit ,
} ,
cli . BoolFlag {
Name : "cluster-reset" ,
Usage : "(cluster) Forget all peers and become sole member of a new cluster" ,
EnvVar : version . ProgramUpper + "_CLUSTER_RESET" ,
Destination : & ServerConfig . ClusterReset ,
} ,
& cli . StringFlag {
Name : "cluster-reset-restore-path" ,
Usage : "(db) Path to snapshot file to be restored" ,
Destination : & ServerConfig . ClusterResetRestorePath ,
} ,
cli . BoolFlag {
Name : "secrets-encryption" ,
Usage : "(experimental) Enable Secret encryption at rest" ,
Destination : & ServerConfig . EncryptSecrets ,
} ,
cli . StringFlag {
Name : "system-default-registry" ,
Usage : "(image) Private registry to be used for all system images" ,
EnvVar : version . ProgramUpper + "_SYSTEM_DEFAULT_REGISTRY" ,
Destination : & ServerConfig . SystemDefaultRegistry ,
} ,
& SELinuxFlag ,
LBServerPortFlag ,
// Hidden/Deprecated flags below
& DisableSELinuxFlag ,
FlannelFlag ,
cli . StringSliceFlag {
Name : "no-deploy" ,
Usage : "(deprecated) Do not deploy packaged components (valid items: " + DisableItems + ")" ,
} ,
cli . StringFlag {
Name : "cluster-secret" ,
Usage : "(deprecated) use --token" ,
Destination : & ServerConfig . ClusterSecret ,
EnvVar : version . ProgramUpper + "_CLUSTER_SECRET" ,
} ,
cli . BoolFlag {
Name : "disable-agent" ,
Usage : "Do not run a local agent and register a local kubelet" ,
Hidden : true ,
Destination : & ServerConfig . DisableAgent ,
} ,
cli . StringSliceFlag {
Hidden : true ,
Name : "kube-controller-arg" ,
Usage : "(flags) Customized flag for kube-controller-manager process" ,
Value : & ServerConfig . ExtraControllerArgs ,
} ,
cli . StringSliceFlag {
Hidden : true ,
Name : "kube-cloud-controller-arg" ,
Usage : "(flags) Customized flag for kube-cloud-controller-manager process" ,
Value : & ServerConfig . ExtraCloudControllerArgs ,
} ,
}
2020-08-29 19:46:55 +00:00
func NewServerCommand ( action func ( * cli . Context ) error ) cli . Command {
return cli . Command {
2019-01-09 16:54:15 +00:00
Name : "server" ,
Usage : "Run management server" ,
UsageText : appName + " server [OPTIONS]" ,
2022-01-12 22:00:40 +00:00
Before : CheckSELinuxFlags ,
2020-08-29 19:46:55 +00:00
Action : action ,
2021-11-12 00:01:23 +00:00
Flags : ServerFlags ,
2019-01-09 16:54:15 +00:00
}
}