Documentation ¶
Index ¶
- Variables
- func Bind()
- func DeleteClusters()
- func DeployConsumerCluster(clusterName string)
- func DeployKlutchClusters()
- func DeployManagementKindCluster(clusterName string, hostIP string, ingressPort string)
- func WaitForKindCluster(k8s *k8s.KubeClient)
- type KlutchManager
- func (k *KlutchManager) DeployBindBackend(hostIP string)
- func (k *KlutchManager) DeployCrossplaneComponents()
- func (k *KlutchManager) DeployCrossplaneHelmChart()
- func (k *KlutchManager) DeployDex(hostIP string, ingressPort string)
- func (k *KlutchManager) DeployIngressNginx()
- func (k *KlutchManager) DeployKlutchCrossplaneConfigPkg()
- func (k *KlutchManager) DeployKlutchExportTemplates()
- func (k *KlutchManager) DeployProviderKubernetes()
- func (k *KlutchManager) DeployProviderKubernetesConfig()
- func (k *KlutchManager) WaitForBindBackend()
- func (k *KlutchManager) WaitForCrossplaneHelmChart()
- func (k *KlutchManager) WaitForDex()
- func (k *KlutchManager) WaitForIngressNginx()
- func (k *KlutchManager) WaitForKlutchCrossplaneConfigPkg()
- func (k *KlutchManager) WaitForProviderKubernetes()
- type ManagementClusterInfo
- type NamespacedName
Constants ¶
This section is empty.
Variables ¶
var (
PortFlag int = 8080
)
Functions ¶
func DeleteClusters ¶
func DeleteClusters()
func DeployConsumerCluster ¶
func DeployConsumerCluster(clusterName string)
DeployConsumerCluster deploys a simple kind cluster with the given name if it doesn't already exists.
func DeployKlutchClusters ¶
func DeployKlutchClusters()
DeployKlutchClusters deploys the central management cluster with all Klutch components, and a consumer cluster.
func DeployManagementKindCluster ¶
DeployManagementKindCluster creates a new kind cluster configured to act as a local central management cluster. It enables the ingress feature for the provided port and configures the k8s API Server to listen on the provided IP.
func WaitForKindCluster ¶
func WaitForKindCluster(k8s *k8s.KubeClient)
Types ¶
type KlutchManager ¶
type KlutchManager struct {
// contains filtered or unexported fields
}
func NewKlutchManager ¶
func NewKlutchManager() *KlutchManager
func (*KlutchManager) DeployBindBackend ¶
func (k *KlutchManager) DeployBindBackend(hostIP string)
Deploys dex and the klutch-bind backend.
func (*KlutchManager) DeployCrossplaneComponents ¶
func (k *KlutchManager) DeployCrossplaneComponents()
func (*KlutchManager) DeployCrossplaneHelmChart ¶
func (k *KlutchManager) DeployCrossplaneHelmChart()
func (*KlutchManager) DeployDex ¶
func (k *KlutchManager) DeployDex(hostIP string, ingressPort string)
func (*KlutchManager) DeployIngressNginx ¶
func (k *KlutchManager) DeployIngressNginx()
DeployIngressNginx applies the ingress-nginx manifests and an additional configMap to configure it. The config increases the request header size limit to cope with bind's header sizes becoming very large.
func (*KlutchManager) DeployKlutchCrossplaneConfigPkg ¶
func (k *KlutchManager) DeployKlutchCrossplaneConfigPkg()
Deploys the a8s APIs (CRDs and Compositions). Currently uses the `crossplane xpkg` method because the manifests are closed source. Once they are open source, the manifests can be referred directly via URL. This would avoid the dependency on the crossplane CLI, which is poorly featured.
func (*KlutchManager) DeployKlutchExportTemplates ¶
func (k *KlutchManager) DeployKlutchExportTemplates()
Applies APIServiceExportTemplates for the a8s crossplane APIs.
func (*KlutchManager) DeployProviderKubernetes ¶
func (k *KlutchManager) DeployProviderKubernetes()
func (*KlutchManager) DeployProviderKubernetesConfig ¶
func (k *KlutchManager) DeployProviderKubernetesConfig()
Deploys the Kubernetes Provider Config
func (*KlutchManager) WaitForBindBackend ¶
func (k *KlutchManager) WaitForBindBackend()
Waits for the klutch-bind backend deployment to be ready. Note: the manifests contain an init-container which waits for dex to be ready, because the backend requires dex to be up and running in order to start. This avoids delays/complications due to crash loop backoffs.
func (*KlutchManager) WaitForCrossplaneHelmChart ¶
func (k *KlutchManager) WaitForCrossplaneHelmChart()
func (*KlutchManager) WaitForDex ¶
func (k *KlutchManager) WaitForDex()
Waits for the dex deployment to be ready.
func (*KlutchManager) WaitForIngressNginx ¶
func (k *KlutchManager) WaitForIngressNginx()
func (*KlutchManager) WaitForKlutchCrossplaneConfigPkg ¶
func (k *KlutchManager) WaitForKlutchCrossplaneConfigPkg()
func (*KlutchManager) WaitForProviderKubernetes ¶
func (k *KlutchManager) WaitForProviderKubernetes()
type ManagementClusterInfo ¶
type ManagementClusterInfo struct { Host string `yaml:"host"` IngressPort string `yaml:"ingressPort"` }
ManagementClusterInfo contains information about the created management cluster.
type NamespacedName ¶
type NamespacedName = types.NamespacedName