{"id":51940305,"url":"https://github.com/comet-ml/common-helm-chart","last_synced_at":"2026-07-28T18:01:53.179Z","repository":{"id":336642593,"uuid":"1129649980","full_name":"comet-ml/common-helm-chart","owner":"comet-ml","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-05T16:14:38.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T10:41:42.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go Template","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/comet-ml.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-07T11:41:01.000Z","updated_at":"2026-03-05T16:15:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/comet-ml/common-helm-chart","commit_stats":null,"previous_names":["comet-ml/common-helm-chart"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/comet-ml/common-helm-chart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fcommon-helm-chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fcommon-helm-chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fcommon-helm-chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fcommon-helm-chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/comet-ml","download_url":"https://codeload.github.com/comet-ml/common-helm-chart/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comet-ml%2Fcommon-helm-chart/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36002533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-28T02:00:06.341Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2026-07-28T18:01:52.230Z","updated_at":"2026-07-28T18:01:53.158Z","avatar_url":"https://github.com/comet-ml.png","language":"Go Template","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Comet Common Library Chart\n\nA Helm library chart providing common helpers for Comet chart deployments.\n\n## Installation\n\nAdd this chart as a dependency in your `Chart.yaml`:\n\n```yaml\ndependencies:\n  - name: comet-common\n    version: \"x.x.x\"\n    repository: \"oci://ghcr.io/comet-ml\"\n```\n\nThen run:\n\n```bash\nhelm dependency update\n```\n\n## Available Helpers\n\n### Names\n\nHelpers for generating Kubernetes resource names.\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.names.base` | Returns the base chart name, using `nameOverride` if set. Truncated to 63 characters. |\n| `comet-common.names.chart` | Returns `\u003cchart-name\u003e-\u003cchart-version\u003e` for use in chart labels. |\n| `comet-common.names.name` | Returns the chart name, preferring `componentName` over `nameOverride`. |\n| `comet-common.names.fullname` | Returns a fully qualified app name. Uses `fullnameOverride` if set, otherwise combines release name with chart name. |\n| `comet-common.names.serviceAccount` | Returns the service account name. Uses `serviceAccount.name` if set, otherwise returns the fullname or \"default\". |\n\n#### Usage\n\n```yaml\nmetadata:\n  name: {{ include \"comet-common.names.fullname\" . }}\n```\n\n### Labels\n\nHelpers for generating Kubernetes labels following best practices.\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.labels.component` | Returns the `app.kubernetes.io/component` label. |\n| `comet-common.labels.base` | Returns base Kubernetes labels (name, chart, instance, managed-by, version). |\n| `comet-common.labels` | Returns all common labels (base + component). |\n| `comet-common.selectorLabels` | Returns selector labels for matching pods (name, instance, component). |\n\n#### Usage\n\nSimple usage with default context:\n\n```yaml\nmetadata:\n  labels:\n    {{- include \"comet-common.labels\" . | nindent 4 }}\nspec:\n  selector:\n    matchLabels:\n      {{- include \"comet-common.selectorLabels\" . | nindent 6 }}\n```\n\nAdvanced usage with custom labels and component name:\n\n```yaml\nmetadata:\n  labels:\n    {{- include \"comet-common.labels\" (dict \"componentName\" \"api\" \"customLabels\" .Values.commonLabels \"context\" $) | nindent 4 }}\n```\n\n### Images\n\nHelpers for managing container images.\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.images.image` | Returns the full image reference (registry/repository:tag or @digest). |\n| `comet-common.images.pullSecrets` | Returns `imagePullSecrets` block from global and image-specific settings. |\n| `comet-common.images.renderPullSecrets` | Same as above but evaluates values as templates. |\n| `comet-common.images.version` | Returns the semantic version from the image tag, falling back to chart appVersion. |\n\n#### Usage\n\n```yaml\ncontainers:\n  - name: app\n    image: {{ include \"comet-common.images.image\" (dict \"imageRoot\" .Values.image \"global\" .Values.global \"chart\" .Chart) }}\n    imagePullPolicy: {{ .Values.image.pullPolicy }}\n{{- include \"comet-common.images.renderPullSecrets\" (dict \"images\" (list .Values.image) \"context\" $) | nindent 6 }}\n```\n\n#### Expected Values Structure\n\n```yaml\nglobal:\n  imageRegistry: \"\"  # Optional global registry override\n  imagePullSecrets: []\n\nimage:\n  registry: docker.io\n  repository: myapp/myimage\n  tag: \"1.0.0\"\n  digest: \"\"  # Optional, takes precedence over tag\n  pullPolicy: IfNotPresent\n  pullSecrets: []\n```\n\n### Size Presets\n\nHelpers for managing resource presets across different deployment sizes.\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.selectSizePreset` | Looks up a value from size presets based on component and path. |\n| `comet-common.sizePresets.resources` | Returns a complete resources block using size presets with optional overrides. |\n\n#### Usage\n\n```yaml\nresources:\n  {{- include \"comet-common.sizePresets.resources\" (list \"api\" .Values.resources $) | nindent 2 }}\n```\n\n#### Expected Values Structure\n\n```yaml\nglobal:\n  deploymentSizePreset: \"small\"  # or \"medium\", \"large\", etc.\n  sizePresets:\n    small:\n      api:\n        resources:\n          requests:\n            memory: \"256Mi\"\n            cpu: \"100m\"\n          limits:\n            memory: \"512Mi\"\n            cpu: \"500m\"\n    medium:\n      api:\n        resources:\n          requests:\n            memory: \"512Mi\"\n            cpu: \"250m\"\n          limits:\n            memory: \"1Gi\"\n            cpu: \"1000m\"\n```\n\n### Template Values\n\nHelpers for rendering values that may contain Go templates.\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.tplvalues.render` | Renders a value that may contain Go template syntax. |\n| `comet-common.tplvalues.merge` | Merges multiple values (with template rendering) into one. |\n| `comet-common.tplvalues.saferender` | Recursively renders templates in nested structures (dicts/lists). |\n\n#### Usage\n\nRender a single value:\n\n```yaml\nannotations:\n  {{- include \"comet-common.tplvalues.render\" (dict \"value\" .Values.annotations \"context\" $) | nindent 4 }}\n```\n\nRender with a relative scope:\n\n```yaml\n{{- include \"comet-common.tplvalues.render\" (dict \"value\" .Values.config \"context\" $ \"scope\" .Values.app) }}\n```\n\nMerge multiple values:\n\n```yaml\n{{- include \"comet-common.tplvalues.merge\" (dict \"values\" (list .Values.defaultConfig .Values.customConfig) \"context\" $) | nindent 2 }}\n```\n\nSafely render nested structures:\n\n```yaml\n{{- include \"comet-common.tplvalues.saferender\" (dict \"value\" .Values.image \"context\" $) | nindent 2 }}\n```\n\n### Imported Bitnami Common Helpers\n\nThese helpers are ported from the (now unmaintained) Bitnami `common` library chart, renamed under\nthe `comet-common.*` namespace and adapted for this chart. They live in\n[`templates/_imported_bitnami_common.tpl`](templates/_imported_bitnami_common.tpl). Helpers this chart\nalready provides (names, labels, images, tplvalues, affinities, size presets) were not re-imported.\n\n#### Capabilities\n\nResolve the correct `apiVersion` / Kubernetes version for the target cluster.\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.capabilities.kubeVersion` | Returns the target Kubernetes version. |\n| `comet-common.capabilities.apiVersions.has` | Returns `true` if a given apiVersion is available. |\n| `comet-common.capabilities.\u003ckind\u003e.apiVersion` | Returns the apiVersion for `policy`, `networkPolicy`, `job`, `cronjob`, `daemonset`, `deployment`, `statefulset`, `ingress`, `rbac`, `crd`, `apiService`, `hpa`, `vpa`. |\n| `comet-common.capabilities.psp.supported` | Returns `true` when PodSecurityPolicy is supported (K8s \u003c 1.25). |\n| `comet-common.capabilities.admissionConfiguration.supported` / `.apiVersion` | AdmissionConfiguration support + version. |\n| `comet-common.capabilities.podSecurityConfiguration.apiVersion` | PodSecurityConfiguration apiVersion. |\n| `comet-common.capabilities.supportsHelmVersion` | Returns `true` if Helm is 3.3+. |\n\n```yaml\napiVersion: {{ include \"comet-common.capabilities.deployment.apiVersion\" . }}\nkind: Deployment\n{{- if include \"comet-common.capabilities.apiVersions.has\" (dict \"version\" \"batch/v1\" \"context\" $) }}\n# batch/v1 is available\n{{- end }}\n```\n\n#### Names\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.names.namespace` | Returns the release namespace, honoring `namespaceOverride`. |\n\n#### Storage\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.storage.class` | Resolves the storage class (global → persistence → global default), emitting the `storageClassName:` line. `\"-\"` yields an empty class name. |\n\n```yaml\n{{- include \"comet-common.storage.class\" (dict \"persistence\" .Values.persistence \"global\" .Values.global) | nindent 2 }}\n```\n\n#### Ingress\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.ingress.backend` | Renders an Ingress backend block, choosing `port.name` vs `port.number` based on the value type. |\n| `comet-common.ingress.certManagerRequest` | Returns `true` if cert-manager annotations are present. |\n\n```yaml\nbackend:\n  {{- include \"comet-common.ingress.backend\" (dict \"serviceName\" \"my-svc\" \"servicePort\" \"http\" \"context\" $) | nindent 2 }}\n```\n\n#### Utils\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.utils.fieldToEnvVar` | Converts a field name to an env var name (`my-password` → `MY_PASSWORD`). |\n| `comet-common.utils.getValueFromKey` | Reads a dot-path value out of `.Values`. |\n| `comet-common.utils.getKeyFromList` | Returns the first key in a list that resolves to a defined value. |\n| `comet-common.utils.secret.getvalue` | Prints a `kubectl get secret` one-liner to fetch and decode a secret value. |\n| `comet-common.utils.checksumTemplate` | sha256sum of a rendered single-resource template (minus metadata) for pod annotations. |\n\n#### Secrets\n\n\u003e Helpers using `lookup` (`secrets.passwords.manage`, `secrets.lookup`, `secrets.exists`) only see\n\u003e existing cluster state during `helm install`/`upgrade`, not `helm template`.\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.secrets.name` | Resolves a secret name, honoring an `existingSecret` (string or object) and optional suffix. |\n| `comet-common.secrets.key` | Resolves a secret key, applying `existingSecret.keyMapping` when present. |\n| `comet-common.secrets.passwords.manage` | Returns an existing, provided, or freshly generated password (see ordering in the helper docstring). Fails a `helm upgrade` if a required password is empty. |\n| `comet-common.secrets.lookup` | Reuses an existing secret value, else base64-encodes a default. |\n| `comet-common.secrets.exists` | Returns `true` if the named secret already exists. |\n\n#### Compatibility\n\n| Helper | Description |\n|--------|-------------|\n| `comet-common.compatibility.isOpenshift` | Returns `true` when running on OpenShift. |\n| `comet-common.compatibility.renderSecurityContext` | Renders a securityContext, stripping fields incompatible with OpenShift's restricted SCC when configured via `global.compatibility.openshift`. |\n\n```yaml\nsecurityContext:\n  {{- include \"comet-common.compatibility.renderSecurityContext\" (dict \"secContext\" .Values.containerSecurityContext \"context\" $) | nindent 2 }}\n```\n\n## License\n\nCopyright Comet ML, Inc.\n\nPortions of [`templates/_imported_bitnami_common.tpl`](templates/_imported_bitnami_common.tpl) are\nadapted from the Bitnami `common` chart, Copyright Broadcom, Inc., licensed under Apache-2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomet-ml%2Fcommon-helm-chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomet-ml%2Fcommon-helm-chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomet-ml%2Fcommon-helm-chart/lists"}