Skip to content

irbekrm/istio-csr

 
 

Repository files navigation

istio-csr

cert-manager-istio-csr is an agent which allows for istio workload and control plane components to be secured using cert-manager. Certificates facilitating mTLS, inter and intra cluster, will be signed, delivered and renewed using cert-manager issuers.

⚠️ Currently supports istio versions v1.7+ ⚠️ Currently supports cert-manager versions v1.3+


Installation

Firstly, cert-manager must be installed in your cluster. An issuer must be configured, which will be used to sign your certificate workloads, as well a ready Certificate to serve istiod. Example Issuer and istiod Certificate configuration can be found in ./hack/demo/cert-manager-bootstrap-resources.yaml.

Next, install the cert-manager-istio-csr into the cluster, configured to use the Issuer deployed. The Issuer must reside in the same namespace as that configured by -c, --certificate-namespace, which is istio-system by default.

$ helm repo add jetstack https://charts.jetstack.io
$ helm repo update
$ helm install -n cert-manager cert-manager-istio-csr jetstack/cert-manager-istio-csr

All helm value options can be found in here.

If you are running Openshift, prepare the cluster for Istio. Follow instructions from Istio platform setup guide

Finally, install istio. Istio must be installed using the IstioOperator configuration changes within ./hack/istio-config-x.yaml. For OpenShift set the profile as --set profile=openshift

These changes are required in order for the CA Server to be disabled in istiod, ensure istio workloads request certificates from the cert-manager agent, and the istiod certificates and keys are mounted in from the Certificate created earlier.

How

The cert-manager istio agent implements the gRPC istio certificate service, which authenticates, authorizes, and signs incoming certificate signing requests from istio workloads. This matches the behaviour of istiod in a typical installation, however enables these certificates to be signed through cert-manager.


Testing

To run the end to end tests, run;

$ make e2e

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Go 86.7%
  • Python 5.7%
  • Shell 3.9%
  • Makefile 2.4%
  • Other 1.3%