{"id":19991595,"url":"https://github.com/qmfrederik/helm","last_synced_at":"2025-05-04T10:32:07.845Z","repository":{"id":133742765,"uuid":"119206544","full_name":"qmfrederik/helm","owner":"qmfrederik","description":"A .NET client for Kubernetes Helm","archived":true,"fork":false,"pushed_at":"2019-08-26T08:00:26.000Z","size":128,"stargazers_count":31,"open_issues_count":6,"forks_count":13,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-08T12:16:04.598Z","etag":null,"topics":["csharp","dotnet","helm","kubernetes"],"latest_commit_sha":null,"homepage":null,"language":"C#","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/qmfrederik.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-27T22:05:29.000Z","updated_at":"2023-10-19T10:27:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"3d195dd6-a72c-4d8d-9d4c-17f4e03c27d1","html_url":"https://github.com/qmfrederik/helm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmfrederik%2Fhelm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmfrederik%2Fhelm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmfrederik%2Fhelm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qmfrederik%2Fhelm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qmfrederik","download_url":"https://codeload.github.com/qmfrederik/helm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252320519,"owners_count":21729143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["csharp","dotnet","helm","kubernetes"],"created_at":"2024-11-13T04:51:49.713Z","updated_at":"2025-05-04T10:32:07.206Z","avatar_url":"https://github.com/qmfrederik.png","language":"C#","funding_links":[],"categories":["C\\#"],"sub_categories":[],"readme":"# .NET Client for Helm\n[![Build status](https://ci.appveyor.com/api/projects/status/vsb2f1g32cj25h51/branch/master?svg=true)](https://ci.appveyor.com/project/qmfrederik/helm/branch/master) [![Build Status](https://travis-ci.org/qmfrederik/helm.svg?branch=master)](https://travis-ci.org/qmfrederik/helm)\n\n[Helm](https://helm.sh/) is a package manager for Kubernetes. It allows you to install and use software built for Kubernetes.\n\nThis repository contains a C# client for working with Helm.\n\n## Getting started\nBefore you start, add the [Helm NuGet package](https://www.nuget.org/packages/Helm/) to your project and make sure you've initialized\nHelm inside your Kubernetes cluster.\n\nHelm uses a Tiller pod deployed in your Kubernetes cluster to manage charts and deployments.\n\nThis means that you'll need to locate your Kubernetes cluster and the Tiller pod if you want to interact with it using C#.\n\nHere's how you can do that:\n\n```csharp\n// Open the Kubernetes configuration and connect to the Kubernetes cluster.\n// You may have a KUBECONFIG environment variable. If so, you're in luck - that's what we use in this sample app.\n// You Kubernetes configuration can also be stored at ~/.kube/config.\nvar kubeConfig = KubernetesClientConfiguration.BuildConfigFromConfigFile(null, Environment.GetEnvironmentVariable(\"KUBECONFIG\"));\nvar kubernetes = new Kubernetes(kubeConfig);\n\n// Figure out where Tiller is located. This will return the IP address and port of a pod running Tiller.\n// The code assumes you can connect to a pod using it's IP address. That usually means your code is either running inside a pod,\n// or you've configured routing to your pod network.\n// If that's not the case, you'll need to set up Kubernetes port forwarding.\nTillerLocator locator = new TillerLocator(kubernetes);\nvar endPoint = locator.Locate();\n\n// Connect to Tiller and get the version information\nusing(var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))\n{\n    await socket.ConnectAsync(endPoint).ConfigureAwait(false);\n\n    using (NetworkStream stream = new NetworkStream(socket))\n    {\n        TillerClient client = new TillerClient(stream);\n        var version = await client.GetVersionAsync();\n    }\n}\n```\n\n## How it works\nThe Helm client consists of three blocks:\n- A locator which helps you locate the Tiller pod in a Kubernetes cluster\n- C# code for the Helm protobuf protocol. This protocol defines how messages which are sent to and received from Helm are serialized.\n- A C# implementation of the gRPC protocol. This protocol allows to send and receive serialized messages over HTTP/2.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqmfrederik%2Fhelm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqmfrederik%2Fhelm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqmfrederik%2Fhelm/lists"}