Operator Framework: Building Apps on Kubernetes
&gt; It appears there are over 20k lines of Go code after excluding vendor libraries and the example and contrib directories (arguably, contrib should&#x27;ve been included).<p>close..<p><pre><code>  $ find -name &#x27;*.go&#x27;|grep -v .&#x2F;vendor|xargs wc -l|sort -n|tail
     507 .&#x2F;test&#x2F;e2e&#x2F;alertmanager_test.go
     540 .&#x2F;pkg&#x2F;client&#x2F;monitoring&#x2F;v1&#x2F;types.go
     562 .&#x2F;pkg&#x2F;alertmanager&#x2F;operator.go
     643 .&#x2F;pkg&#x2F;prometheus&#x2F;statefulset.go
     719 .&#x2F;pkg&#x2F;prometheus&#x2F;promcfg.go
     760 .&#x2F;test&#x2F;e2e&#x2F;prometheus_test.go
     835 .&#x2F;pkg&#x2F;client&#x2F;monitoring&#x2F;v1&#x2F;zz_generated.deepcopy.go
    1152 .&#x2F;pkg&#x2F;prometheus&#x2F;operator.go
   11410 .&#x2F;pkg&#x2F;client&#x2F;monitoring&#x2F;v1&#x2F;openapi_generated.go
   24526 total
</code></pre>
Deleting the auto generate api files and ignoring test&#x2F; gives<p><pre><code>  -------------------------------------------------------------------------------
  Language                     files          blank        comment           code
  -------------------------------------------------------------------------------
  JSON                             9              0              0           6276
  Go                              31           1020           1065           6028
</code></pre>
which is quite a bit off from 20k.<p>&gt; I dunno, it just feels a little disingenuous, to me, to say that something that involves this much code is just a &quot;packaging method&quot; for a normal application.<p>What is disingenuous is to call the prometheus operator, that deploys an entire monitoring stack a &quot;normal application&quot;  The operator sets up monitoring on all the nodes, runs all the server components including configuring grafana and setting up dashboards.<p>Meanwhile,<p><pre><code>  $ cloc puppet-prometheus-5.0.0 puppet-grafana-4.2.0
     192 text files.
     157 unique files.
      48 files ignored.
  
  github.com&#x2F;AlDanial&#x2F;cloc v 1.76  T=1.09 s (131.9 files&#x2F;s, 10534.0 lines&#x2F;s)
  --------------------------------------------------------------------------------
  Language                      files          blank        comment           code
  --------------------------------------------------------------------------------
  Ruby                             43            425            108           2477
  Puppet                           32            132           1747           2280
  Markdown                          6            494              0           1201
  ERB                              20            105              0            925
  YAML                             35              0            200            459
  JSON                              4              0              0            329
  Bourne Shell                      2             28            130            198
  Bourne Again Shell                2             28             56            176
  --------------------------------------------------------------------------------
  SUM:                            144           1212           2241           8045
  --------------------------------------------------------------------------------
</code></pre>
Which is that large and doesn&#x27;t do ANY of the things that the prometheus operator does.<p>&gt; I believe this is the kind of thing people actually want. Highly efficient, thin &quot;VMs&quot; that are easy to manage and run as independent systems without requiring the resource commitment.<p>Or, people want to use k8s so they can run entire clusters of machines as a single consistent system and take advantage of things like rolling deployments and self healing applications.