diff --git a/pkg/cluster/pki.go b/pkg/cluster/pki.go
index 325dede9f102e13479c483a174ce43209a8b8137..9590ff3668799d6b913fbe9aa4dd31b5dcac89ea 100644
--- a/pkg/cluster/pki.go
+++ b/pkg/cluster/pki.go
@@ -6,42 +6,42 @@ import (
 	"os"
 	"path/filepath"
 
-	"forge.tedomum.net/acides/hepto/hepto/pkg/pki"
+	"forge.tedomum.net/acides/hepto/hepto/pkg/pekahi"
 	"github.com/sirupsen/logrus"
 )
 
 // Cluster PKI is made of three different PKIs
 type ClusterPKI struct {
 	// Signs services exposed over the cluster
-	Services *pki.PKI `json:"services"`
+	Services *pekahi.PKI `json:"services"`
 	// Signs kubelet client certificates (master)
-	Kubelet *pki.PKI `json:"kubelet"`
+	Kubelet *pekahi.PKI `json:"kubelet"`
 	// Signs apiserver client certificates (nodes and controller)
-	API *pki.PKI `json:"api"`
+	API *pekahi.PKI `json:"api"`
 }
 
 // Node certs
 type NodeCerts struct {
 	// Certificate for exposing the kubelet service
-	Service *pki.Certificate `json:"service"`
+	Service *pekahi.Certificate `json:"service"`
 	// Node certificate for accessing the apiserver
-	API *pki.Certificate `json:"api"`
+	API *pekahi.Certificate `json:"api"`
 }
 
 // Master certs
 type MasterCerts struct {
 	// Certificate for exposing the apiserver
-	Service *pki.Certificate
+	Service *pekahi.Certificate
 	// Certificate for signing tokens
-	Tokens *pki.Certificate
+	Tokens *pekahi.Certificate
 	// Certificate for authenticating against kubelets
-	Kubelet *pki.Certificate
+	Kubelet *pekahi.Certificate
 	// Service certificate for the controller manager
-	Controllers *pki.Certificate
+	Controllers *pekahi.Certificate
 	// API client certificate for the controller manager
-	ControllersClient *pki.Certificate
+	ControllersClient *pekahi.Certificate
 	// API client certificate for the scheduler
-	SchedulerClient *pki.Certificate
+	SchedulerClient *pekahi.Certificate
 }
 
 // Merge PKI
@@ -63,7 +63,7 @@ func (n *ClusterPKI) Merge(other *ClusterPKI) bool {
 }
 
 // Merge a single node or master certificate
