Skip to content

Commit c48fb67

Browse files
authored
Merge pull request #5 from hickeyma/fix/readme
Update README to be more concise
2 parents 8f4dcf1 + 341185e commit c48fb67

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

README.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ mapkubeapis is a simple Helm plugin which is designed to update Helm release met
1212
- Helm client with `mapkubeapis` plugin installed on the same system
1313
- Access to the cluster(s) that Helm manages. This access is similar to `kubectl` access using [kubeconfig files](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/).
1414
The `--kubeconfig`, `--kube-context` and `--namespace` flags can be used to set the kubeconfig path, kube context and namespace context to override the environment configuration.
15+
- If you try and upgrade a release with unsupported APIs then the upgrade will fail. This is ok in Helm v3 as it will not generate a failed release for Helm. However, Helm v2 does produce a failed release. This needs to be removed before running the plugin on the release. The command to remove the failed release version is: `kubectl delete configmap/secret <release_name>.v<failed_version_number> --namespace <tiller_namespace>`
1516

1617
## Install
1718

@@ -56,7 +57,7 @@ Flags:
5657
Example output:
5758

5859
```console
59-
$ helm mapkubeapis oldapi-chrt --namespace test
60+
$ helm mapkubeapis oldapi-chrt --namespace kube-system --v2
6061
2020/04/17 13:05:45 Release 'v2-oldapi' will be checked for deprecated or removed Kubernetes APIs and will be updated if necessary to supported API versions.
6162
2020/04/17 13:05:45 Get release 'v2-oldapi' latest version.
6263
2020/04/17 13:05:45 Check release 'v2-oldapi' for deprecated or removed APIs...
@@ -84,16 +85,17 @@ kind: Ingress"
8485

8586
## Background to the issue
8687

87-
Kubernetes is an API-driven system and the API evolves over time to reflect the evolving understanding of the problem space. This is common practice across systems and their APIs. An important part of evolving APIs is a good deprecation policy and process to inform users of how changes to APIs are implemented. In other words, consumers of your API need to know in advance in what release an API will be removed or changed. This removes the element of surprise and unexpected breaking changes to the consumers.
88+
Kubernetes is an API-driven system and the API evolves over time to reflect the evolving understanding of the problem space. This is common practice across systems and their APIs. An important part of evolving APIs is a good deprecation policy and process to inform users of how changes to APIs are implemented. In other words, consumers of your API need to know in advance and in what release an API will be removed or changed. This removes the element of surprise and breaking changes to consumers.
8889

89-
The [Kubernetes deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/) documents how Kubernetes handles the changes to its API versions. The policy for deprecation states the timeframe that API versions will be supported following a deprecation announcement. It is therefore important to be aware of deprecation announcements to mimimize the effect to you once an API version goes out of support.
90-
This is an example of [the removal of deprecated API versions in Kubernetes 1.16](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/).
90+
The [Kubernetes deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/) documents how Kubernetes handles the changes to its API versions. The policy for deprecation states the timeframe that API versions will be supported following a deprecation announcement. It is therefore important to be aware of deprecation announcements and know when API versions will be removed, to help mimimize the effect.
9191

92-
Helm chart templates uses Kubernetes `API version` and `Kind` properties when defining Kuberentes resources, similar to manifest files. This therefore means that Helm users and chart maintainers need to be aware when Kubvernetes API versions have been deprecated and in what Kubernetes version they will removed.
92+
This is an example of an announcement [for the removal of deprecated API versions in Kubernetes 1.16](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/) and was advertised a few months prior to the release. These API versions would have been announced for deprecation prior to this again. This shows that there is a good policy in place which informs consumers of the API versions.
9393

94-
This is not such a big issue when installing a chart as it will just fail if the chart API versions are no longer supported. In this situation, you then need to get the latest chart version or update the chart yourself.
94+
Helm chart templates uses Kubernetes `API version` and `Kind` properties when defining Kuberentes resources, similar to manifest files. This means that Helm users and chart maintainers need to be aware when Kubernetes API versions have been deprecated and in what Kubernetes version they will removed.
9595

96-
This does however become a problem for Helm releases that are already deployed with APIs that are no longer supported. If the Kubernetes cluster (containing such releases) is updated to a version where the APIs are removed, then Helm becomes unable to manage such releases anymore. It does not matter if the chart being passed in the upgrade contains the supported API versions.
96+
This is not a big issue when installing a chart as it will just fail if the chart API versions are no longer supported. In this situation, you then need to get the latest chart version (if the maintainer update it) or update the chart yourself.
97+
98+
This does however become a problem for Helm releases that are already deployed with APIs that are no longer supported. If the Kubernetes cluster (containing such releases) is updated to a version where the APIs are removed, then Helm becomes unable to manage such releases anymore. It does not matter if the chart being passed in the upgrade contains the supported API versions or not.
9799

98100
It fails with an error similar to the following:
99101

plugin.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: "mapkubeapis"
2-
version: "0.0.6"
2+
version: "0.0.7"
33
usage: "Map release deprecated Kubernetes APIs in-place"
44
description: "Map release deprecated Kubernetes APIs in-place"
55
command: "$HELM_PLUGIN_DIR/bin/mapkubeapis"

0 commit comments

Comments
 (0)