oke-cluster-generator
Use this skill when the user asks to build, generate, create, design, or scaffold an OKE (OCI Kubernetes Engine) Terraform stack, OCI Kubernetes…
Deploy and troubleshoot multihome networking on OCI Kubernetes Engine using existing GVA secondary VNIC node pools, Multus thick plugin, OCI CNI/IPAM, NetworkAttachmentDefinitions, and test pods. Use when the user asks to auto-discover OKE cluster subnets or node pools for
$ npx -y skills add krisrice/oracle-db-skills --skill oke-multihome-deployer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/oke-multihome-deployerContext preview
The summary Claude sees to decide when to auto-load this skill.
Deploy and troubleshoot multihome networking on OCI Kubernetes Engine using existing GVA secondary VNIC node pools, Multus thick plugin, OCI CNI/IPAM, NetworkAttachmentDefinitions, and test pods. Use when the user asks to auto-discover OKE cluster subnets or node pools for
name: oke-multihome-deployer description: Deploy and troubleshoot multihome networking on OCI Kubernetes Engine using existing GVA secondary VNIC node pools, Multus thick plugin, OCI CNI/IPAM, NetworkAttachmentDefinitions, and test pods. Use when the user asks to auto-discover OKE cluster subnets or node pools for multihome, create OKE multihome pod manifests, configure Multus NADs for secondary VNIC interfaces, validate multihomed pod connectivity, inspect OCI CNI IPAM allocation on OKE nodes, or package repeatable OKE GVA multihome deployment steps. Do not use it to create or update GVA node pools. For broad incident RCA, DPDK/SR-IOV failures, or non-Multus pod symptoms, use `oke-troubleshooter` first.
Use this skill after an OKE node pool already has GVA secondary VNIC profiles attached. This skill deploys and verifies Multus-based pod multihoming; it does not create or update GVA node pools.
If the user needs to create or update the node pool secondary VNIC profiles, use `oke-gva-deployer` first, then return here.
Supporting references:
1. Confirm target cluster/context and auth.
2. Auto-discover cluster, node pool, and subnet data before generating YAML.
3. Verify prerequisites from Kubernetes and node-side checks.
4. Install Multus thick plugin if absent.
`https://raw.githubusercontent.com/k8snetworkplumbingwg/multus-cni/master/deployments/multus-daemonset-thick.yml`
5. Generate or edit the deployment manifest.
6. Apply and verify.
validation passed, failed, or remains incomplete.
Run discovery before manifest generation:
OCI_CLI_PROFILE=<oci-profile> OCI_CLI_AUTH=<oci-auth-mode> \ python3 <skill>/scripts/discover-oke-multihome.py \ --cluster-id <cluster_ocid> \ --region <region> \ --pretty > oke-multihome-discovery.json
If the current kubeconfig contains the cluster OCID in its exec user args, use:
OCI_CLI_PROFILE=<oci-profile> OCI_CLI_AUTH=<oci-auth-mode> \ python3 <skill>/scripts/discover-oke-multihome.py \ --context <kubectl_context> \ --region <region> \ --pretty
Use the JSON output to pick:
Do not guess subnet CIDRs or node names when discovery can retrieve them.
Generate a two-pod test manifest:
python3 <skill>/scripts/generate-multihome-manifest.py \ --namespace gva-multihome-test \ --default-interface <confirmed-first-secondary-vnic-interface> \ --secondary-interface <confirmed-second-secondary-vnic-interface> \ --pod gva-multihome-a=<node-name-a> \ --pod gva-multihome-b=<node-name-b> \ > gva-multihome-pods.yaml
Use Kubernetes node names exactly as returned by `kubectl get nodes`. In OKE clusters configured like the handoff, node names may be node private IPs.
Use these checks after applying manifests:
kubectl -n kube-system get pods -l name=multus -o wide
kubectl -n gva-multihome-test get pods -o wide
kubectl -n gva-multihome-test get pod gva-multihome-a gva-multihome-b \
-o jsonpath='{range .items[*]}{.metadata.name}{" on "}{.spec.nodeName}{"\n"}{.metadata.annotations.k8s\.v1\.cni\.cncf\.io/network-status}{"\n\n"}{end}'
kubectl -n gva-multihome-test exec gva-multihome-a -- ip -br addr
kubectl -n gva-multihome-test exec gva-multihome-b -- ip -br addrThen ping `net1` IPs across pods:
kubectl -n gva-multihome-test exec gva-multihome-a -- ping -c 3 -W 2 <pod-b-net1-ip> kubectl -n gva-multihome-test exec gva-multihome-b -- ping -c 3 -W 2 <pod-a-net1-ip>
Read `references/oke-multihome-notes.md` when:
Oracle Skills is a collection of practical, installable skills for working with Oracle technologies.
Repo: krisrice/oracle-db-skills
Use this skill when the user asks to build, generate, create, design, or scaffold an OKE (OCI Kubernetes Engine) Terraform stack, OCI Kubernetes…
Use this skill when the user asks to enable, deploy, or configure Generic VNIC Attachment (GVA) for OCI Kubernetes Engine (OKE), create node pools with…
Use this skill when the user wants to diagnose or root-cause issues with an OCI Kubernetes Engine cluster or workload. Trigger phrases include "pods pending",…