Documentation ¶
Index ¶
- func GetCSVBase(params *CSVBaseParams) *csvv1alpha1.ClusterServiceVersion
- func GetClusterPermissions() []rbacv1.PolicyRule
- func GetClusterRole() rbacv1.ClusterRole
- func GetClusterRoleBinding(namespace string) rbacv1.ClusterRoleBinding
- func GetDeploymentCliDownloads(params *DeploymentOperatorParams) appsv1.Deployment
- func GetDeploymentOperator(params *DeploymentOperatorParams) appsv1.Deployment
- func GetDeploymentSpecCliDownloads(params *DeploymentOperatorParams) appsv1.DeploymentSpec
- 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() v1.Service
- func GetStdContainerSecurityContext() *v1.SecurityContext
- func GetStdPodSecurityContext() *v1.PodSecurityContext
- 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 GetDeploymentCliDownloads ¶ added in v1.5.0
func GetDeploymentCliDownloads(params *DeploymentOperatorParams) appsv1.Deployment
func GetDeploymentOperator ¶ added in v1.2.0
func GetDeploymentOperator(params *DeploymentOperatorParams) appsv1.Deployment
func GetDeploymentSpecCliDownloads ¶ added in v1.5.0
func GetDeploymentSpecCliDownloads(params *DeploymentOperatorParams) appsv1.DeploymentSpec
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.
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 GetStdContainerSecurityContext ¶ added in v1.7.0
func GetStdContainerSecurityContext() *v1.SecurityContext
func GetStdPodSecurityContext ¶ added in v1.7.0
func GetStdPodSecurityContext() *v1.PodSecurityContext
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 CliDownloadsImage string KvUiPluginImage string ImagePullPolicy string ConversionContainer string VmwareContainer string VirtIOWinContainer string Smbios string Machinetype string HcoKvIoVersion string KubevirtVersion string CdiVersion string CnaoVersion string SspVersion string TtoVersion string HppoVersion string Env []corev1.EnvVar }