{"action":"created","issue":{"url":"https://api.github.com/repos/rook/rook/issues/1583","repository_url":"https://api.github.com/repos/rook/rook","labels_url":"https://api.github.com/repos/rook/rook/issues/1583/labels{/name}","comments_url":"https://api.github.com/repos/rook/rook/issues/1583/comments","events_url":"https://api.github.com/repos/rook/rook/issues/1583/events","html_url":"https://github.com/rook/rook/issues/1583","id":306522285,"node_id":"MDU6SXNzdWUzMDY1MjIyODU=","number":1583,"title":"Define a CRD for object store users","user":{"login":"travisn","id":1048514,"node_id":"MDQ6VXNlcjEwNDg1MTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/1048514?v=4","gravatar_id":"","url":"https://api.github.com/users/travisn","html_url":"https://github.com/travisn","followers_url":"https://api.github.com/users/travisn/followers","following_url":"https://api.github.com/users/travisn/following{/other_user}","gists_url":"https://api.github.com/users/travisn/gists{/gist_id}","starred_url":"https://api.github.com/users/travisn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/travisn/subscriptions","organizations_url":"https://api.github.com/users/travisn/orgs","repos_url":"https://api.github.com/users/travisn/repos","events_url":"https://api.github.com/users/travisn/events{/privacy}","received_events_url":"https://api.github.com/users/travisn/received_events","type":"User","site_admin":false},"labels":[{"id":405241118,"node_id":"MDU6TGFiZWw0MDUyNDExMTg=","url":"https://api.github.com/repos/rook/rook/labels/help%20wanted","name":"help wanted","color":"128A0C","default":true},{"id":496363947,"node_id":"MDU6TGFiZWw0OTYzNjM5NDc=","url":"https://api.github.com/repos/rook/rook/labels/objectstore","name":"objectstore","color":"d93f0b","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-03-19T15:54:29Z","updated_at":"2018-06-04T14:40:24Z","closed_at":null,"author_association":"MEMBER","body":"Creating a user for the object store requires access to the rook toolbox to run some specific commands for `radosgw-admin`. This escapes the expected pattern of using K8s resources to configure the cluster. \r\n\r\nA K8s secret would be created to store the sensitive secret for the user.\r\nFor object store users to query the creds for a user, two attributes would be added to the CRD under the `status` section:\r\n- The user access key\r\n- A reference to the K8s secret for the user's secret key\r\n\r\nA new documentation topic would be needed under the CRD heading. This would replace the toolbox commands found [here](https://github.com/rook/rook/blob/master/Documentation/object.md#create-a-user).\r\n"},"comment":{"url":"https://api.github.com/repos/rook/rook/issues/comments/394378758","html_url":"https://github.com/rook/rook/issues/1583#issuecomment-394378758","issue_url":"https://api.github.com/repos/rook/rook/issues/1583","id":394378758,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NDM3ODc1OA==","user":{"login":"travisn","id":1048514,"node_id":"MDQ6VXNlcjEwNDg1MTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/1048514?v=4","gravatar_id":"","url":"https://api.github.com/users/travisn","html_url":"https://github.com/travisn","followers_url":"https://api.github.com/users/travisn/followers","following_url":"https://api.github.com/users/travisn/following{/other_user}","gists_url":"https://api.github.com/users/travisn/gists{/gist_id}","starred_url":"https://api.github.com/users/travisn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/travisn/subscriptions","organizations_url":"https://api.github.com/users/travisn/orgs","repos_url":"https://api.github.com/users/travisn/repos","events_url":"https://api.github.com/users/travisn/events{/privacy}","received_events_url":"https://api.github.com/users/travisn/received_events","type":"User","site_admin":false},"created_at":"2018-06-04T14:40:24Z","updated_at":"2018-06-04T14:40:24Z","author_association":"MEMBER","body":"@dgonzalezruiz sounds great for you to take this. Here are a few thoughts...\r\n\r\nWhile we will want the users to be created for both ceph and minio, I believe the design would involve having separate CRDs for Ceph and Minio object store users. The two object stores will certainly have different features in the long term and the separate CRDs would allow them to specialize. \r\n\r\nUnder the covers there is likely an opportunity for common implementation. This is similar to the [storage node](https://github.com/rook/rook/blob/master/cluster/examples/kubernetes/ceph/cluster.yaml#L55) in the cluster crd. The `storage` node is deserialized by a type in the `rookv1alpha2` namespace as defined [here](https://github.com/rook/rook/blob/master/pkg/apis/rook.io/v1alpha2/types.go#L31). This allows multiple types of cluster CRDs to work with the storage nodes with common code, while then being able to add cluster-specific properties as needed in the rest of the CRD. Similarly, I would expect the object store user CRD will define a type in the `rookv1alpha2` namespace that will be common to ceph and minio."}}
{"actor":{"display_login":"travisn"}}