Commit Graph

71 Commits

Author SHA1 Message Date
Mike Graves
bf5d70e920 [bp/1.2] Rename from community.kubernetes to kubernetes.core (#111) 2021-06-01 09:21:24 -04:00
Mike Graves
a4ac078625 Add support for helm template (#368)
* Add support for helm template
This commit adds basic support for helm template. The functionality
allows one to either render a chart's templates to a specific directory,
or capture the rendered templates as a string of concatenated yaml
documents.
* Add changelog fragment
* Address PR feedback
* Set changed to true
2021-02-17 08:01:49 -05:00
Mike Graves
9f7b6fb3ff Honor wait_timeout in k8s_info for missing resource (#360)
* Honor wait in k8s_info for missing resource

The wait logic in the k8s_info module immediately returns when no
resources are found, regardless whether a wait_timeout has been
specified. This expands the logic to wait when a name has been provided.
The case this is specifically meant to address is when querying for a
resource that is indirectly created by another resource, for example, a
pod created by a deployment or an operator.

The existing logic in every other case should remain as it was before.
This means if a query might return more than one resource--all pods with
some label, for example--the module will return immediately if no pods
are found, even if a wait_timeout has been provided.

* Add changelog fragment
2021-02-16 10:19:22 -07:00
Mike Graves
80b914021f Add skip_crds option to helm (#349)
This adds an option to skip the installation of CRDs when installing or
upgrading a chart.

Closes: #296
2021-02-09 09:51:10 +05:30
Mike Graves
2640084143 Add optional support for helm diff (#355)
There are some cases where the existing module has difficulty
determining if an upgrade would result in changes. This can particularly
be a problem when changes are made to a local chart.

This adds optional support for helm diff. If the plugin is present it
will be used. Otherwise, the default implementation will be used and a
warning will be issued. One caveat: helm diff does not currently support
using a repo url, so the default implementation will be used in this
case, as well.

Closes: #248
2021-02-03 13:46:26 +05:30
Abhijeet Kasurde
86c5c446dd Make unused release_namespace parameter as optional (#358) 2021-02-03 13:45:25 +05:30
Mike Graves
b26afc3518 Fix Secret check_mode (#343)
When adding a Secret and using stringData, check_mode will always show
changes. An existing resource fetched from Kubernetes will have the
stringData already base64 encoded and merged into the data attribute.
This change performs the base64 encoding and merging with the provided
definition to more accurately represent the current state of the
cluster.

This change only affects check_mode. When making any changes to the
cluster the stringData is passed along as provided in the definition.

Closes #282.
2021-01-14 11:05:11 -05:00
Mike Graves
a9b8cc68d5 Add support for configuring garbage collection (#334)
* Add support for configuring garbage collection

This surfaces deleteOptions functionality in a top-level delete_options
parameter.

* Add changelog fragment

* Remove kind and apiVersion from delete_options

* Add release version to docs
2021-01-12 14:17:18 -05:00
Gonéri Le Bouder
01ee3e603c helm: 'changed' flag takes 'values' in consideration (#332)
Return `changed` `False` is the `values_files` match the `values` of
the existing deployment.

Closes: #274
2021-01-05 13:53:20 -06:00
Gonéri Le Bouder
221631c06a helm: add support for the K8S_ envvars (#319)
Add support for:

- K8S_AUTH_HOST
- K8S_AUTH_API_KEY
- K8S_AUTH_VERIFY_SSL
- K8S_AUTH_SSL_CA_CERT

This commit also refactor the way we pass K8S related configuration to `helm`:

All the calls are now done in a new module_utils module (`helm.py`).
The handling of the `kube_*` variables has also been moved in this new
module.

We need https://github.com/helm/helm/pull/8622 to be able to ignore the
certificate validation. As a workaround, the generate a temporary
kubeconfig configuration file.

Closes: #279
2020-12-11 11:41:08 -05:00
Gonéri Le Bouder
11191e40b0 molecule: conditional statements should not include jinja2 templating (#305)
This address the following warning:
```
[WARNING]: conditional statements should not include jinja2 templating
delimiters such as {{ }} or {% %}. Found: {{ scale_down_no_wait_pods.resources
| length == 1 }
```
2020-12-02 14:10:07 -05:00
Fabian von Feilitzsch
2474ef1b2c k8s_info now outputs whether the api was found (#308) 2020-11-30 10:26:54 +05:30
Gonéri Le Bouder
1513bced36 test: k8s's merge_type expect a list (#309)
The `merge_type` parameter of `k8s` is a list, not a string.
2020-11-23 15:39:25 -05:00
Gonéri Le Bouder
fac0478293 molecule: clone the chart repos with depth=1 (#303) 2020-11-19 13:31:51 -05:00
Abhijeet Kasurde
90a1c626a2 Fix CI (#301)
Missing variables in Chart local_path testing.
2020-11-11 10:29:10 +05:30
Abhijeet Kasurde
66494890ba Enable validate_certs test for kubernetes (#298)
Fixes: #24
2020-11-10 14:14:54 -05:00
Abhijeet Kasurde
e2d4cff952 Updated chart repo URLs (#297) 2020-11-10 14:13:09 -05:00
Abhijeet Kasurde
77e48d0c97 helm: return correct information in check mode (#281)
Fixes: #280

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-10-22 15:22:17 -05:00
Nathan Loika
50c82056b3 Add appVersion check to Helm (#247)
When upgrading a Helm release include the chart's appVersion in the idempotence check. Fixes #246
2020-10-07 16:40:59 -04:00
Julien Huon
0377a892d5 k8s_rollback: new module (#26)
This module allows user to rollback deployment and daemonsets.

Signed-off-by: Julien Huon <julien@huon.email>
2020-10-07 10:07:47 +05:30
Jeff Geerling
fc1f4e5ffd helm: Support for single or multiple values files (#236 was #136) 2020-10-05 13:19:36 -04:00
Abhijeet Kasurde
0f33aafca7 Add testcase for multi resource template (#245)
User can combine multiple resources in the given template
file, which can be consumed by k8s module to create multiple
resources at once.

Fixes: #243

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-10-01 08:56:40 -05:00
Fabian von Feilitzsch
0f3fef927e SelfSubjectAccessReviews now work with the k8s module (#237)
* SelfSubjectAccessReviews now work with the k8s module
2020-09-28 12:20:01 -04:00
Abhijeet Kasurde
5de49373b7 k8s_cluster_info: new module (#160)
Get information about k8s APIs

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-09-28 14:01:37 +05:30
Abhijeet Kasurde
00fa8789a2 k8s: add support for template (#230)
Fixes: #37

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-09-28 11:35:26 +05:30
Abhijeet Kasurde
f03d2ce243 k8s_info: Add support for wait (#235)
Fixes: #18
2020-09-28 10:52:00 +05:30
Abhijeet Kasurde
c49f896fa0 helm: Add replace parameter (#214)
Fixes: #106

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-09-07 12:42:00 +05:30
Fabian von Feilitzsch
1c5a8fd49f Set the connection plugin and transport separately, add tests 2020-08-26 14:48:40 -04:00
Abhijeet Kasurde
3aaf182c30 k8s_exec: Return rc for the command executed (#158)
k8s_exec now returns command return code in output.

Fixes: #122

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-07-23 10:52:26 +05:30
Abhijeet Kasurde
6c059bd2bc helm_plugin and helm_plugin_info: new module (#154)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-07-22 09:14:23 +05:30
LucasBoisserie
3e971e0ad3 Create ns with helm (#157)
Added support `--create-namespace` in helm module.
2020-07-11 08:45:22 +05:30
Will Thames
e3223a8f60 Ensure check mode results are as expected
check_mode with wait updates the result based on the existing resource
which won't change with check_mode, so returns incorrect results.
Only run the wait checks in non check_mode (this also avoids the issue
of waiting for resource creation that will never happen in check mode)
2020-07-08 21:47:23 +10:00
Will Thames
61c33724f3 Turn on flake8 checks in molecule tests 2020-06-09 19:24:37 +10:00
Abhijeet Kasurde
18dfb687e6 Handle set object retrieved from lookup plugin (#118)
api_groups is returned as "dict_keys()" which k8s lookip plugin does not handle.
Typecasting with list make it available to default callback plugin.
2020-06-05 12:18:57 +05:30
Will Thames
aa70416ae7 Fix scale wait and add tests
Move wait logic out of raw and into common and use that
logic in scale

Fix a few broken wait condition cases highlighted by scaling
up and down

Move scale-related tests into dedicated test task file

Additional service related tests
2020-05-29 23:38:30 +10:00
Will Thames
beebe98ce6 Fix scale wait and add tests
Move wait logic out of raw and into common and use that
logic in scale

Fix a few broken wait condition cases highlighted by scaling
up and down

Move scale-related tests into dedicated test task file

Additional service related tests
2020-05-22 12:39:43 +10:00
Will Thames
00200cf917 Add test for openshift apply bug
Fails using 0.11.0
2020-05-21 12:39:04 +10:00
Fabian von Feilitzsch
2f7b55270d Merge pull request #35 from willthames/wait_conditions
Make deployments and daemonsets wait for pods to be ready
2020-05-19 13:38:35 -04:00
Fabian von Feilitzsch
9ccec43c6e Merge pull request #84 from willthames/k8s_apply_check_mode_fix
K8s apply check mode fix
2020-05-15 12:58:40 -04:00
Will Thames
35ffd0e431 Improve k8s Deployment and Daemonset wait conditions
Ensure that Deployments and Daemonsets properly await
all replicas to be available. Correctly handles the
subtle edge case when a service account no longer exists.

Note that this will dramatically slow Daemonset updates
2020-05-15 09:24:35 +10:00
Jeff Geerling
b21494ab23 Merge pull request #61 from LucasBoisserie/helm_cli
Add helm, helm_info, and helm_repository modules
2020-05-04 11:34:15 -05:00
Will Thames
34137c40c2 Fix apply patching results in check mode
apply_object returns only the patch - we need to actually
apply the patch to the existing object.

Fixes ansible/ansible#66780
2020-05-04 18:48:13 +10:00
Will Thames
a23d454365 Add failing test for service in check mode 2020-05-04 16:24:51 +10:00
Jeff Geerling
4de52c5a98 Merge pull request #81 from geerlingguy/76-rename-repo
Fixes #76: Rename repository to community.kubernetes.
2020-04-29 17:36:18 -05:00
Jeff Geerling
130ed49019 Fixes #76: Rename repository to community.kubernetes. 2020-04-29 17:23:02 -05:00
LucasBoisserie
1a23994448 Add helm_repository module and fix review suggestion 2020-04-25 12:24:26 +02:00
LucasBoisserie
e89aa1c692 Fix englist grammar errors and rename modules to helm and helm_info 2020-04-23 16:29:34 +02:00
LucasBoisserie
438a30bd8e Remove Helm 2 support and add tests for helm_cli_info 2020-04-23 15:52:12 +02:00
LucasBoisserie
2e1b0f6817 t# This is a combination of 2 commits.
Add requested changes for helm
2020-04-23 15:52:12 +02:00
LucasBoisserie
c36a2d50af increase timeout for waiter 2020-04-23 15:52:12 +02:00