in internal/node/hybrid/validator.go [25:57]
func (hnp *HybridNodeProvider) withHybridValidators() {
hnp.validator = func(cfg *api.NodeConfig) error {
if cfg.Spec.Cluster.Name == "" {
return fmt.Errorf("Name is missing in cluster configuration")
}
if cfg.Spec.Cluster.Region == "" {
return fmt.Errorf("Region is missing in cluster configuration")
}
if hostnameOverride := extractFlagValue(cfg.Spec.Kubelet.Flags, hostnameOverrideFlag); hostnameOverride != "" {
return fmt.Errorf("hostname-override kubelet flag is not supported for hybrid nodes but found override: %s", hostnameOverride)
}
if !cfg.IsIAMRolesAnywhere() && !cfg.IsSSM() {
return fmt.Errorf("Either IAMRolesAnywhere or SSM must be provided for hybrid node configuration")
}
if cfg.IsIAMRolesAnywhere() && cfg.IsSSM() {
return fmt.Errorf("Only one of IAMRolesAnywhere or SSM must be provided for hybrid node configuration")
}
if cfg.IsIAMRolesAnywhere() {
if err := validateRolesAnywhereNode(cfg); err != nil {
return err
}
}
if cfg.IsSSM() {
if cfg.Spec.Hybrid.SSM.ActivationCode == "" {
return fmt.Errorf("ActivationCode is missing in hybrid ssm configuration")
}
if cfg.Spec.Hybrid.SSM.ActivationID == "" {
return fmt.Errorf("ActivationID is missing in hybrid ssm configuration")
}
}
return nil
}
}