profile
viewpoint
Shawn Hurley shawn-hurley Red Hat Raleigh, NC None

kubernetes-sigs/kubebuilder 4588

Kubebuilder - SDK for building Kubernetes APIs using CRDs

kube-reporting/metering-operator 329

The Metering Operator is responsible for collecting metrics and other information about what's happening in a Kubernetes cluster, and providing a way to create reports on the collected data.

pmorie/osb-starter-pack 71

A quickstart for making a new Open Service Broker

operator-framework/operator-lib 19

This is a library to help Operator developers

operator-framework/community 18

Community organizational documentations and process for Operator Framework

alaypatel07/etcd-sts-operator 4

Proof of Concept - An etcd-operator using statefulset deploys etcd in HA mode

openshift/cluster-svcat-apiserver-operator 3

Installs and maintains a singleton instance of the OpenShift Service Catalog API Server on a cluster

jwmatthews/rhui_scripts 1

Scripts to help provision & work with RHUI (Red Hat Update Infrastructure)

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 2143be04cc4975f7ac27570f7cf3756cb7fbb888

remove make bundle

view details

push time in 17 hours

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 2e92fea65efa14f644a815c257b3279343a7c575

fixing CSV for MTC

view details

push time in 17 hours

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 780e2f514cea9cde2ec247412c4f7a6ebb0bae7f

Fixing and adding unit tests to validate validator logic

view details

push time in 17 hours

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 218a4964aa2feb086224f6776245900d275526f4

Fixing and adding unit tests to validate validator logic

view details

push time in 20 hours

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha a9ef85475a6288992ec75c8e7368f833cce1719c

Fixing and adding unit tests to validate validator logic

view details

push time in 20 hours

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 6da165f79389993a6968f1a47bd7d84fba791643

Fixing and adding unit tests to validate validator logic

view details

push time in 20 hours

create barnchshawn-hurley/oadp-operator

branch : feature/fix-up-rename

created branch time in 2 days

pull request commentredhat-openshift-ecosystem/community-operators-prod

operators oadp-operator (0.5.0)

/approve

dymurray

comment created time in 6 days

PullRequestReviewEvent

create barnchshawn-hurley/oadp-operator

branch : update-csv-bug

created branch time in 6 days

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 466dff19f0dc6f971288cdad08f4b183a71a5da6

running make bundle

view details

push time in 6 days

push eventshawn-hurley/oadp-operator

Savitha Raghunathan

commit sha 57646df6c1b8e246cdcdaef659bf1eb7b979ad16

