Skip to content

Commit

Permalink
Merge pull request #1694 from njhale/v1-default
Browse files Browse the repository at this point in the history
Enable the Operator API by default
  • Loading branch information
openshift-merge-robot committed Jul 31, 2020
2 parents 55aa8dd + 033d08f commit 782aaae
Show file tree
Hide file tree
Showing 123 changed files with 1,403 additions and 6,975 deletions.
32 changes: 1 addition & 31 deletions cmd/olm/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,7 @@ package main

import (
"context"
"fmt"

"github.com/operator-framework/api/crds"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/log/zap"

Expand All @@ -30,14 +25,7 @@ func Manager(ctx context.Context) (ctrl.Manager, error) {

// Setup a new controller to reconcile Operators
setupLog.Info("configuring controller")
client, err := apiextensionsv1.NewForConfig(mgr.GetConfig())
if err != nil {
return nil, err
}

if feature.Gate.Enabled(feature.OperatorLifecycleManagerV2) {
setupLog.Info(fmt.Sprintf("feature enabled: %v", feature.OperatorLifecycleManagerV2))

if feature.Gate.Enabled(feature.OperatorLifecycleManagerV1) {
operatorReconciler, err := operators.NewOperatorReconciler(
mgr.GetClient(),
ctrl.Log.WithName("controllers").WithName("operator"),
Expand All @@ -47,24 +35,6 @@ func Manager(ctx context.Context) (ctrl.Manager, error) {
return nil, err
}

crd, err := client.CustomResourceDefinitions().Create(ctx, crds.Operator(), metav1.CreateOptions{})
if err != nil {
if !apierrors.IsAlreadyExists(err) {
return nil, err
}

// Already exists, try to update
if crd, err = client.CustomResourceDefinitions().Get(ctx, crds.Operator().GetName(), metav1.GetOptions{}); err != nil {
return nil, err
}

crd.Spec = crds.Operator().Spec
if _, err = client.CustomResourceDefinitions().Update(ctx, crd, metav1.UpdateOptions{}); err != nil {
return nil, err
}
}
setupLog.Info("v2alpha1 CRDs installed")

if err = operatorReconciler.SetupWithManager(mgr); err != nil {
return nil, err
}
Expand Down
11 changes: 11 additions & 0 deletions deploy/chart/crds/0000_50_olm_00-catalogsources.crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,17 @@ spec:
a registry-server with. Only used when SourceType = SourceTypeGrpc.
If present, the address field is ignored.
type: string
priority:
description: 'Priority field assigns a weight to the catalog source
to prioritize them so that it can be consumed by the dependency
resolver. Usage: Higher weight indicates that this catalog source
is preferred over lower weighted catalog sources during dependency
resolution. The range of the priority value can go from positive
to negative in the range of int32. The default value to a catalog
source with unassigned priority would be 0. The catalog source with
the same priority values will be ranked lexicographically based
on its name.'
type: integer
publisher:
type: string
secrets:
Expand Down
14 changes: 12 additions & 2 deletions deploy/chart/crds/0000_50_olm_00-clusterserviceversions.crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -662,13 +662,19 @@ spec:
deployments:
type: array
items:
description: StrategyDeploymentSpec contains the name and
spec for the deployment ALM should create
description: StrategyDeploymentSpec contains the name, spec
and labels for the deployment ALM should create
type: object
required:
- name
- spec
properties:
label:
description: Set is a map of label:value. It implements
Labels.
type: object
additionalProperties:
type: string
name:
type: string
spec:
Expand Down Expand Up @@ -8698,6 +8704,10 @@ spec:
containerPort:
type: integer
format: int32
conversionCRDs:
type: array
items:
type: string
deploymentName:
type: string
failurePolicy:
Expand Down
176 changes: 176 additions & 0 deletions deploy/chart/crds/0000_50_olm_00-operators.crd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.3.0
creationTimestamp: null
name: operators.operators.coreos.com
spec:
group: operators.coreos.com
names:
categories:
- olm
kind: Operator
listKind: OperatorList
plural: operators
singular: operator
scope: Cluster
versions:
- name: v1
schema:
openAPIV3Schema:
description: Operator represents a cluster operator.
type: object
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: OperatorSpec defines the desired state of Operator
type: object
status:
description: OperatorStatus describes the observed state of an operator
and its components.
type: object
properties:
components:
description: Components describes resources that compose the operator.
type: object
required:
- labelSelector
properties:
labelSelector:
description: LabelSelector is a label query over a set of resources
used to select the operator's components
type: object
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
type: array
items:
description: A label selector requirement is a selector
that contains values, a key, and an operator that relates
the key and values.
type: object
required:
- key
- operator
properties:
key:
description: key is the label key that the selector
applies to.
type: string
operator:
description: operator represents a key's relationship
to a set of values. Valid operators are In, NotIn,
Exists and DoesNotExist.
type: string
values:
description: values is an array of string values. If
the operator is In or NotIn, the values array must
be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced
during a strategic merge patch.
type: array
items:
type: string
matchLabels:
description: matchLabels is a map of {key,value} pairs. A
single {key,value} in the matchLabels map is equivalent
to an element of matchExpressions, whose key field is "key",
the operator is "In", and the values array contains only
"value". The requirements are ANDed.
type: object
additionalProperties:
type: string
refs:
description: Refs are a set of references to the operator's component
resources, selected with LabelSelector.
type: array
items:
description: RichReference is a reference to a resource, enriched
with its status conditions.
type: object
properties:
apiVersion:
description: API version of the referent.
type: string
conditions:
description: Conditions represents the latest state of the
component.
type: array
items:
description: Condition represent the latest available
observations of an component's state.
type: object
required:
- status
- type
properties:
lastTransitionTime:
description: Last time the condition transitioned
from one status to another.
type: string
format: date-time
lastUpdateTime:
description: Last time the condition was probed
type: string
format: date-time
message:
description: A human readable message indicating details
about the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True,
False, Unknown.
type: string
type:
description: Type of condition.
type: string
fieldPath:
description: 'If referring to a piece of an object instead
of an entire object, this string should contain a valid
JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container
within a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that
triggered the event) or if no container name is specified
"spec.containers[2]" (container with index 2 in this pod).
This syntax is chosen only to have some well-defined way
of referencing a part of an object. TODO: this design
is not final and this field is subject to change in the
future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
served: true
storage: true
subresources:
status: {}
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ require (
github.com/onsi/gomega v1.9.0
github.com/openshift/api v0.0.0-20200331152225-585af27e34fd
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0
github.com/operator-framework/api v0.3.7
github.com/operator-framework/api v0.3.11
github.com/operator-framework/operator-registry v1.13.3
github.com/otiai10/copy v1.2.0
github.com/pkg/errors v0.9.1
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -585,8 +585,8 @@ github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0 h1:kMiuiZXH1Gd
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0/go.mod h1:uUQ4LClRO+fg5MF/P6QxjMCb1C9f7Oh4RKepftDnEJE=
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
github.com/operator-framework/api v0.3.7-0.20200602203552-431198de9fc2/go.mod h1:Xbje9x0SHmh0nihE21kpesB38vk3cyxnE6JdDS8Jo1Q=
github.com/operator-framework/api v0.3.7 h1:gTER+WQdjRAegxKdcoylNqHVGGnBRAAgC2zS3CZL78g=
github.com/operator-framework/api v0.3.7/go.mod h1:Xbje9x0SHmh0nihE21kpesB38vk3cyxnE6JdDS8Jo1Q=
github.com/operator-framework/api v0.3.11 h1:+fyck2pcr+vVGnVxM4UNoi7qOSMVCTQOWW2xsJtLSq0=
github.com/operator-framework/api v0.3.11/go.mod h1:Xbje9x0SHmh0nihE21kpesB38vk3cyxnE6JdDS8Jo1Q=
github.com/operator-framework/operator-registry v1.13.3 h1:SaZ1IKLKGizVgTtT8AlDgaMXFYOiIPxRf8KLve0/DXM=
github.com/operator-framework/operator-registry v1.13.3/go.mod h1:YhnIzOVjRU2ZwZtzt+fjcjW8ujJaSFynBEu7QVKaSdU=
github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k=
Expand Down
11 changes: 11 additions & 0 deletions manifests/0000_50_olm_00-catalogsources.crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,17 @@ spec:
a registry-server with. Only used when SourceType = SourceTypeGrpc.
If present, the address field is ignored.
type: string
priority:
description: 'Priority field assigns a weight to the catalog source
to prioritize them so that it can be consumed by the dependency
resolver. Usage: Higher weight indicates that this catalog source
is preferred over lower weighted catalog sources during dependency
resolution. The range of the priority value can go from positive
to negative in the range of int32. The default value to a catalog
source with unassigned priority would be 0. The catalog source with
the same priority values will be ranked lexicographically based
on its name.'
type: integer
publisher:
type: string
secrets:
Expand Down
14 changes: 12 additions & 2 deletions manifests/0000_50_olm_00-clusterserviceversions.crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -662,13 +662,19 @@ spec:
deployments:
type: array
items:
description: StrategyDeploymentSpec contains the name and
spec for the deployment ALM should create
description: StrategyDeploymentSpec contains the name, spec
and labels for the deployment ALM should create
type: object
required:
- name
- spec
properties:
label:
description: Set is a map of label:value. It implements
Labels.
type: object
additionalProperties:
type: string
name:
type: string
spec:
Expand Down Expand Up @@ -8698,6 +8704,10 @@ spec:
containerPort:
type: integer
format: int32
conversionCRDs:
type: array
items:
type: string
deploymentName:
type: string
failurePolicy:
Expand Down
Loading

0 comments on commit 782aaae

Please sign in to comment.