Here is the expectations around compatibility levels
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/csi-new-client-library-procedure.md#client-capabilities
Though
references to gold, silver, bronze etc seem to have largely gone away...
not sure what's going on there?

For a full reference just browser through the repo,
https://github.com/kubernetes-client/java/blob/master/kubernetes/README.md is
a good place to start as is
https://github.com/kubernetes-client/java/tree/master/examples

The Java driver doesn't have as much of the nice things in
https://github.com/kubernetes/client-go/tree/master/tools but it does have
some good helper classes in the util package so I guess we spent a little
more time wiring things together?

Code Generation is done via the jsonschema2pojo maven plugin and we also
just have the raw CRD definition in a resource directory.

On Wed, May 23, 2018 at 11:23 AM vincent gromakowski <
vincent.gromakow...@gmail.com> wrote:

> Thanks ! Do you have some pointers on the available features ? I am more
> afraid of the lack of custom controller integration, for instance the code
> generator...
>
> 2018-05-23 17:17 GMT+02:00 Ben Bromhead <b...@instaclustr.com>:
>
>> The official Kubernetes Java driver is actually pretty feature complete,
>> if not exactly idiomatic Java...  it's only missing full examples to get it
>> to GOLD compatibility levels iirc.
>>
>> A few reasons we went down the Java path:
>>
>>    - Cassandra community engagement was the primary concern. If you are
>>    a developer in the Cassandra community you have a base level of Java
>>    knowledge, so it means if you want to work on the Kubernetes operator you
>>    only have to learn 1 thing, Kubernetes. If the operator was in Go,
>>    you would then have two things to learn, Go and Kubernetes :)
>>    - We actually wrote an initial PoC in Go (based off the etcd
>>    operator, you can find it here
>>    https://github.com/benbromhead/cassandra-operator-old ), but because
>>    it was in Go we ended up making architectural decisions simply because
>>    Go doesn't do JMX, so it felt like we were just fighting different
>>    ecosystems just to be part of the cool group.
>>
>> Some other less important points weighed the decision in Java's favour:
>>
>>    - The folk at Instaclustr all know Java, and are productive in it
>>    from day 1. Go is fun and relatively simple, but not our forte.
>>    - <troll> Mature package management, Generics/inability to write DRY
>>    code, a million if err statements </troll> (:
>>    - Some other awesome operators/controllers are written in JVM based
>>    languages. The sparkKubernetes resource manager (which is a k8s 
>> controller)
>>    is written in Scala.
>>
>>
>> On Wed, May 23, 2018 at 10:04 AM vincent gromakowski <
>> vincent.gromakow...@gmail.com> wrote:
>>
>>> Why did you choose java for the operator implementation when everybody
>>> seems to use the go client (probably for greater functionalities) ?
>>>
>>> 2018-05-23 15:39 GMT+02:00 Ben Bromhead <b...@instaclustr.com>:
>>>
>>>> You can get a good way with StatefulSets, but as Tom mentioned there
>>>> are still some issues with this, particularly around scaling up and down.
>>>>
>>>> We are working on an Operator for Apache Cassandra, you can find it
>>>> here https://github.com/instaclustr/cassandra-operator. This is a
>>>> joint project between Instaclustr, Pivotal and a few other folk.
>>>>
>>>> Currently it's a work in progress, but we would love any or all early
>>>> feedback/PRs/issues etc. Our first GA release will target the following
>>>> capabilities:
>>>>
>>>>    - Safe scaling up and down (including decommissioning)
>>>>    - Backup/restore workflow (snapshots only initially)
>>>>    - Built in prometheus integration and discovery
>>>>
>>>> Other features like repair, better PV support, maybe even a nice
>>>> dashboard will be on the way.
>>>>
>>>>
>>>> On Wed, May 23, 2018 at 7:35 AM Tom Petracca <tpetra...@palantir.com>
>>>> wrote:
>>>>
>>>>> Using a statefulset should get you pretty far, though will likely be
>>>>> less effective than a coreos-style “operator”. Some random points:
>>>>>
>>>>>    - For scale-up: a node shouldn’t report “ready” until it’s in the
>>>>>    NORMAL state; this will prevent multiple nodes from bootstrapping at 
>>>>> once.
>>>>>    - For scale-down: as of now there isn’t a mechanism to know if a
>>>>>    pod is getting decommissioned because you’ve permanently lowered 
>>>>> replica
>>>>>    count, or because it’s just getting bounced/re-scheduled, thus knowing
>>>>>    whether or not to decommission is basically impossible. Relevant issue:
>>>>>    kubernetes/kubernetes#1462
>>>>>    <https://github.com/kubernetes/kubernetes/issues/1462>
>>>>>
>>>>>
>>>>>
>>>>> *From: *Pradeep Chhetri <prad...@stashaway.com>
>>>>> *Reply-To: *"user@cassandra.apache.org" <user@cassandra.apache.org>
>>>>> *Date: *Friday, May 18, 2018 at 10:20 AM
>>>>> *To: *"user@cassandra.apache.org" <user@cassandra.apache.org>
>>>>> *Subject: *Re: Using K8s to Manage Cassandra in Production
>>>>>
>>>>>
>>>>>
>>>>> Hello Hassaan,
>>>>>
>>>>>
>>>>>
>>>>> We use cassandra helm chart[0] for deploying cassandra over kubernetes
>>>>> in production. We have around 200GB cas data. It works really well. You 
>>>>> can
>>>>> scale up nodes easily (I haven't tested scaling down).
>>>>>
>>>>>
>>>>>
>>>>> I would say that if you are worried about running cassandra over k8s
>>>>> in production, maybe you should first try setting it for your
>>>>> staging/preproduction and gain confidence over time.
>>>>>
>>>>>
>>>>>
>>>>> I have tested situations where i have killed the host running
>>>>> cassandra container and have seen that container moves to a different node
>>>>> and joins cluster properly. So from my experience its pretty good. No
>>>>> issues till yet.
>>>>>
>>>>>
>>>>>
>>>>> [0]: https://github.com/kubernetes/charts/tree/master/incubator/cassandra
>>>>> [github.com]
>>>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_kubernetes_charts_tree_master_incubator_cassandra&d=DwMFaQ&c=izlc9mHr637UR4lpLEZLFFS3Vn2UXBrZ4tFb6oOnmz8&r=1oh1YI8i5eJD1DFTwooO7U92fFi2fjan6lqP61yAiyo&m=dupKDpZi0lkjFkqaSd6XaEj5nuY1T5UObgAcXCBqo7A&s=0WTYStEM1zvh2BQKvnVLRpukxgr0aDLyGffyE1V2xik&e=>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Regards,
>>>>>
>>>>> Pradeep
>>>>>
>>>>>
>>>>>
>>>>> On Fri, May 18, 2018 at 1:01 PM, Павел Сапежко <amelius0...@gmail.com>
>>>>> wrote:
>>>>>
>>>>> Hi, Hassaan! For example we are using C* in k8s in production for our
>>>>> video surveillance system. Moreover, we are using Ceph RBD as our storage
>>>>> for cassandra. Today we have 8 C* nodes each manages 2Tb of data.
>>>>>
>>>>>
>>>>>
>>>>> On Fri, May 18, 2018 at 9:27 AM Hassaan Pasha <hpa...@an10.io> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>>
>>>>>
>>>>> I am trying to craft a deployment strategy for deploying and
>>>>> maintaining a C* cluster. I was wondering if there are actual production
>>>>> deployments of C* using K8s as the orchestration layer.
>>>>>
>>>>>
>>>>>
>>>>> I have been given the impression that K8s managing a C* cluster can be
>>>>> a recipe for disaster, especially if you aren't well versed with the
>>>>> intricacies of a scale-up/down event. I know use cases where people are
>>>>> using Mesos or a custom tool built with terraform/chef etc to run their
>>>>> production clusters but have yet to find a real K8s use case.
>>>>>
>>>>>
>>>>>
>>>>> *Questions?*
>>>>>
>>>>> Is K8s a reasonable choice for managing a production C* cluster?
>>>>>
>>>>> Are there documented use cases for this?
>>>>>
>>>>>
>>>>>
>>>>> Any help would be greatly appreciated.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Regards,
>>>>>
>>>>>
>>>>>
>>>>> *Hassaan Pasha*
>>>>>
>>>>> --
>>>>>
>>>>> Regrads,
>>>>>
>>>>> Pavel Sapezhko
>>>>>
>>>>>
>>>>>
>>>> --
>>>> Ben Bromhead
>>>> CTO | Instaclustr <https://www.instaclustr.com/>
>>>> +1 650 284 9692 <(650)%20284-9692>
>>>> Reliability at Scale
>>>> Cassandra, Spark, Elasticsearch on AWS, Azure, GCP and Softlayer
>>>>
>>>
>>> --
>> Ben Bromhead
>> CTO | Instaclustr <https://www.instaclustr.com/>
>> +1 650 284 9692 <(650)%20284-9692>
>> Reliability at Scale
>> Cassandra, Spark, Elasticsearch on AWS, Azure, GCP and Softlayer
>>
>
> --
Ben Bromhead
CTO | Instaclustr <https://www.instaclustr.com/>
+1 650 284 9692
Reliability at Scale
Cassandra, Spark, Elasticsearch on AWS, Azure, GCP and Softlayer

Reply via email to