At this stage you should have already configured Venafi Control Plane, created or have access to a kubernetes cluster and have deployed cert manager and other components using venctl
In this part of the workshop, you will create a cert manager cluster issuer based on the Venafi Enhanced Issuer You will create the following
- venafi cloud credential
- venafi cloud connection
- venafi issuer
Find and take a note of your VaaS API Key
Create file venafi-cloud-credentials.yaml
under folder venafi-install
. Replace YOUR-VAAS-API-KEY-HERE
with your api key
apiVersion: v1
kind: Secret
metadata:
name: venafi-cloud-credentials
namespace: venafi
stringData:
venafi-cloud-key: YOUR-VAAS-API-KEY-HERE
Create venafi-cloud-connection.yaml
under folder venafi-install
apiVersion: jetstack.io/v1alpha1
kind: VenafiConnection
metadata:
name: venafi-connection
namespace: venafi
spec:
vaas:
# url: https://venafi.example.com/vedsdk
apiKey:
- secret:
name: venafi-cloud-credentials
fields: ["venafi-cloud-key"]
The following RBAC rules are required for the components to acquire the needed access. Also Certificate policy for automatic approvals
Find venafi-connection-rbac.yaml
under folder venafi-install
. This is already created
Find cert-policy-and-rbac.yaml
under folder venafi-install
. This is already created
Create venafi-cloud-privateca-cluster-issuer.yaml
under folder venafi-install
Observe spec.zone zone: "app-a-builtin\\builtin-ca-issuing-template"
it's a combination of the application name and the issuing template. Please update if you have created differnet application or issuing policy name.
Also note that this is a Venafi Enhanced Issuer
apiVersion: jetstack.io/v1alpha1
kind: VenafiClusterIssuer
metadata:
name: venafi-privateca-cluster-issuer
spec:
venafiConnectionName: venafi-connection
zone: "app-a-builtin\\builtin-ca-issuing-template"
kubectl -n venafi apply -f venafi-install/cert-policy-and-rbac.yaml
kubectl -n venafi apply -f venafi-install/venafi-connection-rbac.yaml
kubectl -n venafi apply -f venafi-install/venafi-cloud-credentials.yaml
kubectl -n venafi apply -f venafi-install/venafi-cloud-connection.yaml
kubectl -n venafi apply -f venafi-install/venafi-cloud-privateca-cluster-issuer.yaml
Check if the clusterissuer is Ready
$ kubectl get venaficlusterissuers.jetstack.io venafi-privateca-cluster-issuer
NAME READY REASON MESSAGE LASTTRANSITION OBSERVEDGENERATION GENERATION AGE
venafi-privateca-cluster-issuer True Checked Succeeded checking the issuer 114s 1 1 115s