Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phase integration tests #3619

Merged

Conversation

chrislovecnm
Copy link
Contributor

@chrislovecnm chrislovecnm commented Oct 12, 2017

This depends on #3616 in order to pass.

Please only review chrislovecnm@eeafe64

Use Cases

This improvement of phases and lifecycles will allow a user to:

  1. allows users to have complex networking patterns that kops does not support out of the box: no IG, custom nat gw, vpn, etc
  2. allows users to just run a single phase w/o dependencies
  3. allows users to output tf for certain sections of phase
  4. allow users to have validation fail, but still run kops

Design

Phase / Lifecycle Improvement

Break down lifecycles and corresponding phases into:

  1. IAM - already exists
  2. Network - already exists, but need to remove components
  3. Security Groups - new, pretty self explanitory
  4. Cluster - exists already but has too much in it
  5. ELB - new will include ELBs and DNS, if required

The implementation will consist of new phases and lifecycles

Capability for kops to fail validation but run

Currently, if kops fails validation in a lifecycle it will not run. Along with these lifecycles, I am recommending a mode where a user can allow for validation to fail.

I would like to introduce into kops a cli or API mapping that allows users to fail particular phase validation. We can start with the cli options, but with a kops server, I think we will need it in the API.

An idea

kops update cluster --phase cluster --allow-validate-fail=iam,network

This would run update cluster and allow the IAM and network validation to fail. But security groups validation would need to pass.

This PR - test cases

This is creating the tests for the reworking of phases, and the work allowing failed validation. The cluster test, for instance, will not pass, until we allow for kops phase validation to fail, but then still allow kops update to run.

The TF files are pretty solid for the tests, once the work has been completed. I filed a couple of other issues in regards to no DNS for the bastion exists, and the outputs are also clashing with each other if you have TF broken into the Phases.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Oct 12, 2017
@chrislovecnm chrislovecnm changed the title Phase integration test Phase integration tests Oct 12, 2017
@k8s-ci-robot k8s-ci-robot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Oct 12, 2017
@justinsb
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 15, 2017
@k8s-github-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: justinsb

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these OWNERS Files:

You can indicate your approval by writing /approve in a comment
You can cancel your approval by writing /approve cancel in a comment

@k8s-github-robot k8s-github-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 15, 2017
@k8s-github-robot
Copy link

/test all [submit-queue is verifying that this PR is safe to merge]

@k8s-github-robot
Copy link

Automatic merge from submit-queue.

@k8s-github-robot k8s-github-robot merged commit 2c5da71 into kubernetes:master Oct 15, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants