{"id":13676795,"url":"https://github.com/elotl/kip","last_synced_at":"2026-01-17T15:35:50.477Z","repository":{"id":47183054,"uuid":"232928143","full_name":"elotl/kip","owner":"elotl","description":"Virtual-kubelet provider running pods in cloud instances","archived":false,"fork":false,"pushed_at":"2023-02-25T07:01:39.000Z","size":14919,"stargazers_count":231,"open_issues_count":34,"forks_count":14,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-11-22T18:02:49.343Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elotl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security-groups.md","support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-01-09T23:45:59.000Z","updated_at":"2025-11-09T14:58:12.000Z","dependencies_parsed_at":"2024-01-07T18:09:33.718Z","dependency_job_id":null,"html_url":"https://github.com/elotl/kip","commit_stats":null,"previous_names":["elotl/cloud-instance-provider"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/elotl/kip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elotl%2Fkip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elotl%2Fkip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elotl%2Fkip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elotl%2Fkip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elotl","download_url":"https://codeload.github.com/elotl/kip/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elotl%2Fkip/sbom","scorecard":{"id":373746,"data":{"date":"2025-08-11","repo":{"name":"github.com/elotl/kip","commit":"739ad20f5e720e7721cb56c2fb9b41237367e99f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating debian:stable-slim to debian:stable-slim@sha256:8810492a2dd16b7f59239c1e0cc1e56c1a1a5957d11f639776bd6798e795608b","Warn: containerImage not pinned by hash: deploy/terraform-vpn/aws-vpn-client/Dockerfile:1: pin your Docker image by updating debian:stable-slim to debian:stable-slim@sha256:8810492a2dd16b7f59239c1e0cc1e56c1a1a5957d11f639776bd6798e795608b","Warn: containerImage not pinned by hash: scripts/init-cert/Dockerfile:1: pin your Docker image by updating debian:stable-slim to debian:stable-slim@sha256:8810492a2dd16b7f59239c1e0cc1e56c1a1a5957d11f639776bd6798e795608b","Warn: containerImage not pinned by hash: scripts/update_instance_data/pricing-updater/Dockerfile:1: pin your Docker image by updating debian:stable-slim to debian:stable-slim@sha256:8810492a2dd16b7f59239c1e0cc1e56c1a1a5957d11f639776bd6798e795608b","Info:   0 out of   4 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"52 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0635","Warn: Project is vulnerable to: GO-2022-0646","Warn: Project is vulnerable to: GO-2022-0619 / GHSA-r48q-9g5r-8q2h","Warn: Project is vulnerable to: GO-2021-0061 / GHSA-r88r-gmrh-7j83","Warn: Project is vulnerable to: GO-2020-0036 / GHSA-wxc4-f4m6-wwqv","Warn: Project is vulnerable to: GO-2022-0322 / GHSA-cg3q-j54f-5p7p","Warn: Project is vulnerable to: GO-2021-0227 / GHSA-3vm4-22fp-5rfm","Warn: Project is vulnerable to: GO-2022-0968 / GHSA-gwc9-m7rh-j2ww","Warn: Project is vulnerable to: GO-2021-0356 / GHSA-8c26-wmh5-6g9v","Warn: Project is vulnerable to: GO-2024-2961","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2022-0236 / GHSA-h86h-8ppg-mxmh","Warn: Project is vulnerable to: GO-2021-0238 / GHSA-83g2-8m93-v3w7","Warn: Project is vulnerable to: GO-2022-0288","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GO-2023-2153 / GHSA-m425-mq94-257g / GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2022-0493 / GHSA-p782-xgp4-8hr8","Warn: Project is vulnerable to: GO-2024-2748 / GHSA-33c5-9fx5-fvjm","Warn: Project is vulnerable to: GO-2021-0064 / GHSA-8cfg-vx93-jvxw","Warn: Project is vulnerable to: GO-2021-0066 / GHSA-8mjg-8c8g-6h85","Warn: Project is vulnerable to: GO-2024-2755","Warn: Project is vulnerable to: GO-2022-0910 / GHSA-f5f7-6478-qm6p","Warn: Project is vulnerable to: GO-2023-2159 / GHSA-35c7-w35f-xwgh","Warn: Project is vulnerable to: GO-2023-1864 / GHSA-xc8m-28vv-4pjc","Warn: Project is vulnerable to: GO-2023-1892 / GHSA-cgcv-5272-97pr","Warn: Project is vulnerable to: GO-2023-1891 / GHSA-qc2g-gmh6-95p4","Warn: Project is vulnerable to: GO-2023-2330 / GHSA-7fxm-f474-hf8w","Warn: Project is vulnerable to: GO-2023-2170 / GHSA-q78c-gwqw-jcmc","Warn: Project is vulnerable to: GO-2023-2341 / GHSA-hq6q-c2x6-hmch","Warn: Project is vulnerable to: GO-2022-0983 / GHSA-f9jg-8p32-2f55","Warn: Project is vulnerable to: GO-2024-3277 / GHSA-h7wq-jj8r-qm7p","Warn: Project is vulnerable to: GO-2024-2746 / GHSA-pxhw-596r-rwq5","Warn: Project is vulnerable to: GO-2024-2994 / GHSA-82m2-cv7p-4m75","Warn: Project is vulnerable to: GO-2024-3286 / GHSA-27wf-5967-98gx","Warn: Project is vulnerable to: GO-2025-3522 / GHSA-vv39-3w5q-974q","Warn: Project is vulnerable to: GO-2025-3465 / GHSA-jgfp-53c3-624w","Warn: Project is vulnerable to: GO-2025-3521 / GHSA-3wgm-2gw2-vh5m","Warn: Project is vulnerable to: GHSA-74j8-88mm-7496","Warn: Project is vulnerable to: GHSA-j9wf-vvm6-4r9w","Warn: Project is vulnerable to: GHSA-qh36-44jv-c8xj","Warn: Project is vulnerable to: GHSA-vw47-mr44-3jf9","Warn: Project is vulnerable to: GO-2025-3547"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T13:38:40.761Z","repository_id":47183054,"created_at":"2025-08-18T13:38:40.761Z","updated_at":"2025-08-18T13:38:40.761Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T13:00:33.008Z","updated_at":"2026-01-17T15:35:50.443Z","avatar_url":"https://github.com/elotl.png","language":"Go","funding_links":[],"categories":["others","Go","Cluster Provisioning \u0026 Lifecycle"],"sub_categories":[],"readme":"![KIP](KipOpenSource-logo.png \"KIP\")\n# Kip, the Kubernetes Cloud Instance Provider\n\nKip is a [Virtual Kubelet](https://github.com/virtual-kubelet/virtual-kubelet) provider that allows a Kubernetes cluster to transparently launch pods onto their own cloud instances.  The kip pod is run on a cluster and will create a virtual Kubernetes node in the cluster.  When a pod is scheduled onto the Virtual Kubelet, Kip starts a right-sized cloud instance for the pod’s workload and dispatches the pod onto the instance.  When the pod is finished running, the cloud instance is terminated. We call these cloud instances “cells”.\n\nWhen workloads run on Kip, your cluster size naturally scales with the cluster workload, pods are strongly isolated from each other and the user is freed from managing worker nodes and strategically packing pods onto nodes.  This results in lower cloud costs, improved security and simpler operational overhead.\n\n#### Table of Contents\n\n* [Installation](#installation)\n    + [Option 1: Create a Minimal Cluster](#installation-option-1-create-a-minimal-k8s-cluster)\n    + [Option 2: Using an Existing Cluster](#installation-option-2-using-an-existing-cluster)\n* [Running Pods on Kip](#running-pods-on-kip)\n* [Uninstall](#uninstall)\n* [Current Status](#current-status)\n* [FAQ](#faq)\n* [How it Works](#how-it-works)\n\n## Requirements\n\nTo build Kip you need:\n\n- golang 1.14+ (older versions may work)\n- deepcopy-gen: go install k8s.io/code-generator/cmd/deepcopy-gen\n\n## Installation\n\nThere are two ways to get Kip up and running.\n\n1. Use the provided Terraform scripts to create a new Kubernetes cluster\n   with a single Kip node. There are instructions for\n   [AWS](deploy/terraform-aws/README.md) and\n   [GCP](deploy/terraform-gcp/README.md).\n2. Add Kip to an existing kubernetes cluster. This option is documented below.\n\n### Install Kip using an existing cluster\n\nTo deploy Kip into an existing cluster, you'll need to setup cloud credentials that allow the Kip provider to manipulate cloud instances, networking and other cloud resources.\n\n**Step 1: Credentials**\n\nIn AWS, Kip can either use API keys supplied in the Kip provider configuration file (`provider.yaml`) or use the instance profile of the machine the Kip pod is running on.\n\nOn Google Cloud, Kip can use the oauth scopes attached to the k8s node it runs on.  Alternatively the user can supply a service account key in provider.yaml.\n\n**AWS Credentials Option 1 - Configuring AWS API keys:**\n\nYou can configure the AWS access key Kip will use in your provider configuration, via changing `accessKeyID` and `secretAccessKey` under the `cloud.aws` section. See below on how to create a kustomize overlay with your custom provider configuration.\n\n**AWS Credentials Option 2 - Instance Profile Credentials:**\n\nIn AWS, Kip can use credentials supplied by the [instance profile](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) attached to the node the pod is dispatched to.  To use an instance profile, create an IAM policy with the [minimum Kip permissions](docs/kip-iam-permissions.md) then apply the instance profile to the node that will run the Kip provider pod.  The Kip pod must run on the cloud instance that the instance profile is attached to.\n\n**GCP Credentials Option 1 - instance service account:**\n\nIn GCE, Kip can use the service account attached to an instance.  Kip requires https://www.googleapis.com/auth/compute scope in order to launch instances.\n\n**GCP Credentials - Service Account private key:**\n\nAlternatively, Kip can use service account credentials manually supplied in provider.yaml.  Add your email and key to `cloud.gce.credentials`. Example:\n\n    cloud:\n      gce:\n        projectID: \"my-project\"\n        credentials:\n          clientEmail: my-account@my-project.iam.gserviceaccount.com\n          privateKey: \"-----BEGIN PRIVATE KEY-----\\n[base64-encoded private key]-----END PRIVATE KEY-----\\n\"\n        zone: us-central1-c\n        vpcName: \"default\"\n        subnetName: \"default\"\n\n**Step 2: Apply the manifests**\n\nThe resources in [deploy/manifests/kip](deploy/manifests/kip) create ServiceAccounts, Roles and a StatefulSet to run the provider. [Kip is not stateless](docs/state.md), the manifest will also create a PersistentVolumeClaim to store the provider data.\n\nOnce credentials are set up, apply [deploy/manifests/kip/base](deploy/manifests/kip/base) to create the necessary kubernetes resources to support and run the provider.\n\nIn AWS:\n\n    $ kustomize build deploy/manifests/kip/base | kubectl apply -f -\n\nIn GCE:\n\n    $ kustomize build deploy/manifests/kip/overlays/gcp | kubectl apply -f -\n\nFor rendering the manifests, [kustomize](https://kustomize.io/) is used. You can create your own overlays on top of the base template. For example, to override provider.yaml, Kip's configuration file:\n\n    $ mkdir -p deploy/manifests/kip/overlay/local-config\n    $ cp deploy/manifests/kip/base/provider.yaml deploy/manifests/kip/overlay/local-config/provider.yaml\n    # Edit your provider configuration file.\n    $ vi deploy/manifests/kip/overlay/local-config/provider.yaml\n    $ cat \u003e deploy/manifests/kip/overlay/local-config/kustomization.yaml \u003c\u003cEOF\n    \u003e apiVersion: kustomize.config.k8s.io/v1beta1\n    \u003e kind: Kustomization\n    \u003e bases:\n    \u003e - ../../base\n    \u003e configMapGenerator:\n    \u003e - behavior: merge\n    \u003e   files:\n    \u003e   - provider.yaml\n    \u003e   name: config\n    EOF\n    $ kustomize build deploy/manifests/kip/overlays/local-config | kubectl apply -f -\n\nAfter applying, you should see a new kip pod in the kube-system namespace and a new node named \"kip-provider-0\" in the cluster.\n\n## Running Pods on Kip\n\nTo assign pods to run on the virtual kubelet node, add the following node selector to the pod spec in manifests.\n\n    spec:\n      nodeSelector:\n        type: virtual-kubelet\n\nIf you enabled taints on your virtual node (they are disabled by default in the example manifests; remove `--disable-taint` from the command line flags to enable), add the necessary tolerations too:\n\n    spec:\n      tolerations:\n      - key: virtual-kubelet.io/provider\n        operator: Exists\n\n## Uninstall\n\nIf you used the provided terraform config for creating your cluster, you can remove the VPC and the cluster via:\n\n    terraform destroy -var-file \u003cenv.tfvars\u003e.\n\nIf you deployed Kip in an existing cluster, make sure that you first remove all the pods and deployments that have been created by Kip. Then remove the kip statefulset via:\n\n    kubectl delete -n kube-system statefulset kip\n\n## Current Status\n\n### Features\n- [Networking](docs/networking.md), including host network mode, cluster IPs, DNS, HostPorts and NodePorts\n- Pods will be started on a cloud instance that matches the pod resource requests/limits. If no requests/limits are present in the pod spec, Kip will fall back to a default cloud instance type specified in [provider-config.yaml](docs/provider-config.md)\n- GPU instances\n- Logs\n- Exec\n- Stats\n- Readiness/Liveness probes\n- Service account token automounts in pods.\n- [Security Groups](docs/security_groups.md)\n- Attaching instance profiles to Cells via [annotations](docs/annotations.md)\n- The following volume types are supported\n    - EmptyDir\n    - ConfigMap\n    - Secret\n    - HostPath\n    - Projected ConfigMaps and Secrets\n\n### Limitations\n- Stateful workloads and PersistentVolumes are not supported.\n- No support for updating ConfigMaps and Secrets for running Pods and Cells.\n- Virtual-kubelet has limitations on what it supports in the Downward API, e.g. pod.status.podIP is not supported\n- VolumeMounts do not support readOnly, subPath and subPathExpr attributes.\n- VolumeMount mountPropagation is always Bidirectional\n- Unsupported pod attributes:\n    - EphemeralContainers\n    - ReadinessGates\n    - Lifecycle handlers\n    - TerminationGracePeriodSeconds\n    - ActiveDeadlineSeconds\n    - VolumeDevices\n    - TerminationMessagePolicy FallbackToLogsOnError is not implemented\n    - The following PodSecurityContext fields\n        - FSGroup\n        - RunAsNonRoot\n        - ShareProcessNamespace\n        - HostIPC\n        - HostPID\n\n\nWe are actively working on adding missing features. One of the main objectives of the project is to provide full support for all Kubernetes features.\n\n## FAQ\n\n**Q.** I’ve seen the name Milpa mentioned in the logs and source code. What is Milpa?\n\n**A.** Kip’s source code was adapted from an earlier project developed at Elotl called Milpa.  We will be migrating away from that name in coming releases.  Milpa started out as a stand alone unikernel (and later container) orchestration system and it was natural to move a subset of its functionality into an open source virtual-kubelet provider.\n\n##\n**Q.** How long does it take to start a workload?\n\n**A.** In AWS and GCE, instances boot in under a minute, usually pods are dispatched to the instance in about 45 seconds. Depending on the size of the container image, a pod will be running in 60 to 90 seconds.  In our experience, starting pods in Azure can be a bit slower with startup times between 1.5 to 3 minutes.\n\n##\n**Q.** Does it work with the Horizontal Pod Autoscaler and Vertical Pod Autoscaler?\n\n**A.** Yes it does.  However, to use the VPA with the provider, the pod must be dispatched to a new cloud instance.\n\n##\n**Q.** Are DaemonSets supported?\n\n**A.** Yes, though they might not work the way intended. The pod will start on a separate cloud instance, and not on the node.  It's possible to patch a DaemonSet so it does not get dispatched to the Kip virtual node.\n\n##\n**Q.** Are you a [kubernetes conformant](https://github.com/cncf/k8s-conformance) runtime?\n\n**A.** We are not 100% conformant at this time but we are working towards getting as close as possible to conformance.  Currently Kip passes 70-80% of conformance tests but are hoping to get those values above 90% soon.\n\n##\n**Q.** What cloud providers does Kip support?\n\n**A.** Kip is currently GA on AWS and GCE. We are actively working on Azure support.\n\n##\n**Q.** What components make up the Kip system?\n\n**A.** The following repositories are part of the Kip system\n* [Itzo](https://github.com/elotl/itzo) containes the cell agent and code for building cell images\n* [Tosi](https://github.com/elotl/tosi) for downloading images to cells\n* [Cloud-Init](https://github.com/elotl/cloud-init) a minimal cloud-init implementation\n\n##\n**Q.** We have our custom built image. Can I use it for running cells?\n\n**A.** Yes, take a look at [Bring your Own Image](docs/cells.md#bring-your-own-image).\n\n##\nQ. Can Kip use a kubeconfig file for API server access?\n\nA. Yes, see [kubeconfig](docs/kubeconfig.md) for more information.\n\n## How it Works\n* [Cells](docs/cells.md)\n* [Networking](docs/networking.md)\n* [Annotations](docs/annotations.md)\n* [Security Groups](docs/security-groups.md)\n* [Provider Configuration](docs/provider-config.md)\n* [IAM Permissions](docs/kip-iam-permissions.md)\n* [State](docs/state.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felotl%2Fkip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felotl%2Fkip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felotl%2Fkip/lists"}