Installation
Prerequisites
Before installing, ensure the following prerequisites are met :
-
Have a Kubernetes or OpenShift cluster in a version that’s supported by cert-manager;
-
Have helm on a device with administrative access to the cluster (required to install CRDs);
-
The cluster can either pull images from Internet or a proxy has been set up for registry.evertrust.io;
-
Have access to an Horizon instance in a supported Horizon version.
Install
Install cert-manager
As horizon-issuer is a cert-manager issuer, cert-manager must be installed in the cluster before installing horizon-issuer. If not already installed, head to the Releases section on the cert-manager website and find the latest version.
-
Helm
-
YAML manifests
$ helm install \ cert-manager oci://quay.io/jetstack/charts/cert-manager \ --version <version> \ (1) --namespace cert-manager \ --create-namespace \ --set crds.enabled=true
| 1 | Replace with the version to install. |
For details about configurable settings, head to Artifact Hub.
$ kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<version>/cert-manager.yaml
Replace <version> with the version to install.
Other installation methods (such as cmctl) are available on the cert-manager installation documentation.
Install horizon-issuer
Similarly to cert-manager, we offer either a Helm chart or YAML manifests to install horizon-issuer:
-
Helm
-
YAML manifests
Add the EVERTRUST Helm repository:
$ helm repo add evertrust https://repo.evertrust.io/repository/charts
Then, install the chart:
$ helm install horizon-issuer evertrust/horizon-issuer -- version <version>
|
CRD considerations
|
$ kubectl apply -f https://github.com/evertrust/horizon-issuer/releases/download/<version>/install.yaml
Upgrade
Unless noted otherwise in the below upgrade notes, upgrading horizon-issuer is not expected to break existing behaviors. horizon-issuer having reached 1.0.0, we’ll follow semantic versioning and denote any breaking changes by releasing a new major version.
-
Helm
-
YAML manifests
Update the EVERTRUST Helm repository:
$ helm repo update evertrust
Then, install the chart:
$ helm upgrade horizon-issuer evertrust/horizon-issuer --version <version>
Simply apply the new manifests which should update components:
$ kubectl apply -f https://github.com/evertrust/horizon-issuer/releases/download/<version>/install.yaml
Specific upgrade notes
Upgrade from v0.3 to v1.0
The Helm Chart has been completely reworked to be generated from the YAML manifests. Therefore, many keys in the values.yaml files have changed.
See the reference values.yaml files to check with your local configuration for updates.
Namely:
-
installCRDshas been renamed tocrd.enableand set totrueby default; -
the
imageblock has been moved tomanager.image
Additionally, the already deprecated CRD version v1alpha1 has been removed in favor of the current v1beta1.
Upgrade from v0.2.0 to v0.3.0
In 0.3.0, the CRDs can be managed by the Helm chart itself, similarly to what cert-manager offers. It means that you have two options when upgrading.
Should you decide to manage CRDs automatically through the Helm chart, you’ll need to update existing CRDs before upgrading so that they can be managed by the Helm chart. The following commands are required :
$ kubectl label crd/clusterissuers.horizon.evertrust.io app.kubernetes.io/managed-by=Helm $ kubectl label crd/issuers.horizon.evertrust.io app.kubernetes.io/managed-by=Helm
$ kubectl annotate crd/clusterissuers.horizon.evertrust.io meta.helm.sh/release-name=<horizon-issuer> meta.helm.sh/release-namespace=<horizon-issuer> $ kubectl annotate crd/issuers.horizon.evertrust.io meta.helm.sh/release-name=<horizon-issuer> meta.helm.sh/release-namespace=<horizon-issuer>
Replace replace release-name with your Helm release name and release-namespace with the namespace you’re installing
into.
Upgrade from v0.1.0 to v0.2.0
In 0.2.0, the new CRD version is v1beta1, and v1alpha1 is no longer supported. To migrate from the old version, you
must first upgrade the CRDs:
$ kubectl apply -f https://raw.githubusercontent.com/evertrust/horizon-issuer/v0.2.0/charts/horizon-issuer/crds/horizon.evertrust.io_clusterissuers.yaml $ kubectl apply -f https://raw.githubusercontent.com/evertrust/horizon-issuer/v0.2.0/charts/horizon-issuer/crds/horizon.evertrust.io_issuers.yaml
This will not delete your existing Issuer and ClusterIssuer objects, but will allow you to create resources with the
new v1beta1 version.
After having re-created your issuer objects, you can start the upgrade using Helm :
$ helm upgrade horizon-issuer evertrust/horizon-issuer
Uninstall
-
Helm
-
YAML manifests
Simply uninstall the chart:
$ helm uninstall horizon-issuer
Simply delete the manifests using kubectl:
$ kubectl delete -f https://github.com/evertrust/horizon-issuer/releases/download/<version>/install.yaml
|
Uninstalling horizon-issuer will delete any |