metal: stub node identification for bare metal

This commit is contained in:
justinsb 2024-09-14 13:15:17 -04:00
parent 6509c42e10
commit eda7c25fa9
2 changed files with 46 additions and 0 deletions

View File

@ -41,6 +41,7 @@ import (
nodeidentitydo "k8s.io/kops/pkg/nodeidentity/do"
nodeidentitygce "k8s.io/kops/pkg/nodeidentity/gce"
nodeidentityhetzner "k8s.io/kops/pkg/nodeidentity/hetzner"
nodeidentitymetal "k8s.io/kops/pkg/nodeidentity/metal"
nodeidentityos "k8s.io/kops/pkg/nodeidentity/openstack"
nodeidentityscw "k8s.io/kops/pkg/nodeidentity/scaleway"
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
@ -307,6 +308,12 @@ func addNodeController(ctx context.Context, mgr manager.Manager, vfsContext *vfs
return fmt.Errorf("error building identifier: %w", err)
}
case "metal":
identifier, err = nodeidentitymetal.New()
if err != nil {
return fmt.Errorf("error building metal node identifier: %w", err)
}
case "":
return fmt.Errorf("must specify cloud")

View File

@ -0,0 +1,39 @@
/*
Copyright 2024 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package metal
import (
"context"
"fmt"
corev1 "k8s.io/api/core/v1"
"k8s.io/kops/pkg/nodeidentity"
)
// nodeIdentifier identifies a node in a bare-metal cloud
type nodeIdentifier struct {
}
// New creates and returns a nodeidentity.Identifier for Nodes running on bare metal
func New() (nodeidentity.Identifier, error) {
return &nodeIdentifier{}, nil
}
// IdentifyNode returns the node identity information
func (i *nodeIdentifier) IdentifyNode(ctx context.Context, node *corev1.Node) (*nodeidentity.Info, error) {
return nil, fmt.Errorf("metal::IdentifyNode not implemented")
}