Skip to content
Closed
9 changes: 5 additions & 4 deletions cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ package main
import (
"flag"
"fmt"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"os"
"os/signal"
"syscall"
"time"

"github.com/spf13/cobra"
"github.com/spf13/pflag"

"k8s.io/klog/v2"

"github.com/openshift/api/operator/v1"
"github.com/openshift/csi-driver-projected-resource/pkg/controller"
"github.com/openshift/csi-driver-projected-resource/pkg/hostpath"
)
Expand Down Expand Up @@ -62,7 +62,8 @@ func init() {

rootCmd.Flags().AddGoFlagSet(flag.CommandLine)
rootCmd.Flags().StringVar(&endPoint, "endpoint", "unix://tmp/csi.sock", "CSI endpoint")
rootCmd.Flags().StringVar(&driverName, "drivername", string(v1.SharedResourcesCSIDriver), "name of the driver")
// TODO: Use name registered in openshift/api
rootCmd.Flags().StringVar(&driverName, "drivername", "csi.sharedresource.openshift.io", "name of the driver")
rootCmd.Flags().StringVar(&nodeID, "nodeid", "", "node id")
rootCmd.Flags().Int64Var(&maxVolumesPerNode, "maxvolumespernode", 0, "limit of volumes per node")
rootCmd.Flags().StringVar(&shareRelistInterval, "share-relist-interval", "",
Expand Down
2 changes: 1 addition & 1 deletion deploy/00-namespace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ kind: Namespace
metadata:
labels:
openshift.io/cluster-monitoring: "true"
name: csi-driver-projected-resource
name: csi-driver-shared-resource
149 changes: 0 additions & 149 deletions deploy/0000_10_projectedresource.crd.yaml

This file was deleted.

111 changes: 111 additions & 0 deletions deploy/0000_10_sharedresource.crd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# this is the boilerplate crd def that controller-gen reads and modifies with the
# contents from share_type.go
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: shares.sharedresource.openshift.io
annotations:
displayName: Shares
description: Extension for sharing ConfigMaps and Secrets across Namespaces
spec:
scope: Cluster
group: sharedresource.openshift.io
names:
plural: shares
singular: share
kind: Share
listKind: ShareList
versions:
- name: v1alpha1
served: true
storage: true
"schema":
"openAPIV3Schema":
description: Share is the Schema for the shares API
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: ShareSpec defines the desired state of Share
type: object
required:
- backingResource
properties:
backingResource:
description: BackingResource captures the ConfigMap or Secret that is shared.
type: object
required:
- kind
- name
- namespace
properties:
apiVersion:
description: APIVersion defines the versioned schema of this representation of an object.
type: string
kind:
description: Kind is a string value representing the REST resource this object represents. Currently only Secret and ConfigMap are accepted.
type: string
name:
description: Name is the name of the object serving as the backing resource
type: string
namespace:
description: Namespace is the namespace of the object serving as the backing resource
type: string
description:
description: Description is a user readable explanation of what the backing resource provides.
type: string
status:
description: ShareStatus defines the observed state of Share
type: object
properties:
conditions:
description: Conditions are the set of k8s Condition instances provided by the associated controller for Shares.
type: array
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 }"
type: object
required:
- lastTransitionTime
- message
- reason
- status
- type
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.
type: string
format: date-time
message:
description: message is a human readable message indicating details about the transition. This may be an empty string.
type: string
maxLength: 32768
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.
type: integer
format: int64
minimum: 0
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.
type: string
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
status:
description: status of the condition, one of True, False, Unknown.
type: string
enum:
- "True"
- "False"
- Unknown
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)
type: string
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])$
4 changes: 2 additions & 2 deletions deploy/01-service-account.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: csi-driver-projected-resource-plugin
namespace: csi-driver-projected-resource
name: csi-driver-shared-resource
namespace: csi-driver-shared-resource
4 changes: 2 additions & 2 deletions deploy/02-cluster-role.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: projected-resource-secret-configmap-share-watch-sar-create
name: csi-driver-shared-resource
rules:
- apiGroups:
- ""
Expand All @@ -14,7 +14,7 @@ rules:
- list
- watch
- apiGroups:
- projectedresource.storage.openshift.io
- sharedresource.openshift.io
resources:
- shares
verbs:
Expand Down
14 changes: 7 additions & 7 deletions deploy/03-cluster-role-binding.yaml
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: projected-resource-privileged
name: csi-driver-shared-resource-privileged
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:openshift:scc:privileged
subjects:
- kind: ServiceAccount
name: csi-driver-projected-resource-plugin
namespace: csi-driver-projected-resource
name: csi-driver-shared-resource
namespace: csi-driver-shared-resource
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: projected-resource-secret-configmap-share-watch-sar-create
name: csi-driver-shared-resource
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: projected-resource-secret-configmap-share-watch-sar-create
name: csi-driver-shared-resource-deployment
subjects:
- kind: ServiceAccount
name: csi-driver-projected-resource-plugin
namespace: csi-driver-projected-resource
name: csi-drivver-shared-resource
namespace: csi-driver-shared-resource
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
name: csi.shared-resources.openshift.io
name: csi.sharedresource.openshift.io
spec:
# Supports ephemeral inline volumes.
volumeLifecycleModes:
Expand Down
Loading