tree e54611333c96dfe74febbb18fae4bc4289dca73d
parent a353e992b3d1ba76cb3f6de2a7777d7880671c71
author Houston Putman <houston@apache.org> 1675704524 -0800
committer GitHub <noreply@github.com> 1675704524 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJj4TjMCRBK7hj4Ov3rIwAAQCwIAGNZptOg6lxq+Tf4xoxPHm4G
 RLdJ0xfMYbuR+gMiouodhrz5wiGbsX7EqXjLaV74N899a+zpb1KC3Exz++OmeuD8
 AIxVI/bnlhOho160Avys4nQMNLYjLwRie8zOiI048NdEE40YuLDE3MpUrFsF0Lcn
 mbxf6YT3Hxrrn9xqHFdLaM0LL5WEcGo5lWr7ipti9czGwjcrCuI1F6xhUTST226C
 YZLt6KYFQ2/3QdXukz0ic7iEd2v6ZELuAW+EDWBSm1VLCvzNZcj0buRAFKmJaaHK
 VRxUZ+50KSd4f6JIA5zXS8WgEXEa/BhKwPYqbn6/2DAL1e04WaEx4ZRrvkzwOsE=
 =dxiI
 -----END PGP SIGNATURE-----
 

Start e2e/integration testing functionality. (#507)

This is the first of hopefully many integration testing tickets, mostly to build the start of a framework so that other work can be done iteratively.

- Integration testing with the Solr Operator Helm Chart
- At least 1 integration test for each Solr resource
- Documentation
- Good cleanup while retaining ability to debug when things didn't work
- The go code does not call external programs. E.g. Helm golang APIs are used