{"action":"created","comment":{"url":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/comments/239281417","pull_request_review_id":182025887,"id":239281417,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzOTI4MTQxNw==","diff_hunk":"@@ -0,0 +1,328 @@\n+# Prometheus Time Series Database migration\n+This article provides a set of guidelines to migrate the time series database (TSDB from now on) from an existing Prometheus deployment to the Bitnami Kubernetes Production Runtime one.\n+\n+## Prerequisites\n+The following prerequisites should be met before starting with the migration process:\n+\n+* You ave a healthy Kubernetes cluster running.\n+* You have a Prometheus deployment that *matches the BKPR Prometheus version*, which can be obtained [here](https://github.com/bitnami/kube-prod-runtime#release-compatibility).\n+\n+This article will not cover the upgrade process of Prometheus itself. If you need to update your Prometheus deployment, check the [Prometheus docs](https://prometheus.io/docs/prometheus/latest/migration/)\n+\n+## Overview\n+\n+This chapter provides an overview of the required steps to migrate the Prometheus TSDB from an already running deployment to the BKPR Prometheus one.\n+\n+This process is meant to provide a zero downtime migration to the new StatefulSet by having two Prometheus instances running at the same time. These instances will be modified to include a sidecar container that will deploy an *rsync* client and server with access to the Prometheus data volume in order to move a Prometheus TSDB snapshot from one pod to another.\n+\n+As Prometheus doesn’t include yet a *flush* method to dump all the WAL file that is being written into a snapshot with a block format that doesn’t overlap time ranges (see [this issue](https://github.com/prometheus/tsdb/issues/346) for more context) it is necessary to sync with the Prometheus TSDB compact times, in order to ensure a minimal data loss (less than 5 minutes).\n+\n+These are the steps that will be made to accomplish this migration:\n+\n+* Deploy rsync sidecar container (acting as the rsync server) in your current Prometheus deployment \n+* Modify the `kubeprod-manifest.jsonnet` to add another sidecar rsync container (acting as a client)\n+* Sync with the compact times of the Prometheus database\n+* Perform the snapshot and restore it in the new deployment\n+\n+## Deploying the sidecar rsync server\n+\n+In order to access via rsync to the Prometheus TSDB snapshots, it will be necessary to deploy a rsync server with a minimal configuration to make it so.\n+\n+This way, you can use the following jsonnet snippet to add that sidecar container:\n+\n+```jsonnet\n+// target-add-rsync.jsonnet: add rsync sidecar container, exposing\n+// <volume_name> below via rsync, by overloading saved \"target.json\"\n+\n+// NOTE: We're not assuming a particular instrumentation tool (e.g ksonnet, kubecfg via jsonnet)\n+// but rather doing an override from original sts / deploy output json\n+\n+// 1) Save existing deployment/sts to target.json:\n+//   kubectl get deployments -n NAMESPACE NAME -o target.json\n+local target = import \"target.json\";\n+\n+// volume_name must be the name of existing volume name inside target's podSpec\n+local volume_name = \"data\";\n+\n+// 2) show/diff/update resulting composition ('-J lib' where lib is the path to kube.libsonnet)\n+//   kubecfg -J lib show target-add-rsync.jsonnet\n+\n+// For testing purposes, You can fake above by creating a deploy with an emptyDir volume:\n+//    kubectl run --image=nginx:latest --overrides '{\"spec\":{\"template\":{\"spec\":{ \"volumes\": [{\"name\": \"data\", \"emptyDir\": {}}]}}}}' nginx-tgt\n+//    kubectl get deploy nginx-tgt -ojson > target.json\n+\n+local kube = import \"./kube.libsonnet\";\n+local rsync_conf_b64 = std.base64(\n+  |||\n+    [data]\n+    path = /data\n+    list = false\n+    use chroot = false\n+    read only = true\n+  |||\n+);\n+\n+local rsync_container_name = \"sidecar-rsync\";\n+\n+// sidecar-rsync container (mounting <volume_name>) to be exposed via rsync\n+local rsync_container = kube.Container(rsync_container_name) {\n+  image: \"alpine:3.8\",\n+  args: [\n+    \"sh\",\n+    \"-c\",\n+    |||\n+      apk update && apk add rsync curl\n+      echo '%s' | base64 -d > /rsync.conf\n+      rsync -vvv --daemon --no-detach --config=/rsync.conf\n+    ||| % [rsync_conf_b64],\n+  ],\n+  volumeMounts_+: {\n+    [volume_name]: { mountPath: \"/data\" },\n+  },\n+};\n+\n+local containers_obj(containers) = {\n+  [container.name]: container for container in containers\n+};\n+\n+local stack = {\n+  \n+  target_with_sidecar: target {\n+    spec+: {\n+      template+: {\n+        spec+: {\n+          // convert containers array to obj for easier jsonnet\n+          // handling: in particular, if we just added the new container\n+          // to existing containers[] array, we wouldn't be able to re-run\n+          // this, as we'd get duplicated containers.\n+          // By referring the added container via rsync_container_name, we\n+          // can easily override it.\n+\n+          local containers = super.containers,\n+          containers: kube.PodSpec {\n+            default_container:: containers[0].name,\n+            // create or override(existing) rsync_container\n+            containers_+: containers_obj(containers) {\n+              [rsync_container_name]: rsync_container,\n+              [\"prometheus\"]+:{\n+                args+: [\n+                  \"--web.enable-admin-api\",\n+                ],\n+              },\n+            },\n+          }.containers,\n+        },\n+      },\n+    },\n+  },\n+};\n+\n+kube.List() {items_+: stack}\n+```\n+\n+Notice also how one extra argument has been added to the Prometheus container. In order to generate a snapshot of Prometheus its mandatory to have the admin api enabled. Take a look at the [Prometheus docs](https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis) for more information about this.\n+\n+After deploying the generated manifest you will have a rsync container that you can access with:\n+\n+`kubectl exec -it -n NAMESPACE PROMETHEUS_POD_NAME -c sidecar-rsync sh`\n+\n+> Note: Make sure you change the placeholders NAMESPACE and PROMETHEUS_POD_NAME for the Kubernetes namespace and Prometheus pod name you have. In example: `kubectl exec -it -n monitoring prometheus-d776d68fb-vc7gt -c sidecar-rsync sh`\n+\n+Check also that a new service has been created for Prometheus:\n+\n+```bash\n+~ $ kubectl get svc\n+NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE\n+prometheus         ClusterIP   10.30.244.231   <none>        9090/TCP   1y\n+prometheus-rsync   ClusterIP   10.30.247.115   <none>        873/TCP    9d\n+```\n+\n+Now, you should be able to access to that service from other pod. If you are interested in doing a quick test from other pod you can do:\n+\n+```bash\n+/ # nc -zv prometheus-rsync.NAMESPACE.svc.cluster.local 873\n+prometheus-rsync.NAMESPACE.svc.cluster.local (10.130.32.5:873) open\n+```\n+\n+## Modifying the `kubeprod-manifest.jsonnet` to add the sidecar rsync container\n+\n+The `kubeprod-manifest.jsonnet` file will contain all the custom configuration you want to apply to the jsonnet manifests.  In this case, in order to add the rsync sidecar container the following configuration will have to be added:\n+\n+```jsonnet\n+// Bitnami specific common configuration\n+local common_prom_config = import \"../common/prometheus/conf.d/prometheus.jsonnet\";\n+\n+// Common libs\n+local kube = import \"kube.libsonnet\";\n+\n+(import \"../vendor/kubeprod/manifests/platforms/gke.jsonnet\") {\n+\n+  config:: import \"kubeprod-autogen.json\",\n+\n+  // Place your overrides here\n+  prometheus+: { \n+\n+    // Add rsync sidecar container to the prometheus sts.\n+    // and adapt resources to our needs\n+    prometheus+: {  // Prometheus server itself\n+      deploy+: {  // Prometheus StatefulSet deployment\n+        spec+: {\n+          template+: {\n+            spec+: {\n+              containers_+: {\n+                rsync: kube.Container(\"sidecar-rsync\") {\n+                  image: \"alpine:3.8\",\n+                  args+: [\"sh\", \"-c\", \"apk update && apk add rsync curl && tail -f /dev/null\"],\n+                  volumeMounts_+: {\n+                    data: { mountPath: \"/data\" },\n+                  },\n+                },\n+              },\n+            },\n+          },\n+        },\n+      },\n+    },\n+  },\n+}\n+```\n+\n+After you deploy the manifests in your Kubernetes cluster, you will see the 3 containers that the Prometheus pod has:\n+\n+```bash\n+~ $ kubectl get pods -o=jsonpath='{range .items[*]}{\"\\n\"}{.metadata.name}{\":\\t\"}{range .spec.containers[*]}{.image}{\", \"}{end}{end}' | grep prometheus |\\\n+sort\n+\n+prometheus-0:\tbitnami/prometheus:2.4.3-r31, jimmidyson/configmap-reload:v0.2.2, alpine:3.8,\n+```\n+\n+Now, you can do a quick test of the rsync service by getting a shell in the container executing:\n+\n+`kubectl exec -it prometheus-0 -n kubeprod -c sidecar-rsync sh`\n+\n+and:\n+\n+`rsync -avrP prometheus-rsync.NAMESPACE.svc.cluster.local::data/test-file .`\n+\n+> Make sure previously you have deployed a test file in your Prometheus data directory so you can rsync it to the new container\n+\n+## Syncing with the compact times of the Prometheus database\n+Now that all bits are in place you are ready to perform the Prometheus TSDB migration. To do so, you will first have to sync with the TSDB compact times of Prometheus to ensure the minimal data loss.\n+\n+### Doing a Prometheus TSDB migration\n+\n+By default, each two hours Prometheus will perform a compact of the TSDB and will write into disk the latest information it has in the WAL (Write-Ahead-Log) file. You can notice about these compacts in the TSDB by looking at the Prometheus logs:","path":"docs/migration-guides/prometheus-migration.md","position":214,"original_position":214,"commit_id":"2cc1088bc0175b463065212a99db8588a212f2fd","original_commit_id":"2cc1088bc0175b463065212a99db8588a212f2fd","user":{"login":"falfaro","id":172827,"node_id":"MDQ6VXNlcjE3MjgyNw==","avatar_url":"https://avatars1.githubusercontent.com/u/172827?v=4","gravatar_id":"","url":"https://api.github.com/users/falfaro","html_url":"https://github.com/falfaro","followers_url":"https://api.github.com/users/falfaro/followers","following_url":"https://api.github.com/users/falfaro/following{/other_user}","gists_url":"https://api.github.com/users/falfaro/gists{/gist_id}","starred_url":"https://api.github.com/users/falfaro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/falfaro/subscriptions","organizations_url":"https://api.github.com/users/falfaro/orgs","repos_url":"https://api.github.com/users/falfaro/repos","events_url":"https://api.github.com/users/falfaro/events{/privacy}","received_events_url":"https://api.github.com/users/falfaro/received_events","type":"User","site_admin":false},"body":"s/You can notice about these compacts/You can watch this compactions/","created_at":"2018-12-05T23:45:06Z","updated_at":"2018-12-05T23:47:53Z","html_url":"https://github.com/bitnami/kube-prod-runtime/pull/261#discussion_r239281417","pull_request_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/261","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/comments/239281417"},"html":{"href":"https://github.com/bitnami/kube-prod-runtime/pull/261#discussion_r239281417"},"pull_request":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/261"}},"in_reply_to_id":239281296},"pull_request":{"url":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/261","id":236159621,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM2MTU5NjIx","html_url":"https://github.com/bitnami/kube-prod-runtime/pull/261","diff_url":"https://github.com/bitnami/kube-prod-runtime/pull/261.diff","patch_url":"https://github.com/bitnami/kube-prod-runtime/pull/261.patch","issue_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues/261","number":261,"state":"open","locked":false,"title":"WIP: Add Prometheus migration guide","user":{"login":"dbarranco","id":9199512,"node_id":"MDQ6VXNlcjkxOTk1MTI=","avatar_url":"https://avatars2.githubusercontent.com/u/9199512?v=4","gravatar_id":"","url":"https://api.github.com/users/dbarranco","html_url":"https://github.com/dbarranco","followers_url":"https://api.github.com/users/dbarranco/followers","following_url":"https://api.github.com/users/dbarranco/following{/other_user}","gists_url":"https://api.github.com/users/dbarranco/gists{/gist_id}","starred_url":"https://api.github.com/users/dbarranco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dbarranco/subscriptions","organizations_url":"https://api.github.com/users/dbarranco/orgs","repos_url":"https://api.github.com/users/dbarranco/repos","events_url":"https://api.github.com/users/dbarranco/events{/privacy}","received_events_url":"https://api.github.com/users/dbarranco/received_events","type":"User","site_admin":false},"body":"WiP, pending to be filled.","created_at":"2018-12-05T12:40:45Z","updated_at":"2018-12-05T23:47:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5c1ccb0cc09a168fe0f01bae501803cf85e289d3","assignee":null,"assignees":[],"requested_reviewers":[{"login":"jjo","id":88727,"node_id":"MDQ6VXNlcjg4NzI3","avatar_url":"https://avatars2.githubusercontent.com/u/88727?v=4","gravatar_id":"","url":"https://api.github.com/users/jjo","html_url":"https://github.com/jjo","followers_url":"https://api.github.com/users/jjo/followers","following_url":"https://api.github.com/users/jjo/following{/other_user}","gists_url":"https://api.github.com/users/jjo/gists{/gist_id}","starred_url":"https://api.github.com/users/jjo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jjo/subscriptions","organizations_url":"https://api.github.com/users/jjo/orgs","repos_url":"https://api.github.com/users/jjo/repos","events_url":"https://api.github.com/users/jjo/events{/privacy}","received_events_url":"https://api.github.com/users/jjo/received_events","type":"User","site_admin":false},{"login":"jbianquetti-nami","id":22960194,"node_id":"MDQ6VXNlcjIyOTYwMTk0","avatar_url":"https://avatars2.githubusercontent.com/u/22960194?v=4","gravatar_id":"","url":"https://api.github.com/users/jbianquetti-nami","html_url":"https://github.com/jbianquetti-nami","followers_url":"https://api.github.com/users/jbianquetti-nami/followers","following_url":"https://api.github.com/users/jbianquetti-nami/following{/other_user}","gists_url":"https://api.github.com/users/jbianquetti-nami/gists{/gist_id}","starred_url":"https://api.github.com/users/jbianquetti-nami/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbianquetti-nami/subscriptions","organizations_url":"https://api.github.com/users/jbianquetti-nami/orgs","repos_url":"https://api.github.com/users/jbianquetti-nami/repos","events_url":"https://api.github.com/users/jbianquetti-nami/events{/privacy}","received_events_url":"https://api.github.com/users/jbianquetti-nami/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/261/commits","review_comments_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/261/comments","review_comment_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues/261/comments","statuses_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/statuses/2cc1088bc0175b463065212a99db8588a212f2fd","head":{"label":"bitnami:promDocs","ref":"promDocs","sha":"2cc1088bc0175b463065212a99db8588a212f2fd","user":{"login":"bitnami","id":5446553,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NDY1NTM=","avatar_url":"https://avatars0.githubusercontent.com/u/5446553?v=4","gravatar_id":"","url":"https://api.github.com/users/bitnami","html_url":"https://github.com/bitnami","followers_url":"https://api.github.com/users/bitnami/followers","following_url":"https://api.github.com/users/bitnami/following{/other_user}","gists_url":"https://api.github.com/users/bitnami/gists{/gist_id}","starred_url":"https://api.github.com/users/bitnami/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitnami/subscriptions","organizations_url":"https://api.github.com/users/bitnami/orgs","repos_url":"https://api.github.com/users/bitnami/repos","events_url":"https://api.github.com/users/bitnami/events{/privacy}","received_events_url":"https://api.github.com/users/bitnami/received_events","type":"Organization","site_admin":false},"repo":{"id":123506528,"node_id":"MDEwOlJlcG9zaXRvcnkxMjM1MDY1Mjg=","name":"kube-prod-runtime","full_name":"bitnami/kube-prod-runtime","private":false,"owner":{"login":"bitnami","id":5446553,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NDY1NTM=","avatar_url":"https://avatars0.githubusercontent.com/u/5446553?v=4","gravatar_id":"","url":"https://api.github.com/users/bitnami","html_url":"https://github.com/bitnami","followers_url":"https://api.github.com/users/bitnami/followers","following_url":"https://api.github.com/users/bitnami/following{/other_user}","gists_url":"https://api.github.com/users/bitnami/gists{/gist_id}","starred_url":"https://api.github.com/users/bitnami/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitnami/subscriptions","organizations_url":"https://api.github.com/users/bitnami/orgs","repos_url":"https://api.github.com/users/bitnami/repos","events_url":"https://api.github.com/users/bitnami/events{/privacy}","received_events_url":"https://api.github.com/users/bitnami/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/bitnami/kube-prod-runtime","description":"A standard runtime environment for Kubernetes","fork":false,"url":"https://api.github.com/repos/bitnami/kube-prod-runtime","forks_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/forks","keys_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/teams","hooks_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/hooks","issue_events_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues/events{/number}","events_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/events","assignees_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/assignees{/user}","branches_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/branches{/branch}","tags_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/tags","blobs_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/statuses/{sha}","languages_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/languages","stargazers_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/stargazers","contributors_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/contributors","subscribers_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/subscribers","subscription_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/subscription","commits_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/contents/{+path}","compare_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/merges","archive_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/downloads","issues_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues{/number}","pulls_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls{/number}","milestones_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/milestones{/number}","notifications_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/labels{/name}","releases_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/releases{/id}","deployments_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/deployments","created_at":"2018-03-01T23:55:06Z","updated_at":"2018-12-05T22:25:16Z","pushed_at":"2018-12-05T23:36:37Z","git_url":"git://github.com/bitnami/kube-prod-runtime.git","ssh_url":"git@github.com:bitnami/kube-prod-runtime.git","clone_url":"https://github.com/bitnami/kube-prod-runtime.git","svn_url":"https://github.com/bitnami/kube-prod-runtime","homepage":"","size":9431,"stargazers_count":49,"watchers_count":49,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":35,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":9,"open_issues":35,"watchers":49,"default_branch":"master"}},"base":{"label":"bitnami:master","ref":"master","sha":"512b0bae1f9917936e7ddbe73dc4dac3f49737a4","user":{"login":"bitnami","id":5446553,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NDY1NTM=","avatar_url":"https://avatars0.githubusercontent.com/u/5446553?v=4","gravatar_id":"","url":"https://api.github.com/users/bitnami","html_url":"https://github.com/bitnami","followers_url":"https://api.github.com/users/bitnami/followers","following_url":"https://api.github.com/users/bitnami/following{/other_user}","gists_url":"https://api.github.com/users/bitnami/gists{/gist_id}","starred_url":"https://api.github.com/users/bitnami/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitnami/subscriptions","organizations_url":"https://api.github.com/users/bitnami/orgs","repos_url":"https://api.github.com/users/bitnami/repos","events_url":"https://api.github.com/users/bitnami/events{/privacy}","received_events_url":"https://api.github.com/users/bitnami/received_events","type":"Organization","site_admin":false},"repo":{"id":123506528,"node_id":"MDEwOlJlcG9zaXRvcnkxMjM1MDY1Mjg=","name":"kube-prod-runtime","full_name":"bitnami/kube-prod-runtime","private":false,"owner":{"login":"bitnami","id":5446553,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0NDY1NTM=","avatar_url":"https://avatars0.githubusercontent.com/u/5446553?v=4","gravatar_id":"","url":"https://api.github.com/users/bitnami","html_url":"https://github.com/bitnami","followers_url":"https://api.github.com/users/bitnami/followers","following_url":"https://api.github.com/users/bitnami/following{/other_user}","gists_url":"https://api.github.com/users/bitnami/gists{/gist_id}","starred_url":"https://api.github.com/users/bitnami/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bitnami/subscriptions","organizations_url":"https://api.github.com/users/bitnami/orgs","repos_url":"https://api.github.com/users/bitnami/repos","events_url":"https://api.github.com/users/bitnami/events{/privacy}","received_events_url":"https://api.github.com/users/bitnami/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/bitnami/kube-prod-runtime","description":"A standard runtime environment for Kubernetes","fork":false,"url":"https://api.github.com/repos/bitnami/kube-prod-runtime","forks_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/forks","keys_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/teams","hooks_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/hooks","issue_events_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues/events{/number}","events_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/events","assignees_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/assignees{/user}","branches_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/branches{/branch}","tags_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/tags","blobs_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/refs{/sha}","trees_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/statuses/{sha}","languages_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/languages","stargazers_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/stargazers","contributors_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/contributors","subscribers_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/subscribers","subscription_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/subscription","commits_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/commits{/sha}","git_commits_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/git/commits{/sha}","comments_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/comments{/number}","issue_comment_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues/comments{/number}","contents_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/contents/{+path}","compare_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/merges","archive_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/downloads","issues_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues{/number}","pulls_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls{/number}","milestones_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/milestones{/number}","notifications_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/labels{/name}","releases_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/releases{/id}","deployments_url":"https://api.github.com/repos/bitnami/kube-prod-runtime/deployments","created_at":"2018-03-01T23:55:06Z","updated_at":"2018-12-05T22:25:16Z","pushed_at":"2018-12-05T23:36:37Z","git_url":"git://github.com/bitnami/kube-prod-runtime.git","ssh_url":"git@github.com:bitnami/kube-prod-runtime.git","clone_url":"https://github.com/bitnami/kube-prod-runtime.git","svn_url":"https://github.com/bitnami/kube-prod-runtime","homepage":"","size":9431,"stargazers_count":49,"watchers_count":49,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":35,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":9,"open_issues":35,"watchers":49,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/261"},"html":{"href":"https://github.com/bitnami/kube-prod-runtime/pull/261"},"issue":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues/261"},"comments":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/issues/261/comments"},"review_comments":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/261/comments"},"review_comment":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/pulls/261/commits"},"statuses":{"href":"https://api.github.com/repos/bitnami/kube-prod-runtime/statuses/2cc1088bc0175b463065212a99db8588a212f2fd"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"falfaro"}}