adding startup hooks args to access to Disables and Skips (#3674)

Signed-off-by: Luther Monson <luther.monson@gmail.com>
This commit is contained in:
Luther Monson 2021-07-19 20:24:52 -07:00 committed by GitHub
parent bba49ea447
commit 18bc98f60c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 5 deletions

View File

@ -13,6 +13,16 @@ const (
defaultSnapshotIntervalHours = 12
)
type StartupHookArgs struct {
Wg *sync.WaitGroup
APIServerReady <-chan struct{}
KubeConfigAdmin string
Skips map[string]bool
Disables map[string]bool
}
type StartupHook func(context.Context, StartupHookArgs) error
type Server struct {
ClusterCIDR cli.StringSlice
AgentToken string
@ -64,7 +74,7 @@ type Server struct {
ClusterResetRestorePath string
EncryptSecrets bool
SystemDefaultRegistry string
StartupHooks []func(context.Context, *sync.WaitGroup, <-chan struct{}, string) error
StartupHooks []StartupHook
EtcdSnapshotName string
EtcdDisableSnapshots bool
EtcdExposeMetrics bool

View File

@ -13,11 +13,10 @@ import (
"sync"
"time"
corev1 "k8s.io/api/core/v1"
"github.com/k3s-io/helm-controller/pkg/helm"
"github.com/pkg/errors"
"github.com/rancher/k3s/pkg/apiaddresses"
"github.com/rancher/k3s/pkg/cli/cmds"
"github.com/rancher/k3s/pkg/clientaccess"
"github.com/rancher/k3s/pkg/daemons/config"
"github.com/rancher/k3s/pkg/daemons/control"
@ -34,6 +33,7 @@ import (
"github.com/rancher/wrangler/pkg/leader"
"github.com/rancher/wrangler/pkg/resolvehome"
"github.com/sirupsen/logrus"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/net"
)
@ -72,8 +72,15 @@ func StartServer(ctx context.Context, config *Config) error {
config.StartupHooksWg = &sync.WaitGroup{}
config.StartupHooksWg.Add(len(config.StartupHooks))
shArgs := cmds.StartupHookArgs{
Wg: config.StartupHooksWg,
APIServerReady: config.ControlConfig.Runtime.APIServerReady,
KubeConfigAdmin: config.ControlConfig.Runtime.KubeConfigAdmin,
Skips: config.ControlConfig.Skips,
Disables: config.ControlConfig.Disables,
}
for _, hook := range config.StartupHooks {
if err := hook(ctx, config.StartupHooksWg, config.ControlConfig.Runtime.APIServerReady, config.ControlConfig.Runtime.KubeConfigAdmin); err != nil {
if err := hook(ctx, shArgs); err != nil {
return errors.Wrap(err, "startup hook")
}
}

View File

@ -4,6 +4,7 @@ import (
"context"
"sync"
"github.com/rancher/k3s/pkg/cli/cmds"
"github.com/rancher/k3s/pkg/daemons/config"
)
@ -13,7 +14,7 @@ type Config struct {
ControlConfig config.Control
Rootless bool
SupervisorPort int
StartupHooks []func(context.Context, *sync.WaitGroup, <-chan struct{}, string) error
StartupHooks []cmds.StartupHook
StartupHooksWg *sync.WaitGroup
LeaderControllers CustomControllers
Controllers CustomControllers