Commit graph

25 commits

Author SHA1 Message Date
Will Thames
446919de6f Add apply to k8s module (#49053)
* Add apply to k8s module

Use apply method for updating k8s resources.

* Improve apply documentation

* k8s: Make apply and merge_type mutually exclusive
2019-07-08 13:47:41 -07:00
Will Thames
f65ac2cf23 Add tests for #56147 (#57256)
Tests are separate for easier backporting
2019-06-06 10:59:19 +02:00
Marcus Watkins
6e94b472e8 Fix #56640: Map k8s ansible keys to api keys (#57418)
* Fix #56643: Map ansible keys to api keys

* Remove errant print line

* Fix pep8 issue

* Fix doc line

* Added test for validate_certs -> verify_ssl translation for k8s module
2019-06-06 18:51:23 +10:00
Will Thames
ac1895453f Add test case for k8s cascading deletes (#55987)
* Add test case for non-cascading deletes

Deleting a DaemonSet does not delete associated pods,
even though it should

* Add coverage module when using pip

Otherwise tests seemingly fail
2019-05-29 19:26:43 -04:00
Felix Fontein
7a0af34ba9
First batch _facts -> _info rename. (#56822) 2019-05-27 18:17:42 +02:00
Will Thames
4065692e13 k8s minor bug fixes (#56168)
Ensure `wait_condition`s with `Status: Unknown` actually
complete

Return k8s object after wait rather than k8s object before
wait when object is patched.
2019-05-22 08:08:22 +02:00
Matt Clay
b25a37bb38
Convert k8s test to role and fix virtulenv usage. (#53883) 2019-03-15 12:37:46 -07:00
Fabian von Feilitzsch
65424dd614 Allow user to specify a custom condition when waiting (#52185) 2019-03-06 12:41:17 +00:00
Fabian von Feilitzsch
52ec80fbe9 Add proper k8s *List kind support (#52529)
* Add proper k8s *List kind support

* set defaults more intelligently

* reimplement list support so that it will work in all versions of the client

* clean up debugging code
2019-02-23 12:10:42 +10:00
Jordan Borean
0f0d33a954 start getting modules to use shared import error code (#51787) 2019-02-06 12:39:17 -05:00
Will Thames
195de8b460 k8s: turn off wait in check_mode (#51310) 2019-01-25 11:08:46 +01:00
Will Thames
960ebd981f k8s append_hash (#48830)
* Add append_hash functionality to k8s module

append_hash adds a hash based on the contents of a ConfigMap
or Secret to the name - this enables immutable ConfigMaps and
Secrets.

* Provide k8s_config_resource_name plugin

The k8s_config_resource_name filter plugin provides a means of determining
the name of ConfigMaps and Secrets created with append_hash

* Add changelog fragment

* fix failing tests

* Update openshift version needed for append_hash
2018-11-22 08:14:43 +00:00
Will Thames
aaf29c785f Provide Kubernetes resource validation to k8s module (#43352)
* Provide Kubernetes resource validation to k8s module

Use kubernetes-validate to validate Kubernetes resource
definitions against the published schema

* Additional tests for kubernetes-validate

* Improve k8s error messages on exceptions

Parse the response body for the message rather than returning
a JSON blob

If we've validated and there are warnings, return those too - they
can be more helpful

```
"msg": "Failed to patch object: {\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},
       \"status\":\"Failure\",\"message\":\"[pos 334]: json: decNum: got first char 'h'\",\"code\":500}\n",
```
vs
```
"msg": "Failed to patch object: [pos 334]: json: decNum: got first char 'h'\nresource
        validation error at spec.replicas: 'hello' is not of type u'integer'",
```

* Update versions used

In particular openshift/origin:3.9.0

* Add changelog for k8s validate change
2018-11-16 12:44:59 +00:00
Will Thames
4e1e9589b5 Add wait functionality to k8s module (#47493)
Provide wait and wait_timeout parameters and wait for certain
resource kinds to become available.
2018-11-13 12:50:15 +00:00
Matt Clay
150cdd7931 Pin openshift version for k8s test.
This will avoid spontaneous test failure for new releases of openshift on PyPI.
2018-11-05 15:59:57 -08:00
Will Thames
b772485d97 Ensure that k8s_facts always returns resources key (#46733)
Fix bug returning `items` key if NotFound exception is hit
2018-10-12 05:11:48 -04:00
Will Thames
1463c2e4a8
Use a sensible default for k8s merge_type (#45284)
* Use a sensible default for k8s merge_type

The sensible default for merge_type is `['strategic-merge', 'merge'].
However, we can't make this the default default, as we need to support
users who are using openshift 0.6.0, where the merge_type parameter is
unsupported.

* Refactor k8s test suite for merge_type tests

Allow tests with pre-merge-type openshift and post-merge-type
openshift.
2018-09-08 10:08:09 +10:00
Will Thames
ce110ff081 K8s retry merge (#44821)
* Make merge_type a list and apply merge_type in order

Allow use case of preferring strategic-merge and failing
back to merge, or just preferring a different merge type

* Improve k8s module test coverage
2018-08-30 20:42:47 -04:00
Fabian von Feilitzsch
519987d1b0 Revert "Disabled failing k8s integration test."
This reverts commit 9cc16ca9d8.
2018-08-17 13:26:45 -07:00
Matt Clay
9cc16ca9d8 Disabled failing k8s integration test. 2018-08-17 11:34:32 -07:00
Matt Clay
4e489d1be8
Update Shippable integration test groups. (#43118)
* Update Shippable integration test groups.
* Update integration test group aliases.
* Rebalance AWS and Azure tests with extra group.
* Rebalance Windows tests with another group.
2018-07-23 20:46:22 -07:00
Matt Clay
2fbc2abf86 Fix openshift integration test requirements. 2018-07-10 10:07:19 -07:00
Fabian von Feilitzsch
c0c8766903 Ensure openshift dependency is also installed on test runner (#42582) 2018-07-10 09:54:31 -05:00
Fabian von Feilitzsch
e9c7b513a1 [k8s] allow user to pass list of resources in to definition parameter (#42377)
* allow user to pass list of resources in to definition parameter

* Add new validator for list|dict|string

* use string_types instead of string

* state/force information is lost after the first item in the list

* Add tests

* Appease ansibot
2018-07-09 08:33:16 -05:00
Fabian von Feilitzsch
4d77878654 K8s dynamic collected changes (#40745)
* Move k8s modules to dynamic backend

* update required openshift version

* update -> patch

* use new dynamic client exceptions

* style

* guard urllib3 import

* guard ansibleerror import

* give more information about error cause

* format in variable

* style

* rename tests

* Search for provided kind in a few more places to match old behavior, properly handle failure

* make common code use fail instead of fail_json, to work for lookup plugins as well

* update docs

* move openshift_raw tests into k8s tests

* fix typo

* Use diff of response and resource to determine change, don't do any checking client-side before making requests

* remove duplicate yaml blocks

* Update porting guide for k8s module

* remove invalid doc refs

* If fuzzy searching finds a resource, update resource_definition to match proper kind and version

* remote unsupported openshift_raw variables

* properly check environment variables when determining auth method:
2018-05-30 12:04:48 -05:00