coreos / tectonic-installer

Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Apache License 2.0
601 stars 266 forks source link

tests: Replace Bash scripts with Ruby RSpec #1445

Closed mxinden closed 7 years ago

mxinden commented 7 years ago

Replace the current bash scripts used for testing with a proper testing framework. The decision landed on RSpec, a Ruby based testing framework.

I am setting up a simple test scenario in RSpec and will introduce it peace by peace into our Jenkins pipeline instead of a big bang roll out. This simple scenario and the helper code around it can then be used to transition all tests into this framework.

In my opinion this should include the conformance tests as well in the long run. (@rithujohn191 correct me if I am wrong.)

chancez commented 7 years ago

Are you guys planning on using any frameworks like server spec to assist in validating typical machine-level concerns (file exists, has these perms, and has some specific contents, etc)?

rithujohn191 commented 7 years ago

Yep it would be great to eventually include the conformance tests as a part of this framework. We will also have to automate the process of building a new kube-coformance image every-time we upgrade. For now I just manually build this image.

mxinden commented 7 years ago

@chancez Thanks for the hint. I will look into the framework. Do you have good experience with it?

@rithujohn191 Once we get this in, maybe we can sync up and plan how this integration could look like?

chancez commented 7 years ago

@mxinden I've used it with Chef/Puppet in the past, and it works well outside of those tools too, and you can build new things on top to provide a better DSL for your specific deployment tooling. It's particularly good for verifying node state or container states. Unsure how well it might fit into the K8s idea, but it's likely adaptable for this. If anything, it could easily be used to verify a lot of various things we put onto nodes after they've been provisioned (like our unit files, manifests, etc).

mxinden commented 7 years ago

//CC @alexsomesan for serverspec

alexsomesan commented 7 years ago

Thanks for the hint @chancez! I haven't used serverspec before. I'm going to quickly look over it. Seems interesting.