Merge pull request #137 from zhiweiyin318/release-0.4.0

release olm bundle v0.4.0
This commit is contained in:
OpenShift Merge Robot
2021-07-21 03:02:23 -04:00
committed by GitHub
13 changed files with 1009 additions and 45 deletions

View File

@@ -47,7 +47,7 @@ jobs:
- name: generate changelog
run: |
echo "# Registration Operator $RELEASE_VERSION" > /home/runner/work/changelog.txt
echo "- See the [CHANGELOG](https://github.com/open-cluster-management.io/registration-operator/blob/main/CHANGELOG/CHANGELOG-${MAJOR_RELEASE_VERSION}.md) for more details." >> /home/runner/work/changelog.txt
echo "- See the [CHANGELOG](https://github.com/open-cluster-management-io/registration-operator/blob/main/CHANGELOG/CHANGELOG-${MAJOR_RELEASE_VERSION}.md) for more details." >> /home/runner/work/changelog.txt
echo "- The released image is quay.io/open-cluster-management/registration-operator:$RELEASE_VERSION" >> /home/runner/work/changelog.txt
- name: publish release
uses: softprops/action-gh-release@v0.1.5

View File

@@ -0,0 +1,25 @@
# Changelog since v0.3.0
All notable changes to this project will be documented in this file.
## v0.4.0
### New Features
* Enable clusterManagementAddon and managedClusterAddon.
* Support to deploy placement controller.
* The replica of pods can be changed based on the number of master nodes.
### Added
* Add short names for mangedCluster and managedClusterSet.
* Support to check hub bootstrap secret expired.
### Changes
* Upgrade CRD to support placement API.
* Upgrade CRD to v1 and k8s lib to v0.21.0-rc.0.
* Upgrade Go to 1.16.
* Use kustomize to deploy by Makefile.
### Bug Fixes
* Fix some deploy issues about Makefile.
### Removed & Deprecated
N/C

View File

@@ -18,7 +18,7 @@ IMAGE_TAG?=latest
IMAGE_NAME?=$(IMAGE_REGISTRY)/registration-operator:$(IMAGE_TAG)
# CSV_VERSION is used to generate new CSV manifests
CSV_VERSION?=0.4.0
CSV_VERSION?=0.5.0
# WORK_IMAGE can be set in the env to override calculated value
WORK_TAG?=latest

View File

@@ -7,7 +7,7 @@ metadata:
categories: Integration & Delivery,OpenShift Optional
certified: "false"
containerImage: quay.io/open-cluster-management/registration-operator:latest
createdAt: "2020-10-15T20:00:31Z"
createdAt: "2021-07-13T20:00:31Z"
description: Manages the installation and upgrade of the ClusterManager.
repository: https://github.com/open-cluster-management-io/registration-operator
support: Red Hat, Inc.
@@ -34,15 +34,18 @@ spec:
```
$ kubectl get pods -n open-cluster-management-hub
NAME READY STATUS RESTARTS AGE
cluster-manager-registration-controller-566b5cd967-65s8g 1/1 Running 0 68s
cluster-manager-registration-controller-566b5cd967-98hbb 1/1 Running 0 68s
cluster-manager-registration-controller-566b5cd967-tdl9f 1/1 Running 0 68s
cluster-manager-registration-webhook-5649df75cf-69l6j 1/1 Running 0 68s
cluster-manager-registration-webhook-5649df75cf-plmrk 1/1 Running 0 68s
cluster-manager-registration-webhook-5649df75cf-s7tjs 1/1 Running 0 68s
cluster-manager-work-webhook-776d978d64-cwljs 1/1 Running 0 68s
cluster-manager-work-webhook-776d978d64-m62wd 1/1 Running 0 68s
cluster-manager-work-webhook-776d978d64-prswn 1/1 Running 0 68s
cluster-manager-placement-controller-d76cffb7c-fvzjh 1/1 Running 0 22h
cluster-manager-placement-controller-d76cffb7c-qnpjl 1/1 Running 0 22h
cluster-manager-placement-controller-d76cffb7c-tt4h6 1/1 Running 0 22h
cluster-manager-registration-controller-66b7c65849-btmpp 1/1 Running 0 22h
cluster-manager-registration-controller-66b7c65849-gt6fv 1/1 Running 0 22h
cluster-manager-registration-controller-66b7c65849-pl46k 1/1 Running 0 22h
cluster-manager-registration-webhook-5f5499fccf-crr69 1/1 Running 0 22h
cluster-manager-registration-webhook-5f5499fccf-s2dkb 1/1 Running 0 22h
cluster-manager-registration-webhook-5f5499fccf-s7lp5 1/1 Running 0 22h
cluster-manager-work-webhook-b68fc9b84-ddz2d 1/1 Running 0 22h
cluster-manager-work-webhook-b68fc9b84-kd92j 1/1 Running 0 22h
cluster-manager-work-webhook-b68fc9b84-vdbkl 1/1 Running 0 22h
```
There is a ManagedCluster created in the Hub cluster when the managed cluster is registered to the Hub cluster.
@@ -76,8 +79,8 @@ spec:
- name: Registration Operator
url: https://github.com/open-cluster-management-io/registration-operator
maintainers:
- email: pmorie@redhat.com
name: Paul Morie
- email: zyin@redhat.com
name: Zhiwei Yin
- email: deads@redhat.com
name: David Eads
- email: jqiu@redhat.com
@@ -85,8 +88,8 @@ spec:
maturity: alpha
provider:
name: Red Hat, Inc.
replaces: cluster-manager.v0.3.0
replaces: cluster-manager.v0.4.0
selector:
matchLabels:
app: cluster-manager
version: 0.4.0
version: 0.5.0

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,154 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
name: clustermanagers.operator.open-cluster-management.io
spec:
group: operator.open-cluster-management.io
names:
kind: ClusterManager
listKind: ClusterManagerList
plural: clustermanagers
singular: clustermanager
scope: Cluster
versions:
- name: v1
schema:
openAPIV3Schema:
description: ClusterManager configures the controllers on the hub that govern registration and work distribution for attached Klusterlets. ClusterManager will only be deployed in open-cluster-management-hub namespace.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: Spec represents a desired deployment configuration of controllers that govern registration and work distribution for attached Klusterlets.
properties:
placementImagePullSpec:
default: quay.io/open-cluster-management/placement
description: PlacementImagePullSpec represents the desired image configuration of placement controller/webhook installed on hub.
type: string
registrationImagePullSpec:
default: quay.io/open-cluster-management/registration
description: RegistrationImagePullSpec represents the desired image of registration controller/webhook installed on hub.
type: string
workImagePullSpec:
default: quay.io/open-cluster-management/work
description: WorkImagePullSpec represents the desired image configuration of work controller/webhook installed on hub.
type: string
type: object
status:
description: Status represents the current status of controllers that govern the lifecycle of managed clusters.
properties:
conditions:
description: 'Conditions contain the different condition statuses for this ClusterManager. Valid condition types are: Applied: Components in hub are applied. Available: Components in hub are available and ready to serve. Progressing: Components in hub are in a transitioning state. Degraded: Components in hub do not match the desired configuration and only provide degraded service.'
items:
description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
generations:
description: Generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.
items:
description: GenerationStatus keeps track of the generation for a given resource so that decisions about forced updates can be made. The definition matches the GenerationStatus defined in github.com/openshift/api/v1
properties:
group:
description: group is the group of the resource that you're tracking
type: string
lastGeneration:
description: lastGeneration is the last generation of the resource that controller applies
format: int64
type: integer
name:
description: name is the name of the resource that you're tracking
type: string
namespace:
description: namespace is where the resource that you're tracking is
type: string
resource:
description: resource is the resource type of the resource that you're tracking
type: string
version:
description: version is the version of the resource that you're tracking
type: string
type: object
type: array
observedGeneration:
description: ObservedGeneration is the last generation change you've dealt with
format: int64
type: integer
relatedResources:
description: RelatedResources are used to track the resources that are related to this ClusterManager.
items:
description: RelatedResourceMeta represents the resource that is managed by an operator
properties:
group:
description: group is the group of the resource that you're tracking
type: string
name:
description: name is the name of the resource that you're tracking
type: string
namespace:
description: namespace is where the thing you're tracking is
type: string
resource:
description: resource is the resource type of the resource that you're tracking
type: string
version:
description: version is the version of the thing you're tracking
type: string
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -1,5 +1,5 @@
channels:
- name: stable
currentCSV: cluster-manager.v0.4.0
currentCSV: cluster-manager.v0.5.0
defaultChannel: stable
packageName: cluster-manager

View File

