Skip to content

Commit 91277ea

Browse files
authored
Merge branch 'master' into master
2 parents 0a50079 + 9a977fa commit 91277ea

File tree

3,853 files changed

+333949
-255405
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,853 files changed

+333949
-255405
lines changed

Diff for: DOWNSTREAM_OWNERS

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
approvers:
2+
- dinhxuanvu
3+
- kevinrizza
4+
- anik120
5+
- awgreene
6+
- ankitathomas
7+
- joelanford
8+
- perdasilva
9+
- oceanc80
10+
- grokspawn
11+
reviewers:
12+
- dinhxuanvu
13+
- kevinrizza
14+
- anik120
15+
- awgreene
16+
- ankitathomas
17+
- joelanford
18+
- perdasilva
19+
- oceanc80
20+
- grokspawn
21+
component: "OLM"

Diff for: base.Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Dockerfile to bootstrap build and test in openshift-ci
22

3-
FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.18-openshift-4.11
3+
FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.20-openshift-4.14
44

55
ARG KUBEBUILDER_RELEASE=2.3.1
66
# Install test dependencies

Diff for: cmd/package-server-manager/main.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313

1414
ctrl "sigs.k8s.io/controller-runtime"
1515
"sigs.k8s.io/controller-runtime/pkg/cache"
16+
"sigs.k8s.io/controller-runtime/pkg/client"
1617
"sigs.k8s.io/controller-runtime/pkg/healthz"
1718
"sigs.k8s.io/controller-runtime/pkg/log/zap"
1819
"sigs.k8s.io/controller-runtime/pkg/manager"
@@ -75,13 +76,13 @@ func run(cmd *cobra.Command, args []string) error {
7576
RenewDeadline: &le.RenewDeadline.Duration,
7677
RetryPeriod: &le.RetryPeriod.Duration,
7778
HealthProbeBindAddress: healthCheckAddr,
78-
NewCache: cache.BuilderWithOptions(cache.Options{
79-
SelectorsByObject: cache.SelectorsByObject{
79+
Cache: cache.Options{
80+
ByObject: map[client.Object]cache.ByObject{
8081
&olmv1alpha1.ClusterServiceVersion{}: {
8182
Field: packageserverCSVFields.AsSelector(),
8283
},
8384
},
84-
}),
85+
},
8586
})
8687
if err != nil {
8788
setupLog.Error(err, "failed to setup manager instance")

Diff for: go.mod

+131-152
Large diffs are not rendered by default.

Diff for: go.sum

+331-827
Large diffs are not rendered by default.

Diff for: manifests/0000_50_olm_00-catalogsources.crd.yaml

+464
Large diffs are not rendered by default.

Diff for: manifests/0000_50_olm_00-clusterserviceversions.crd.yaml

+218-41
Large diffs are not rendered by default.

Diff for: manifests/0000_50_olm_00-subscriptions.crd.yaml

+38-5
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,21 @@ spec:
645645
description: 'Resources represents compute resources required by this container. Immutable. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
646646
type: object
647647
properties:
648+
claims:
649+
description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
650+
type: array
651+
items:
652+
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
653+
type: object
654+
required:
655+
- name
656+
properties:
657+
name:
658+
description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
659+
type: string
660+
x-kubernetes-list-map-keys:
661+
- name
662+
x-kubernetes-list-type: map
648663
limits:
649664
description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
650665
type: object
@@ -655,7 +670,7 @@ spec:
655670
- type: string
656671
x-kubernetes-int-or-string: true
657672
requests:
658-
description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
673+
description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
659674
type: object
660675
additionalProperties:
661676
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
@@ -989,7 +1004,7 @@ spec:
9891004
description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
9901005
type: string
9911006
sizeLimit:
992-
description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir'
1007+
description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir'
9931008
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
9941009
anyOf:
9951010
- type: integer
@@ -1018,7 +1033,7 @@ spec:
10181033
items:
10191034
type: string
10201035
dataSource:
1021-
description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. If the AnyVolumeDataSource feature gate is enabled, this field will always have the same contents as the DataSourceRef field.'
1036+
description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.'
10221037
type: object
10231038
required:
10241039
- kind
@@ -1034,7 +1049,7 @@ spec:
10341049
description: Name is the name of resource being referenced
10351050
type: string
10361051
dataSourceRef:
1037-
description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any local object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the DataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, both fields (DataSource and DataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. There are two important differences between DataSource and DataSourceRef: * While DataSource only allows two specific types of objects, DataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While DataSource ignores disallowed values (dropping them), DataSourceRef preserves all values, and generates an error if a disallowed value is specified. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.'
1052+
description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.'
10381053
type: object
10391054
required:
10401055
- kind
@@ -1049,10 +1064,28 @@ spec:
10491064
name:
10501065
description: Name is the name of resource being referenced
10511066
type: string
1067+
namespace:
1068+
description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
1069+
type: string
10521070
resources:
10531071
description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources'
10541072
type: object
10551073
properties:
1074+
claims:
1075+
description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers."
1076+
type: array
1077+
items:
1078+
description: ResourceClaim references one entry in PodSpec.ResourceClaims.
1079+
type: object
1080+
required:
1081+
- name
1082+
properties:
1083+
name:
1084+
description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
1085+
type: string
1086+
x-kubernetes-list-map-keys:
1087+
- name
1088+
x-kubernetes-list-type: map
10561089
limits:
10571090
description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
10581091
type: object
@@ -1063,7 +1096,7 @@ spec:
10631096
- type: string
10641097
x-kubernetes-int-or-string: true
10651098
requests:
1066-
description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
1099+
description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
10671100
type: object
10681101
additionalProperties:
10691102
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$

Diff for: manifests/0000_90_olm_00-service-monitor.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ metadata:
7878
include.release.openshift.io/ibm-cloud-managed: "true"
7979
include.release.openshift.io/self-managed-high-availability: "true"
8080
spec:
81-
jobLabel: k8s-app
8281
endpoints:
8382
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
8483
interval: 30s

Diff for: manifests/0000_90_olm_01-prometheus-rule.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ spec:
3131
namespace: "{{ $labels.namespace }}"
3232
annotations:
3333
summary: CSV abnormal for over 30 minutes
34-
description: Fires whenever a CSV is in the Replacing, Pending, Deleting, or Unkown phase for more than 30 minutes.
34+
description: Fires whenever a CSV is in the Replacing, Pending, Deleting, or Unknown phase for more than 30 minutes.
3535
message: Failed to install Operator {{ $labels.name }} version {{ $labels.version }}. Phase-{{ $labels.phase }} Reason-{{ $labels.reason }}
3636
- name: olm.installplan.rules
3737
rules:

Diff for: pkg/package-server-manager/controller.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import (
3535
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
3636
"sigs.k8s.io/controller-runtime/pkg/handler"
3737
"sigs.k8s.io/controller-runtime/pkg/reconcile"
38-
"sigs.k8s.io/controller-runtime/pkg/source"
3938
)
4039

4140
const (
@@ -113,7 +112,7 @@ func reconcileCSV(log logr.Logger, image string, csv *olmv1alpha1.ClusterService
113112
return nil
114113
}
115114

116-
func (r *PackageServerCSVReconciler) infrastructureHandler(obj client.Object) []reconcile.Request {
115+
func (r *PackageServerCSVReconciler) infrastructureHandler(_ context.Context, obj client.Object) []reconcile.Request {
117116
log := r.Log.WithValues("infrastructure", obj.GetName())
118117
if obj.GetName() != infrastructureName {
119118
log.Info("not processing events for the non-cluster infrastructure resource")
@@ -135,6 +134,6 @@ func (r *PackageServerCSVReconciler) infrastructureHandler(obj client.Object) []
135134
func (r *PackageServerCSVReconciler) SetupWithManager(mgr ctrl.Manager) error {
136135
return ctrl.NewControllerManagedBy(mgr).
137136
For(&olmv1alpha1.ClusterServiceVersion{}).
138-
Watches(&source.Kind{Type: &configv1.Infrastructure{}}, handler.EnqueueRequestsFromMapFunc(r.infrastructureHandler)).
137+
Watches(&configv1.Infrastructure{}, handler.EnqueueRequestsFromMapFunc(r.infrastructureHandler)).
139138
Complete(r)
140139
}

Diff for: scripts/sync.sh

+5-3
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,15 @@ candidates() {
3838
for remote in "${UPSTREAM_REMOTES[@]}"; do
3939
"${ROOT_DIR}"/scripts/sync_get_candidates.sh "$remote"
4040
done
41+
42+
# Create uber cherry-pick list
43+
cat *.cherrypick | sort > all.cherrypick
44+
echo "Number of commits to cherrypick: $(cat all.cherrypick | wc -l)"
4145
}
4246

4347
pop() {
4448
echo "Applying all upstream commit candidates"
45-
for remote in "${UPSTREAM_REMOTES[@]}"; do
46-
"${ROOT_DIR}"/scripts/sync_pop_candidate.sh -a "${remote}"
47-
done
49+
"${ROOT_DIR}"/scripts/sync_pop_candidate.sh -a "all"
4850
}
4951

5052
check_local_branch_commit_diff() {

Diff for: scripts/sync_get_candidates.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ cherrypick_set="${remote}.cherrypick"
2828
: > "${cherrypick_set}" # clear existing file
2929
for rc in "${remote_commits[@]}"; do
3030
if [[ -z $(git log -n 1 --no-merges --grep "${rc}" HEAD) && -z $(grep "${rc}" "${remote}.blacklist") ]]; then
31-
printf '%s\n' "${rc}" >> "${cherrypick_set}"
31+
git show -s --format="%cI ${remote} %H" "${rc}" >> "${cherrypick_set}"
3232
(( ++picked ))
3333
fi
3434
done

0 commit comments

Comments
 (0)