pkg/providers/imagefamily/bootstrap/bootstrap.go (32 lines of code) (raw):
/*
Portions Copyright (c) Microsoft Corporation.
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 bootstrap
import (
"github.com/Azure/karpenter-provider-azure/pkg/apis/v1alpha2"
core "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type KubeletConfiguration struct {
v1alpha2.KubeletConfiguration
// MaxPods is the maximum number of pods that can run on a worker node instance.
MaxPods int32
SystemReserved map[string]string
// KubeReserved contains resources reserved for Kubernetes system components.
KubeReserved map[string]string
// EvictionHard is the map of signal names to quantities that define hard eviction thresholds
EvictionHard map[string]string
// EvictionSoft is the map of signal names to quantities that define soft eviction thresholds
EvictionSoft map[string]string
// EvictionSoftGracePeriod is the map of signal names to quantities that define grace periods for each eviction signal
EvictionSoftGracePeriod map[string]metav1.Duration
// EvictionMaxPodGracePeriod is the maximum allowed grace period (in seconds) to use when terminating pods in
// response to soft eviction thresholds being met.
EvictionMaxPodGracePeriod *int32
}
// Options is the node bootstrapping parameters passed from Karpenter to the provisioning node
type Options struct {
ClusterName string
ClusterEndpoint string
KubeletConfig *KubeletConfiguration
Taints []core.Taint `hash:"set"`
Labels map[string]string `hash:"set"`
CABundle *string
GPUNode bool
GPUDriverVersion string
GPUDriverType string
GPUImageSHA string
SubnetID string
}
// Bootstrapper can be implemented to generate a bootstrap script
// that uses the params from the Bootstrap type for a specific
// bootstrapping method.
// The only one implemented right now is AKS bootstrap script
type Bootstrapper interface {
Script() (string, error)
}