@@ -21,13 +21,13 @@ metadata:
categories: Integration & Delivery,OpenShift Optional
certified: "false"
containerImage: quay.io/open-cluster-management/registration-operator:latest
createdAt: "2020-10-15T20:00:31Z"
createdAt: "2021-07-13T20:00:31Z"
description: Manages the installation and upgrade of the ClusterManager.
operators.operatorframework.io/builder: operator-sdk-v1.1.0
operators.operatorframework.io/project_layout: go
repository: https://github.com/open-cluster-management-io/registration-operator
support: Red Hat, Inc.
name: cluster-manager.v0.4.0
name: cluster-manager.v0.5.0
namespace: placeholder
spec:
apiservicedefinitions: {}
@@ -49,15 +49,18 @@ spec:
```
$ kubectl get pods -n open-cluster-management-hub
NAME READY STATUS RESTARTS AGE
cluster-manager-registration-controller-566b5cd967-65s8g 1/1 Running 0 68s
cluster-manager-registration-controller-566b5cd967-98hbb 1/1 Running 0 68s
cluster-manager-registration-controller-566b5cd967-tdl9f 1/1 Running 0 68s
cluster-manager-registration-webhook-5649df75cf-69l6j 1/1 Running 0 68s
cluster-manager-registration-webhook-5649df75cf-plmrk 1/1 Running 0 68s
cluster-manager-registration-webhook-5649df75cf-s7tjs 1/1 Running 0 68s
cluster-manager-work-webhook-776d978d64-cwljs 1/1 Running 0 68s
cluster-manager-work-webhook-776d978d64-m62wd 1/1 Running 0 68s
cluster-manager-work-webhook-776d978d64-prswn 1/1 Running 0 68s
cluster-manager-placement-controller-d76cffb7c-fvzjh 1/1 Running 0 22h
cluster-manager-placement-controller-d76cffb7c-qnpjl 1/1 Running 0 22h
cluster-manager-placement-controller-d76cffb7c-tt4h6 1/1 Running 0 22h
cluster-manager-registration-controller-66b7c65849-btmpp 1/1 Running 0 22h
cluster-manager-registration-controller-66b7c65849-gt6fv 1/1 Running 0 22h
cluster-manager-registration-controller-66b7c65849-pl46k 1/1 Running 0 22h
cluster-manager-registration-webhook-5f5499fccf-crr69 1/1 Running 0 22h
cluster-manager-registration-webhook-5f5499fccf-s2dkb 1/1 Running 0 22h
cluster-manager-registration-webhook-5f5499fccf-s7lp5 1/1 Running 0 22h
cluster-manager-work-webhook-b68fc9b84-ddz2d 1/1 Running 0 22h
cluster-manager-work-webhook-b68fc9b84-kd92j 1/1 Running 0 22h
cluster-manager-work-webhook-b68fc9b84-vdbkl 1/1 Running 0 22h
```
There is a ManagedCluster created in the Hub cluster when the managed cluster is registered to the Hub cluster.
@@ -292,8 +295,8 @@ spec:
- name: Registration Operator
url: https://github.com/open-cluster-management-io/registration-operator
maintainers:
- email: pmorie@redhat.com
name: Paul Morie
- email: zyin@redhat.com
name: Zhiwei Yin
- email: deads@redhat.com
name: David Eads
- email: jqiu@redhat.com
@@ -301,8 +304,8 @@ spec:
maturity: alpha
provider:
name: Red Hat, Inc.
replaces: cluster-manager.v0.3.0
replaces: cluster-manager.v0.4.0
selector:
matchLabels:
app: cluster-manager
version: 0.4.0
version: 0.5.0

View File