-func mergeCert(local *pki.Certificate, remote *pki.Certificate) bool {
+func mergeCert(local *pekahi.Certificate, remote *pekahi.Certificate) bool {
 	change := false
 	// Import CSR to master for signing
 	if local.CSR == nil && remote.CSR != nil {
@@ -91,15 +91,15 @@ func NewClusterPKI(path string) (*ClusterPKI, error) {
 	if err != nil {
 		return nil, err
 	}
-	servicesCA, err := pki.GetPKI(filepath.Join(path, "services"))
+	servicesCA, err := pekahi.GetPKI(filepath.Join(path, "services"))
 	if err != nil {
 		return nil, err
 	}
-	kubeletCA, err := pki.GetPKI(filepath.Join(path, "kubelet"))
+	kubeletCA, err := pekahi.GetPKI(filepath.Join(path, "kubelet"))
 	if err != nil {
 		return nil, err
 	}
-	apiserverCA, err := pki.GetPKI(filepath.Join(path, "api"))
+	apiserverCA, err := pekahi.GetPKI(filepath.Join(path, "api"))
 	if err != nil {
 		return nil, err
 	}
@@ -112,20 +112,20 @@ func NewNodeCerts(path string, nodeName string) (*NodeCerts, error) {
 		return nil, err
 	}
 	// Service certificate
-	serviceCert, err := pki.GetCertificate(filepath.Join(path, "service"))
+	serviceCert, err := pekahi.GetCertificate(filepath.Join(path, "service"))
 	if err != nil {
 		return nil, err
 	}
-	err = serviceCert.MakeCSR(pki.NewServerTemplate([]string{nodeName}, []net.IP{}))
+	err = serviceCert.MakeCSR(pekahi.NewServerTemplate([]string{nodeName}, []net.IP{}))
 	if err != nil {
 		return nil, err
 	}
 	// API certificate
-	apiClientCert, err := pki.GetCertificate(filepath.Join(path, "api"))
+	apiClientCert, err := pekahi.GetCertificate(filepath.Join(path, "api"))
 	if err != nil {
 		return nil, err
 	}
-	err = apiClientCert.MakeCSR(pki.NewClientTemplate("system:nodes:"+nodeName, "system:nodes"))
+	err = apiClientCert.MakeCSR(pekahi.NewClientTemplate("system:nodes:"+nodeName, "system:nodes"))
 	if err != nil {
 		return nil, err
 	}
@@ -141,52 +141,52 @@ func NewMasterCerts(path string, ip net.IP) (*MasterCerts, error) {
 		return nil, err
 	}
 	// Service certificate
-	serviceCert, err := pki.GetCertificate(filepath.Join(path, "service"))
+	serviceCert, err := pekahi.GetCertificate(filepath.Join(path, "service"))
 	if err != nil {
 		return nil, err
 	}
-	err = serviceCert.MakeCSR(pki.NewServerTemplate([]string{"apiserver"}, []net.IP{ip}))
+	err = serviceCert.MakeCSR(pekahi.NewServerTemplate([]string{"apiserver"}, []net.IP{ip}))
 	if err != nil {
 		return nil, err
 	}
 	// Tokens key
-	tokenKey, err := pki.GetCertificate(filepath.Join(path, "tokens"))
+	tokenKey, err := pekahi.GetCertificate(filepath.Join(path, "tokens"))
 	if err != nil {
 		return nil, err
 	}
 	// Kubelet certificate
-	kubeletClientCert, err := pki.GetCertificate(filepath.Join(path, "kubelet"))
+	kubeletClientCert, err := pekahi.GetCertificate(filepath.Join(path, "kubelet"))
 	if err != nil {
 		return nil, err
 	}
-	err = kubeletClientCert.MakeCSR(pki.NewClientTemplate("apiserver", ""))
+	err = kubeletClientCert.MakeCSR(pekahi.NewClientTemplate("apiserver", ""))
 	if err != nil {
 		return nil, err
 	}
 	// Controller manager certificate
-	controllersCert, err := pki.GetCertificate(filepath.Join(path, "kubelet"))
+	controllersCert, err := pekahi.GetCertificate(filepath.Join(path, "kubelet"))
 	if err != nil {
 		return nil, err
 	}
-	err = controllersCert.MakeCSR(pki.NewServerTemplate([]string{"controllers"}, []net.IP{ip}))
+	err = controllersCert.MakeCSR(pekahi.NewServerTemplate([]string{"controllers"}, []net.IP{ip}))
 	if err != nil {
 		return nil, err
 	}
 	// Controller manager API client certificate
-	controllersClientCert, err := pki.GetCertificate(filepath.Join(path, "controllers-client"))
+	controllersClientCert, err := pekahi.GetCertificate(filepath.Join(path, "controllers-client"))
 	if err != nil {
 		return nil, err
 	}
-	err = controllersClientCert.MakeCSR(pki.NewClientTemplate("system:kube-controller-manager", ""))
+	err = controllersClientCert.MakeCSR(pekahi.NewClientTemplate("system:kube-controller-manager", ""))
 	if err != nil {
 		return nil, err
 	}
 	// Scheduler API client certificate
-	schedulerClientCert, err := pki.GetCertificate(filepath.Join(path, "scheduler-client"))
+	schedulerClientCert, err := pekahi.GetCertificate(filepath.Join(path, "scheduler-client"))
 	if err != nil {
 		return nil, err
 	}
-	err = schedulerClientCert.MakeCSR(pki.NewClientTemplate("system:kube-scheduler", ""))
+	err = schedulerClientCert.MakeCSR(pekahi.NewClientTemplate("system:kube-scheduler", ""))
 	if err != nil {
 		return nil, err
 	}
@@ -200,7 +200,7 @@ func NewMasterCerts(path string, ip net.IP) (*MasterCerts, error) {
 	}, nil
 }
 
-func signCert(p *pki.PKI, c *pki.Certificate, template *x509.Certificate) {
+func signCert(p *pekahi.PKI, c *pekahi.Certificate, template *x509.Certificate) {
 	if c.CSR != nil && c.Cert == nil {
 		logrus.Info("signing certificate ", c.CSR.Subject.String())
 		err := p.Sign(c, template)
@@ -211,14 +211,14 @@ func signCert(p *pki.PKI, c *pki.Certificate, template *x509.Certificate) {
 }
 
 func (p *ClusterPKI) SignNodeCerts(name string, n *NodeCerts) {
-	signCert(p.Services, n.Service, pki.NewServerTemplate([]string{name}, []net.IP{}))
-	signCert(p.API, n.API, pki.NewClientTemplate("system:node:"+name, "system:nodes"))
+	signCert(p.Services, n.Service, pekahi.NewServerTemplate([]string{name}, []net.IP{}))
+	signCert(p.API, n.API, pekahi.NewClientTemplate("system:node:"+name, "system:nodes"))
 }
 
 func (p *ClusterPKI) SignMasterCerts(m *MasterCerts) {
-	signCert(p.Services, m.Service, pki.NewServerTemplate(m.Service.CSR.DNSNames, m.Service.CSR.IPAddresses))
-	signCert(p.Kubelet, m.Kubelet, pki.NewClientTemplate(m.Kubelet.CSR.Subject.CommonName, ""))
-	signCert(p.Services, m.Controllers, pki.NewServerTemplate(m.Controllers.CSR.DNSNames, m.Controllers.CSR.IPAddresses))
-	signCert(p.API, m.ControllersClient, pki.NewClientTemplate(m.ControllersClient.CSR.Subject.CommonName, ""))
-	signCert(p.API, m.SchedulerClient, pki.NewClientTemplate(m.SchedulerClient.CSR.Subject.CommonName, ""))
+	signCert(p.Services, m.Service, pekahi.NewServerTemplate(m.Service.CSR.DNSNames, m.Service.CSR.IPAddresses))
+	signCert(p.Kubelet, m.Kubelet, pekahi.NewClientTemplate(m.Kubelet.CSR.Subject.CommonName, ""))
+	signCert(p.Services, m.Controllers, pekahi.NewServerTemplate(m.Controllers.CSR.DNSNames, m.Controllers.CSR.IPAddresses))
+	signCert(p.API, m.ControllersClient, pekahi.NewClientTemplate(m.ControllersClient.CSR.Subject.CommonName, ""))
+	signCert(p.API, m.SchedulerClient, pekahi.NewClientTemplate(m.SchedulerClient.CSR.Subject.CommonName, ""))
 }
diff --git a/pkg/pki/cert.go b/pkg/pekahi/cert.go
similarity index 99%
rename from pkg/pki/cert.go
rename to pkg/pekahi/cert.go
index da7a6cd30324d4119de6f1331ef6daa7bf4a04cf..ba7b60baf32cd64ca853fd62a1fc424286b51e44 100644
--- a/pkg/pki/cert.go
+++ b/pkg/pekahi/cert.go
@@ -1,4 +1,4 @@
-package pki
+package pekahi
 
 import (
 	"crypto"
diff --git a/pkg/pki/io.go b/pkg/pekahi/io.go
similarity index 98%
rename from pkg/pki/io.go
rename to pkg/pekahi/io.go
index 8bb62922cc9dc5dcea0f500fd8e87dd424c03d36..f09171fa8c07b0265a15444d0aa9799213705041 100644
--- a/pkg/pki/io.go
+++ b/pkg/pekahi/io.go
@@ -1,4 +1,4 @@
-package pki
+package pekahi
 
 import (
 	"encoding/pem"
diff --git a/pkg/pki/json.go b/pkg/pekahi/json.go
similarity index 98%
rename from pkg/pki/json.go
rename to pkg/pekahi/json.go
index a9654469bb915bcaa85a74387ef2a3f5eb868885..e4232663b201b28ba18c2a4671d1bbfb772dd9fc 100644
--- a/pkg/pki/json.go
+++ b/pkg/pekahi/json.go
@@ -1,4 +1,4 @@
-package pki
+package pekahi
 
 import (
 	"crypto/x509"
diff --git a/pkg/pki/pki.go b/pkg/pekahi/pki.go
similarity index 97%
rename from pkg/pki/pki.go
rename to pkg/pekahi/pki.go
index 938e8e1c1ccecb09ff16d99a8beafec8648af43e..c9e5dfad41fe6b9db0ea01ac190f3724e573d6e8 100644
--- a/pkg/pki/pki.go
+++ b/pkg/pekahi/pki.go
@@ -1,4 +1,4 @@
-package pki
+package pekahi
 
 import (
 	"path/filepath"
diff --git a/pkg/pki/templates.go b/pkg/pekahi/templates.go
similarity index 99%
rename from pkg/pki/templates.go
rename to pkg/pekahi/templates.go
index 48e7a7ac8d6c522d7a1a09cd912830bcdcc1712d..8e6895cd93ce3aef8a11dc071e5cd53dee870f91 100644
--- a/pkg/pki/templates.go
+++ b/pkg/pekahi/templates.go
@@ -1,4 +1,4 @@
-package pki
+package pekahi
 
 import (
 	"crypto/rand"