Sitelet https://github.com/opencharly/plugin-kube
Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

51 Commits

Folders and files

Repository files navigation

plugin-kube

The Kubernetes plugin for opencharly/charly — it owns ALL Kubernetes cluster interaction, keeping the heavy k8s.io/client-go + k8s.io/apimachinery stack out of charly's core go.mod.

The plugin is an out-of-tree Go module: charly's loader fetches this repo, go-builds the provider binary on the HOST, and serves it out-of-process over go-plugin gRPC via the charly plugin SDK.

What it provides

Capability Surface
verb:kube the kube: cluster-probe check verb — 11 observation methods
deploy:kubernetes the target: kubernetes workload deploy substrate
deploy:kindcluster the local Kubernetes-in-Docker cluster substrate

The verb

An authored kube: <method> step (scalar sugar) or kube: {method: …, cluster: …} (map form) desugars to the plugin input envelope; the method + every kube-exclusive modifier live in the plugin's own #KubeInput (schema/kube.cue). Methods: nodes, wait-nodes, pods, wait-ready, ingress, ingressclass, storageclass, service, lb-external-ip, addons, raw.

Every method observes and none changes state (DESIGN.md §23 D-VERB-1): the former apply/delete methods were removed in #32 — a cluster change belongs to a deploy (kubectl apply -k on the egress-validated tree) or a run: step.

- check: the cluster reports at least one Ready node
  id: kube-nodes-ready
  kube:
      method: nodes
  stdout:
      - contains: Ready
  context: [deploy]

The deploy substrates

  • target: kubernetes — kubectl apply -k on the plugin-generated Kustomize tree. The plugin's own preresolve.go resolves the cluster template + image Capabilities and GENERATES the egress-validated Kustomize tree itself (reaching verb:k8sgen/verb:egress peer-to-peer), then applies it.
  • target: kindcluster — a local Kubernetes-in-Docker cluster provisioned by the upstream kind tool on the operator's container engine, then the same Kustomize workload.
  • k3s post-provision finalization — the guest-forward kubeconfig rewrite (this plugin's own k3s_post.go) + the ~/.kube/config merge.

How to use it

Compose the plugin candy in a box or check bed's candy: list:

- '@github.com/opencharly/plugin-kube/candy/plugin-kube:<tag>'

Layout

  • candy/plugin-kube/ — the plugin module: plugin.go, provider.go, cluster.go, deploy.go, materialize.go, preresolve.go, merge.go, kindcluster.go, k3s_post.go, methods.go, schema/kube.cue, params/cue_types_gen.go, cmd/serve/main.go.
  • candy/plugin-kube/charly.yml — the plugin-kube: candy entity and the check-k8s-skill: / kubernetes-skill: routing nodes it owns.
  • .agents/skills/<name>/SKILL.md — the prose for those two, one directory per skill at the repo root.
  • charly.yml — the root project manifest (discover: candy).
  • .github/workflows/tag-on-merge.yml — CalVer tag + CHANGELOG/ on merge.

Related

  • Owning skills: /charly-kubernetes:kubernetes — the Kubernetes deploy surface, cluster profiles, and Kustomize manifest generation — and /charly-kubernetes:check-k8s — the kube: check verb reference. Both are projected from this candy's own skill: entities.
  • /charly-internals:plugin — the plugin/provider model.
  • opencharly/charly — the charly CLI.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages