Add upgrade notes for v0.6

Signed-off-by: James Munnelly <james@munnelly.eu>
This commit is contained in:
James Munnelly 2019-01-16 15:38:14 +00:00
parent ddff78f011
commit 2333e8a195
2 changed files with 123 additions and 17 deletions

View File

@ -16,20 +16,28 @@ CLI.
Before upgrading, please read the relevant instructions at the links below
for your from and to version.
Once you have read the relevant notes and taken any appropriate actions, you
can begin the upgrade process like so - replacing ``<release_name>`` with the
name of your Helm release for cert-manager (usually this is ``cert-manager``):
Once you have read the relevant upgrading notes and taken any appropriate
actions, you can begin the upgrade process like so - replacing
``<release_name>`` with the name of your Helm release for cert-manager (usually
this is ``cert-manager``) and replacing ``<version>`` with the
version number you want to install:
.. code:: shell
# Install the cert-manager CustomResourceDefinition resources before
# upgrading the Helm chart
$ kubectl apply \
-f https://raw.githubusercontent.com/jetstack/cert-manager/<version>/deploy/manifests/00-crds.yaml
# Ensure the local Helm chart repository cache is up to date
$ helm repo update
$ kubectl apply \
-f https://raw.githubusercontent.com/jetstack/cert-manager/${VERSION}/deploy/manifests/00-crds.yaml
# If you are upgrading from v0.5 or below, you should manually add this
# label to your cert-manager namespace to ensure the `webhook component`_
# can provision correctly.
$ kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true
$ helm upgrade --version ${VERSION} <release_name> stable/cert-manager
$ helm upgrade --version <version> <release_name> stable/cert-manager
This will upgrade you to the latest version of cert-manager, as listed in the
`official Helm charts repository`_.
@ -48,19 +56,18 @@ can upgrade them in a similar way to how you first installed them.
for your from and to version.
Once you have read the relevant notes and taken any appropriate actions, you
can begin the upgrade process like so - replacing ``${VERSION}`` with the
can begin the upgrade process like so - replacing ``<version>`` with the
version number you want to install:
.. code:: shell
$ kubectl apply \
-f https://raw.githubusercontent.com/jetstack/cert-manager/${VERSION}/deploy/manifests/00-crds.yaml
# Ensure resource validation is disabled on the cert-manager namespace
# If you are upgrading from v0.5 or below, you should manually add this
# label to your cert-manager namespace to ensure the `webhook component`_
# can provision correctly.
$ kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true
$ kubectl apply \
-f https://raw.githubusercontent.com/jetstack/cert-manager/${VERSION}/deploy/manifests/cert-manager.yaml
-f https://raw.githubusercontent.com/jetstack/cert-manager/<version>/deploy/manifests/cert-manager.yaml
.. toctree::
:maxdepth: 1

View File

@ -2,8 +2,107 @@
Upgrading from v0.5 to v0.6
===========================
.. todo::
Describe additional ``kubectl apply`` step
.. warning::
If you are upgrading from a release older than v0.5, please read the
`Upgrading from older versions using Helm`_ note at the bottom of this
document!
.. todo::
Adding additional notes about upgrading from v0.4
The upgrade process from v0.5 to v0.6 should be fairly seamless for most users.
As part of the new release, we have changed how we ship the
CustomResourceDefinition resources that cert-manager needs in order to operate
(as well as introducing two **new** CRD types).
Depending on the way you have installed cert-manager in the past, your upgrade
process will slightly vary:
Upgrading with the Helm chart
=============================
If you have previously deployed cert-manager v0.5 using the Helm installation
method, you will now need to perform one extra step before upgrading.
Due to issues with the way Helm handles CRD resources in Helm charts, we have
now moved the installation of these resources into a separate YAML manifest
that must be installed with ``kubectl apply`` before upgrading the chart.
You can follow the :doc:`regular upgrade guide </admin/upgrading/index>` as
usual in order to upgrade from v0.5 to v0.6.
Upgrading with static manifests
===============================
The static manifests have moved into the ``deploy/manifests`` directory for
this release.
We now also no longer ship different manifests for different configurations, in
favour of a single ``cert-manager.yaml`` file which should work for all
Kubernetes clusters from Kubernetes v1.9 onwards.
You can follow the :doc:`regular upgrade guide </admin/upgrading/index>` as
usual in order to upgrade from v0.5 to v0.6.
Upgrading from older versions using Helm
========================================
If you are upgrading from a version **older than v0.5** and
**have installed with Helm**, you will need to perform a fresh installation of
cert-manager due to issues with Helm. This will involve the
**removal of all cert-manager custom resources**. This **will not** delete the
Secret resources being used to serve your websites with.
Before upgrading you will need to:
1. Backup all Certificate, Issuer and ClusterIssuer resources:
.. code-block:: shell
$ kubectl get certificate,issuer,clusterissuer -o yaml --all-namespaces > cert-manager-backup.yaml
2. Delete the existing cert-manager Helm release (replacing 'cert-manager' with
the name of your Helm release):
.. code-block:: shell
# Uninstall the Helm chart
$ helm delete --purge cert-manager
# Ensure the cert-manager CustomResourceDefinition resources do not exist:
$ kubectl delete crd \
certificates.certmanager.k8s.io \
issuers.certmanager.k8s.io \
clusterissuers.certmanager.k8s.io
3. Perform a fresh install (as per the
:doc:`installation guide </getting-started/2-installing>`):
.. code-block:: shell
# Install the cert-manager CRDs
$ kubectl apply \
-f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.6/deploy/manifests/00-crds.yaml
# Update helm repository cache
$ helm repo update
# Install cert-manager
$ helm install \
--name cert-manager \
--namespace cert-manager \
--version v0.6.0 \
stable/cert-manager
4. Restore the previously backed up cert-manager resources:
.. code-block:: shell
$ kubectl apply -f cert-manager-backup.yaml
5. Verify that your Issuers and Certificate resources are 'Ready':
.. code-block:: shell
$ kubectl get clusterissuer,issuer,certificates --all-namespaces
NAMESPACE NAME READY SECRET AGE
cert-manager cert-manager-webhook-ca True cert-manager-webhook-ca 1m
cert-manager cert-manager-webhook-webhook-tls True cert-manager-webhook-webhook-tls 1m
example-com example-com-tls True example-com-tls 11s