Skip to content

Commit

Permalink
adding startup hooks args to access to Disables and Skips
Browse files Browse the repository at this point in the history
Signed-off-by: Luther Monson <[email protected]>
  • Loading branch information
luthermonson committed Jul 20, 2021
1 parent bba49ea commit f1cd7a2
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 5 deletions.
12 changes: 11 additions & 1 deletion pkg/cli/cmds/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
13 changes: 10 additions & 3 deletions pkg/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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"
)
Expand Down Expand Up @@ -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")
}
}
Expand Down
3 changes: 2 additions & 1 deletion pkg/server/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"sync"

"github.com/rancher/k3s/pkg/cli/cmds"
"github.com/rancher/k3s/pkg/daemons/config"
)

Expand All @@ -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
Expand Down

0 comments on commit f1cd7a2

Please sign in to comment.