Skip to content

Commit

Permalink
Merge branch 'master' into qinhao/credential-provider-windows
Browse files Browse the repository at this point in the history
  • Loading branch information
mainred authored Apr 17, 2024
2 parents 88d6cf6 + 1296bd1 commit 86885fe
Show file tree
Hide file tree
Showing 11 changed files with 464 additions and 140 deletions.
23 changes: 23 additions & 0 deletions .pipelines/.vsts-vhd-builder-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical'
echo '##vso[task.setvariable variable=IMG_OFFER]UbuntuServer'
echo '##vso[task.setvariable variable=IMG_SKU]18.04-LTS'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -212,6 +213,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical'
echo '##vso[task.setvariable variable=IMG_OFFER]UbuntuServer'
echo '##vso[task.setvariable variable=IMG_SKU]18.04-LTS'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_NC16as_T4_v3'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]fullgpudaemon'
Expand Down Expand Up @@ -263,6 +265,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -290,6 +293,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -317,6 +321,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-gen2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -344,6 +349,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-gen2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -372,6 +378,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
echo '##vso[task.setvariable variable=CONTAINER_RUNTIME]containerd'
Expand All @@ -398,6 +405,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -426,6 +434,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-gen2'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
echo '##vso[task.setvariable variable=CONTAINER_RUNTIME]containerd'
Expand All @@ -452,6 +461,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-gen2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -479,6 +489,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-arm64'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16pds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -506,6 +517,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-arm64'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16pds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -533,6 +545,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-gen2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ads_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]kata'
Expand Down Expand Up @@ -560,6 +573,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-kata'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ads_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]kata'
Expand Down Expand Up @@ -587,6 +601,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-gen2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -614,6 +629,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-gen2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -641,6 +657,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-kata'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ads_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]kata'
Expand Down Expand Up @@ -668,6 +685,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]MicrosoftCBLMariner'
echo '##vso[task.setvariable variable=IMG_OFFER]cbl-mariner'
echo '##vso[task.setvariable variable=IMG_SKU]cbl-mariner-2-kata'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ads_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]kata'
Expand Down Expand Up @@ -695,6 +713,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical'
echo '##vso[task.setvariable variable=IMG_OFFER]UbuntuServer'
echo '##vso[task.setvariable variable=IMG_SKU]18.04-LTS'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -748,6 +767,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical'
echo '##vso[task.setvariable variable=IMG_OFFER]0001-com-ubuntu-server-focal'
echo '##vso[task.setvariable variable=IMG_SKU]20_04-lts'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -801,6 +821,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical'
echo '##vso[task.setvariable variable=IMG_OFFER]0001-com-ubuntu-server-jammy'
echo '##vso[task.setvariable variable=IMG_SKU]22_04-lts'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_DS2_v2'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -828,6 +849,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical'
echo '##vso[task.setvariable variable=IMG_OFFER]0001-com-ubuntu-server-jammy'
echo '##vso[task.setvariable variable=IMG_SKU]22_04-lts-gen2'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V2'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_DS2_v2'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down Expand Up @@ -882,6 +904,7 @@ stages:
echo '##vso[task.setvariable variable=IMG_PUBLISHER]Canonical'
echo '##vso[task.setvariable variable=IMG_OFFER]0001-com-ubuntu-server-jammy'
echo '##vso[task.setvariable variable=IMG_SKU]22_04-lts'
echo '##vso[task.setvariable variable=IMG_VERSION]latest'
echo '##vso[task.setvariable variable=HYPERV_GENERATION]V1'
echo '##vso[task.setvariable variable=AZURE_VM_SIZE]Standard_D16ds_v5'
echo '##vso[task.setvariable variable=FEATURE_FLAGS]None'
Expand Down
85 changes: 81 additions & 4 deletions pkg/nbcontracthelper/helper.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,86 @@
package nbcontracthelper

const (
defaultLinuxUser = "azureuser"
import (
"bytes"
"encoding/gob"
"log"

nbcontractv1 "github.com/Azure/agentbaker/pkg/proto/nbcontract/v1"
)

func GetDefaultLinuxAdminUsername() string {
return defaultLinuxUser
type NBContractBuilder struct {
// nodeBootstrapConfig is the configuration object for the NBContract (Node Bootstrap Contract).
nodeBootstrapConfig *nbcontractv1.Configuration
}

// Check and initialize each field if it is nil.
func initializeIfNil[T any](field **T) {
if *field == nil {
*field = new(T)
}
}

// Ensure all objects are non-nil. Please add new objects here.
func ensureConfigsNonNil(nBC *nbcontractv1.Configuration) {
initializeIfNil(&nBC.KubeBinaryConfig)
initializeIfNil(&nBC.ApiServerConfig)
initializeIfNil(&nBC.AuthConfig)
initializeIfNil(&nBC.ClusterConfig)
initializeIfNil(&nBC.ClusterConfig.LoadBalancerConfig)
initializeIfNil(&nBC.ClusterConfig.ClusterNetworkConfig)
initializeIfNil(&nBC.NetworkConfig)
initializeIfNil(&nBC.GpuConfig)
initializeIfNil(&nBC.TlsBootstrappingConfig)
initializeIfNil(&nBC.KubeletConfig)
initializeIfNil(&nBC.RuncConfig)
initializeIfNil(&nBC.ContainerdConfig)
initializeIfNil(&nBC.TeleportConfig)
initializeIfNil(&nBC.CustomLinuxOsConfig)
initializeIfNil(&nBC.HttpProxyConfig)
initializeIfNil(&nBC.CustomCloudConfig)
initializeIfNil(&nBC.CustomSearchDomainConfig)
}

// Creates a new instance of NBContractBuilder and ensures all objects in nodeBootstrapConfig are non-nil.
func NewNBContractBuilder() *NBContractBuilder {
nbc := &nbcontractv1.Configuration{}
ensureConfigsNonNil(nbc)
nBCB := &NBContractBuilder{nodeBootstrapConfig: nbc}
return nBCB
}

// Apply the configuration to the nodeBootstrapConfig object.
func (nBCB *NBContractBuilder) ApplyConfiguration(config *nbcontractv1.Configuration) {
if config == nil {
return
}

// Use deep copy to avoid modifying the original object 'config'.
if err := nBCB.deepCopy(config, nBCB.nodeBootstrapConfig); err != nil {
log.Printf("Failed to deep copy the configuration: %v", err)
ensureConfigsNonNil(nBCB.nodeBootstrapConfig)
}
}

// Get the nodeBootstrapConfig object.
func (nBCB *NBContractBuilder) GetNodeBootstrapConfig() *nbcontractv1.Configuration {
return nBCB.nodeBootstrapConfig
}

// Deep copy the source object to the destination object.
// Note that the existing value in the destination object will not be cleared
// if the source object doesn't have that field.
func (nBCB *NBContractBuilder) deepCopy(src, dst interface{}) error {
if src == nil {
return nil
}

var buf bytes.Buffer
if err := gob.NewEncoder(&buf).Encode(src); err != nil {
return err
}
if err := gob.NewDecoder(&buf).Decode(dst); err != nil {
return err
}
return nil
}
Loading

0 comments on commit 86885fe

Please sign in to comment.