Adding must-gather for oadp (#463) * Adding must-gather for oadp * Removing memory profile & changing log pat * Editing prom metrics * Editing log path for cr files * Removing MTC references * fixing log path * CR name changes * CR name changes1 * Fixing quay repo path

view details

Savitha Raghunathan

commit sha 5b138daa96e15d6c562c2afa1bb4169f9c635357

Backup/Restore troubleshooting (#445) * Initial debug steps * Add debug steps for restore and minor cleanup * Add debug steps for backup restic * Add troubleshooing info for backup log errors

view details

Shubham Pampattiwar

commit sha b749e09798577a6d7b9293ceb056f8c0acda7cd5

add oadp api validator (#472)

view details

Dylan Murray

commit sha f45e84ac55f53c4242bf36318aae2fe53ef02945

Rename everything for DPA (#456)

view details

dymurray

commit sha fb06f1df6389d2303e22bc8de9abc46a5639ebcb

Update all the controllers for new API

view details

dymurray

commit sha c30defa5363ab32e4b1ee21ff79f35104c0823f8

Update velero tests

view details

dymurray

commit sha 0e067705eea4b3fca3bb6e14b73c4e658d184a6f

Fix test errors

view details

dymurray

commit sha b2fbc7127000fb05641defb8ddc8792100bc8dc2

Fix e2e tests

view details

dymurray

commit sha d026d9d3854d2bb796c43d1f892a18a0622ab89b

E2E tests are passinggit statusgit status!

view details

dymurray

commit sha 0c799dff95b8cc6ae132709ab608dd0843d6c763

OLM updates

view details

Shubham Pampattiwar

commit sha c3f1d38e622769f93b4425a9add25417d67705a0

add e2e tests: aws plugin and resource alloc

view details

dymurray

commit sha 593643850177c4f983d543bce6282df1af21b9ba

Update CSV bundle

view details

dymurray

commit sha 4a056b9f79b337f83c67fb7feed00b036a2a62b6

Update all the controllers for new API

view details

Shawn Hurley

commit sha e39d7d47c73bedbfe7b759caa248cd3eba98c682

Adding initial typs and scaffolding

view details

Shawn Hurley

commit sha 634f383d750f4fd5df0f119c9bc615645565ca94

adding bucket controller and aws client

view details

Shawn Hurley

commit sha 15a0cb2f2547c0edf53a59142eb119af954ba3c4

Adding reconcile and validation for bucket backup storage types. * Adding tests

view details

Shawn Hurley

commit sha e3e7f5b82ee2cf0c947cf1d3d75a040868c4508b

Adding Openshift Service Account if shared config enabled

view details

Shawn Hurley

commit sha 68022bcebe602c830b6590c95faa22cdf3428c3e

Adding ability for finalizer on bucket and VSL working with creds

view details

Shawn Hurley

commit sha 5601b83ca0b6a69aac5857963085e94e3faca0c4

Adding finalizer and deletion handling

view details

Shawn Hurley

commit sha 3a2ab3246472f7d7c8abc34de69135a8d58ce50a

Fixing based on comments

view details

push time in 6 days

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha efc06f0825b68f813b4d21cf64bb1a6ffa82dda3

Update type naming

view details

push time in 7 days

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 81b4cd17a82bba8051fb6cb7374858768ca87e88

Fixing up optional fields based on feedback

view details

push time in 7 days

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 83f075337986cdb89b963086bd522087006dd00e

Addressing PR comments

view details

push time in 7 days

PullRequestReviewEvent

Pull request review commentopenshift/oadp-operator

Feature/bucket creation

 type ApplicationConfig struct { 	Restic *ResticConfig `json:"restic,omitempty"` } +type BucketBackupLocation struct {+	BucketRef corev1.LocalObjectReference `json:"bucketRef"`++	// Config is for provider-specific configuration fields.+	// +optional+	Config map[string]string `json:"config,omitempty"`++	// Credential contains the credential information intended to be used with this location+	// +optional+	Credential *corev1.SecretKeySelector `json:"credential,omitempty"`++	// Default indicates this location is the default backup storage location.+	// +optional+	Default bool `json:"default,omitempty"`++	// BackupSyncPeriod defines how frequently to sync backup API objects from object storage. A value of 0 disables sync.+	// +optional+	// +nullable+	BackupSyncPeriod *metav1.Duration `json:"backupSyncPeriod,omitempty"`+}+ // BackupLocation defines the configuration for the DPA backup storage type BackupLocation struct { 	// TODO: Add name/annotations/labels support 	Velero *velero.BackupStorageLocationSpec `json:"velero"`+	Bucket *BucketBackupLocation             `json:"bucket"`

Do you mean just add the omit empty or the comment??

shawn-hurley

comment created time in 7 days

Pull request review commentopenshift/oadp-operator

Feature/bucket creation

+package v1alpha1++import (+	corev1 "k8s.io/api/core/v1"+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"+)++//+kubebuilder:object:root=true+//+kubebuilder:subresource:status++type Bucket struct {+	metav1.TypeMeta   `json:",inline"`+	metav1.ObjectMeta `json:"metadata,omitempty"`++	Spec   BucketSpec   `json:"spec,omitempty"`+	Status BucketStatus `json:"status,omitempty"`+}++type BucketSpec struct {+	// Name is the name requested for the bucket+	Name string `json:"name"`+	// CreationSecret is the secret that is needed to be used while creating the bucket.

I think it totally makes sense to have a provider as a spec value 🤦‍♂️

shawn-hurley

comment created time in 7 days

PullRequestReviewEvent

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha 5d38847b0dee7ea964b725a604c5922aab25157e

Updating based on feedback

view details

push time in 7 days

push eventshawn-hurley/oadp-operator

Shawn Hurley

commit sha ead2fa5c4a53f5d1ef0df6ae472aae7497b41887

Updating based on feedback

view details

push time in 7 days

Pull request review commentopenshift/oadp-operator

Feature/bucket creation

+package v1alpha1++import (+	corev1 "k8s.io/api/core/v1"+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"+)++//+kubebuilder:object:root=true+//+kubebuilder:subresource:status++type Bucket struct {

What about CloudBucket or something like BackupStorageBucket?

shawn-hurley

comment created time in 7 days

PullRequestReviewEvent

Pull request review commentopenshift/oadp-operator

Feature/bucket creation

+package bucket++import (+	"context"+	"fmt"+	"os"+	"path/filepath"++	corev1 "k8s.io/api/core/v1"++	"github.com/aws/aws-sdk-go/aws"+	"github.com/aws/aws-sdk-go/aws/awserr"+	"github.com/aws/aws-sdk-go/aws/session"+	"github.com/aws/aws-sdk-go/service/s3"+	"github.com/aws/aws-sdk-go/service/s3/s3iface"+	"github.com/openshift/oadp-operator/api/v1alpha1"+	"k8s.io/apimachinery/pkg/types"+	"sigs.k8s.io/controller-runtime/pkg/client"+)++var (+	fileBucketCache = map[types.NamespacedName]string{}+)++func init() {+	fileBucketCache = make(map[types.NamespacedName]string)+}++type Client interface {+	Exists() (bool, error)+	Create() (bool, error)+	Delete() (bool, error)+	ForceCredentialRefresh() error+}++func NewClient(b v1alpha1.Bucket, c client.Client) (Client, error) {+	return &awsBucketClient{bucket: b, client: c}, nil+}++type awsBucketClient struct {+	bucket v1alpha1.Bucket+	client client.Client+}++var _ Client = &awsBucketClient{}++func (a awsBucketClient) Exists() (bool, error) {+	s3Client, err := a.getS3Client()+	if err != nil {+		return false, err+	}+	input := &s3.HeadBucketInput{+		Bucket: aws.String(a.bucket.Spec.Name),+	}+	_, err = s3Client.HeadBucket(input)+	if err != nil {+		if aerr, ok := err.(awserr.Error); ok {+			switch aerr.Code() {+			// This is supposed to say "NoSuchBucket", but actually emits "NotFound"+			// https://github.com/aws/aws-sdk-go/issues/2593+			case s3.ErrCodeNoSuchBucket, "NotFound":+				return false, nil+			default:+				// Return true, because we are unable to detemine if bucket exists or not+				return true, fmt.Errorf("unable to determine bucket %v status: %v", a.bucket.Spec.Name, aerr.Error())+			}+		} else {+			// Return true, because we are unable to detemine if bucket exists or not+			return true, fmt.Errorf("unable to determine bucket %v status: %v", a.bucket.Spec.Name, aerr.Error())+		}+	}++	err = a.tagBucket()+	if err != nil {+		return true, err+	}++	return true, nil+}++func (a awsBucketClient) Create() (bool, error) {+	s3Client, err := a.getS3Client()+	if err != nil {+		return false, err+	}+	createBucketInput := &s3.CreateBucketInput{+		ACL:    aws.String(s3.BucketCannedACLPrivate),+		Bucket: aws.String(a.bucket.Spec.Name),+	}+	if a.bucket.Spec.Region != "us-east-1" {

Resolving this thread

shawn-hurley

comment created time in 7 days

PullRequestReviewEvent

pull request commentopenshift/oadp-operator

Feature/bucket creation

@dymurray because of the squash merge, I have had to do some nasty rebase stuff with commits sorry.

shawn-hurley

comment created time in 7 days

more