Skip to content
This repository has been archived by the owner on Jan 11, 2023. It is now read-only.

acs-engine deploy not validating orchestrator version properly #2025

Closed
lastcoolnameleft opened this issue Jan 10, 2018 · 4 comments · Fixed by #2771
Closed

acs-engine deploy not validating orchestrator version properly #2025

lastcoolnameleft opened this issue Jan 10, 2018 · 4 comments · Fixed by #2771
Assignees
Labels
cse-sync-week Triage for issues that would be good for CSE sync week, April 24-27th 2018 size/medium

Comments

@lastcoolnameleft
Copy link

Is this a request for help?: yes

Is this an ISSUE or FEATURE REQUEST? (choose one): ISSUE

What version of acs-engine?:
0.11.0, 0.10.0

Orchestrator and version (e.g. Kubernetes, DC/OS, Swarm)
1.9

What happened:
There might be two separate issues; however, they manifest themselves together:

  • If I attempt to generate a 1.9 cluster, JSON validation fails
  • If I attempt to deploy a 1.9 K8S Cluster, I get a 1.7 cluster

If I attempt to generate an 1.9 K8S cluster, I get:

•100% ➜ acs-engine generate --api-model kubernetes1.9-issue.json
INFO[0000] Error returned by LoadContainerService: OrchestratorProfile is not able to be rationalized, check supported Release or Version
FATA[0000] error validating generateCmd: error parsing the api model: OrchestratorProfile is not able to be rationalized, check supported Release or Version


•100% ➜ cat kubernetes1.9-issue.json
{
  "apiVersion": "vlabs",
  "properties": {
    "orchestratorProfile": {
      "orchestratorType": "Kubernetes",
      "orchestratorRelease": "1.9"
    },
    "masterProfile": {
      "count": 1,
      "dnsPrefix": "sandbox-acs-engine-19",
      "vmSize": "Standard_D2_v2"
    },
    "agentPoolProfiles": [
      {
        "name": "agentpool1",
        "count": 3,
        "vmSize": "Standard_D2_v2",
        "availabilityProfile": "AvailabilitySet"
      }
    ],
    "linuxProfile": {
      "adminUsername": "azureuser",
      "ssh": {
        "publicKeys": [
          {
            "keyData": ""
          }
        ]
      }
    },
    "servicePrincipalProfile": {
      "clientId": "",
      "secret": ""
    }
  }
}

If I try to deploy this cluster, it will allow it; however, it will create a Kubernetes 1.7 cluster.

What you expected to happen:

I would expect the generate run to pass with a simple 1.9 cluster
I would expect the deploy run to deploy a K8S 1.9 cluster (instead of a 1.7 cluster)

How to reproduce it (as minimally and precisely as possible):

Use this as a base:
https://github.com/Azure/acs-engine/blob/master/examples/kubernetes-releases/kubernetes1.9.json

Run:

acs-engine deploy --api-model kubernetes1.9-issue.json --location southcentralus --subscription-id <your sub here> --resource-group sandbox-acs-engine
INFO[0017] Starting ARM Deployment (sandbox-acs-engine-1341619957). This will take some time...
INFO[0467] Finished ARM Deployment (sandbox-acs-engine-1341619957).
ssh <ip>
thfalgou@k8s-master-18220585-0:~$ kubectl version
2018-01-10 18:08:51.762208 I | proto: duplicate proto type registered: google.protobuf.Any
2018-01-10 18:08:51.762268 I | proto: duplicate proto type registered: google.protobuf.Duration
2018-01-10 18:08:51.762419 I | proto: duplicate proto type registered: google.protobuf.Timestamp
Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.9", GitCommit:"19fe91923d584c30bd6db5c5a21e9f0d5f742de8", GitTreeState:"clean", BuildDate:"2017-10-19T16:55:06Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.9", GitCommit:"19fe91923d584c30bd6db5c5a21e9f0d5f742de8", GitTreeState:"clean", BuildDate:"2017-10-19T16:55:06Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

And
Anything else we need to know:

@jackfrancis
Copy link
Member

v0.11.0 doesn't support v1.9.n of Kubernetes. We expect to release v0.12.0 this week which (as of this writing) supports v1.9.1.

I'm going to quickly investiagte the acs-engine deploy behavior, which doesn't make sense as you stated (it should fail an api model that declares an unsupported version).

@jackfrancis
Copy link
Member

I can reproduce this error. Succinctly:

acs-engine deploy should fail in the same way as acs-engine generate when an unsupported version is included in the api model. It's possible this is a symptom of a larger bug that permits validation failures (or skips validation entirely) during the deploy execution flow.

Thanks for reporting @lastcoolnameleft !

@lastcoolnameleft
Copy link
Author

Phew. Glad it's not just me and I'm not going crazy. I "thought" I deployed a 1.9 cluster cluster, and when newer primitives didn't work as expected, I got really confused until I checked the version of the nodes. Reproduced the error 2x more times, just to make sure.

@4c74356b41
Copy link

You just need to compile latest code, i deployed 1.9 just today with acs engine.

@CecileRobertMichon CecileRobertMichon added the cse-sync-week Triage for issues that would be good for CSE sync week, April 24-27th 2018 label Apr 19, 2018
@CecileRobertMichon CecileRobertMichon changed the title Issues deploying/generating 1.9 acs-engine deploy not validating orchestrator version properly Apr 19, 2018
@ghost ghost assigned danigian Apr 25, 2018
@ghost ghost added the in progress label Apr 25, 2018
@ghost ghost removed the in progress label May 2, 2018
CecileRobertMichon pushed a commit that referenced this issue May 2, 2018
)

* acs-engine deploy: model validation and required fields in --help

* Forced apimodel validation to avoid incongruences (fixes #2025)

* Added more details about required fields while deploying (fixes #2491)

* WIP - Adding windows agent pool scaling

* Revert "WIP - Adding windows agent pool scaling" - wrong branch

This reverts commit 0eb7ece.

* go fmt
CecileRobertMichon pushed a commit that referenced this issue Jun 1, 2018
* acs-engine deploy: model validation and required fields in --help

* Forced apimodel validation to avoid incongruences (fixes #2025)

* Added more details about required fields while deploying (fixes #2491)

* WIP - Adding windows agent pool scaling

* Revert "WIP - Adding windows agent pool scaling" - wrong branch

This reverts commit 0eb7ece.

* WIP - Windows Scaling on Availability Sets and VMSS

* WIP - Naming format modified for vmss windows scaling

* Merge remote-tracking branch 'Azure/patch-release-v0.16.2' into windowsscale

* Fixing tests

* feat(*): Bumps client-go to v7.0.0

This updates client-go to v7.0.0 and adds the needed dependencies on
`k8s.io/api`. Also fixes a small issue with conflicting `uuid` library
versions

* testing re-vendor health

make build-vendor passed!

* removing the vnet from scale templates (#2994)

This allows a cluster to scale even if the user has added a subnet to the vnet

* Fix missing DefaultKubernetesClusterSubnet

* dos2unix

* Clean and go fmt

* Clean and go fmt

* Clean and go fmt

* Fix util_test.go

* Using StorageProfile.ImageReference.Publisher to understand if Windows Agent Pool in Scaling scenario

* lint
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cse-sync-week Triage for issues that would be good for CSE sync week, April 24-27th 2018 size/medium
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants