exo(1)

πŸ“¦
version 1.102.1 Β· 2 versions
, in nixpkgs unstable

✨ exo(1) ✨

So this is the manual page for the exo CLI's SKS cluster creation command, bestieβ€”it's the one that spins up Kubernetes clusters on Exoscale and it's genuinely iconic. It lives at exo(1) and slay, because this thing does a LOT. Let's get into it πŸ’…


πŸŽ€ NAME πŸŽ€

exo-compute-sks-create β€” Create an SKS cluster, periodt.

🌸 SYNOPSIS 🌸

exo compute sks create NAME [flags]

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so bestie, this command literally creates an SKS cluster. Main character energy only. πŸ”₯

Lowkey important vibe check though: by default, SKS cluster Nodes' kubelet configuration is set to use the Exoscale Cloud Controller Manager (CCM) as Cloud Provider. That means cluster Nodes will stay in the "NotReady" status until the Exoscale CCM is deployed by cluster operators. No cap, this is just how it is. For more info, go check the Exoscale CCM documentation:

https://github.com/exoscale/exoscale-cloud-controller-manager

If you don't want to use a Cloud Controller Manager, just add the --no-exoscale-ccm option to the command. But heads up: this cannot be changed once the cluster has been created. So fr fr, think about it first. 😭

Supported output template annotations, and yes you need all of them, no skipping: .ID, .Name, .Description, .CreationDate, .AutoUpgrade, .EnableKubeProxy, .Zone, .Endpoint, .Version, .ServiceLevel, .CNI, .AddOns, .AuditEnabled, .AuditEndpoint, .AuditInitialBackoff, .FeatureGates, .State, .Labels, .Nodepools, .KarpenterFeatureGates.


✨ OPTIONS ✨

