OC-ADM-NODE-IMAGE-CREATE(1)

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

πŸ’… OC ADM NODE-IMAGE(1) β€” the oc adm node-image create glow-up

okay so this is the manual page for oc adm node-image create, part of the OpenShift CLI User Manuals (Openshift). buckle up bestie, we're making ISOs πŸŽ€


✨ NAME ✨

oc adm node-image create β€” create an ISO image for booting the nodes you wanna add to the target cluster πŸ¦‹


🌸 SYNOPSIS 🌸

oc adm node-image create [OPTIONS]

πŸ’– DESCRIPTION πŸ’–

okay so picture this: you've got an existing on-prem cluster and you want more nodes in it. this command creates an ISO image from an initial configuration for a given set of nodes, to add them to an existing on-prem cluster. slay.

here's the tea πŸ”₯ β€” this command creates a pod in a temporary namespace on the target cluster to retrieve the required information for creating a customized ISO image. then that downloaded ISO image could be used to boot a previously selected set of nodes, and add them to the target cluster in a fully automated way. no cap, fully automated.

heads up though: the command also requires a connection to the target cluster, and a valid registry credentials to retrieve the required information from the target cluster release.

so how do you give it the config? a nodes-config.yaml config file must be created to provide the required initial configuration for the selected nodes. alternatively β€” for the girlies who just want to add a single node and keep it simple β€” it's also possible to use a set of flags to configure the host. in such case the --mac-address is the only mandatory flag, while all the others will be optional. note: any eventual configuration file present will be ignored. yeah. ignored. don't come for me, that's just what it says πŸ™ˆ

and if things go sideways? in case of a command failure a report.json file is automatically created with the error details, and additional troubleshooting information. she documents her own drama πŸ’€


πŸŽ€ OPTIONS πŸŽ€

  • --certificate-authority="" β€” the path to a certificate authority bundle to use when communicating with the managed container image registries. if --insecure is used, this flag will be ignored. iykyk.
  • -c, --cpu-architecture="" β€” single node flag. the CPU architecture to be used to install the node. valid only when mac-address is defined.
  • --dir="" β€” the path containing the configuration file, used also to store the generated artifacts.
  • --hostname="" β€” single node flag. the hostname to be set for the node. valid only when mac-address is defined.
  • --insecure=false β€” allow push and pull operations to registries to be made over HTTP.
  • -m, --mac-address="" β€” single node flag. MAC address used to identify the host to apply the configuration. if specified, the nodes-config.yaml config file will not be used. this is the main character of single-node mode, lowkey.
  • --network-config-path="" β€” single node flag. YAML file containing the NMState configuration to be applied for the node. valid only when mac-address is defined.
  • -o, --output-name="" β€” the name of the output image.
  • -p, --pxe=false β€” instead of an ISO, create files that can be used for PXE boot.
  • -a, --registry-config="" β€” path to your registry credentials. alternatively the REGISTRY_AUTH_FILE env variable can be also specified. defaults to ${XDG_RUNTIME_DIR}/containers/auth.json, /run/containers/${UID}/auth.json, ${XDG_CONFIG_HOME}/containers/auth.json, ${DOCKER_CONFIG}, /.docker/config.json, /.dockercfg. the order can be changed via the REGISTRY_AUTH_PREFERENCE env variable (deprecated) to a "docker" value to prioritizes Docker credentials over Podman's.
  • -r, --report=false β€” when set, the report.json is always generated in the asset folder.
  • --root-device-hint="" β€” single node flag. hint for specifying the storage location for the image root filesystem. format accepted is <hint name>:<value>.. valid only when mac-address is defined.
  • --skip-verification=false β€” skip verifying the integrity of the retrieved content. this is not recommended, but may be necessary when importing images from older image registries. only bypass verification if the registry is known to be trustworthy. bestie please read that twice πŸ™
  • -k, --ssh-key-path="" β€” single node flag. path to the SSH key used to access the node. valid only when mac-address is defined.

πŸ¦‹ OPTIONS INHERITED FROM PARENT COMMANDS πŸ¦‹

these are the hand-me-downs, and honestly? iconic.

  • --as="" β€” username to impersonate for the operation. user could be a regular user or a service account in a namespace.
  • --as-group=[] β€” group to impersonate for the operation, this flag can be repeated to specify multiple groups.
  • --as-uid="" β€” UID to impersonate for the operation.
  • --as-user-extra=[] β€” user extras to impersonate for the operation, this flag can be repeated to specify multiple values for the same key.
  • --cache-dir="/homeless-shelter/.kube/cache" β€” default cache directory.
  • --client-certificate="" β€” path to a client certificate file for TLS.
  • --client-key="" β€” path to a client key file for TLS.
  • --cluster="" β€” the name of the kubeconfig cluster to use.
  • --context="" β€” the name of the kubeconfig context to use.
  • --disable-compression=false β€” if true, opt-out of response compression for all requests to the server.
  • --insecure-skip-tls-verify=false β€” if true, the server's certificate will not be checked for validity. this will make your HTTPS connections insecure 😭
  • --kubeconfig="" β€” path to the kubeconfig file to use for CLI requests.
  • --kuberc="" β€” path to the kuberc file to use for preferences. this can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.
  • --match-server-version=false β€” require server version to match client version.
  • -n, --namespace="" β€” if present, the namespace scope for this CLI request.
  • --profile="none" β€” name of profile to capture. one of (none|cpu|heap|goroutine|threadcreate|block|mutex).
  • --profile-output="profile.pprof" β€” name of the file to write the profile to.
  • --request-timeout="0" β€” the length of time to wait before giving up on a single server request. non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). a value of zero means don't timeout requests.
  • -s, --server="" β€” the address and port of the Kubernetes API server.
  • --tls-server-name="" β€” server name to use for server certificate validation. if it is not provided, the hostname used to contact the server is used.
  • --token="" β€” bearer token for authentication to the API server.
  • --user="" β€” the name of the kubeconfig user to use.
  • --warnings-as-errors=false β€” treat warnings received from the server as errors and exit with a non-zero exit code.

πŸ”₯ EXAMPLE πŸ”₯

# Create the ISO image and download it in the current folder
oc adm node-image create

# Use a different assets folder
oc adm node-image create --dir=/tmp/assets

# Specify a custom image name
oc adm node-image create -o=my-node.iso

# In place of an ISO, creates files that can be used for PXE boot
oc adm node-image create --pxe

# Create an ISO to add a single node without using the configuration file
oc adm node-image create --mac-address=00:d8:e7:c7:4b:bb

# Create an ISO to add a single node with a root device hint and without
# using the configuration file
oc adm node-image create --mac-address=00:d8:e7:c7:4b:bb --root-device-hint=deviceName:/dev/sda

πŸ‘‘ SEE ALSO πŸ‘‘

oc-adm-node-image(1)


⭐ HISTORY ⭐

June 2016, Ported from the Kubernetes man-doc generator. vintage but still ate πŸ’…


and that's the whole page bestie β€” written up in the Openshift CLI User Manuals for Openshift, dated June 2016. go forth and boot those nodes, you absolute icon 🫢✨

πŸ“¦ where this page comes from