Documentation ¶
Index ¶
- func GetCSVBase(params *CSVBaseParams) *csvv1alpha1.ClusterServiceVersion
- func GetClusterPermissions() []rbacv1.PolicyRule
- func GetClusterRole() rbacv1.ClusterRole
- func GetClusterRoleBinding(namespace string) rbacv1.ClusterRoleBinding
- func GetDeploymentOperator(params *DeploymentOperatorParams) appsv1.Deployment
- func GetDeploymentSpecOperator(params *DeploymentOperatorParams) appsv1.DeploymentSpec
- func GetDeploymentSpecWebhook(namespace, image, imagePullPolicy, hcoKvIoVersion string, env []corev1.EnvVar) appsv1.DeploymentSpec
- func GetDeploymentWebhook(namespace, image, imagePullPolicy, hcoKvIoVersion string, env []corev1.EnvVar) appsv1.Deployment
- func GetInstallStrategyBase(params *DeploymentOperatorParams) *csvv1alpha1.StrategyDetailsDeployment
- func GetOperatorCR() *hcov1beta1.HyperConverged
- func GetOperatorCRD(relPath string) *extv1.CustomResourceDefinition
- func GetServiceAccount(namespace string) v1.ServiceAccount
- func GetServiceWebhook(namespace string) v1.Service
- func GetV2VCRD() *extv1beta1.CustomResourceDefinition
- func GetV2VOvirtProviderCRD() *extv1beta1.CustomResourceDefinition
- func InjectVolumesForWebHookCerts(deploy *appsv1.Deployment)
- type CSVBaseParams
- type DeploymentOperatorParams
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetCSVBase ¶ added in v1.0.0
func GetCSVBase(params *CSVBaseParams) *csvv1alpha1.ClusterServiceVersion
GetCSVBase returns a base HCO CSV without an InstallStrategy
func GetClusterPermissions ¶ added in v1.0.0
func GetClusterPermissions() []rbacv1.PolicyRule
func GetClusterRole ¶
func GetClusterRole() rbacv1.ClusterRole
func GetClusterRoleBinding ¶ added in v1.0.0
func GetClusterRoleBinding(namespace string) rbacv1.ClusterRoleBinding
func GetDeploymentOperator ¶ added in v1.2.0
func GetDeploymentOperator(params *DeploymentOperatorParams) appsv1.Deployment
func GetDeploymentSpecOperator ¶ added in v1.2.0
func GetDeploymentSpecOperator(params *DeploymentOperatorParams) appsv1.DeploymentSpec
func GetDeploymentSpecWebhook ¶ added in v1.2.0
func GetDeploymentSpecWebhook(namespace, image, imagePullPolicy, hcoKvIoVersion string, env []corev1.EnvVar) appsv1.DeploymentSpec
Currently we are abusing the pod readiness to signal to OLM that HCO is not ready for an upgrade. This has a lot of side effects, one of this is the validating webhook being not able to receive traffic when exposed by a pod that is not reporting ready=true. This can cause a lot of side effects if not deadlocks when the system reach a status where, for any possible reason, HCO pod cannot be ready and so HCO pod cannot validate any further update or delete request on HCO CR. A proper solution is properly use the readiness probe only to report the pod readiness and communicate status to OLM via conditions once OLM will be ready for: https://github.com/operator-framework/enhancements/blob/master/enhancements/operator-conditions.md in the meanwhile a quick (but dirty!) solution is to expose the same hco binary on two distinct pods: the first one will run only the controller and the second one (almost always ready) just the validating webhook one. A deeper code refactor to produce two distinct binaries is not worth now because we are going to use OLM operator conditions soon. TODO: remove this once we will move to OLM operator conditions
func GetDeploymentWebhook ¶ added in v1.2.0
func GetDeploymentWebhook(namespace, image, imagePullPolicy, hcoKvIoVersion string, env []corev1.EnvVar) appsv1.Deployment
func GetInstallStrategyBase ¶ added in v1.0.0
func GetInstallStrategyBase(params *DeploymentOperatorParams) *csvv1alpha1.StrategyDetailsDeployment
GetInstallStrategyBase returns the basics of an HCO InstallStrategy
func GetOperatorCR ¶ added in v1.0.0
func GetOperatorCR() *hcov1beta1.HyperConverged
func GetOperatorCRD ¶ added in v1.0.0
func GetOperatorCRD(relPath string) *extv1.CustomResourceDefinition
func GetServiceAccount ¶ added in v1.0.0
func GetServiceAccount(namespace string) v1.ServiceAccount
func GetServiceWebhook ¶ added in v1.4.0
func GetV2VCRD ¶ added in v1.0.0
func GetV2VCRD() *extv1beta1.CustomResourceDefinition
TODO: remove once VMware provider is removed from HCO GetV2VCRD creates CRD for v2v VMWare provider
func GetV2VOvirtProviderCRD ¶ added in v1.1.0
func GetV2VOvirtProviderCRD() *extv1beta1.CustomResourceDefinition
TODO: remove once oVirt provider is removed from HCO GetV2VOvirtProviderCRD creates CRD for v2v oVirt provider
func InjectVolumesForWebHookCerts ¶ added in v1.4.0
func InjectVolumesForWebHookCerts(deploy *appsv1.Deployment)
Types ¶
type CSVBaseParams ¶ added in v1.4.0
type DeploymentOperatorParams ¶ added in v1.4.0
type DeploymentOperatorParams struct { Namespace string Image string WebhookImage string ImagePullPolicy string ConversionContainer string VmwareContainer string Smbios string Machinetype string HcoKvIoVersion string KubevirtVersion string CdiVersion string CnaoVersion string SspVersion string NmoVersion string HppoVersion string VMImportVersion string Env []corev1.EnvVar }