Okay we're about to go through every single flag, bestie, so buckle up. Iconic behavior. 🌈

  • --audit-bearer-token="" β€” Bearer token for Kubernetes Audit endpoint authentication. Keep it secret, keep it safe 🫢
  • --audit-endpoint="" β€” Kubernetes Audit endpoint URL. Setting this enables audit logging, iykyk.
  • --audit-initial-backoff="10s" β€” Initial backoff for Kubernetes Audit endpoint retry (default: 10s).
  • --auto-upgrade[=false] β€” Enable automatic upgrading of the SKS cluster control plane Kubernetes version. Set it and forget it energy.
  • --cni="calico" β€” CNI plugin to deploy. e.g. 'calico', or 'cilium'.
  • --description="" β€” SKS cluster description. Give your cluster a little lore. πŸ“
  • --enable-karpenter-addon[=false] β€” Deploy Karpenter node provisioner. Big brain move.
  • --enable-kube-proxy[=false] β€” Deploy the Kubernetes network proxy.
  • --exoscale-csi[=false] β€” Deploy the Exoscale Container Storage Interface on worker nodes. Storage girlies rise.
  • --feature-gates=[] β€” SKS cluster feature gates to enable.
  • -h, --help[=false] β€” Help for create. When in doubt, ask for help, no shame. πŸ’–
  • --karpenter-feature-gates=[] β€” Karpenter feature gates to enable (only effective when the Karpenter addon is enabled).
  • --kubernetes-version="latest" β€” SKS cluster control plane Kubernetes version. latest is the default bestie.
  • --label=[] β€” SKS cluster label (format: key=value).
  • --no-cni[=false] β€” Do not deploy a default Container Network Interface plugin in the cluster control plane. (You're on your own for networking then, good luck πŸ’€)
  • --no-exoscale-ccm[=false] β€” Do not deploy the Exoscale Cloud Controller Manager in the cluster control plane. Reminder: this can't be changed after cluster creation, so choose wisely.
  • --no-metrics-server[=false] β€” Do not deploy the Kubernetes Metrics Server in the cluster control plane.
  • --nodepool-anti-affinity-group=[] β€” Default Nodepool Anti-Affinity Group NAME|ID (can be specified multiple times).
  • --nodepool-deploy-target="" β€” Default Nodepool Deploy Target NAME|ID.
  • --nodepool-description="" β€” Default Nodepool description.
  • --nodepool-disk-size=50 β€” Default Nodepool Compute instances disk size.
  • --nodepool-image-gc-high-threshold=85 β€” Default Nodepool: the percent of disk usage after which image garbage collection is always run.
  • --nodepool-image-gc-low-threshold=80 β€” Default Nodepool: the percent of disk usage after which image garbage collection is never run.
  • --nodepool-image-gc-min-age="2m" β€” Default Nodepool: maximum age an image can be unused before it is garbage collected.
  • --nodepool-instance-prefix="" β€” String to prefix default Nodepool member names with.
  • --nodepool-instance-type="standard.medium" β€” Default Nodepool Compute instances type.
  • --nodepool-label=[] β€” Default Nodepool label (format: key=value).
  • --nodepool-name="" β€” Default Nodepool name.
  • --nodepool-nvidia-mig-profile="" β€” Default Nodepool Nvidia MIG profile to enable on the GPUs (e.g. 4g.24gb); the GPU family is inferred from the instance type. GPU girlies we see you πŸ‘€
  • --nodepool-private-network=[] β€” Default Nodepool Private Network NAME|ID (can be specified multiple times).
  • --nodepool-public-ip="" β€” Configures public IP assignment of the Instances (inet4|dual). (default: inet4)
  • --nodepool-security-group=[] β€” Default Nodepool Security Group NAME|ID (can be specified multiple times).
  • --nodepool-size=0 β€” Default Nodepool size. If 0, no default Nodepool will be added to the cluster. That's it, that's the vibe.
  • --nodepool-taint=[] β€” Kubernetes taint to apply to default Nodepool Nodes (format: KEY=VALUE:EFFECT, can be specified multiple times). Tainted, but make it fashion πŸ’…
  • --oidc-client-id="" β€” OpenID client ID.
  • --oidc-groups-claim="" β€” OpenID JWT claim to use as the user's group.
  • --oidc-groups-prefix="" β€” OpenID prefix prepended to group claims.
  • --oidc-issuer-url="" β€” OpenID provider URL.
  • --oidc-required-claim=[] β€” OpenID token required claim (format: key=value).
  • --oidc-username-claim="" β€” OpenID JWT claim to use as the user name.
  • --oidc-username-prefix="" β€” OpenID prefix prepended to username claims.
  • --service-level="pro" β€” SKS cluster control plane service level (starter|pro). Pro is the default because you're that girl.
  • -z, --zone="" β€” SKS cluster zone.

🌟 OPTIONS INHERITED FROM PARENT COMMANDS 🌟

Yes bestie, these come from the parent command, they're still important, we're not skipping: 🌸

  • -C, --config="" β€” Specify an alternate config file [env EXOSCALE_CONFIG].
  • -O, --output-format="" β€” Output format (table|json|text), see "exo output --help" for more information.
  • --output-template="" β€” Template to use if output format is "text".
  • -Q, --quiet[=false] β€” Quiet mode (disable non-essential command output). For when you want peace and quiet, honestly relatable.
  • --timeout=15s β€” Per-zone timeout for list operations; -1s disables timeout [env EXOSCALE_TIMEOUT].
  • -A, --use-account="" β€” Account to use in config file [env EXOSCALE_ACCOUNT].

πŸ’œ SEE ALSO πŸ’œ


πŸ‘‘ HISTORY πŸ‘‘

1-Jan-1980 β€” Auto generated by spf13/cobra. Giving vintage, but make it functional. ⭐


Okay that's the whole page, no notes. Cute little sign-off: this beauty was auto generated by spf13/cobra and dated Jan 1980 at the bottom of the original, so we're honoring that iconique little footer moment. exo(1) forever. πŸ’–πŸ¦‹βœ¨

πŸ“¦ where this page comes from