Testing done:
Built an aws-k8s-1.29-nvidia variant and launched a g4dn.xlarge instance.
Confirmed that conditional support for settings works.
[x] Test setting settings.nvidia-container-runtime will be rejected
[ssm-user@control]$ apiclient set settings.nvidia-container-runtime.visible-devices-as-volume-mounts=false
Failed to change settings: Failed PATCH request to '/settings/keypair?tx=apiclient-set-fiHbG2iUZBOobZn2': Status 400 when PATCHing /settings/keypair?tx=apiclient-set-fiHbG2iUZBOobZn2: Unable to match your input to the data model. We may not have enough type information. Please try the --json input form. Cause: Error during deserialization: unknown field nvidia-container-runtime, expected one of motd, kubernetes, updates, host-containers, bootstrap-containers, ntp, network, kernel, boot, aws, metrics, pki, container-registry, oci-defaults, oci-hooks, cloudformation, dns, container-runtime, autoscaling at line 1 column 27
- [x] Test setting `settings.kubernetes.device-plugins.nvidia` will be rejected
[ssm-user@control]$ apiclient set settings.kubernetes.device-plugins.nvidia.device-list-strategy=envvar
Failed to change settings: Failed PATCH request to '/settings/keypair?tx=apiclient-set-YidJIyumWqfaNJZD': Status 400 when PATCHing /settings/keypair?tx=apiclient-set-YidJIyumWqfaNJZD: Unable to match your input to the data model. We may not have enough type information. Please try the --json input form. Cause: Error during deserialization: unknown field device-plugins, expected one of cluster-name, cluster-certificate, api-server, node-labels, node-taints, static-pods, authentication-mode, bootstrap-token, standalone-mode, eviction-hard, eviction-soft, eviction-soft-grace-period, eviction-max-pod-grace-period, kube-reserved, system-reserved, allowed-unsafe-sysctls, server-tls-bootstrap, cloud-provider, registry-qps, registry-burst, event-qps, event-burst, kube-api-qps, kube-api-burst, container-log-max-size, container-log-max-files, cpu-cfs-quota-enforced, cpu-manager-policy, cpu-manager-reconcile-period, cpu-manager-policy-options, topology-manager-scope, topology-manager-policy, pod-pids-limit, image-gc-high-threshold-percent, image-gc-low-threshold-percent, provider-id, log-level, credential-providers, server-certificate, server-key, shutdown-grace-period, shutdown-grace-period-for-critical-pods, memory-manager-reserved-memory, memory-manager-policy, reserved-cpus, max-pods, cluster-dns-ip, cluster-domain, node-ip, pod-infra-container-image, hostname-override, hostname-override-source, seccomp-default at line 1 column 31
**Terms of contribution:**
By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.
Issue number:
Relevant to #4135
Description of changes: Consume bottlerocket-settings-models v0.3.0. See the changelog for more details.
Testing done: Built an
aws-k8s-1.29-nvidia
variant and launched ag4dn.xlarge
instance.Confirmed that conditional support for settings works.
settings.nvidia-container-runtime
will be rejectedFailed to change settings: Failed PATCH request to '/settings/keypair?tx=apiclient-set-fiHbG2iUZBOobZn2': Status 400 when PATCHing /settings/keypair?tx=apiclient-set-fiHbG2iUZBOobZn2: Unable to match your input to the data model. We may not have enough type information. Please try the --json input form. Cause: Error during deserialization: unknown field
nvidia-container-runtime
, expected one ofmotd
,kubernetes
,updates
,host-containers
,bootstrap-containers
,ntp
,network
,kernel
,boot
,aws
,metrics
,pki
,container-registry
,oci-defaults
,oci-hooks
,cloudformation
,dns
,container-runtime
,autoscaling
at line 1 column 27[ssm-user@control]$ apiclient set settings.kubernetes.device-plugins.nvidia.device-list-strategy=envvar
Failed to change settings: Failed PATCH request to '/settings/keypair?tx=apiclient-set-YidJIyumWqfaNJZD': Status 400 when PATCHing /settings/keypair?tx=apiclient-set-YidJIyumWqfaNJZD: Unable to match your input to the data model. We may not have enough type information. Please try the --json input form. Cause: Error during deserialization: unknown field
device-plugins
, expected one ofcluster-name
,cluster-certificate
,api-server
,node-labels
,node-taints
,static-pods
,authentication-mode
,bootstrap-token
,standalone-mode
,eviction-hard
,eviction-soft
,eviction-soft-grace-period
,eviction-max-pod-grace-period
,kube-reserved
,system-reserved
,allowed-unsafe-sysctls
,server-tls-bootstrap
,cloud-provider
,registry-qps
,registry-burst
,event-qps
,event-burst
,kube-api-qps
,kube-api-burst
,container-log-max-size
,container-log-max-files
,cpu-cfs-quota-enforced
,cpu-manager-policy
,cpu-manager-reconcile-period
,cpu-manager-policy-options
,topology-manager-scope
,topology-manager-policy
,pod-pids-limit
,image-gc-high-threshold-percent
,image-gc-low-threshold-percent
,provider-id
,log-level
,credential-providers
,server-certificate
,server-key
,shutdown-grace-period
,shutdown-grace-period-for-critical-pods
,memory-manager-reserved-memory
,memory-manager-policy
,reserved-cpus
,max-pods
,cluster-dns-ip
,cluster-domain
,node-ip
,pod-infra-container-image
,hostname-override
,hostname-override-source
,seccomp-default
at line 1 column 31