Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

consider NMO as an external operator #737

Merged
merged 1 commit into from
Aug 11, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,16 @@ A unified operator deploying and controlling [KubeVirt](https://github.com/kubev
- [Containerized Data Importer](https://github.com/kubevirt/containerized-data-importer)
- [Scheduling, Scale and Performance](https://github.com/kubevirt/kubevirt-ssp-operator)
- [Cluster Network Addons](https://github.com/kubevirt/cluster-network-addons-operator)
- [Node Maintenance](https://github.com/kubevirt/node-maintenance-operator)

This operator is typically installed from the Operator Lifecycle Manager (OLM),
and creates operator CustomResources (CRs) for its underlying operators as can be seen in the diagrom below.
Use it to obtain an opinionated deployment of KubeVirt and its helper operators.

![](images/HCO-design.jpg)

## Dependencies
- [Node Maintenance](https://github.com/kubevirt/node-maintenance-operator)

## Installing HCO using kustomize (Openshift OLM Only)
To install the default community HyperConverged Cluster Operator, along with its underlying components, run:
```bash
Expand Down
2 changes: 0 additions & 2 deletions automation/release-bumper/release-bumper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ function get_current_versions {
["CDI"]=""
["NETWORK_ADDONS"]=""
["SSP"]=""
["NMO"]=""
["HPPO"]=""
["HPP"]=""
["VM_IMPORT"]=""
Expand All @@ -62,7 +61,6 @@ function get_updated_versions {
["CDI"]="kubevirt/containerized-data-importer"
["NETWORK_ADDONS"]="kubevirt/cluster-network-addons-operator"
["SSP"]="kubevirt/kubevirt-ssp-operator"
["NMO"]="kubevirt/node-maintenance-operator"
["HPPO"]="kubevirt/hostpath-provisioner-operator"
["HPP"]="kubevirt/hostpath-provisioner"
["VM_IMPORT"]="kubevirt/vm-import-operator"
Expand Down
76 changes: 0 additions & 76 deletions deploy/cluster_role.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1244,82 +1244,6 @@ rules:
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
name: node-maintenance-operator
name: node-maintenance-operator
rules:
- apiGroups:
- ""
resources:
- services
- endpoints
- events
- configmaps
- serviceaccounts
verbs:
- '*'
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- list
- update
- patch
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods/eviction
verbs:
- create
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- nodemaintenance.kubevirt.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- oauth.openshift.io
resources:
- '*'
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
name: hostpath-provisioner-operator
Expand Down
15 changes: 0 additions & 15 deletions deploy/cluster_role_binding.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -140,21 +140,6 @@ subjects:
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
name: node-maintenance-operator
name: node-maintenance-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: node-maintenance-operator
subjects:
- kind: ServiceAccount
name: node-maintenance-operator
namespace: kubevirt-hyperconverged
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
name: hostpath-provisioner-operator
Expand Down
73 changes: 0 additions & 73 deletions deploy/crds/node-maintenance00.crd.yaml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
annotations:
alm-examples: '[{"apiVersion":"hco.kubevirt.io/v1beta1","kind":"HyperConverged","metadata":{"name":"kubevirt-hyperconverged","namespace":"kubevirt-hyperconverged"},"spec":{"BareMetalPlatform":false}},{"apiVersion":"networkaddonsoperator.network.kubevirt.io/v1alpha1","kind":"NetworkAddonsConfig","metadata":{"name":"cluster"},"spec":{"imagePullPolicy":"IfNotPresent","kubeMacPool":{"rangeEnd":"FD:FF:FF:FF:FF:FF","rangeStart":"02:00:00:00:00:00"},"linuxBridge":{},"macvtap":{},"multus":{},"nmstate":{},"ovs":{}}},{"apiVersion":"kubevirt.io/v1alpha3","kind":"KubeVirt","metadata":{"name":"kubevirt","namespace":"kubevirt"},"spec":{"imagePullPolicy":"Always"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtCommonTemplatesBundle","metadata":{"name":"kubevirt-common-template-bundle"},"spec":{"version":"v0.7.0"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtMetricsAggregation","metadata":{"name":"kubevirt-metrics-aggregation"},"spec":{"version":"v0.0.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtNodeLabellerBundle","metadata":{"name":"kubevirt-node-labeller-bundle"},"spec":{"version":"v0.1.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtTemplateValidator","metadata":{"name":"kubevirt-template-validator","namespace":"kubevirt"},"spec":{"templateValidatorReplicas":2,"version":"v0.6.6"}},{"apiVersion":"cdi.kubevirt.io/v1beta1","kind":"CDI","metadata":{"name":"cdi","namespace":"cdi"},"spec":{"imagePullPolicy":"IfNotPresent"}},{"apiVersion":"nodemaintenance.kubevirt.io/v1beta1","kind":"NodeMaintenance","metadata":{"name":"nodemaintenance-xyz"},"spec":{"nodeName":"node02","reason":"Test node maintenance"}},{"apiVersion":"hostpathprovisioner.kubevirt.io/v1beta1","kind":"HostPathProvisioner","metadata":{"name":"hostpath-provisioner"},"spec":{"imagePullPolicy":"IfNotPresent","pathConfig":{"path":"/var/hpvolumes","useNamingPrefix":false}}},{"apiVersion":"v2v.kubevirt.io/v1alpha1","kind":"VMImportConfig","metadata":{"name":"vm-import-operator-config"},"spec":{"imagePullPolicy":"IfNotPresent"}}]'
alm-examples: '[{"apiVersion":"hco.kubevirt.io/v1beta1","kind":"HyperConverged","metadata":{"name":"kubevirt-hyperconverged","namespace":"kubevirt-hyperconverged"},"spec":{"BareMetalPlatform":false}},{"apiVersion":"networkaddonsoperator.network.kubevirt.io/v1alpha1","kind":"NetworkAddonsConfig","metadata":{"name":"cluster"},"spec":{"imagePullPolicy":"IfNotPresent","kubeMacPool":{"rangeEnd":"FD:FF:FF:FF:FF:FF","rangeStart":"02:00:00:00:00:00"},"linuxBridge":{},"macvtap":{},"multus":{},"nmstate":{},"ovs":{}}},{"apiVersion":"kubevirt.io/v1alpha3","kind":"KubeVirt","metadata":{"name":"kubevirt","namespace":"kubevirt"},"spec":{"imagePullPolicy":"Always"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtCommonTemplatesBundle","metadata":{"name":"kubevirt-common-template-bundle"},"spec":{"version":"v0.7.0"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtMetricsAggregation","metadata":{"name":"kubevirt-metrics-aggregation"},"spec":{"version":"v0.0.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtNodeLabellerBundle","metadata":{"name":"kubevirt-node-labeller-bundle"},"spec":{"version":"v0.1.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtTemplateValidator","metadata":{"name":"kubevirt-template-validator","namespace":"kubevirt"},"spec":{"templateValidatorReplicas":2,"version":"v0.6.6"}},{"apiVersion":"cdi.kubevirt.io/v1beta1","kind":"CDI","metadata":{"name":"cdi","namespace":"cdi"},"spec":{"imagePullPolicy":"IfNotPresent"}},{"apiVersion":"hostpathprovisioner.kubevirt.io/v1beta1","kind":"HostPathProvisioner","metadata":{"name":"hostpath-provisioner"},"spec":{"imagePullPolicy":"IfNotPresent","pathConfig":{"path":"/var/hpvolumes","useNamingPrefix":false}}},{"apiVersion":"v2v.kubevirt.io/v1alpha1","kind":"VMImportConfig","metadata":{"name":"vm-import-operator-config"},"spec":{"imagePullPolicy":"IfNotPresent"}}]'
capabilities: Full Lifecycle
categories: OpenShift Optional
certified: "false"
containerImage: quay.io/kubevirt/hyperconverged-cluster-operator:1.2.0
createdAt: "2020-08-09 17:58:27"
createdAt: "2020-08-11 10:13:30"
description: |-
**HyperConverged Cluster Operator** is an Operator pattern for managing multi-operator products.
Specifcally, the HyperConverged Cluster Operator manages the deployment of KubeVirt,
Expand Down Expand Up @@ -75,7 +75,7 @@ metadata:
KubeVirt is distributed under the
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.txt).
operatorframework.io/suggested-namespace: kubevirt-hyperconverged
operators.operatorframework.io/internal-objects: '["v2vvmwares.v2v.kubevirt.io","ovirtproviders.v2v.kubevirt.io","networkaddonsconfigs.networkaddonsoperator.network.kubevirt.io","kubevirts.kubevirt.io","kubevirtcommontemplatesbundles.ssp.kubevirt.io","kubevirtmetricsaggregations.ssp.kubevirt.io","kubevirtnodelabellerbundles.ssp.kubevirt.io","kubevirttemplatevalidators.ssp.kubevirt.io","cdis.cdi.kubevirt.io","nodemaintenances.nodemaintenance.kubevirt.io","vmimportconfigs.v2v.kubevirt.io"]'
operators.operatorframework.io/internal-objects: '["v2vvmwares.v2v.kubevirt.io","ovirtproviders.v2v.kubevirt.io","networkaddonsconfigs.networkaddonsoperator.network.kubevirt.io","kubevirts.kubevirt.io","kubevirtcommontemplatesbundles.ssp.kubevirt.io","kubevirtmetricsaggregations.ssp.kubevirt.io","kubevirtnodelabellerbundles.ssp.kubevirt.io","kubevirttemplatevalidators.ssp.kubevirt.io","cdis.cdi.kubevirt.io","vmimportconfigs.v2v.kubevirt.io"]'
repository: https://github.com/kubevirt/hyperconverged-cluster-operator
support: "false"
name: kubevirt-hyperconverged-operator.v1.2.0
Expand Down Expand Up @@ -134,10 +134,6 @@ spec:
kind: CDI
name: cdis.cdi.kubevirt.io
version: v1beta1
- description: NodeMaintenance is the Schema for the nodemaintenances API kubebuilder:subresource:status
kind: NodeMaintenance
name: nodemaintenances.nodemaintenance.kubevirt.io
version: v1beta1
- description: Represents a HostPathProvisioner deployment
displayName: HostPathProvisioner deployment
kind: HostPathProvisioner
Expand All @@ -148,6 +144,10 @@ spec:
kind: VMImportConfig
name: vmimportconfigs.v2v.kubevirt.io
version: v1alpha1
required:
- kind: NodeMaintenance
name: nodemaintenances.nodemaintenance.kubevirt.io
version: v1beta1
description: |-
**HyperConverged Cluster Operator** is an Operator pattern for managing multi-operator products.
Specifcally, the HyperConverged Cluster Operator manages the deployment of KubeVirt,
Expand Down Expand Up @@ -1274,76 +1274,6 @@ spec:
verbs:
- get
serviceAccountName: cdi-operator
- rules:
- apiGroups:
- ""
resources:
- services
- endpoints
- events
- configmaps
- serviceaccounts
verbs:
- '*'
- apiGroups:
- ""
resources:
- nodes
verbs:
- get
- list
- update
- patch
- watch
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- pods/eviction
verbs:
- create
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- nodemaintenance.kubevirt.io
resources:
- '*'
verbs:
- '*'
- apiGroups:
- oauth.openshift.io
resources:
- '*'
verbs:
- '*'
serviceAccountName: node-maintenance-operator
- rules:
- apiGroups:
- ""
Expand Down Expand Up @@ -1543,8 +1473,6 @@ spec:
value: 0.40.1
- name: SSP_VERSION
value: v1.0.41
- name: NMO_VERSION
value: v0.6.0
- name: HPPO_VERSION
value: v0.5.2
- name: VM_IMPORT_VERSION
Expand Down Expand Up @@ -1780,45 +1708,6 @@ spec:
securityContext:
runAsNonRoot: true
serviceAccountName: cdi-operator
- name: node-maintenance-operator
spec:
replicas: 1
selector:
matchLabels:
name: node-maintenance-operator
strategy: {}
template:
metadata:
labels:
name: node-maintenance-operator
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/master
operator: Exists
containers:
- env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: OPERATOR_NAME
value: node-maintenance-operator
image: quay.io/kubevirt/node-maintenance-operator:v0.6.0
imagePullPolicy: Always
name: node-maintenance-operator
resources: {}
serviceAccountName: node-maintenance-operator
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
- name: hostpath-provisioner-operator
spec:
replicas: 1
Expand Down
Loading