Skip to content

Commit

Permalink
Merge pull request #60 from kinarashah/v1.24
Browse files Browse the repository at this point in the history
  • Loading branch information
kinarashah authored Jun 27, 2022
2 parents eb31e48 + 8e2dc28 commit f991112
Show file tree
Hide file tree
Showing 6 changed files with 568 additions and 91 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ bin/
dist/
vendor/
.dapper
.DS_Store
2 changes: 1 addition & 1 deletion Dockerfile.dapper
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ RUN zypper -n update && \

ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \
GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash
RUN curl -sLf https://storage.googleapis.com/golang/go1.16.4.linux-${ARCH}.tar.gz | tar -xzf - -C /usr/local/
RUN curl -sLf https://storage.googleapis.com/golang/go1.17.4.linux-${ARCH}.tar.gz | tar -xzf - -C /usr/local/
# workaround for https://bugzilla.suse.com/show_bug.cgi?id=1183043
RUN if [ "${ARCH}" == "arm64" ]; then \
zypper -n install binutils-gold ; \
Expand Down
48 changes: 25 additions & 23 deletions controller/aks-cluster-config-handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -361,16 +361,16 @@ func (h *Handler) validateConfig(config *aksv1.AKSClusterConfig) error {

cannotBeNilError := "field [%s] must be provided for cluster [%s] config"
if config.Spec.ResourceLocation == "" {
return fmt.Errorf(cannotBeNilError, "resourceLocation", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "resourceLocation", config.Spec.ClusterName)
}
if config.Spec.ResourceGroup == "" {
return fmt.Errorf(cannotBeNilError, "resourceGroup", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "resourceGroup", config.Spec.ClusterName)
}
if config.Spec.ClusterName == "" {
return fmt.Errorf(cannotBeNilError, "clusterName", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "clusterName", config.Spec.ClusterName)
}
if config.Spec.AzureCredentialSecret == "" {
return fmt.Errorf(cannotBeNilError, "azureCredentialSecret", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "azureCredentialSecret", config.Spec.ClusterName)
}

if _, err = aks.GetSecrets(h.secretsCache, h.secrets, &config.Spec); err != nil {
Expand All @@ -381,40 +381,40 @@ func (h *Handler) validateConfig(config *aksv1.AKSClusterConfig) error {
return nil
}
if config.Spec.KubernetesVersion == nil {
return fmt.Errorf(cannotBeNilError, "kubernetesVersion", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "kubernetesVersion", config.Spec.ClusterName)
}
if config.Spec.DNSPrefix == nil {
return fmt.Errorf(cannotBeNilError, "dnsPrefix", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "dnsPrefix", config.Spec.ClusterName)
}

systemMode := false
for _, np := range config.Spec.NodePools {
if np.Name == nil {
return fmt.Errorf(cannotBeNilError, "NodePool.Name", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "NodePool.Name", config.Spec.ClusterName)
}
if np.Count == nil {
return fmt.Errorf(cannotBeNilError, "NodePool.Count", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "NodePool.Count", config.Spec.ClusterName)
}
if np.MaxPods == nil {
return fmt.Errorf(cannotBeNilError, "NodePool.MaxPods", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "NodePool.MaxPods", config.Spec.ClusterName)
}
if np.VMSize == "" {
return fmt.Errorf(cannotBeNilError, "NodePool.VMSize", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "NodePool.VMSize", config.Spec.ClusterName)
}
if np.OsDiskSizeGB == nil {
return fmt.Errorf(cannotBeNilError, "NodePool.OsDiskSizeGB", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "NodePool.OsDiskSizeGB", config.Spec.ClusterName)
}
if np.OsDiskType == "" {
return fmt.Errorf(cannotBeNilError, "NodePool.OSDiskType", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "NodePool.OSDiskType", config.Spec.ClusterName)
}
if np.Mode == "" {
return fmt.Errorf(cannotBeNilError, "NodePool.Mode", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "NodePool.Mode", config.Spec.ClusterName)
}
if np.Mode == "System" {
systemMode = true
}
if np.OsType == "" {
return fmt.Errorf(cannotBeNilError, "NodePool.OsType", config.ClusterName)
return fmt.Errorf(cannotBeNilError, "NodePool.OsType", config.Spec.ClusterName)
}
if np.OsType == "Windows" {
return fmt.Errorf("windows node pools are not currently supported")
Expand All @@ -427,32 +427,32 @@ func (h *Handler) validateConfig(config *aksv1.AKSClusterConfig) error {
if config.Spec.NetworkPlugin != nil &&
to.String(config.Spec.NetworkPlugin) != string(containerservice.Kubenet) &&
to.String(config.Spec.NetworkPlugin) != string(containerservice.Azure) {
return fmt.Errorf("invalid network plugin value [%s] for [%s] cluster config", to.String(config.Spec.NetworkPlugin), config.ClusterName)
return fmt.Errorf("invalid network plugin value [%s] for [%s] cluster config", to.String(config.Spec.NetworkPlugin), config.Spec.ClusterName)
}
if config.Spec.NetworkPolicy != nil &&
to.String(config.Spec.NetworkPolicy) != string(containerservice.NetworkPolicyAzure) &&
to.String(config.Spec.NetworkPolicy) != string(containerservice.NetworkPolicyCalico) {
return fmt.Errorf("invalid network policy value [%s] for [%s] cluster config", to.String(config.Spec.NetworkPolicy), config.ClusterName)
return fmt.Errorf("invalid network policy value [%s] for [%s] cluster config", to.String(config.Spec.NetworkPolicy), config.Spec.ClusterName)
}
if to.String(config.Spec.NetworkPolicy) == string(containerservice.NetworkPolicyAzure) && to.String(config.Spec.NetworkPlugin) != string(containerservice.Azure) {
return fmt.Errorf("azure network policy can be used only with Azure CNI network plugin for [%s] cluster", config.ClusterName)
return fmt.Errorf("azure network policy can be used only with Azure CNI network plugin for [%s] cluster", config.Spec.ClusterName)
}
cannotBeNilErrorAzurePlugin := "field [%s] must be provided for cluster [%s] config when Azure CNI network plugin is used"
if to.String(config.Spec.NetworkPlugin) == string(containerservice.Azure) {
if config.Spec.VirtualNetwork == nil {
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "virtualNetwork", config.ClusterName)
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "virtualNetwork", config.Spec.ClusterName)
}
if config.Spec.Subnet == nil {
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "subnet", config.ClusterName)
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "subnet", config.Spec.ClusterName)
}
if config.Spec.NetworkDNSServiceIP == nil {
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "dnsServiceIp", config.ClusterName)
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "dnsServiceIp", config.Spec.ClusterName)
}
if config.Spec.NetworkDockerBridgeCIDR == nil {
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "dockerBridgeCidr", config.ClusterName)
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "dockerBridgeCidr", config.Spec.ClusterName)
}
if config.Spec.NetworkServiceCIDR == nil {
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "serviceCidr", config.ClusterName)
return fmt.Errorf(cannotBeNilErrorAzurePlugin, "serviceCidr", config.Spec.ClusterName)
}
}
return nil
Expand Down Expand Up @@ -730,7 +730,9 @@ func (h *Handler) updateUpstreamClusterState(ctx context.Context, secretsCache w
// state for the tags and if so, log the response and move on. Any upstream tags regenerated on the cluster
// by Azure will be synced back to rancher.
upstreamTags := containerservice.TagsObject{}
err = retry.OnError(retry.DefaultBackoff, func(err error) bool { return strings.HasSuffix(err.Error(), "asynchronous operation has not completed") }, func() error {
err = retry.OnError(retry.DefaultBackoff, func(err error) bool {
return strings.HasSuffix(err.Error(), "asynchronous operation has not completed")
}, func() error {
managedCluster, err := response.Result(*resourceClusterClient)
upstreamTags.Tags = managedCluster.Tags
return err
Expand Down
88 changes: 78 additions & 10 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,23 +1,91 @@
module github.com/rancher/aks-operator

go 1.16
go 1.17

replace k8s.io/client-go => k8s.io/client-go v0.21.2
replace k8s.io/client-go => k8s.io/client-go v0.24.1

require (
github.com/Azure/azure-sdk-for-go v55.7.0+incompatible
github.com/Azure/go-autorest/autorest v0.11.19
github.com/Azure/go-autorest/autorest/adal v0.9.14
github.com/Azure/go-autorest/autorest/to v0.4.1-0.20210111195520-9fc88b15294e
github.com/Azure/go-autorest/autorest/validation v0.3.2-0.20210111195520-9fc88b15294e // indirect
github.com/rancher/lasso v0.0.0-20210616224652-fc3ebd901c08
github.com/rancher/lasso v0.0.0-20220627205005-00d9c8e9dda6
github.com/rancher/machine v0.15.0-rancher63
github.com/rancher/wrangler v0.8.10
github.com/rancher/wrangler v1.0.1-0.20220520195731-8eeded9bae2a
github.com/rancher/wrangler-api v0.6.1-0.20200427172631-a7c2f09b783e
github.com/sirupsen/logrus v1.4.2
github.com/sirupsen/logrus v1.8.1
github.com/stretchr/testify v1.7.0
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 // indirect
k8s.io/api v0.21.2
k8s.io/apimachinery v0.21.2
k8s.io/client-go v0.21.2
k8s.io/api v0.24.1
k8s.io/apimachinery v0.24.1
k8s.io/client-go v0.24.1
)

require (
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
github.com/Azure/go-autorest/autorest/azure/auth v0.4.2 // indirect
github.com/Azure/go-autorest/autorest/azure/cli v0.3.1 // indirect
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
github.com/Azure/go-autorest/autorest/validation v0.3.2-0.20210111195520-9fc88b15294e // indirect
github.com/Azure/go-autorest/logger v0.2.1 // indirect
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
github.com/PuerkitoBio/purell v1.1.1 // indirect
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dimchansky/utfbom v1.1.0 // indirect
github.com/emicklei/go-restful v2.9.5+incompatible // indirect
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect
github.com/ghodss/yaml v1.0.0 // indirect
github.com/go-logr/logr v1.2.0 // indirect
github.com/go-openapi/jsonpointer v0.19.5 // indirect
github.com/go-openapi/jsonreference v0.19.5 // indirect
github.com/go-openapi/swag v0.19.14 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/gnostic v0.5.7-v3refs // indirect
github.com/google/go-cmp v0.5.5 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/imdario/mergo v0.3.11 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/mailru/easyjson v0.7.6 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v1.12.1 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/common v0.32.1 // indirect
github.com/prometheus/procfs v0.7.3 // indirect
github.com/spf13/pflag v1.0.5 // indirect
golang.org/x/crypto v0.0.0-20220214200702-86341886e292 // indirect
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
golang.org/x/sys v0.0.0-20220209214540-3681064d5158 // indirect
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
golang.org/x/text v0.3.7 // indirect
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
k8s.io/apiextensions-apiserver v0.24.0 // indirect
k8s.io/code-generator v0.24.0 // indirect
k8s.io/gengo v0.0.0-20211129171323-c02415ce4185 // indirect
k8s.io/klog/v2 v2.60.1 // indirect
k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 // indirect
k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect
sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
)
Loading

0 comments on commit f991112

Please sign in to comment.