@@ -7,11 +7,11 @@ metadata:
categories: Integration & Delivery,OpenShift Optional
certified: "false"
containerImage: quay.io/open-cluster-management/registration-operator:latest
createdAt: "2020-10-15T20:00:31Z"
createdAt: "2021-07-13T20:00:31Z"
description: Manages the installation and upgrade of the Klusterlet.
repository: https://github.com/open-cluster-management-io/registration-operator
support: Red Hat, Inc.
name: klusterlet.v0.2.0
name: klusterlet.vX.Y.Z
namespace: placeholder
spec:
apiservicedefinitions: {}
@@ -83,8 +83,8 @@ spec:
- name: Registration Operator
url: https://github.com/open-cluster-management-io/registration-operator
maintainers:
- email: pmorie@redhat.com
name: Paul Morie
- email: zyin@redhat.com
name: Zhiwei Yin
- email: deads@redhat.com
name: David Eads
- email: jqiu@redhat.com
@@ -92,8 +92,8 @@ spec:
maturity: alpha
provider:
name: Red Hat, Inc.
replaces: klusterlet.v0.3.0
replaces: klusterlet.v0.4.0
selector:
matchLabels:
app: klusterlet
version: 0.4.0
version: 0.5.0

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,168 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
creationTimestamp: null
name: klusterlets.operator.open-cluster-management.io
spec:
group: operator.open-cluster-management.io
names:
kind: Klusterlet
listKind: KlusterletList
plural: klusterlets
singular: klusterlet
scope: Cluster
versions:
- name: v1
schema:
openAPIV3Schema:
description: Klusterlet represents controllers on the managed cluster. When configured, the Klusterlet requires a secret named of bootstrap-hub-kubeconfig in the same namespace to allow API requests to the hub for the registration protocol.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: Spec represents the desired deployment configuration of Klusterlet agent.
properties:
clusterName:
description: ClusterName is the name of the managed cluster to be created on hub. The Klusterlet agent generates a random name if it is not set, or discovers the appropriate cluster name on OpenShift.
type: string
externalServerURLs:
description: ExternalServerURLs represents the a list of apiserver urls and ca bundles that is accessible externally If it is set empty, managed cluster has no externally accessible url that hub cluster can visit.
items:
description: ServerURL represents the apiserver url and ca bundle that is accessible externally
properties:
caBundle:
description: CABundle is the ca bundle to connect to apiserver of the managed cluster. System certs are used if it is not set.
format: byte
type: string
url:
description: URL is the url of apiserver endpoint of the managed cluster.
type: string
type: object
type: array
namespace:
description: Namespace is the namespace to deploy the agent. The namespace must have a prefix of "open-cluster-management-", and if it is not set, the namespace of "open-cluster-management-agent" is used to deploy agent.
type: string
registrationImagePullSpec:
description: RegistrationImagePullSpec represents the desired image configuration of registration agent.
type: string
workImagePullSpec:
description: WorkImagePullSpec represents the desired image configuration of work agent.
type: string
type: object
status:
description: Status represents the current status of Klusterlet agent.
properties:
conditions:
description: 'Conditions contain the different condition statuses for this Klusterlet. Valid condition types are: Applied: Components have been applied in the managed cluster. Available: Components in the managed cluster are available and ready to serve. Progressing: Components in the managed cluster are in a transitioning state. Degraded: Components in the managed cluster do not match the desired configuration and only provide degraded service.'
items:
description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
properties:
lastTransitionTime:
description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: message is a human readable message indicating details about the transition. This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
generations:
description: Generations are used to determine when an item needs to be reconciled or has changed in a way that needs a reaction.
items:
description: GenerationStatus keeps track of the generation for a given resource so that decisions about forced updates can be made. The definition matches the GenerationStatus defined in github.com/openshift/api/v1
properties:
group:
description: group is the group of the resource that you're tracking
type: string
lastGeneration:
description: lastGeneration is the last generation of the resource that controller applies
format: int64
type: integer
name:
description: name is the name of the resource that you're tracking
type: string
namespace:
description: namespace is where the resource that you're tracking is
type: string
resource:
description: resource is the resource type of the resource that you're tracking
type: string
version:
description: version is the version of the resource that you're tracking
type: string
type: object
type: array
observedGeneration:
description: ObservedGeneration is the last generation change you've dealt with
format: int64
type: integer
relatedResources:
description: RelatedResources are used to track the resources that are related to this Klusterlet.
items:
description: RelatedResourceMeta represents the resource that is managed by an operator
properties:
group:
description: group is the group of the resource that you're tracking
type: string
name:
description: name is the name of the resource that you're tracking
type: string
namespace:
description: namespace is where the thing you're tracking is
type: string
resource:
description: resource is the resource type of the resource that you're tracking
type: string
version:
description: version is the version of the thing you're tracking
type: string
type: object
type: array
type: object
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -1,5 +1,5 @@
channels:
- currentCSV: klusterlet.v0.4.0
- currentCSV: klusterlet.v0.5.0
name: stable
defaultChannel: stable
packageName: klusterlet

View File

@@ -27,13 +27,13 @@ metadata:
categories: Integration & Delivery,OpenShift Optional
certified: "false"
containerImage: quay.io/open-cluster-management/registration-operator:latest
createdAt: "2020-10-15T20:00:31Z"
createdAt: "2021-07-13T20:00:31Z"
description: Manages the installation and upgrade of the Klusterlet.
operators.operatorframework.io/builder: operator-sdk-v1.1.0
operators.operatorframework.io/project_layout: go
repository: https://github.com/open-cluster-management-io/registration-operator
support: Red Hat, Inc.
name: klusterlet.v0.4.0
name: klusterlet.v0.5.0
namespace: placeholder
spec:
apiservicedefinitions: {}
@@ -284,8 +284,8 @@ spec:
- name: Registration Operator
url: https://github.com/open-cluster-management-io/registration-operator
maintainers:
- email: pmorie@redhat.com
name: Paul Morie
- email: zyin@redhat.com
name: Zhiwei Yin
- email: deads@redhat.com
name: David Eads
- email: jqiu@redhat.com
@@ -293,8 +293,8 @@ spec:
maturity: alpha
provider:
name: Red Hat, Inc.
replaces: klusterlet.v0.3.0
replaces: klusterlet.v0.4.0
selector:
matchLabels:
app: klusterlet
version: 0.4.0
version: 0.5.0