From a6f49c10ac8bf681105d1a30d16670fe07ff3ec6 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Mon, 30 Jan 2023 10:18:22 +0100 Subject: [PATCH 01/63] add config/peerpods This adds all the files that are used to deploy the peer pod components. Including two machine configs (for crio and kata drop-in files) and the runtime class definition. kata-remote.conf is the plain-text version of the encoded blog in the mc-40-kata-remote-config.yaml machine config definition. Signed-off-by: Jens Freimann --- config/peerpods/image.yaml | 9 + config/peerpods/kata-remote.conf | 582 ++++++++++++++++++ config/peerpods/kustomization.yaml | 14 + config/peerpods/mc-40-kata-remote-config.yaml | 17 + config/peerpods/mc-50-crio-config.yaml | 18 + config/peerpods/peerpodscm.yaml | 7 + config/peerpods/peerpodssecret.yaml | 11 + config/peerpods/runtimeclass.yaml | 10 + 8 files changed, 668 insertions(+) create mode 100644 config/peerpods/image.yaml create mode 100644 config/peerpods/kata-remote.conf create mode 100644 config/peerpods/kustomization.yaml create mode 100644 config/peerpods/mc-40-kata-remote-config.yaml create mode 100644 config/peerpods/mc-50-crio-config.yaml create mode 100644 config/peerpods/peerpodscm.yaml create mode 100644 config/peerpods/peerpodssecret.yaml create mode 100644 config/peerpods/runtimeclass.yaml diff --git a/config/peerpods/image.yaml b/config/peerpods/image.yaml new file mode 100644 index 00000000..06a83a2f --- /dev/null +++ b/config/peerpods/image.yaml @@ -0,0 +1,9 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: controller-manager +spec: + containers: + image: quay.io/openshift_sandboxed_containers/osc-peer-pods + newTag: latest + diff --git a/config/peerpods/kata-remote.conf b/config/peerpods/kata-remote.conf new file mode 100644 index 00000000..0dbe19e0 --- /dev/null +++ b/config/peerpods/kata-remote.conf @@ -0,0 +1,582 @@ +# Copyright (c) 2017-2019 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 +# + +# XXX: WARNING: this file is auto-generated. +# XXX: +# XXX: Source file: "config/configuration-qemu.toml.in" +# XXX: Project: +# XXX: Name: Kata Containers +# XXX: Type: kata + + +[hypervisor.remote] +remote_hypervisor_socket = "/run/peerpod/hypervisor.sock" +remote_hypervisor_timeout = 600 + + +# Enable confidential guest support. +# Toggling that setting may trigger different hardware features, ranging +# from memory encryption to both memory and CPU-state encryption and integrity. +# The Kata Containers runtime dynamically detects the available feature set and +# aims at enabling the largest possible one. +# Default false +# confidential_guest = true + +# Enable running QEMU VMM as a non-root user. +# By default QEMU VMM run as root. When this is set to true, QEMU VMM process runs as +# a non-root random user. See documentation for the limitations of this mode. +# rootless = true + +# List of valid annotation names for the hypervisor +# Each member of the list is a regular expression, which is the base name +# of the annotation, e.g. "path" for io.katacontainers.config.hypervisor.path" +enable_annotations = [] + +# List of valid annotations values for the hypervisor +# Each member of the list is a path pattern as described by glob(3). +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: ["/usr/bin/qemu-system-x86_64"] +valid_hypervisor_paths = ["/usr/libexec/qemu-kiwi"] + +# Optional space-separated list of options to pass to the guest kernel. +# For example, use `kernel_params = "vsyscall=emulate"` if you are having +# trouble running pre-2.15 glibc. +# +# WARNING: - any parameter specified here will take priority over the default +# parameter value of the same name used to start the virtual machine. +# Do not set values here unless you understand the impact of doing so as you +# may stop the virtual machine from booting. +# To see the list of default parameters, enable hypervisor debug, create a +# container and look for 'default-kernel-parameters' log entries. +kernel_params = "agent.log=debug" + +# Path to the firmware. +# If you want that qemu uses the default firmware leave this option empty +firmware = "" + +# Machine accelerators +# comma-separated list of machine accelerators to pass to the hypervisor. +# For example, `machine_accelerators = "nosmm,nosmbus,nosata,nopit,static-prt,nofw"` +machine_accelerators="" + +# CPU features +# comma-separated list of cpu features to pass to the cpu +# For example, `cpu_features = "pmu=off,vmx=off" +cpu_features="pmu=off" + +# Default number of vCPUs per SB/VM: +# unspecified or 0 --> will be set to 1 +# < 0 --> will be set to the actual number of physical cores +# > 0 <= number of physical cores --> will be set to the specified number +# > number of physical cores --> will be set to the actual number of physical cores +default_vcpus = 1 + +# Default maximum number of vCPUs per SB/VM: +# unspecified or == 0 --> will be set to the actual number of physical cores or to the maximum number +# of vCPUs supported by KVM if that number is exceeded +# > 0 <= number of physical cores --> will be set to the specified number +# > number of physical cores --> will be set to the actual number of physical cores or to the maximum number +# of vCPUs supported by KVM if that number is exceeded +# WARNING: Depending of the architecture, the maximum number of vCPUs supported by KVM is used when +# the actual number of physical cores is greater than it. +# WARNING: Be aware that this value impacts the virtual machine's memory footprint and CPU +# the hotplug functionality. For example, `default_maxvcpus = 240` specifies that until 240 vCPUs +# can be added to a SB/VM, but the memory footprint will be big. Another example, with +# `default_maxvcpus = 8` the memory footprint will be small, but 8 will be the maximum number of +# vCPUs supported by the SB/VM. In general, we recommend that you do not edit this variable, +# unless you know what are you doing. +# NOTICE: on arm platform with gicv2 interrupt controller, set it to 8. +default_maxvcpus = 0 + +# Bridges can be used to hot plug devices. +# Limitations: +# * Currently only pci bridges are supported +# * Until 30 devices per bridge can be hot plugged. +# * Until 5 PCI bridges can be cold plugged per VM. +# This limitation could be a bug in qemu or in the kernel +# Default number of bridges per SB/VM: +# unspecified or 0 --> will be set to 1 +# > 1 <= 5 --> will be set to the specified number +# > 5 --> will be set to 5 +default_bridges = 1 + +# Default memory size in MiB for SB/VM. +# If unspecified then it will be set 2048 MiB. +default_memory = 2048 +# +# Default memory slots per SB/VM. +# If unspecified then it will be set 10. +# This is will determine the times that memory will be hotadded to sandbox/VM. +#memory_slots = 10 + +# The size in MiB will be plused to max memory of hypervisor. +# It is the memory address space for the NVDIMM devie. +# If set block storage driver (block_device_driver) to "nvdimm", +# should set memory_offset to the size of block device. +# Default 0 +#memory_offset = 0 + +# Specifies virtio-mem will be enabled or not. +# Please note that this option should be used with the command +# "echo 1 > /proc/sys/vm/overcommit_memory". +# Default false +#enable_virtio_mem = true + +# Disable block device from being used for a container's rootfs. +# In case of a storage driver like devicemapper where a container's +# root file system is backed by a block device, the block device is passed +# directly to the hypervisor for performance reasons. +# This flag prevents the block device from being passed to the hypervisor, +# 9pfs is used instead to pass the rootfs. +disable_block_device_use = false + +# Shared file system type: +# - virtio-fs (default) +# - virtio-9p +shared_fs = "virtio-fs" + +# Path to vhost-user-fs daemon. +virtio_fs_daemon = "/usr/libexec/virtiofsd" + +# List of valid annotations values for the virtiofs daemon +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: ["/usr/libexec/kata-qemu/virtiofsd"] +valid_virtio_fs_daemon_paths = ["/usr/libexec/virtiofsd"] + +# Default size of DAX cache in MiB +virtio_fs_cache_size = 0 + +# Extra args for virtiofsd daemon +# +# Format example: +# ["-o", "arg1=xxx,arg2", "-o", "hello world", "--arg3=yyy"] +# +# see `virtiofsd -h` for possible options. +virtio_fs_extra_args = ["--thread-pool-size=1"] + +# Cache mode: +# +# - none +# Metadata, data, and pathname lookup are not cached in guest. They are +# always fetched from host and any changes are immediately pushed to host. +# +# - auto +# Metadata and pathname lookup cache expires after a configured amount of +# time (default is 1 second). Data is cached while the file is open (close +# to open consistency). +# +# - always +# Metadata, data, and pathname lookup are cached in guest and never expire. +virtio_fs_cache = "auto" + +# Block storage driver to be used for the hypervisor in case the container +# rootfs is backed by a block device. This is virtio-scsi, virtio-blk +# or nvdimm. +block_device_driver = "virtio-scsi" + +# Specifies cache-related options will be set to block devices or not. +# Default false +#block_device_cache_set = true + +# Specifies cache-related options for block devices. +# Denotes whether use of O_DIRECT (bypass the host page cache) is enabled. +# Default false +#block_device_cache_direct = true + +# Specifies cache-related options for block devices. +# Denotes whether flush requests for the device are ignored. +# Default false +#block_device_cache_noflush = true + +# Enable iothreads (data-plane) to be used. This causes IO to be +# handled in a separate IO thread. This is currently only implemented +# for SCSI. +# +enable_iothreads = false + +# Enable pre allocation of VM RAM, default false +# Enabling this will result in lower container density +# as all of the memory will be allocated and locked +# This is useful when you want to reserve all the memory +# upfront or in the cases where you want memory latencies +# to be very predictable +# Default false +#enable_mem_prealloc = true + +# Enable huge pages for VM RAM, default false +# Enabling this will result in the VM memory +# being allocated using huge pages. +# This is useful when you want to use vhost-user network +# stacks within the container. This will automatically +# result in memory pre allocation +#enable_hugepages = true + +# Enable vhost-user storage device, default false +# Enabling this will result in some Linux reserved block type +# major range 240-254 being chosen to represent vhost-user devices. +enable_vhost_user_store = false + +# The base directory specifically used for vhost-user devices. +# Its sub-path "block" is used for block devices; "block/sockets" is +# where we expect vhost-user sockets to live; "block/devices" is where +# simulated block device nodes for vhost-user devices to live. +vhost_user_store_path = "/var/run/kata-containers/vhost-user" + +# Enable vIOMMU, default false +# Enabling this will result in the VM having a vIOMMU device +# This will also add the following options to the kernel's +# command line: intel_iommu=on,iommu=pt +#enable_iommu = true + +# Enable IOMMU_PLATFORM, default false +# Enabling this will result in the VM device having iommu_platform=on set +#enable_iommu_platform = true + +# List of valid annotations values for the vhost user store path +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: ["/var/run/kata-containers/vhost-user"] +valid_vhost_user_store_paths = ["/var/run/kata-containers/vhost-user"] + +# Enable file based guest memory support. The default is an empty string which +# will disable this feature. In the case of virtio-fs, this is enabled +# automatically and '/dev/shm' is used as the backing folder. +# This option will be ignored if VM templating is enabled. +#file_mem_backend = "" + +# List of valid annotations values for the file_mem_backend annotation +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: [""] +valid_file_mem_backends = [""] + +# Enable swap of vm memory. Default false. +# The behaviour is undefined if mem_prealloc is also set to true +#enable_swap = true + +# -pflash can add image file to VM. The arguments of it should be in format +# of ["/path/to/flash0.img", "/path/to/flash1.img"] +pflashes = [] + +# This option changes the default hypervisor and kernel parameters +# to enable debug output where available. +# +# Default false +enable_debug = true + +# Disable the customizations done in the runtime when it detects +# that it is running on top a VMM. This will result in the runtime +# behaving as it would when running on bare metal. +# +#disable_nesting_checks = true + +# This is the msize used for 9p shares. It is the number of bytes +# used for 9p packet payload. +#msize_9p = 8192 + +# If false and nvdimm is supported, use nvdimm device to plug guest image. +# Otherwise virtio-block device is used. +# Default is false +#disable_image_nvdimm = true + +# VFIO devices are hotplugged on a bridge by default. +# Enable hotplugging on root bus. This may be required for devices with +# a large PCI bar, as this is a current limitation with hotplugging on +# a bridge. +# Default false +#hotplug_vfio_on_root_bus = true + +# Before hot plugging a PCIe device, you need to add a pcie_root_port device. +# Use this parameter when using some large PCI bar devices, such as Nvidia GPU +# The value means the number of pcie_root_port +# This value is valid when hotplug_vfio_on_root_bus is true and machine_type is "q35" +# Default 0 +#pcie_root_port = 2 + +# If vhost-net backend for virtio-net is not desired, set to true. Default is false, which trades off +# security (vhost-net runs ring0) for network I/O performance. +#disable_vhost_net = true + +# +# Default entropy source. +# The path to a host source of entropy (including a real hardware RNG) +# /dev/urandom and /dev/random are two main options. +# Be aware that /dev/random is a blocking source of entropy. If the host +# runs out of entropy, the VMs boot time will increase leading to get startup +# timeouts. +# The source of entropy /dev/urandom is non-blocking and provides a +# generally acceptable source of entropy. It should work well for pretty much +# all practical purposes. +#entropy_source= "/dev/urandom" + +# List of valid annotations values for entropy_source +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: ["/dev/urandom","/dev/random",""] +valid_entropy_sources = ["/dev/urandom","/dev/random",""] + +# Path to OCI hook binaries in the *guest rootfs*. +# This does not affect host-side hooks which must instead be added to +# the OCI spec passed to the runtime. +# +# You can create a rootfs with hooks by customizing the osbuilder scripts: +# https://github.com/kata-containers/kata-containers/tree/main/tools/osbuilder +# +# Hooks must be stored in a subdirectory of guest_hook_path according to their +# hook type, i.e. "guest_hook_path/{prestart,poststart,poststop}". +# The agent will scan these directories for executable files and add them, in +# lexicographical order, to the lifecycle of the guest container. +# Hooks are executed in the runtime namespace of the guest. See the official documentation: +# https://github.com/opencontainers/runtime-spec/blob/v1.0.1/config.md#posix-platform-hooks +# Warnings will be logged if any error is encountered while scanning for hooks, +# but it will not abort container execution. +#guest_hook_path = "/usr/share/oci/hooks" +# +# Use rx Rate Limiter to control network I/O inbound bandwidth(size in bits/sec for SB/VM). +# In Qemu, we use classful qdiscs HTB(Hierarchy Token Bucket) to discipline traffic. +# Default 0-sized value means unlimited rate. +#rx_rate_limiter_max_rate = 0 +# Use tx Rate Limiter to control network I/O outbound bandwidth(size in bits/sec for SB/VM). +# In Qemu, we use classful qdiscs HTB(Hierarchy Token Bucket) and ifb(Intermediate Functional Block) +# to discipline traffic. +# Default 0-sized value means unlimited rate. +#tx_rate_limiter_max_rate = 0 + +# Set where to save the guest memory dump file. +# If set, when GUEST_PANICKED event occurred, +# guest memeory will be dumped to host filesystem under guest_memory_dump_path, +# This directory will be created automatically if it does not exist. +# +# The dumped file(also called vmcore) can be processed with crash or gdb. +# +# WARNING: +# Dump guest’s memory can take very long depending on the amount of guest memory +# and use much disk space. +#guest_memory_dump_path="/var/crash/kata" + +# If enable paging. +# Basically, if you want to use "gdb" rather than "crash", +# or need the guest-virtual addresses in the ELF vmcore, +# then you should enable paging. +# +# See: https://www.qemu.org/docs/master/qemu-qmp-ref.html#Dump-guest-memory for details +#guest_memory_dump_paging=false + +# Enable swap in the guest. Default false. +# When enable_guest_swap is enabled, insert a raw file to the guest as the swap device +# if the swappiness of a container (set by annotation "io.katacontainers.container.resource.swappiness") +# is bigger than 0. +# The size of the swap device should be +# swap_in_bytes (set by annotation "io.katacontainers.container.resource.swap_in_bytes") - memory_limit_in_bytes. +# If swap_in_bytes is not set, the size should be memory_limit_in_bytes. +# If swap_in_bytes and memory_limit_in_bytes is not set, the size should +# be default_memory. +#enable_guest_swap = true + +[factory] +# VM templating support. Once enabled, new VMs are created from template +# using vm cloning. They will share the same initial kernel, initramfs and +# agent memory by mapping it readonly. It helps speeding up new container +# creation and saves a lot of memory if there are many kata containers running +# on the same host. +# +# When disabled, new VMs are created from scratch. +# +# Note: Requires "initrd=" to be set ("image=" is not supported). +# +# Default false +#enable_template = true + +# Specifies the path of template. +# +# Default "/run/vc/vm/template" +#template_path = "/run/vc/vm/template" + +# The number of caches of VMCache: +# unspecified or == 0 --> VMCache is disabled +# > 0 --> will be set to the specified number +# +# VMCache is a function that creates VMs as caches before using it. +# It helps speed up new container creation. +# The function consists of a server and some clients communicating +# through Unix socket. The protocol is gRPC in protocols/cache/cache.proto. +# The VMCache server will create some VMs and cache them by factory cache. +# It will convert the VM to gRPC format and transport it when gets +# requestion from clients. +# Factory grpccache is the VMCache client. It will request gRPC format +# VM and convert it back to a VM. If VMCache function is enabled, +# kata-runtime will request VM from factory grpccache when it creates +# a new sandbox. +# +# Default 0 +#vm_cache_number = 0 + +# Specify the address of the Unix socket that is used by VMCache. +# +# Default /var/run/kata-containers/cache.sock +#vm_cache_endpoint = "/var/run/kata-containers/cache.sock" + +[agent.kata] +# If enabled, make the agent display debug-level messages. +# (default: disabled) +enable_debug = true + +# Enable agent tracing. +# +# If enabled, the agent will generate OpenTelemetry trace spans. +# +# Notes: +# +# - If the runtime also has tracing enabled, the agent spans will be +# associated with the appropriate runtime parent span. +# - If enabled, the runtime will wait for the container to shutdown, +# increasing the container shutdown time slightly. +# +# (default: disabled) +#enable_tracing = true + +# Comma separated list of kernel modules and their parameters. +# These modules will be loaded in the guest kernel using modprobe(8). +# The following example can be used to load two kernel modules with parameters +# - kernel_modules=["e1000e InterruptThrottleRate=3000,3000,3000 EEE=1", "i915 enable_ppgtt=0"] +# The first word is considered as the module name and the rest as its parameters. +# Container will not be started when: +# * A kernel module is specified and the modprobe command is not installed in the guest +# or it fails loading the module. +# * The module is not available in the guest or it doesn't met the guest kernel +# requirements, like architecture and version. +# +kernel_modules=[] + +# Enable debug console. + +# If enabled, user can connect guest OS running inside hypervisor +# through "kata-runtime exec " command + +debug_console_enabled = true + +# Agent connection dialing timeout value in seconds +# (default: 30) +#dial_timeout = 30 + +[netmon] +# If enabled, the network monitoring process gets started when the +# sandbox is created. This allows for the detection of some additional +# network being added to the existing network namespace, after the +# sandbox has been created. +# (default: disabled) +#enable_netmon = true + +# Specify the path to the netmon binary. +path = "/opt/kata/libexec/kata-containers/kata-netmon" + +# If enabled, netmon messages will be sent to the system log +# (default: disabled) +enable_debug = true + +[runtime] +# If enabled, the runtime will log additional debug messages to the +# system log +# (default: disabled) +enable_debug = true +# +# Internetworking model +# Determines how the VM should be connected to the +# the container network interface +# Options: +# +# - macvtap +# Used when the Container network interface can be bridged using +# macvtap. +# +# - none +# Used when customize network. Only creates a tap device. No veth pair. +# +# - tcfilter +# Uses tc filter rules to redirect traffic from the network interface +# provided by plugin to a tap interface connected to the VM. +# +internetworking_model="none" + +# disable guest seccomp +# Determines whether container seccomp profiles are passed to the virtual +# machine and applied by the kata agent. If set to true, seccomp is not applied +# within the guest +# (default: true) +disable_guest_seccomp=true + +# If enabled, the runtime will create opentracing.io traces and spans. +# (See https://www.jaegertracing.io/docs/getting-started). +# (default: disabled) +#enable_tracing = true + +# Set the full url to the Jaeger HTTP Thrift collector. +# The default if not set will be "http://localhost:14268/api/traces" +#jaeger_endpoint = "" + +# Sets the username to be used if basic auth is required for Jaeger. +#jaeger_user = "" + +# Sets the password to be used if basic auth is required for Jaeger. +#jaeger_password = "" + +# If enabled, the runtime will not create a network namespace for shim and hypervisor processes. +# This option may have some potential impacts to your host. It should only be used when you know what you're doing. +# `disable_new_netns` conflicts with `enable_netmon` +# `disable_new_netns` conflicts with `internetworking_model=tcfilter` and `internetworking_model=macvtap`. It works only +# with `internetworking_model=none`. The tap device will be in the host network namespace and can connect to a bridge +# (like OVS) directly. +# If you are using docker, `disable_new_netns` only works with `docker run --net=none` +# (default: false) +disable_new_netns = true + +# if enabled, the runtime will add all the kata processes inside one dedicated cgroup. +# The container cgroups in the host are not created, just one single cgroup per sandbox. +# The runtime caller is free to restrict or collect cgroup stats of the overall Kata sandbox. +# The sandbox cgroup path is the parent cgroup of a container with the PodSandbox annotation. +# The sandbox cgroup is constrained if there is no container type annotation. +# See: https://godoc.org/github.com/kata-containers/runtime/virtcontainers#ContainerType +sandbox_cgroup_only=false + +# If specified, sandbox_bind_mounts identifieds host paths to be mounted (ro) into the sandboxes shared path. +# This is only valid if filesystem sharing is utilized. The provided path(s) will be bindmounted into the shared fs directory. +# If defaults are utilized, these mounts should be available in the guest at `/run/kata-containers/shared/containers/sandbox-mounts` +# These will not be exposed to the container workloads, and are only provided for potential guest services. +sandbox_bind_mounts=[] + +# Enabled experimental feature list, format: ["a", "b"]. +# Experimental features are features not stable enough for production, +# they may break compatibility, and are prepared for a big version bump. +# Supported experimental features: +# (default: []) +experimental=[] + +# If enabled, user can run pprof tools with shim v2 process through kata-monitor. +# (default: false) +# enable_pprof = true + +# WARNING: All the options in the following section have not been implemented yet. +# This section was added as a placeholder. DO NOT USE IT! +[image] +# Container image service. +# +# Offload the CRI image management service to the Kata agent. +# (default: false) +service_offload = true + +# Container image decryption keys provisioning. +# Applies only if service_offload is true. +# Keys can be provisioned locally (e.g. through a special command or +# a local file) or remotely (usually after the guest is remotely attested). +# The provision setting is a complete URL that lets the Kata agent decide +# which method to use in order to fetch the keys. +# +# Keys can be stored in a local file, in a measured and attested initrd: +#provision=data:///local/key/file +# +# Keys could be fetched through a special command or binary from the +# initrd (guest) image, e.g. a firmware call: +#provision=file:///path/to/bin/fetcher/in/guest +# +# Keys can be remotely provisioned. The Kata agent fetches them from e.g. +# a HTTPS URL: +#provision=https://my-key-broker.foo/tenant/ diff --git a/config/peerpods/kustomization.yaml b/config/peerpods/kustomization.yaml new file mode 100644 index 00000000..cabc710c --- /dev/null +++ b/config/peerpods/kustomization.yaml @@ -0,0 +1,14 @@ +resources: +- webhook-deploy.yaml +- ../default +- mc-50-crio-config.yaml +- mc-40-kata-remote-config.yaml +- peerpodssecret.yaml +- peerpodscm.yaml +- runtimeclass.yaml + + +images: +- name: controller:latest + newName: quay.io/openshift_sandboxed_containers/osc-peerpods + newTag: latest diff --git a/config/peerpods/mc-40-kata-remote-config.yaml b/config/peerpods/mc-40-kata-remote-config.yaml new file mode 100644 index 00000000..5c1c25dd --- /dev/null +++ b/config/peerpods/mc-40-kata-remote-config.yaml @@ -0,0 +1,17 @@ +apiVersion: machineconfiguration.openshift.io/v1 +kind: MachineConfig +metadata: + labels: + machineconfiguration.openshift.io/role: worker + name: 40-worker-kata-remote-config +spec: + config: + ignition: + version: 2.2.0 + storage: + files: + - contents: + source: data:text/plain;charset=utf-8;base64,IyBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgojCiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKIwoKIyBYWFg6IFdBUk5JTkc6IHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4KIyBYWFg6CiMgWFhYOiBTb3VyY2UgZmlsZTogImNvbmZpZy9jb25maWd1cmF0aW9uLXFlbXUudG9tbC5pbiIKIyBYWFg6IFByb2plY3Q6CiMgWFhYOiAgIE5hbWU6IEthdGEgQ29udGFpbmVycwojIFhYWDogICBUeXBlOiBrYXRhCgoKW2h5cGVydmlzb3IucmVtb3RlXQpyZW1vdGVfaHlwZXJ2aXNvcl9zb2NrZXQgPSAiL3J1bi9wZWVycG9kL2h5cGVydmlzb3Iuc29jayIKcmVtb3RlX2h5cGVydmlzb3JfdGltZW91dCA9IDYwMAoKCiMgRW5hYmxlIGNvbmZpZGVudGlhbCBndWVzdCBzdXBwb3J0LgojIFRvZ2dsaW5nIHRoYXQgc2V0dGluZyBtYXkgdHJpZ2dlciBkaWZmZXJlbnQgaGFyZHdhcmUgZmVhdHVyZXMsIHJhbmdpbmcKIyBmcm9tIG1lbW9yeSBlbmNyeXB0aW9uIHRvIGJvdGggbWVtb3J5IGFuZCBDUFUtc3RhdGUgZW5jcnlwdGlvbiBhbmQgaW50ZWdyaXR5LgojIFRoZSBLYXRhIENvbnRhaW5lcnMgcnVudGltZSBkeW5hbWljYWxseSBkZXRlY3RzIHRoZSBhdmFpbGFibGUgZmVhdHVyZSBzZXQgYW5kCiMgYWltcyBhdCBlbmFibGluZyB0aGUgbGFyZ2VzdCBwb3NzaWJsZSBvbmUuCiMgRGVmYXVsdCBmYWxzZQojIGNvbmZpZGVudGlhbF9ndWVzdCA9IHRydWUKCiMgRW5hYmxlIHJ1bm5pbmcgUUVNVSBWTU0gYXMgYSBub24tcm9vdCB1c2VyLgojIEJ5IGRlZmF1bHQgUUVNVSBWTU0gcnVuIGFzIHJvb3QuIFdoZW4gdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgUUVNVSBWTU0gcHJvY2VzcyBydW5zIGFzCiMgYSBub24tcm9vdCByYW5kb20gdXNlci4gU2VlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBsaW1pdGF0aW9ucyBvZiB0aGlzIG1vZGUuCiMgcm9vdGxlc3MgPSB0cnVlCgojIExpc3Qgb2YgdmFsaWQgYW5ub3RhdGlvbiBuYW1lcyBmb3IgdGhlIGh5cGVydmlzb3IKIyBFYWNoIG1lbWJlciBvZiB0aGUgbGlzdCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgd2hpY2ggaXMgdGhlIGJhc2UgbmFtZQojIG9mIHRoZSBhbm5vdGF0aW9uLCBlLmcuICJwYXRoIiBmb3IgaW8ua2F0YWNvbnRhaW5lcnMuY29uZmlnLmh5cGVydmlzb3IucGF0aCIKZW5hYmxlX2Fubm90YXRpb25zID0gW10KCiMgTGlzdCBvZiB2YWxpZCBhbm5vdGF0aW9ucyB2YWx1ZXMgZm9yIHRoZSBoeXBlcnZpc29yCiMgRWFjaCBtZW1iZXIgb2YgdGhlIGxpc3QgaXMgYSBwYXRoIHBhdHRlcm4gYXMgZGVzY3JpYmVkIGJ5IGdsb2IoMykuCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCBpcyBlbXB0eSAoYWxsIGFubm90YXRpb25zIHJlamVjdGVkLikKIyBZb3VyIGRpc3RyaWJ1dGlvbiByZWNvbW1lbmRzOiBbIi91c3IvYmluL3FlbXUtc3lzdGVtLXg4Nl82NCJdCnZhbGlkX2h5cGVydmlzb3JfcGF0aHMgPSBbIi91c3IvbGliZXhlYy9xZW11LWtpd2kiXQoKIyBPcHRpb25hbCBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGd1ZXN0IGtlcm5lbC4KIyBGb3IgZXhhbXBsZSwgdXNlIGBrZXJuZWxfcGFyYW1zID0gInZzeXNjYWxsPWVtdWxhdGUiYCBpZiB5b3UgYXJlIGhhdmluZwojIHRyb3VibGUgcnVubmluZyBwcmUtMi4xNSBnbGliYy4KIwojIFdBUk5JTkc6IC0gYW55IHBhcmFtZXRlciBzcGVjaWZpZWQgaGVyZSB3aWxsIHRha2UgcHJpb3JpdHkgb3ZlciB0aGUgZGVmYXVsdAojIHBhcmFtZXRlciB2YWx1ZSBvZiB0aGUgc2FtZSBuYW1lIHVzZWQgdG8gc3RhcnQgdGhlIHZpcnR1YWwgbWFjaGluZS4KIyBEbyBub3Qgc2V0IHZhbHVlcyBoZXJlIHVubGVzcyB5b3UgdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIGRvaW5nIHNvIGFzIHlvdQojIG1heSBzdG9wIHRoZSB2aXJ0dWFsIG1hY2hpbmUgZnJvbSBib290aW5nLgojIFRvIHNlZSB0aGUgbGlzdCBvZiBkZWZhdWx0IHBhcmFtZXRlcnMsIGVuYWJsZSBoeXBlcnZpc29yIGRlYnVnLCBjcmVhdGUgYQojIGNvbnRhaW5lciBhbmQgbG9vayBmb3IgJ2RlZmF1bHQta2VybmVsLXBhcmFtZXRlcnMnIGxvZyBlbnRyaWVzLgprZXJuZWxfcGFyYW1zID0gImFnZW50LmxvZz1kZWJ1ZyIKCiMgUGF0aCB0byB0aGUgZmlybXdhcmUuCiMgSWYgeW91IHdhbnQgdGhhdCBxZW11IHVzZXMgdGhlIGRlZmF1bHQgZmlybXdhcmUgbGVhdmUgdGhpcyBvcHRpb24gZW1wdHkKZmlybXdhcmUgPSAiIgoKIyBNYWNoaW5lIGFjY2VsZXJhdG9ycwojIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1hY2hpbmUgYWNjZWxlcmF0b3JzIHRvIHBhc3MgdG8gdGhlIGh5cGVydmlzb3IuCiMgRm9yIGV4YW1wbGUsIGBtYWNoaW5lX2FjY2VsZXJhdG9ycyA9ICJub3NtbSxub3NtYnVzLG5vc2F0YSxub3BpdCxzdGF0aWMtcHJ0LG5vZnciYAptYWNoaW5lX2FjY2VsZXJhdG9ycz0iIgoKIyBDUFUgZmVhdHVyZXMKIyBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjcHUgZmVhdHVyZXMgdG8gcGFzcyB0byB0aGUgY3B1CiMgRm9yIGV4YW1wbGUsIGBjcHVfZmVhdHVyZXMgPSAicG11PW9mZix2bXg9b2ZmIgpjcHVfZmVhdHVyZXM9InBtdT1vZmYiCgojIERlZmF1bHQgbnVtYmVyIG9mIHZDUFVzIHBlciBTQi9WTToKIyB1bnNwZWNpZmllZCBvciAwICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byAxCiMgPCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4gd2lsbCBiZSBzZXQgdG8gdGhlIGFjdHVhbCBudW1iZXIgb2YgcGh5c2ljYWwgY29yZXMKIyA+IDAgPD0gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojID4gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzCmRlZmF1bHRfdmNwdXMgPSAxCgojIERlZmF1bHQgbWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIFNCL1ZNOgojIHVuc3BlY2lmaWVkIG9yID09IDAgICAgICAgICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIG9yIHRvIHRoZSBtYXhpbXVtIG51bWJlcgojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaWYgdGhhdCBudW1iZXIgaXMgZXhjZWVkZWQKIyA+IDAgPD0gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojID4gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIG9yIHRvIHRoZSBtYXhpbXVtIG51bWJlcgojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaWYgdGhhdCBudW1iZXIgaXMgZXhjZWVkZWQKIyBXQVJOSU5HOiBEZXBlbmRpbmcgb2YgdGhlIGFyY2hpdGVjdHVyZSwgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaXMgdXNlZCB3aGVuCiMgdGhlIGFjdHVhbCBudW1iZXIgb2YgcGh5c2ljYWwgY29yZXMgaXMgZ3JlYXRlciB0aGFuIGl0LgojIFdBUk5JTkc6IEJlIGF3YXJlIHRoYXQgdGhpcyB2YWx1ZSBpbXBhY3RzIHRoZSB2aXJ0dWFsIG1hY2hpbmUncyBtZW1vcnkgZm9vdHByaW50IGFuZCBDUFUKIyB0aGUgaG90cGx1ZyBmdW5jdGlvbmFsaXR5LiBGb3IgZXhhbXBsZSwgYGRlZmF1bHRfbWF4dmNwdXMgPSAyNDBgIHNwZWNpZmllcyB0aGF0IHVudGlsIDI0MCB2Q1BVcwojIGNhbiBiZSBhZGRlZCB0byBhIFNCL1ZNLCBidXQgdGhlIG1lbW9yeSBmb290cHJpbnQgd2lsbCBiZSBiaWcuIEFub3RoZXIgZXhhbXBsZSwgd2l0aAojIGBkZWZhdWx0X21heHZjcHVzID0gOGAgdGhlIG1lbW9yeSBmb290cHJpbnQgd2lsbCBiZSBzbWFsbCwgYnV0IDggd2lsbCBiZSB0aGUgbWF4aW11bSBudW1iZXIgb2YKIyB2Q1BVcyBzdXBwb3J0ZWQgYnkgdGhlIFNCL1ZNLiBJbiBnZW5lcmFsLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgZG8gbm90IGVkaXQgdGhpcyB2YXJpYWJsZSwKIyB1bmxlc3MgeW91IGtub3cgd2hhdCBhcmUgeW91IGRvaW5nLgojIE5PVElDRTogb24gYXJtIHBsYXRmb3JtIHdpdGggZ2ljdjIgaW50ZXJydXB0IGNvbnRyb2xsZXIsIHNldCBpdCB0byA4LgpkZWZhdWx0X21heHZjcHVzID0gMAoKIyBCcmlkZ2VzIGNhbiBiZSB1c2VkIHRvIGhvdCBwbHVnIGRldmljZXMuCiMgTGltaXRhdGlvbnM6CiMgKiBDdXJyZW50bHkgb25seSBwY2kgYnJpZGdlcyBhcmUgc3VwcG9ydGVkCiMgKiBVbnRpbCAzMCBkZXZpY2VzIHBlciBicmlkZ2UgY2FuIGJlIGhvdCBwbHVnZ2VkLgojICogVW50aWwgNSBQQ0kgYnJpZGdlcyBjYW4gYmUgY29sZCBwbHVnZ2VkIHBlciBWTS4KIyAgIFRoaXMgbGltaXRhdGlvbiBjb3VsZCBiZSBhIGJ1ZyBpbiBxZW11IG9yIGluIHRoZSBrZXJuZWwKIyBEZWZhdWx0IG51bWJlciBvZiBicmlkZ2VzIHBlciBTQi9WTToKIyB1bnNwZWNpZmllZCBvciAwICAgLS0+IHdpbGwgYmUgc2V0IHRvIDEKIyA+IDEgPD0gNSAgICAgICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyCiMgPiA1ICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byA1CmRlZmF1bHRfYnJpZGdlcyA9IDEKCiMgRGVmYXVsdCBtZW1vcnkgc2l6ZSBpbiBNaUIgZm9yIFNCL1ZNLgojIElmIHVuc3BlY2lmaWVkIHRoZW4gaXQgd2lsbCBiZSBzZXQgMjA0OCBNaUIuCmRlZmF1bHRfbWVtb3J5ID0gMjA0OAojCiMgRGVmYXVsdCBtZW1vcnkgc2xvdHMgcGVyIFNCL1ZNLgojIElmIHVuc3BlY2lmaWVkIHRoZW4gaXQgd2lsbCBiZSBzZXQgMTAuCiMgVGhpcyBpcyB3aWxsIGRldGVybWluZSB0aGUgdGltZXMgdGhhdCBtZW1vcnkgd2lsbCBiZSBob3RhZGRlZCB0byBzYW5kYm94L1ZNLgojbWVtb3J5X3Nsb3RzID0gMTAKCiMgVGhlIHNpemUgaW4gTWlCIHdpbGwgYmUgcGx1c2VkIHRvIG1heCBtZW1vcnkgb2YgaHlwZXJ2aXNvci4KIyBJdCBpcyB0aGUgbWVtb3J5IGFkZHJlc3Mgc3BhY2UgZm9yIHRoZSBOVkRJTU0gZGV2aWUuCiMgSWYgc2V0IGJsb2NrIHN0b3JhZ2UgZHJpdmVyIChibG9ja19kZXZpY2VfZHJpdmVyKSB0byAibnZkaW1tIiwKIyBzaG91bGQgc2V0IG1lbW9yeV9vZmZzZXQgdG8gdGhlIHNpemUgb2YgYmxvY2sgZGV2aWNlLgojIERlZmF1bHQgMAojbWVtb3J5X29mZnNldCA9IDAKCiMgU3BlY2lmaWVzIHZpcnRpby1tZW0gd2lsbCBiZSBlbmFibGVkIG9yIG5vdC4KIyBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggdGhlIGNvbW1hbmQKIyAiZWNobyAxID4gL3Byb2Mvc3lzL3ZtL292ZXJjb21taXRfbWVtb3J5Ii4KIyBEZWZhdWx0IGZhbHNlCiNlbmFibGVfdmlydGlvX21lbSA9IHRydWUKCiMgRGlzYWJsZSBibG9jayBkZXZpY2UgZnJvbSBiZWluZyB1c2VkIGZvciBhIGNvbnRhaW5lcidzIHJvb3Rmcy4KIyBJbiBjYXNlIG9mIGEgc3RvcmFnZSBkcml2ZXIgbGlrZSBkZXZpY2VtYXBwZXIgd2hlcmUgYSBjb250YWluZXIncwojIHJvb3QgZmlsZSBzeXN0ZW0gaXMgYmFja2VkIGJ5IGEgYmxvY2sgZGV2aWNlLCB0aGUgYmxvY2sgZGV2aWNlIGlzIHBhc3NlZAojIGRpcmVjdGx5IHRvIHRoZSBoeXBlcnZpc29yIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgojIFRoaXMgZmxhZyBwcmV2ZW50cyB0aGUgYmxvY2sgZGV2aWNlIGZyb20gYmVpbmcgcGFzc2VkIHRvIHRoZSBoeXBlcnZpc29yLAojIDlwZnMgaXMgdXNlZCBpbnN0ZWFkIHRvIHBhc3MgdGhlIHJvb3Rmcy4KZGlzYWJsZV9ibG9ja19kZXZpY2VfdXNlID0gZmFsc2UKCiMgU2hhcmVkIGZpbGUgc3lzdGVtIHR5cGU6CiMgICAtIHZpcnRpby1mcyAoZGVmYXVsdCkKIyAgIC0gdmlydGlvLTlwCnNoYXJlZF9mcyA9ICJ2aXJ0aW8tZnMiCgojIFBhdGggdG8gdmhvc3QtdXNlci1mcyBkYWVtb24uCnZpcnRpb19mc19kYWVtb24gPSAiL3Vzci9saWJleGVjL3ZpcnRpb2ZzZCIKCiMgTGlzdCBvZiB2YWxpZCBhbm5vdGF0aW9ucyB2YWx1ZXMgZm9yIHRoZSB2aXJ0aW9mcyBkYWVtb24KIyBUaGUgZGVmYXVsdCBpZiBub3Qgc2V0IGlzIGVtcHR5IChhbGwgYW5ub3RhdGlvbnMgcmVqZWN0ZWQuKQojIFlvdXIgZGlzdHJpYnV0aW9uIHJlY29tbWVuZHM6IFsiL3Vzci9saWJleGVjL2thdGEtcWVtdS92aXJ0aW9mc2QiXQp2YWxpZF92aXJ0aW9fZnNfZGFlbW9uX3BhdGhzID0gWyIvdXNyL2xpYmV4ZWMvdmlydGlvZnNkIl0KCiMgRGVmYXVsdCBzaXplIG9mIERBWCBjYWNoZSBpbiBNaUIKdmlydGlvX2ZzX2NhY2hlX3NpemUgPSAwCgojIEV4dHJhIGFyZ3MgZm9yIHZpcnRpb2ZzZCBkYWVtb24KIwojIEZvcm1hdCBleGFtcGxlOgojICAgWyItbyIsICJhcmcxPXh4eCxhcmcyIiwgIi1vIiwgImhlbGxvIHdvcmxkIiwgIi0tYXJnMz15eXkiXQojCiMgc2VlIGB2aXJ0aW9mc2QgLWhgIGZvciBwb3NzaWJsZSBvcHRpb25zLgp2aXJ0aW9fZnNfZXh0cmFfYXJncyA9IFsiLS10aHJlYWQtcG9vbC1zaXplPTEiXQoKIyBDYWNoZSBtb2RlOgojCiMgIC0gbm9uZQojICAgIE1ldGFkYXRhLCBkYXRhLCBhbmQgcGF0aG5hbWUgbG9va3VwIGFyZSBub3QgY2FjaGVkIGluIGd1ZXN0LiBUaGV5IGFyZQojICAgIGFsd2F5cyBmZXRjaGVkIGZyb20gaG9zdCBhbmQgYW55IGNoYW5nZXMgYXJlIGltbWVkaWF0ZWx5IHB1c2hlZCB0byBob3N0LgojCiMgIC0gYXV0bwojICAgIE1ldGFkYXRhIGFuZCBwYXRobmFtZSBsb29rdXAgY2FjaGUgZXhwaXJlcyBhZnRlciBhIGNvbmZpZ3VyZWQgYW1vdW50IG9mCiMgICAgdGltZSAoZGVmYXVsdCBpcyAxIHNlY29uZCkuIERhdGEgaXMgY2FjaGVkIHdoaWxlIHRoZSBmaWxlIGlzIG9wZW4gKGNsb3NlCiMgICAgdG8gb3BlbiBjb25zaXN0ZW5jeSkuCiMKIyAgLSBhbHdheXMKIyAgICBNZXRhZGF0YSwgZGF0YSwgYW5kIHBhdGhuYW1lIGxvb2t1cCBhcmUgY2FjaGVkIGluIGd1ZXN0IGFuZCBuZXZlciBleHBpcmUuCnZpcnRpb19mc19jYWNoZSA9ICJhdXRvIgoKIyBCbG9jayBzdG9yYWdlIGRyaXZlciB0byBiZSB1c2VkIGZvciB0aGUgaHlwZXJ2aXNvciBpbiBjYXNlIHRoZSBjb250YWluZXIKIyByb290ZnMgaXMgYmFja2VkIGJ5IGEgYmxvY2sgZGV2aWNlLiBUaGlzIGlzIHZpcnRpby1zY3NpLCB2aXJ0aW8tYmxrCiMgb3IgbnZkaW1tLgpibG9ja19kZXZpY2VfZHJpdmVyID0gInZpcnRpby1zY3NpIgoKIyBTcGVjaWZpZXMgY2FjaGUtcmVsYXRlZCBvcHRpb25zIHdpbGwgYmUgc2V0IHRvIGJsb2NrIGRldmljZXMgb3Igbm90LgojIERlZmF1bHQgZmFsc2UKI2Jsb2NrX2RldmljZV9jYWNoZV9zZXQgPSB0cnVlCgojIFNwZWNpZmllcyBjYWNoZS1yZWxhdGVkIG9wdGlvbnMgZm9yIGJsb2NrIGRldmljZXMuCiMgRGVub3RlcyB3aGV0aGVyIHVzZSBvZiBPX0RJUkVDVCAoYnlwYXNzIHRoZSBob3N0IHBhZ2UgY2FjaGUpIGlzIGVuYWJsZWQuCiMgRGVmYXVsdCBmYWxzZQojYmxvY2tfZGV2aWNlX2NhY2hlX2RpcmVjdCA9IHRydWUKCiMgU3BlY2lmaWVzIGNhY2hlLXJlbGF0ZWQgb3B0aW9ucyBmb3IgYmxvY2sgZGV2aWNlcy4KIyBEZW5vdGVzIHdoZXRoZXIgZmx1c2ggcmVxdWVzdHMgZm9yIHRoZSBkZXZpY2UgYXJlIGlnbm9yZWQuCiMgRGVmYXVsdCBmYWxzZQojYmxvY2tfZGV2aWNlX2NhY2hlX25vZmx1c2ggPSB0cnVlCgojIEVuYWJsZSBpb3RocmVhZHMgKGRhdGEtcGxhbmUpIHRvIGJlIHVzZWQuIFRoaXMgY2F1c2VzIElPIHRvIGJlCiMgaGFuZGxlZCBpbiBhIHNlcGFyYXRlIElPIHRocmVhZC4gVGhpcyBpcyBjdXJyZW50bHkgb25seSBpbXBsZW1lbnRlZAojIGZvciBTQ1NJLgojCmVuYWJsZV9pb3RocmVhZHMgPSBmYWxzZQoKIyBFbmFibGUgcHJlIGFsbG9jYXRpb24gb2YgVk0gUkFNLCBkZWZhdWx0IGZhbHNlCiMgRW5hYmxpbmcgdGhpcyB3aWxsIHJlc3VsdCBpbiBsb3dlciBjb250YWluZXIgZGVuc2l0eQojIGFzIGFsbCBvZiB0aGUgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkIGFuZCBsb2NrZWQKIyBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHJlc2VydmUgYWxsIHRoZSBtZW1vcnkKIyB1cGZyb250IG9yIGluIHRoZSBjYXNlcyB3aGVyZSB5b3Ugd2FudCBtZW1vcnkgbGF0ZW5jaWVzCiMgdG8gYmUgdmVyeSBwcmVkaWN0YWJsZQojIERlZmF1bHQgZmFsc2UKI2VuYWJsZV9tZW1fcHJlYWxsb2MgPSB0cnVlCgojIEVuYWJsZSBodWdlIHBhZ2VzIGZvciBWTSBSQU0sIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBWTSBtZW1vcnkKIyBiZWluZyBhbGxvY2F0ZWQgdXNpbmcgaHVnZSBwYWdlcy4KIyBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHVzZSB2aG9zdC11c2VyIG5ldHdvcmsKIyBzdGFja3Mgd2l0aGluIHRoZSBjb250YWluZXIuIFRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5CiMgcmVzdWx0IGluIG1lbW9yeSBwcmUgYWxsb2NhdGlvbgojZW5hYmxlX2h1Z2VwYWdlcyA9IHRydWUKCiMgRW5hYmxlIHZob3N0LXVzZXIgc3RvcmFnZSBkZXZpY2UsIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHNvbWUgTGludXggcmVzZXJ2ZWQgYmxvY2sgdHlwZQojIG1ham9yIHJhbmdlIDI0MC0yNTQgYmVpbmcgY2hvc2VuIHRvIHJlcHJlc2VudCB2aG9zdC11c2VyIGRldmljZXMuCmVuYWJsZV92aG9zdF91c2VyX3N0b3JlID0gZmFsc2UKCiMgVGhlIGJhc2UgZGlyZWN0b3J5IHNwZWNpZmljYWxseSB1c2VkIGZvciB2aG9zdC11c2VyIGRldmljZXMuCiMgSXRzIHN1Yi1wYXRoICJibG9jayIgaXMgdXNlZCBmb3IgYmxvY2sgZGV2aWNlczsgImJsb2NrL3NvY2tldHMiIGlzCiMgd2hlcmUgd2UgZXhwZWN0IHZob3N0LXVzZXIgc29ja2V0cyB0byBsaXZlOyAiYmxvY2svZGV2aWNlcyIgaXMgd2hlcmUKIyBzaW11bGF0ZWQgYmxvY2sgZGV2aWNlIG5vZGVzIGZvciB2aG9zdC11c2VyIGRldmljZXMgdG8gbGl2ZS4Kdmhvc3RfdXNlcl9zdG9yZV9wYXRoID0gIi92YXIvcnVuL2thdGEtY29udGFpbmVycy92aG9zdC11c2VyIgoKIyBFbmFibGUgdklPTU1VLCBkZWZhdWx0IGZhbHNlCiMgRW5hYmxpbmcgdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgVk0gaGF2aW5nIGEgdklPTU1VIGRldmljZQojIFRoaXMgd2lsbCBhbHNvIGFkZCB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gdGhlIGtlcm5lbCdzCiMgY29tbWFuZCBsaW5lOiBpbnRlbF9pb21tdT1vbixpb21tdT1wdAojZW5hYmxlX2lvbW11ID0gdHJ1ZQoKIyBFbmFibGUgSU9NTVVfUExBVEZPUk0sIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBWTSBkZXZpY2UgaGF2aW5nIGlvbW11X3BsYXRmb3JtPW9uIHNldAojZW5hYmxlX2lvbW11X3BsYXRmb3JtID0gdHJ1ZQoKIyBMaXN0IG9mIHZhbGlkIGFubm90YXRpb25zIHZhbHVlcyBmb3IgdGhlIHZob3N0IHVzZXIgc3RvcmUgcGF0aAojIFRoZSBkZWZhdWx0IGlmIG5vdCBzZXQgaXMgZW1wdHkgKGFsbCBhbm5vdGF0aW9ucyByZWplY3RlZC4pCiMgWW91ciBkaXN0cmlidXRpb24gcmVjb21tZW5kczogWyIvdmFyL3J1bi9rYXRhLWNvbnRhaW5lcnMvdmhvc3QtdXNlciJdCnZhbGlkX3Zob3N0X3VzZXJfc3RvcmVfcGF0aHMgPSBbIi92YXIvcnVuL2thdGEtY29udGFpbmVycy92aG9zdC11c2VyIl0KCiMgRW5hYmxlIGZpbGUgYmFzZWQgZ3Vlc3QgbWVtb3J5IHN1cHBvcnQuIFRoZSBkZWZhdWx0IGlzIGFuIGVtcHR5IHN0cmluZyB3aGljaAojIHdpbGwgZGlzYWJsZSB0aGlzIGZlYXR1cmUuIEluIHRoZSBjYXNlIG9mIHZpcnRpby1mcywgdGhpcyBpcyBlbmFibGVkCiMgYXV0b21hdGljYWxseSBhbmQgJy9kZXYvc2htJyBpcyB1c2VkIGFzIHRoZSBiYWNraW5nIGZvbGRlci4KIyBUaGlzIG9wdGlvbiB3aWxsIGJlIGlnbm9yZWQgaWYgVk0gdGVtcGxhdGluZyBpcyBlbmFibGVkLgojZmlsZV9tZW1fYmFja2VuZCA9ICIiCgojIExpc3Qgb2YgdmFsaWQgYW5ub3RhdGlvbnMgdmFsdWVzIGZvciB0aGUgZmlsZV9tZW1fYmFja2VuZCBhbm5vdGF0aW9uCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCBpcyBlbXB0eSAoYWxsIGFubm90YXRpb25zIHJlamVjdGVkLikKIyBZb3VyIGRpc3RyaWJ1dGlvbiByZWNvbW1lbmRzOiBbIiJdCnZhbGlkX2ZpbGVfbWVtX2JhY2tlbmRzID0gWyIiXQoKIyBFbmFibGUgc3dhcCBvZiB2bSBtZW1vcnkuIERlZmF1bHQgZmFsc2UuCiMgVGhlIGJlaGF2aW91ciBpcyB1bmRlZmluZWQgaWYgbWVtX3ByZWFsbG9jIGlzIGFsc28gc2V0IHRvIHRydWUKI2VuYWJsZV9zd2FwID0gdHJ1ZQoKIyAtcGZsYXNoIGNhbiBhZGQgaW1hZ2UgZmlsZSB0byBWTS4gVGhlIGFyZ3VtZW50cyBvZiBpdCBzaG91bGQgYmUgaW4gZm9ybWF0CiMgb2YgWyIvcGF0aC90by9mbGFzaDAuaW1nIiwgIi9wYXRoL3RvL2ZsYXNoMS5pbWciXQpwZmxhc2hlcyA9IFtdCgojIFRoaXMgb3B0aW9uIGNoYW5nZXMgdGhlIGRlZmF1bHQgaHlwZXJ2aXNvciBhbmQga2VybmVsIHBhcmFtZXRlcnMKIyB0byBlbmFibGUgZGVidWcgb3V0cHV0IHdoZXJlIGF2YWlsYWJsZS4KIwojIERlZmF1bHQgZmFsc2UKZW5hYmxlX2RlYnVnID0gdHJ1ZQoKIyBEaXNhYmxlIHRoZSBjdXN0b21pemF0aW9ucyBkb25lIGluIHRoZSBydW50aW1lIHdoZW4gaXQgZGV0ZWN0cwojIHRoYXQgaXQgaXMgcnVubmluZyBvbiB0b3AgYSBWTU0uIFRoaXMgd2lsbCByZXN1bHQgaW4gdGhlIHJ1bnRpbWUKIyBiZWhhdmluZyBhcyBpdCB3b3VsZCB3aGVuIHJ1bm5pbmcgb24gYmFyZSBtZXRhbC4KIwojZGlzYWJsZV9uZXN0aW5nX2NoZWNrcyA9IHRydWUKCiMgVGhpcyBpcyB0aGUgbXNpemUgdXNlZCBmb3IgOXAgc2hhcmVzLiBJdCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzCiMgdXNlZCBmb3IgOXAgcGFja2V0IHBheWxvYWQuCiNtc2l6ZV85cCA9IDgxOTIKCiMgSWYgZmFsc2UgYW5kIG52ZGltbSBpcyBzdXBwb3J0ZWQsIHVzZSBudmRpbW0gZGV2aWNlIHRvIHBsdWcgZ3Vlc3QgaW1hZ2UuCiMgT3RoZXJ3aXNlIHZpcnRpby1ibG9jayBkZXZpY2UgaXMgdXNlZC4KIyBEZWZhdWx0IGlzIGZhbHNlCiNkaXNhYmxlX2ltYWdlX252ZGltbSA9IHRydWUKCiMgVkZJTyBkZXZpY2VzIGFyZSBob3RwbHVnZ2VkIG9uIGEgYnJpZGdlIGJ5IGRlZmF1bHQuCiMgRW5hYmxlIGhvdHBsdWdnaW5nIG9uIHJvb3QgYnVzLiBUaGlzIG1heSBiZSByZXF1aXJlZCBmb3IgZGV2aWNlcyB3aXRoCiMgYSBsYXJnZSBQQ0kgYmFyLCBhcyB0aGlzIGlzIGEgY3VycmVudCBsaW1pdGF0aW9uIHdpdGggaG90cGx1Z2dpbmcgb24KIyBhIGJyaWRnZS4KIyBEZWZhdWx0IGZhbHNlCiNob3RwbHVnX3ZmaW9fb25fcm9vdF9idXMgPSB0cnVlCgojIEJlZm9yZSBob3QgcGx1Z2dpbmcgYSBQQ0llIGRldmljZSwgeW91IG5lZWQgdG8gYWRkIGEgcGNpZV9yb290X3BvcnQgZGV2aWNlLgojIFVzZSB0aGlzIHBhcmFtZXRlciB3aGVuIHVzaW5nIHNvbWUgbGFyZ2UgUENJIGJhciBkZXZpY2VzLCBzdWNoIGFzIE52aWRpYSBHUFUKIyBUaGUgdmFsdWUgbWVhbnMgdGhlIG51bWJlciBvZiBwY2llX3Jvb3RfcG9ydAojIFRoaXMgdmFsdWUgaXMgdmFsaWQgd2hlbiBob3RwbHVnX3ZmaW9fb25fcm9vdF9idXMgaXMgdHJ1ZSBhbmQgbWFjaGluZV90eXBlIGlzICJxMzUiCiMgRGVmYXVsdCAwCiNwY2llX3Jvb3RfcG9ydCA9IDIKCiMgSWYgdmhvc3QtbmV0IGJhY2tlbmQgZm9yIHZpcnRpby1uZXQgaXMgbm90IGRlc2lyZWQsIHNldCB0byB0cnVlLiBEZWZhdWx0IGlzIGZhbHNlLCB3aGljaCB0cmFkZXMgb2ZmCiMgc2VjdXJpdHkgKHZob3N0LW5ldCBydW5zIHJpbmcwKSBmb3IgbmV0d29yayBJL08gcGVyZm9ybWFuY2UuCiNkaXNhYmxlX3Zob3N0X25ldCA9IHRydWUKCiMKIyBEZWZhdWx0IGVudHJvcHkgc291cmNlLgojIFRoZSBwYXRoIHRvIGEgaG9zdCBzb3VyY2Ugb2YgZW50cm9weSAoaW5jbHVkaW5nIGEgcmVhbCBoYXJkd2FyZSBSTkcpCiMgL2Rldi91cmFuZG9tIGFuZCAvZGV2L3JhbmRvbSBhcmUgdHdvIG1haW4gb3B0aW9ucy4KIyBCZSBhd2FyZSB0aGF0IC9kZXYvcmFuZG9tIGlzIGEgYmxvY2tpbmcgc291cmNlIG9mIGVudHJvcHkuICBJZiB0aGUgaG9zdAojIHJ1bnMgb3V0IG9mIGVudHJvcHksIHRoZSBWTXMgYm9vdCB0aW1lIHdpbGwgaW5jcmVhc2UgbGVhZGluZyB0byBnZXQgc3RhcnR1cAojIHRpbWVvdXRzLgojIFRoZSBzb3VyY2Ugb2YgZW50cm9weSAvZGV2L3VyYW5kb20gaXMgbm9uLWJsb2NraW5nIGFuZCBwcm92aWRlcyBhCiMgZ2VuZXJhbGx5IGFjY2VwdGFibGUgc291cmNlIG9mIGVudHJvcHkuIEl0IHNob3VsZCB3b3JrIHdlbGwgZm9yIHByZXR0eSBtdWNoCiMgYWxsIHByYWN0aWNhbCBwdXJwb3Nlcy4KI2VudHJvcHlfc291cmNlPSAiL2Rldi91cmFuZG9tIgoKIyBMaXN0IG9mIHZhbGlkIGFubm90YXRpb25zIHZhbHVlcyBmb3IgZW50cm9weV9zb3VyY2UKIyBUaGUgZGVmYXVsdCBpZiBub3Qgc2V0IGlzIGVtcHR5IChhbGwgYW5ub3RhdGlvbnMgcmVqZWN0ZWQuKQojIFlvdXIgZGlzdHJpYnV0aW9uIHJlY29tbWVuZHM6IFsiL2Rldi91cmFuZG9tIiwiL2Rldi9yYW5kb20iLCIiXQp2YWxpZF9lbnRyb3B5X3NvdXJjZXMgPSBbIi9kZXYvdXJhbmRvbSIsIi9kZXYvcmFuZG9tIiwiIl0KCiMgUGF0aCB0byBPQ0kgaG9vayBiaW5hcmllcyBpbiB0aGUgKmd1ZXN0IHJvb3RmcyouCiMgVGhpcyBkb2VzIG5vdCBhZmZlY3QgaG9zdC1zaWRlIGhvb2tzIHdoaWNoIG11c3QgaW5zdGVhZCBiZSBhZGRlZCB0bwojIHRoZSBPQ0kgc3BlYyBwYXNzZWQgdG8gdGhlIHJ1bnRpbWUuCiMKIyBZb3UgY2FuIGNyZWF0ZSBhIHJvb3RmcyB3aXRoIGhvb2tzIGJ5IGN1c3RvbWl6aW5nIHRoZSBvc2J1aWxkZXIgc2NyaXB0czoKIyBodHRwczovL2dpdGh1Yi5jb20va2F0YS1jb250YWluZXJzL2thdGEtY29udGFpbmVycy90cmVlL21haW4vdG9vbHMvb3NidWlsZGVyCiMKIyBIb29rcyBtdXN0IGJlIHN0b3JlZCBpbiBhIHN1YmRpcmVjdG9yeSBvZiBndWVzdF9ob29rX3BhdGggYWNjb3JkaW5nIHRvIHRoZWlyCiMgaG9vayB0eXBlLCBpLmUuICJndWVzdF9ob29rX3BhdGgve3ByZXN0YXJ0LHBvc3RzdGFydCxwb3N0c3RvcH0iLgojIFRoZSBhZ2VudCB3aWxsIHNjYW4gdGhlc2UgZGlyZWN0b3JpZXMgZm9yIGV4ZWN1dGFibGUgZmlsZXMgYW5kIGFkZCB0aGVtLCBpbgojIGxleGljb2dyYXBoaWNhbCBvcmRlciwgdG8gdGhlIGxpZmVjeWNsZSBvZiB0aGUgZ3Vlc3QgY29udGFpbmVyLgojIEhvb2tzIGFyZSBleGVjdXRlZCBpbiB0aGUgcnVudGltZSBuYW1lc3BhY2Ugb2YgdGhlIGd1ZXN0LiBTZWUgdGhlIG9mZmljaWFsIGRvY3VtZW50YXRpb246CiMgaHR0cHM6Ly9naXRodWIuY29tL29wZW5jb250YWluZXJzL3J1bnRpbWUtc3BlYy9ibG9iL3YxLjAuMS9jb25maWcubWQjcG9zaXgtcGxhdGZvcm0taG9va3MKIyBXYXJuaW5ncyB3aWxsIGJlIGxvZ2dlZCBpZiBhbnkgZXJyb3IgaXMgZW5jb3VudGVyZWQgd2hpbGUgc2Nhbm5pbmcgZm9yIGhvb2tzLAojIGJ1dCBpdCB3aWxsIG5vdCBhYm9ydCBjb250YWluZXIgZXhlY3V0aW9uLgojZ3Vlc3RfaG9va19wYXRoID0gIi91c3Ivc2hhcmUvb2NpL2hvb2tzIgojCiMgVXNlIHJ4IFJhdGUgTGltaXRlciB0byBjb250cm9sIG5ldHdvcmsgSS9PIGluYm91bmQgYmFuZHdpZHRoKHNpemUgaW4gYml0cy9zZWMgZm9yIFNCL1ZNKS4KIyBJbiBRZW11LCB3ZSB1c2UgY2xhc3NmdWwgcWRpc2NzIEhUQihIaWVyYXJjaHkgVG9rZW4gQnVja2V0KSB0byBkaXNjaXBsaW5lIHRyYWZmaWMuCiMgRGVmYXVsdCAwLXNpemVkIHZhbHVlIG1lYW5zIHVubGltaXRlZCByYXRlLgojcnhfcmF0ZV9saW1pdGVyX21heF9yYXRlID0gMAojIFVzZSB0eCBSYXRlIExpbWl0ZXIgdG8gY29udHJvbCBuZXR3b3JrIEkvTyBvdXRib3VuZCBiYW5kd2lkdGgoc2l6ZSBpbiBiaXRzL3NlYyBmb3IgU0IvVk0pLgojIEluIFFlbXUsIHdlIHVzZSBjbGFzc2Z1bCBxZGlzY3MgSFRCKEhpZXJhcmNoeSBUb2tlbiBCdWNrZXQpIGFuZCBpZmIoSW50ZXJtZWRpYXRlIEZ1bmN0aW9uYWwgQmxvY2spCiMgdG8gZGlzY2lwbGluZSB0cmFmZmljLgojIERlZmF1bHQgMC1zaXplZCB2YWx1ZSBtZWFucyB1bmxpbWl0ZWQgcmF0ZS4KI3R4X3JhdGVfbGltaXRlcl9tYXhfcmF0ZSA9IDAKCiMgU2V0IHdoZXJlIHRvIHNhdmUgdGhlIGd1ZXN0IG1lbW9yeSBkdW1wIGZpbGUuCiMgSWYgc2V0LCB3aGVuIEdVRVNUX1BBTklDS0VEIGV2ZW50IG9jY3VycmVkLAojIGd1ZXN0IG1lbWVvcnkgd2lsbCBiZSBkdW1wZWQgdG8gaG9zdCBmaWxlc3lzdGVtIHVuZGVyIGd1ZXN0X21lbW9yeV9kdW1wX3BhdGgsCiMgVGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgaWYgaXQgZG9lcyBub3QgZXhpc3QuCiMKIyBUaGUgZHVtcGVkIGZpbGUoYWxzbyBjYWxsZWQgdm1jb3JlKSBjYW4gYmUgcHJvY2Vzc2VkIHdpdGggY3Jhc2ggb3IgZ2RiLgojCiMgV0FSTklORzoKIyAgIER1bXAgZ3Vlc3TigJlzIG1lbW9yeSBjYW4gdGFrZSB2ZXJ5IGxvbmcgZGVwZW5kaW5nIG9uIHRoZSBhbW91bnQgb2YgZ3Vlc3QgbWVtb3J5CiMgICBhbmQgdXNlIG11Y2ggZGlzayBzcGFjZS4KI2d1ZXN0X21lbW9yeV9kdW1wX3BhdGg9Ii92YXIvY3Jhc2gva2F0YSIKCiMgSWYgZW5hYmxlIHBhZ2luZy4KIyBCYXNpY2FsbHksIGlmIHlvdSB3YW50IHRvIHVzZSAiZ2RiIiByYXRoZXIgdGhhbiAiY3Jhc2giLAojIG9yIG5lZWQgdGhlIGd1ZXN0LXZpcnR1YWwgYWRkcmVzc2VzIGluIHRoZSBFTEYgdm1jb3JlLAojIHRoZW4geW91IHNob3VsZCBlbmFibGUgcGFnaW5nLgojCiMgU2VlOiBodHRwczovL3d3dy5xZW11Lm9yZy9kb2NzL21hc3Rlci9xZW11LXFtcC1yZWYuaHRtbCNEdW1wLWd1ZXN0LW1lbW9yeSBmb3IgZGV0YWlscwojZ3Vlc3RfbWVtb3J5X2R1bXBfcGFnaW5nPWZhbHNlCgojIEVuYWJsZSBzd2FwIGluIHRoZSBndWVzdC4gRGVmYXVsdCBmYWxzZS4KIyBXaGVuIGVuYWJsZV9ndWVzdF9zd2FwIGlzIGVuYWJsZWQsIGluc2VydCBhIHJhdyBmaWxlIHRvIHRoZSBndWVzdCBhcyB0aGUgc3dhcCBkZXZpY2UKIyBpZiB0aGUgc3dhcHBpbmVzcyBvZiBhIGNvbnRhaW5lciAoc2V0IGJ5IGFubm90YXRpb24gImlvLmthdGFjb250YWluZXJzLmNvbnRhaW5lci5yZXNvdXJjZS5zd2FwcGluZXNzIikKIyBpcyBiaWdnZXIgdGhhbiAwLgojIFRoZSBzaXplIG9mIHRoZSBzd2FwIGRldmljZSBzaG91bGQgYmUKIyBzd2FwX2luX2J5dGVzIChzZXQgYnkgYW5ub3RhdGlvbiAiaW8ua2F0YWNvbnRhaW5lcnMuY29udGFpbmVyLnJlc291cmNlLnN3YXBfaW5fYnl0ZXMiKSAtIG1lbW9yeV9saW1pdF9pbl9ieXRlcy4KIyBJZiBzd2FwX2luX2J5dGVzIGlzIG5vdCBzZXQsIHRoZSBzaXplIHNob3VsZCBiZSBtZW1vcnlfbGltaXRfaW5fYnl0ZXMuCiMgSWYgc3dhcF9pbl9ieXRlcyBhbmQgbWVtb3J5X2xpbWl0X2luX2J5dGVzIGlzIG5vdCBzZXQsIHRoZSBzaXplIHNob3VsZAojIGJlIGRlZmF1bHRfbWVtb3J5LgojZW5hYmxlX2d1ZXN0X3N3YXAgPSB0cnVlCgpbZmFjdG9yeV0KIyBWTSB0ZW1wbGF0aW5nIHN1cHBvcnQuIE9uY2UgZW5hYmxlZCwgbmV3IFZNcyBhcmUgY3JlYXRlZCBmcm9tIHRlbXBsYXRlCiMgdXNpbmcgdm0gY2xvbmluZy4gVGhleSB3aWxsIHNoYXJlIHRoZSBzYW1lIGluaXRpYWwga2VybmVsLCBpbml0cmFtZnMgYW5kCiMgYWdlbnQgbWVtb3J5IGJ5IG1hcHBpbmcgaXQgcmVhZG9ubHkuIEl0IGhlbHBzIHNwZWVkaW5nIHVwIG5ldyBjb250YWluZXIKIyBjcmVhdGlvbiBhbmQgc2F2ZXMgYSBsb3Qgb2YgbWVtb3J5IGlmIHRoZXJlIGFyZSBtYW55IGthdGEgY29udGFpbmVycyBydW5uaW5nCiMgb24gdGhlIHNhbWUgaG9zdC4KIwojIFdoZW4gZGlzYWJsZWQsIG5ldyBWTXMgYXJlIGNyZWF0ZWQgZnJvbSBzY3JhdGNoLgojCiMgTm90ZTogUmVxdWlyZXMgImluaXRyZD0iIHRvIGJlIHNldCAoImltYWdlPSIgaXMgbm90IHN1cHBvcnRlZCkuCiMKIyBEZWZhdWx0IGZhbHNlCiNlbmFibGVfdGVtcGxhdGUgPSB0cnVlCgojIFNwZWNpZmllcyB0aGUgcGF0aCBvZiB0ZW1wbGF0ZS4KIwojIERlZmF1bHQgIi9ydW4vdmMvdm0vdGVtcGxhdGUiCiN0ZW1wbGF0ZV9wYXRoID0gIi9ydW4vdmMvdm0vdGVtcGxhdGUiCgojIFRoZSBudW1iZXIgb2YgY2FjaGVzIG9mIFZNQ2FjaGU6CiMgdW5zcGVjaWZpZWQgb3IgPT0gMCAgIC0tPiBWTUNhY2hlIGlzIGRpc2FibGVkCiMgPiAwICAgICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojCiMgVk1DYWNoZSBpcyBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBWTXMgYXMgY2FjaGVzIGJlZm9yZSB1c2luZyBpdC4KIyBJdCBoZWxwcyBzcGVlZCB1cCBuZXcgY29udGFpbmVyIGNyZWF0aW9uLgojIFRoZSBmdW5jdGlvbiBjb25zaXN0cyBvZiBhIHNlcnZlciBhbmQgc29tZSBjbGllbnRzIGNvbW11bmljYXRpbmcKIyB0aHJvdWdoIFVuaXggc29ja2V0LiAgVGhlIHByb3RvY29sIGlzIGdSUEMgaW4gcHJvdG9jb2xzL2NhY2hlL2NhY2hlLnByb3RvLgojIFRoZSBWTUNhY2hlIHNlcnZlciB3aWxsIGNyZWF0ZSBzb21lIFZNcyBhbmQgY2FjaGUgdGhlbSBieSBmYWN0b3J5IGNhY2hlLgojIEl0IHdpbGwgY29udmVydCB0aGUgVk0gdG8gZ1JQQyBmb3JtYXQgYW5kIHRyYW5zcG9ydCBpdCB3aGVuIGdldHMKIyByZXF1ZXN0aW9uIGZyb20gY2xpZW50cy4KIyBGYWN0b3J5IGdycGNjYWNoZSBpcyB0aGUgVk1DYWNoZSBjbGllbnQuICBJdCB3aWxsIHJlcXVlc3QgZ1JQQyBmb3JtYXQKIyBWTSBhbmQgY29udmVydCBpdCBiYWNrIHRvIGEgVk0uICBJZiBWTUNhY2hlIGZ1bmN0aW9uIGlzIGVuYWJsZWQsCiMga2F0YS1ydW50aW1lIHdpbGwgcmVxdWVzdCBWTSBmcm9tIGZhY3RvcnkgZ3JwY2NhY2hlIHdoZW4gaXQgY3JlYXRlcwojIGEgbmV3IHNhbmRib3guCiMKIyBEZWZhdWx0IDAKI3ZtX2NhY2hlX251bWJlciA9IDAKCiMgU3BlY2lmeSB0aGUgYWRkcmVzcyBvZiB0aGUgVW5peCBzb2NrZXQgdGhhdCBpcyB1c2VkIGJ5IFZNQ2FjaGUuCiMKIyBEZWZhdWx0IC92YXIvcnVuL2thdGEtY29udGFpbmVycy9jYWNoZS5zb2NrCiN2bV9jYWNoZV9lbmRwb2ludCA9ICIvdmFyL3J1bi9rYXRhLWNvbnRhaW5lcnMvY2FjaGUuc29jayIKClthZ2VudC5rYXRhXQojIElmIGVuYWJsZWQsIG1ha2UgdGhlIGFnZW50IGRpc3BsYXkgZGVidWctbGV2ZWwgbWVzc2FnZXMuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQplbmFibGVfZGVidWcgPSB0cnVlCgojIEVuYWJsZSBhZ2VudCB0cmFjaW5nLgojCiMgSWYgZW5hYmxlZCwgdGhlIGFnZW50IHdpbGwgZ2VuZXJhdGUgT3BlblRlbGVtZXRyeSB0cmFjZSBzcGFucy4KIwojIE5vdGVzOgojCiMgLSBJZiB0aGUgcnVudGltZSBhbHNvIGhhcyB0cmFjaW5nIGVuYWJsZWQsIHRoZSBhZ2VudCBzcGFucyB3aWxsIGJlCiMgICBhc3NvY2lhdGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHJ1bnRpbWUgcGFyZW50IHNwYW4uCiMgLSBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIHdhaXQgZm9yIHRoZSBjb250YWluZXIgdG8gc2h1dGRvd24sCiMgICBpbmNyZWFzaW5nIHRoZSBjb250YWluZXIgc2h1dGRvd24gdGltZSBzbGlnaHRseS4KIwojIChkZWZhdWx0OiBkaXNhYmxlZCkKI2VuYWJsZV90cmFjaW5nID0gdHJ1ZQoKIyBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBrZXJuZWwgbW9kdWxlcyBhbmQgdGhlaXIgcGFyYW1ldGVycy4KIyBUaGVzZSBtb2R1bGVzIHdpbGwgYmUgbG9hZGVkIGluIHRoZSBndWVzdCBrZXJuZWwgdXNpbmcgbW9kcHJvYmUoOCkuCiMgVGhlIGZvbGxvd2luZyBleGFtcGxlIGNhbiBiZSB1c2VkIHRvIGxvYWQgdHdvIGtlcm5lbCBtb2R1bGVzIHdpdGggcGFyYW1ldGVycwojICAtIGtlcm5lbF9tb2R1bGVzPVsiZTEwMDBlIEludGVycnVwdFRocm90dGxlUmF0ZT0zMDAwLDMwMDAsMzAwMCBFRUU9MSIsICJpOTE1IGVuYWJsZV9wcGd0dD0wIl0KIyBUaGUgZmlyc3Qgd29yZCBpcyBjb25zaWRlcmVkIGFzIHRoZSBtb2R1bGUgbmFtZSBhbmQgdGhlIHJlc3QgYXMgaXRzIHBhcmFtZXRlcnMuCiMgQ29udGFpbmVyIHdpbGwgbm90IGJlIHN0YXJ0ZWQgd2hlbjoKIyAgKiBBIGtlcm5lbCBtb2R1bGUgaXMgc3BlY2lmaWVkIGFuZCB0aGUgbW9kcHJvYmUgY29tbWFuZCBpcyBub3QgaW5zdGFsbGVkIGluIHRoZSBndWVzdAojICAgIG9yIGl0IGZhaWxzIGxvYWRpbmcgdGhlIG1vZHVsZS4KIyAgKiBUaGUgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGd1ZXN0IG9yIGl0IGRvZXNuJ3QgbWV0IHRoZSBndWVzdCBrZXJuZWwKIyAgICByZXF1aXJlbWVudHMsIGxpa2UgYXJjaGl0ZWN0dXJlIGFuZCB2ZXJzaW9uLgojCmtlcm5lbF9tb2R1bGVzPVtdCgojIEVuYWJsZSBkZWJ1ZyBjb25zb2xlLgoKIyBJZiBlbmFibGVkLCB1c2VyIGNhbiBjb25uZWN0IGd1ZXN0IE9TIHJ1bm5pbmcgaW5zaWRlIGh5cGVydmlzb3IKIyB0aHJvdWdoICJrYXRhLXJ1bnRpbWUgZXhlYyA8c2FuZGJveC1pZD4iIGNvbW1hbmQKCmRlYnVnX2NvbnNvbGVfZW5hYmxlZCA9IHRydWUKCiMgQWdlbnQgY29ubmVjdGlvbiBkaWFsaW5nIHRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcwojIChkZWZhdWx0OiAzMCkKI2RpYWxfdGltZW91dCA9IDMwCgpbbmV0bW9uXQojIElmIGVuYWJsZWQsIHRoZSBuZXR3b3JrIG1vbml0b3JpbmcgcHJvY2VzcyBnZXRzIHN0YXJ0ZWQgd2hlbiB0aGUKIyBzYW5kYm94IGlzIGNyZWF0ZWQuIFRoaXMgYWxsb3dzIGZvciB0aGUgZGV0ZWN0aW9uIG9mIHNvbWUgYWRkaXRpb25hbAojIG5ldHdvcmsgYmVpbmcgYWRkZWQgdG8gdGhlIGV4aXN0aW5nIG5ldHdvcmsgbmFtZXNwYWNlLCBhZnRlciB0aGUKIyBzYW5kYm94IGhhcyBiZWVuIGNyZWF0ZWQuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQojZW5hYmxlX25ldG1vbiA9IHRydWUKCiMgU3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgbmV0bW9uIGJpbmFyeS4KcGF0aCA9ICIvb3B0L2thdGEvbGliZXhlYy9rYXRhLWNvbnRhaW5lcnMva2F0YS1uZXRtb24iCgojIElmIGVuYWJsZWQsIG5ldG1vbiBtZXNzYWdlcyB3aWxsIGJlIHNlbnQgdG8gdGhlIHN5c3RlbSBsb2cKIyAoZGVmYXVsdDogZGlzYWJsZWQpCmVuYWJsZV9kZWJ1ZyA9IHRydWUKCltydW50aW1lXQojIElmIGVuYWJsZWQsIHRoZSBydW50aW1lIHdpbGwgbG9nIGFkZGl0aW9uYWwgZGVidWcgbWVzc2FnZXMgdG8gdGhlCiMgc3lzdGVtIGxvZwojIChkZWZhdWx0OiBkaXNhYmxlZCkKZW5hYmxlX2RlYnVnID0gdHJ1ZQojCiMgSW50ZXJuZXR3b3JraW5nIG1vZGVsCiMgRGV0ZXJtaW5lcyBob3cgdGhlIFZNIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gdGhlCiMgdGhlIGNvbnRhaW5lciBuZXR3b3JrIGludGVyZmFjZQojIE9wdGlvbnM6CiMKIyAgIC0gbWFjdnRhcAojICAgICBVc2VkIHdoZW4gdGhlIENvbnRhaW5lciBuZXR3b3JrIGludGVyZmFjZSBjYW4gYmUgYnJpZGdlZCB1c2luZwojICAgICBtYWN2dGFwLgojCiMgICAtIG5vbmUKIyAgICAgVXNlZCB3aGVuIGN1c3RvbWl6ZSBuZXR3b3JrLiBPbmx5IGNyZWF0ZXMgYSB0YXAgZGV2aWNlLiBObyB2ZXRoIHBhaXIuCiMKIyAgIC0gdGNmaWx0ZXIKIyAgICAgVXNlcyB0YyBmaWx0ZXIgcnVsZXMgdG8gcmVkaXJlY3QgdHJhZmZpYyBmcm9tIHRoZSBuZXR3b3JrIGludGVyZmFjZQojICAgICBwcm92aWRlZCBieSBwbHVnaW4gdG8gYSB0YXAgaW50ZXJmYWNlIGNvbm5lY3RlZCB0byB0aGUgVk0uCiMKaW50ZXJuZXR3b3JraW5nX21vZGVsPSJub25lIgoKIyBkaXNhYmxlIGd1ZXN0IHNlY2NvbXAKIyBEZXRlcm1pbmVzIHdoZXRoZXIgY29udGFpbmVyIHNlY2NvbXAgcHJvZmlsZXMgYXJlIHBhc3NlZCB0byB0aGUgdmlydHVhbAojIG1hY2hpbmUgYW5kIGFwcGxpZWQgYnkgdGhlIGthdGEgYWdlbnQuIElmIHNldCB0byB0cnVlLCBzZWNjb21wIGlzIG5vdCBhcHBsaWVkCiMgd2l0aGluIHRoZSBndWVzdAojIChkZWZhdWx0OiB0cnVlKQpkaXNhYmxlX2d1ZXN0X3NlY2NvbXA9dHJ1ZQoKIyBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIGNyZWF0ZSBvcGVudHJhY2luZy5pbyB0cmFjZXMgYW5kIHNwYW5zLgojIChTZWUgaHR0cHM6Ly93d3cuamFlZ2VydHJhY2luZy5pby9kb2NzL2dldHRpbmctc3RhcnRlZCkuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQojZW5hYmxlX3RyYWNpbmcgPSB0cnVlCgojIFNldCB0aGUgZnVsbCB1cmwgdG8gdGhlIEphZWdlciBIVFRQIFRocmlmdCBjb2xsZWN0b3IuCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCB3aWxsIGJlICJodHRwOi8vbG9jYWxob3N0OjE0MjY4L2FwaS90cmFjZXMiCiNqYWVnZXJfZW5kcG9pbnQgPSAiIgoKIyBTZXRzIHRoZSB1c2VybmFtZSB0byBiZSB1c2VkIGlmIGJhc2ljIGF1dGggaXMgcmVxdWlyZWQgZm9yIEphZWdlci4KI2phZWdlcl91c2VyID0gIiIKCiMgU2V0cyB0aGUgcGFzc3dvcmQgdG8gYmUgdXNlZCBpZiBiYXNpYyBhdXRoIGlzIHJlcXVpcmVkIGZvciBKYWVnZXIuCiNqYWVnZXJfcGFzc3dvcmQgPSAiIgoKIyBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIG5vdCBjcmVhdGUgYSBuZXR3b3JrIG5hbWVzcGFjZSBmb3Igc2hpbSBhbmQgaHlwZXJ2aXNvciBwcm9jZXNzZXMuCiMgVGhpcyBvcHRpb24gbWF5IGhhdmUgc29tZSBwb3RlbnRpYWwgaW1wYWN0cyB0byB5b3VyIGhvc3QuIEl0IHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZy4KIyBgZGlzYWJsZV9uZXdfbmV0bnNgIGNvbmZsaWN0cyB3aXRoIGBlbmFibGVfbmV0bW9uYAojIGBkaXNhYmxlX25ld19uZXRuc2AgY29uZmxpY3RzIHdpdGggYGludGVybmV0d29ya2luZ19tb2RlbD10Y2ZpbHRlcmAgYW5kIGBpbnRlcm5ldHdvcmtpbmdfbW9kZWw9bWFjdnRhcGAuIEl0IHdvcmtzIG9ubHkKIyB3aXRoIGBpbnRlcm5ldHdvcmtpbmdfbW9kZWw9bm9uZWAuIFRoZSB0YXAgZGV2aWNlIHdpbGwgYmUgaW4gdGhlIGhvc3QgbmV0d29yayBuYW1lc3BhY2UgYW5kIGNhbiBjb25uZWN0IHRvIGEgYnJpZGdlCiMgKGxpa2UgT1ZTKSBkaXJlY3RseS4KIyBJZiB5b3UgYXJlIHVzaW5nIGRvY2tlciwgYGRpc2FibGVfbmV3X25ldG5zYCBvbmx5IHdvcmtzIHdpdGggYGRvY2tlciBydW4gLS1uZXQ9bm9uZWAKIyAoZGVmYXVsdDogZmFsc2UpCmRpc2FibGVfbmV3X25ldG5zID0gdHJ1ZQoKIyBpZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIGFkZCBhbGwgdGhlIGthdGEgcHJvY2Vzc2VzIGluc2lkZSBvbmUgZGVkaWNhdGVkIGNncm91cC4KIyBUaGUgY29udGFpbmVyIGNncm91cHMgaW4gdGhlIGhvc3QgYXJlIG5vdCBjcmVhdGVkLCBqdXN0IG9uZSBzaW5nbGUgY2dyb3VwIHBlciBzYW5kYm94LgojIFRoZSBydW50aW1lIGNhbGxlciBpcyBmcmVlIHRvIHJlc3RyaWN0IG9yIGNvbGxlY3QgY2dyb3VwIHN0YXRzIG9mIHRoZSBvdmVyYWxsIEthdGEgc2FuZGJveC4KIyBUaGUgc2FuZGJveCBjZ3JvdXAgcGF0aCBpcyB0aGUgcGFyZW50IGNncm91cCBvZiBhIGNvbnRhaW5lciB3aXRoIHRoZSBQb2RTYW5kYm94IGFubm90YXRpb24uCiMgVGhlIHNhbmRib3ggY2dyb3VwIGlzIGNvbnN0cmFpbmVkIGlmIHRoZXJlIGlzIG5vIGNvbnRhaW5lciB0eXBlIGFubm90YXRpb24uCiMgU2VlOiBodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2thdGEtY29udGFpbmVycy9ydW50aW1lL3ZpcnRjb250YWluZXJzI0NvbnRhaW5lclR5cGUKc2FuZGJveF9jZ3JvdXBfb25seT1mYWxzZQoKIyBJZiBzcGVjaWZpZWQsIHNhbmRib3hfYmluZF9tb3VudHMgaWRlbnRpZmllZHMgaG9zdCBwYXRocyB0byBiZSBtb3VudGVkIChybykgaW50byB0aGUgc2FuZGJveGVzIHNoYXJlZCBwYXRoLgojIFRoaXMgaXMgb25seSB2YWxpZCBpZiBmaWxlc3lzdGVtIHNoYXJpbmcgaXMgdXRpbGl6ZWQuIFRoZSBwcm92aWRlZCBwYXRoKHMpIHdpbGwgYmUgYmluZG1vdW50ZWQgaW50byB0aGUgc2hhcmVkIGZzIGRpcmVjdG9yeS4KIyBJZiBkZWZhdWx0cyBhcmUgdXRpbGl6ZWQsIHRoZXNlIG1vdW50cyBzaG91bGQgYmUgYXZhaWxhYmxlIGluIHRoZSBndWVzdCBhdCBgL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvc2FuZGJveC1tb3VudHNgCiMgVGhlc2Ugd2lsbCBub3QgYmUgZXhwb3NlZCB0byB0aGUgY29udGFpbmVyIHdvcmtsb2FkcywgYW5kIGFyZSBvbmx5IHByb3ZpZGVkIGZvciBwb3RlbnRpYWwgZ3Vlc3Qgc2VydmljZXMuCnNhbmRib3hfYmluZF9tb3VudHM9W10KCiMgRW5hYmxlZCBleHBlcmltZW50YWwgZmVhdHVyZSBsaXN0LCBmb3JtYXQ6IFsiYSIsICJiIl0uCiMgRXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBmZWF0dXJlcyBub3Qgc3RhYmxlIGVub3VnaCBmb3IgcHJvZHVjdGlvbiwKIyB0aGV5IG1heSBicmVhayBjb21wYXRpYmlsaXR5LCBhbmQgYXJlIHByZXBhcmVkIGZvciBhIGJpZyB2ZXJzaW9uIGJ1bXAuCiMgU3VwcG9ydGVkIGV4cGVyaW1lbnRhbCBmZWF0dXJlczoKIyAoZGVmYXVsdDogW10pCmV4cGVyaW1lbnRhbD1bXQoKIyBJZiBlbmFibGVkLCB1c2VyIGNhbiBydW4gcHByb2YgdG9vbHMgd2l0aCBzaGltIHYyIHByb2Nlc3MgdGhyb3VnaCBrYXRhLW1vbml0b3IuCiMgKGRlZmF1bHQ6IGZhbHNlKQojIGVuYWJsZV9wcHJvZiA9IHRydWUKCiMgV0FSTklORzogQWxsIHRoZSBvcHRpb25zIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbiBoYXZlIG5vdCBiZWVuIGltcGxlbWVudGVkIHlldC4KIyBUaGlzIHNlY3Rpb24gd2FzIGFkZGVkIGFzIGEgcGxhY2Vob2xkZXIuIERPIE5PVCBVU0UgSVQhCltpbWFnZV0KIyBDb250YWluZXIgaW1hZ2Ugc2VydmljZS4KIwojIE9mZmxvYWQgdGhlIENSSSBpbWFnZSBtYW5hZ2VtZW50IHNlcnZpY2UgdG8gdGhlIEthdGEgYWdlbnQuCiMgKGRlZmF1bHQ6IGZhbHNlKQpzZXJ2aWNlX29mZmxvYWQgPSB0cnVlCgojIENvbnRhaW5lciBpbWFnZSBkZWNyeXB0aW9uIGtleXMgcHJvdmlzaW9uaW5nLgojIEFwcGxpZXMgb25seSBpZiBzZXJ2aWNlX29mZmxvYWQgaXMgdHJ1ZS4KIyBLZXlzIGNhbiBiZSBwcm92aXNpb25lZCBsb2NhbGx5IChlLmcuIHRocm91Z2ggYSBzcGVjaWFsIGNvbW1hbmQgb3IKIyBhIGxvY2FsIGZpbGUpIG9yIHJlbW90ZWx5ICh1c3VhbGx5IGFmdGVyIHRoZSBndWVzdCBpcyByZW1vdGVseSBhdHRlc3RlZCkuCiMgVGhlIHByb3Zpc2lvbiBzZXR0aW5nIGlzIGEgY29tcGxldGUgVVJMIHRoYXQgbGV0cyB0aGUgS2F0YSBhZ2VudCBkZWNpZGUKIyB3aGljaCBtZXRob2QgdG8gdXNlIGluIG9yZGVyIHRvIGZldGNoIHRoZSBrZXlzLgojCiMgS2V5cyBjYW4gYmUgc3RvcmVkIGluIGEgbG9jYWwgZmlsZSwgaW4gYSBtZWFzdXJlZCBhbmQgYXR0ZXN0ZWQgaW5pdHJkOgojcHJvdmlzaW9uPWRhdGE6Ly8vbG9jYWwva2V5L2ZpbGUKIwojIEtleXMgY291bGQgYmUgZmV0Y2hlZCB0aHJvdWdoIGEgc3BlY2lhbCBjb21tYW5kIG9yIGJpbmFyeSBmcm9tIHRoZQojIGluaXRyZCAoZ3Vlc3QpIGltYWdlLCBlLmcuIGEgZmlybXdhcmUgY2FsbDoKI3Byb3Zpc2lvbj1maWxlOi8vL3BhdGgvdG8vYmluL2ZldGNoZXIvaW4vZ3Vlc3QKIwojIEtleXMgY2FuIGJlIHJlbW90ZWx5IHByb3Zpc2lvbmVkLiBUaGUgS2F0YSBhZ2VudCBmZXRjaGVzIHRoZW0gZnJvbSBlLmcuCiMgYSBIVFRQUyBVUkw6CiNwcm92aXNpb249aHR0cHM6Ly9teS1rZXktYnJva2VyLmZvby90ZW5hbnQvPHRlbmFudC1pZD4= + filesystem: root + mode: 0644 + path: /opt/kata/configuration-remote.toml diff --git a/config/peerpods/mc-50-crio-config.yaml b/config/peerpods/mc-50-crio-config.yaml new file mode 100644 index 00000000..6a2aaa9e --- /dev/null +++ b/config/peerpods/mc-50-crio-config.yaml @@ -0,0 +1,18 @@ +apiVersion: machineconfiguration.openshift.io/v1 +kind: MachineConfig +metadata: + labels: + machineconfiguration.openshift.io/role: worker + name: 50-kata-remote-cc +spec: + config: + ignition: + version: 2.2.0 + storage: + files: + - contents: + source: data:text/plain;charset=utf-8;base64,W2NyaW8ucnVudGltZS5ydW50aW1lcy5rYXRhLXJlbW90ZS1jY10KIHJ1bnRpbWVfcGF0aCA9ICIvdXNyL2Jpbi9jb250YWluZXJkLXNoaW0ta2F0YS12Mi10cCIKIHJ1bnRpbWVfdHlwZSA9ICJ2bSIKIHJ1bnRpbWVfcm9vdCA9ICIvcnVuL3ZjIgogcnVudGltZV9jb25maWdfcGF0aCA9ICIvb3B0L2thdGEvY29uZmlndXJhdGlvbi1yZW1vdGUudG9tbCIKIHByaXZpbGVnZWRfd2l0aG91dF9ob3N0X2RldmljZXMgPSB0cnVlCg== + filesystem: root + mode: 0644 + path: /etc/crio/crio.conf.d/50-kata-remote-cc + diff --git a/config/peerpods/peerpodscm.yaml b/config/peerpods/peerpodscm.yaml new file mode 100644 index 00000000..36dceb3d --- /dev/null +++ b/config/peerpods/peerpodscm.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: peer-pods-cm + namespace: openshift-sandboxed-containers-operator +data: + #CLOUD_PROVIDER: "libvirt" diff --git a/config/peerpods/peerpodssecret.yaml b/config/peerpods/peerpodssecret.yaml new file mode 100644 index 00000000..45743954 --- /dev/null +++ b/config/peerpods/peerpodssecret.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Secret +metadata: + name: peer-pods-secret + namespace: openshift-sandboxed-containers-operator +type: Opaque +stringData: + #CLOUD_PROVIDER: "libvirt" + #LIBVIRT_URI: "qemu+ssh://root@192.168.122.1/system?no_verify=1" + #LIBVIRT_NET: "default + #LIBVIRT_POOL: "default" diff --git a/config/peerpods/runtimeclass.yaml b/config/peerpods/runtimeclass.yaml new file mode 100644 index 00000000..3a81020a --- /dev/null +++ b/config/peerpods/runtimeclass.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: node.k8s.io/v1 +handler: kata-remote-cc +kind: RuntimeClass +metadata: + name: kata-remote-cc +overhead: + podFixed: + memory: "120Mi" + cpu: "250m" From 280035fce9b9dd2f300b8aee55b1756b16dcd826 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:02:37 +0100 Subject: [PATCH 02/63] api: add EnablePeerPods field This field when set to true will make the controller create a PeerPodConfig custom. Signed-off-by: Jens Freimann --- api/v1/kataconfig_types.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api/v1/kataconfig_types.go b/api/v1/kataconfig_types.go index bfeef96d..5e07f3bb 100644 --- a/api/v1/kataconfig_types.go +++ b/api/v1/kataconfig_types.go @@ -38,6 +38,12 @@ type KataConfigSpec struct { // Sets log level on kata-equipped nodes. Valid values are the same as for `crio --log-level`. // +kubebuilder:default:="info" LogLevel string `json:"logLevel,omitempty"` + + // EnablePeerPods is used to transparently create pods on a remote system. + // For more information on how this works, please refer to the sandboxed containers documentation - https://docs.openshift.com/container-platform/latest/sandboxed_containers/deploying-sandboxed-container-workloads.html + // +optional + // +kubebuilder:default:=false + EnablePeerPods bool `json:"enablePeerPods"` } // KataConfigStatus defines the observed state of KataConfig From 00cbdb4943b3334daf36e9eca2abb2c8fb8e272e Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:23:50 +0100 Subject: [PATCH 03/63] add pod-security privileged labels Signed-off-by: Jens Freimann --- config/manager/manager.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index eb07c8e9..72a779ad 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -3,6 +3,9 @@ kind: Namespace metadata: labels: control-plane: controller-manager + pod-security.kubernetes.io/audit: privileged + pod-security.kubernetes.io/enforce: privileged + pod-security.kubernetes.io/warn: privileged name: "openshift-sandboxed-containers-operator" --- apiVersion: apps/v1 From 3ca3f368ab04ab94b697af283585a18aad3e7851 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:26:49 +0100 Subject: [PATCH 04/63] rbac: add rights to edit peerpodconfigs Signed-off-by: Jens Freimann --- config/rbac/kataconfig_editor_role.yaml | 4 ++++ config/rbac/kataconfig_viewer_role.yaml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/config/rbac/kataconfig_editor_role.yaml b/config/rbac/kataconfig_editor_role.yaml index 8b696641..f868784f 100644 --- a/config/rbac/kataconfig_editor_role.yaml +++ b/config/rbac/kataconfig_editor_role.yaml @@ -6,8 +6,10 @@ metadata: rules: - apiGroups: - kataconfiguration.openshift.io + - peerpodconfiguration.confidentialcontainers.org resources: - kataconfigs + - peerpodconfigs verbs: - create - delete @@ -18,7 +20,9 @@ rules: - watch - apiGroups: - kataconfiguration.openshift.io + - peerpodconfiguration.confidentialcontainers.org resources: - kataconfigs/status + - peerpodconfigs/status verbs: - get diff --git a/config/rbac/kataconfig_viewer_role.yaml b/config/rbac/kataconfig_viewer_role.yaml index 9c87bc96..411aebb1 100644 --- a/config/rbac/kataconfig_viewer_role.yaml +++ b/config/rbac/kataconfig_viewer_role.yaml @@ -6,15 +6,19 @@ metadata: rules: - apiGroups: - kataconfiguration.openshift.io + - peerpodconfiguration.confidentialcontainers.org resources: - kataconfigs + - peerpodconfigs verbs: - get - list - watch - apiGroups: + - peerpodconfiguration.confidentialcontainers.org - kataconfiguration.openshift.io resources: - kataconfigs/status + - peerpodconfigs/status verbs: - get From 7ac7a8fc8700d12b2351c43ed58d14ffaf9a88c5 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:27:36 +0100 Subject: [PATCH 05/63] samples: add peerpodconfig CR sample Signed-off-by: Jens Freimann --- config/samples/_v1alpha1_peerpodconfig.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 config/samples/_v1alpha1_peerpodconfig.yaml diff --git a/config/samples/_v1alpha1_peerpodconfig.yaml b/config/samples/_v1alpha1_peerpodconfig.yaml new file mode 100644 index 00000000..3a1116ac --- /dev/null +++ b/config/samples/_v1alpha1_peerpodconfig.yaml @@ -0,0 +1,6 @@ +apiVersion: confidentialcontainers.org/v1alpha1 +kind: PeerPodConfig +metadata: + name: peerpodconfig-sample +spec: + # TODO(user): Add fields here From dbfc341370040cdc2315e7de9ace176be0d368ad Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:32:45 +0100 Subject: [PATCH 06/63] controller: run peer pods components when enabled During reconcile of KataConfig, check kataconfig.spec.enablePeerPods and if set to true create a PeerPodConfig custom resource which will then be handled by the peerpod-controller which runs in parallel to the KataConfig controller. Signed-off-by: Jens Freimann --- controllers/openshift_controller.go | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 1d5281ef..939c755e 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -20,6 +20,9 @@ import ( "encoding/json" "fmt" "os" + + "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/api/v1alpha1" + "time" appsv1 "k8s.io/api/apps/v1" @@ -64,6 +67,7 @@ const ( dashboard_configmap_name = "grafana-dashboard-sandboxed-containers" dashboard_configmap_namespace = "openshift-config-managed" container_runtime_config_name = "kata-crio-config" + DEFAULT_PEER_PODS = "10" ) // +kubebuilder:rbac:groups=kataconfiguration.openshift.io,resources=kataconfigs;kataconfigs/finalizers,verbs=get;list;watch;create;update;patch;delete @@ -75,6 +79,10 @@ const ( // +kubebuilder:rbac:groups="";machineconfiguration.openshift.io,resources=nodes;machineconfigs;machineconfigpools;containerruntimeconfigs;pods;services;services/finalizers;endpoints;persistentvolumeclaims;events;configmaps;secrets,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=security.openshift.io,resources=securitycontextconstraints,verbs=use;get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups="",resources=namespaces,verbs=get;update +// +kubebuilder:rbac:groups="",resources=nodes/status,verbs=patch +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs/status,verbs=get;update;patch +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs/finalizers,verbs=update func (r *KataConfigOpenShiftReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { _ = r.Log.WithValues("kataconfig", req.NamespacedName) @@ -893,6 +901,15 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. } } + // peer pod enablement + if r.kataConfig.Spec.EnablePeerPods { + err := r.enablePeerPods() + if err != nil { + r.Log.Error(err, "Peer pod enabling failed") + return ctrl.Result{}, err + } + } + // If converged cluster, then MCP == master, otherwise "kata-oc" if it exists machinePool, err := r.getMcpName() if err != nil { @@ -1367,3 +1384,25 @@ func (r *KataConfigOpenShiftReconciler) clearFailedStatus(status kataconfigurati return status } + +func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { + + peerpodconf := v1alpha1.PeerPodConfig{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{ + Name: "peerpodconfig-example", + Namespace: "openshift-sandboxed-containers-operator", + }, + Spec: v1alpha1.PeerPodConfigSpec{ + CloudSecretName: "peer-pods-secret", + ConfigMapName: "peer-pods-cm", + Limit: DEFAULT_PEER_PODS, + }, + } + + err := r.Client.Create(context.TODO(), &peerpodconf) + if k8serrors.IsAlreadyExists(err) { + return nil + } + return err +} From de4f87282c98ee91aa17ff521c021d05207d36a7 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:36:51 +0100 Subject: [PATCH 07/63] main: run peer pod controller Start the peer-pod controller which will handle the reconciliation for the PeerPodConfig CR that we create when kataconfig.spec.enablePeerPods=true is set. Signed-off-by: Jens Freimann --- main.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index b1120226..18ed8fb6 100644 --- a/main.go +++ b/main.go @@ -19,8 +19,7 @@ package main import ( "context" "flag" - "os" - + peerpodcontrollers "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/controllers" secv1 "github.com/openshift/api/security/v1" mcfgapi "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io" corev1 "k8s.io/api/core/v1" @@ -31,11 +30,13 @@ import ( clientgoscheme "k8s.io/client-go/kubernetes/scheme" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" nodeapi "k8s.io/kubernetes/pkg/apis/node/v1" + "os" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" + peerpodconfig "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/api/v1alpha1" kataconfigurationv1 "github.com/openshift/sandboxed-containers-operator/api/v1" "github.com/openshift/sandboxed-containers-operator/controllers" // +kubebuilder:scaffold:imports @@ -60,6 +61,8 @@ func init() { utilruntime.Must(mcfgapi.Install(scheme)) utilruntime.Must(kataconfigurationv1.AddToScheme(scheme)) + + utilruntime.Must(peerpodconfig.AddToScheme(scheme)) // +kubebuilder:scaffold:scheme } @@ -116,12 +119,22 @@ func main() { setupLog.Error(err, "unable to create KataConfig controller for OpenShift cluster", "controller", "KataConfig") os.Exit(1) } + + if err = (&peerpodcontrollers.PeerPodConfigReconciler{ + Client: mgr.GetClient(), + Log: ctrl.Log.WithName("controllers").WithName("RemotePodConfig"), + Scheme: mgr.GetScheme(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create RemotePodConfig controller for OpenShift cluster", "controller", "RemotePodConfig") + os.Exit(1) + } } if err = (&kataconfigurationv1.KataConfig{}).SetupWebhookWithManager(mgr); err != nil { setupLog.Error(err, "unable to create webhook", "webhook", "KataConfig") os.Exit(1) } + // +kubebuilder:scaffold:builder setupLog.Info("starting manager") From aa7a3d8c1cb71050af21b4e5d0fc3d8ce388b5ef Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:44:04 +0100 Subject: [PATCH 08/63] update go.mod and go.sum Signed-off-by: Jens Freimann --- go.mod | 110 +++++++++++++++++-------------------------- go.sum | 145 +++++++++++++++++++++++++++++++-------------------------- 2 files changed, 123 insertions(+), 132 deletions(-) diff --git a/go.mod b/go.mod index af184493..3348db21 100644 --- a/go.mod +++ b/go.mod @@ -1,119 +1,97 @@ module github.com/openshift/sandboxed-containers-operator -go 1.18 +go 1.19 require ( + github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c github.com/coreos/ignition/v2 v2.9.0 github.com/go-logr/logr v1.2.3 - github.com/onsi/ginkgo/v2 v2.1.6 - github.com/onsi/gomega v1.20.1 + github.com/onsi/ginkgo/v2 v2.6.1 + github.com/onsi/gomega v1.24.2 github.com/openshift/api v0.0.0-20210924154557-a4f696157341 github.com/openshift/machine-config-operator v0.0.1-0.20211015230756-5353b8ec1122 - k8s.io/api v0.25.0 - k8s.io/apimachinery v0.25.0 - k8s.io/client-go v0.25.0 - k8s.io/kubernetes v1.25.4 - sigs.k8s.io/controller-runtime v0.13.0 + k8s.io/api v0.26.0 + k8s.io/apimachinery v0.26.0 + k8s.io/client-go v0.26.0 + k8s.io/kubernetes v1.26.0 + sigs.k8s.io/controller-runtime v0.14.0 ) require ( cloud.google.com/go v0.97.0 // indirect - github.com/PuerkitoBio/purell v1.1.1 // indirect - github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/coreos/vcontext v0.0.0-20201120045928-b0e13dab675c // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/emicklei/go-restful/v3 v3.8.0 // indirect + github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/fatih/color v1.12.0 // indirect - github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect - github.com/go-openapi/jsonreference v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect - github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/gnostic v0.5.7-v3refs // indirect - github.com/google/go-cmp v0.5.8 // indirect + github.com/google/go-cmp v0.5.9 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.12.2 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.32.1 // indirect - github.com/prometheus/procfs v0.7.3 // indirect - github.com/spf13/cobra v1.4.0 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect - go.uber.org/zap v1.21.0 // indirect - golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect - golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect - golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect - golang.org/x/tools v0.1.12 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/net v0.4.0 // indirect + golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/term v0.3.0 // indirect + golang.org/x/text v0.5.0 // indirect + golang.org/x/time v0.3.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.25.0 // indirect - k8s.io/component-base v0.25.0 // indirect - k8s.io/klog/v2 v2.70.1 // indirect - k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 // indirect - k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect - sigs.k8s.io/controller-tools v0.9.2 // indirect + k8s.io/apiextensions-apiserver v0.26.0 // indirect + k8s.io/component-base v0.26.0 // indirect + k8s.io/klog/v2 v2.80.1 // indirect + k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect + k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) replace ( - // So that we can import MCO - k8s.io/api => k8s.io/api v0.25.0 - k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.0 - k8s.io/apimachinery => k8s.io/apimachinery v0.25.0 - k8s.io/apiserver => k8s.io/apiserver v0.25.0 - k8s.io/cli-runtime => k8s.io/cli-runtime v0.25.0 - k8s.io/client-go => k8s.io/client-go v0.25.0 - k8s.io/cloud-provider => k8s.io/cloud-provider v0.25.0 - k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.25.0 - k8s.io/code-generator => k8s.io/code-generator v0.25.0 - k8s.io/component-base => k8s.io/component-base v0.25.0 - k8s.io/component-helpers => k8s.io/component-helpers v0.25.0 - k8s.io/controller-manager => k8s.io/controller-manager v0.25.0 - k8s.io/cri-api => k8s.io/cri-api v0.25.0 - k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.25.0 + //github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller => ../cloud-api-adaptor/peer-pod-controller + k8s.io/api => k8s.io/api v0.25.1 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.1 + k8s.io/apimachinery => k8s.io/apimachinery v0.25.1 + k8s.io/apiserver => k8s.io/apiserver v0.25.1 + k8s.io/cli-runtime => k8s.io/cli-runtime v0.25.1 + k8s.io/client-go => k8s.io/client-go v0.25.1 + k8s.io/code-generator => k8s.io/code-generator v0.25.1 + k8s.io/component-base => k8s.io/component-base v0.25.1 k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.25.0 - k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.25.0 - k8s.io/kube-proxy => k8s.io/kube-proxy v0.25.0 - k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.25.0 - k8s.io/kubectl => k8s.io/kubectl v0.25.0 - k8s.io/kubelet => k8s.io/kubelet v0.25.0 - k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.25.0 - k8s.io/metrics => k8s.io/metrics v0.25.0 - k8s.io/mount-utils => k8s.io/mount-utils v0.25.0 - k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.25.0 - k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.25.0 + k8s.io/kubectl => k8s.io/kubectl v0.25.1 + k8s.io/kubelet => k8s.io/kubelet v0.25.1 + // So that we can import MCO + sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.13.0 ) diff --git a/go.sum b/go.sum index b5f7cca3..b7585a3f 100644 --- a/go.sum +++ b/go.sum @@ -93,9 +93,7 @@ github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMo github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenPeeDeeP/depguard v1.0.0/go.mod h1:7/4sitnI9YlQgTLLk734QlzXT8DuHVnAyztLplQjk+o= github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= @@ -174,6 +172,8 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c h1:wXEJtq8D5WxHp4ec4epAOp3kmlOLeGtDIs9xP2nUrP4= +github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c/go.mod h1:rmBJfRaPJ18+nqNp4OHfOQ4jTH284rn5bWMJ+ANOjlE= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= @@ -345,8 +345,9 @@ github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8 github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.10.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.8.0 h1:eCZ8ulSerjdAiaNpF7GxXIE7ZCMo1moN1qX+S609eVw= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE= +github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -366,15 +367,13 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= @@ -391,10 +390,12 @@ github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3I github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= @@ -409,8 +410,9 @@ github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34 github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= +github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= @@ -431,8 +433,6 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= -github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -444,6 +444,7 @@ github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/ github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -451,7 +452,6 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -517,7 +517,7 @@ github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/cel-go v0.12.4/go.mod h1:Av7CU6r6X3YmcHR9GXqVDaEJYfEtSxl6wvIjUQTriCw= +github.com/google/cel-go v0.12.5/go.mod h1:Jk7ljRzLBhkmiAwBoUxB1sZSCVBAzkqPF25olK/iRDw= github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -532,8 +532,9 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-intervals v0.0.2/go.mod h1:MkaR3LNRfeKLPmqgJYs4E66z5InYjmCjbbr4TQlcT6Y= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -622,7 +623,6 @@ github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -692,12 +692,9 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -707,8 +704,8 @@ github.com/mattn/go-shellwords v1.0.11/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lL github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.2 h1:hAHbPm5IJGijwng3PWk09JkG9WeqChjprR5s9bBZ+OM= +github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= @@ -772,8 +769,9 @@ github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vv github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= -github.com/onsi/ginkgo/v2 v2.1.6 h1:Fx2POJZfKRQcM1pH49qSZiYeu319wji004qX+GDovrU= github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= +github.com/onsi/ginkgo/v2 v2.6.1 h1:1xQPCjcqYw/J5LchOcp4/2q/jzJFjiAOc25chhnDw+Q= +github.com/onsi/ginkgo/v2 v2.6.1/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -783,8 +781,9 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.20.1 h1:PA/3qinGoukvymdIDV8pii6tiZgC8kbmJO6Z5+b002Q= github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= +github.com/onsi/gomega v1.24.2 h1:J/tulyYK6JwBldPViHJReihxxZ+22FHs0piGjQAvoUE= +github.com/onsi/gomega v1.24.2/go.mod h1:gs3J10IS7Z7r7eXRoNJIrNqU4ToQukCJhFtKrWgHWnk= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -851,14 +850,15 @@ github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= -github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -866,8 +866,9 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -878,8 +879,9 @@ github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -936,7 +938,6 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= @@ -1059,7 +1060,6 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= @@ -1067,8 +1067,8 @@ go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9i go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go4.org v0.0.0-20200104003542-c7e774b10ea0/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/arch v0.0.0-20180920145803-b19384d3c130/go.mod h1:cYlCBUl1MsqxdiKgmc4uh7TxZfWSFLOGSRR090WDxt8= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1129,7 +1129,6 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1193,8 +1192,10 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1210,8 +1211,9 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1252,6 +1254,7 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1296,6 +1299,7 @@ golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1327,14 +1331,17 @@ golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1344,16 +1351,17 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= -golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20170915040203-e531a2a1c15f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1432,7 +1440,6 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1518,6 +1525,7 @@ google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1587,8 +1595,9 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= @@ -1641,21 +1650,24 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.25.0 h1:H+Q4ma2U/ww0iGB78ijZx6DRByPz6/733jIuFpX70e0= -k8s.io/api v0.25.0/go.mod h1:ttceV1GyV1i1rnmvzT3BST08N6nGt+dudGrquzVQWPk= -k8s.io/apiextensions-apiserver v0.25.0 h1:CJ9zlyXAbq0FIW8CD7HHyozCMBpDSiH7EdrSTCZcZFY= -k8s.io/apiextensions-apiserver v0.25.0/go.mod h1:3pAjZiN4zw7R8aZC5gR0y3/vCkGlAjCazcg1me8iB/E= -k8s.io/apimachinery v0.25.0 h1:MlP0r6+3XbkUG2itd6vp3oxbtdQLQI94fD5gCS+gnoU= -k8s.io/apimachinery v0.25.0/go.mod h1:qMx9eAk0sZQGsXGu86fab8tZdffHbwUfsvzqKn4mfB0= -k8s.io/apiserver v0.25.0/go.mod h1:BKwsE+PTC+aZK+6OJQDPr0v6uS91/HWxX7evElAH6xo= -k8s.io/cli-runtime v0.25.0/go.mod h1:bHOI5ZZInRHhbq12OdUiYZQN8ml8aKZLwQgt9QlLINw= -k8s.io/client-go v0.25.0 h1:CVWIaCETLMBNiTUta3d5nzRbXvY5Hy9Dpl+VvREpu5E= -k8s.io/client-go v0.25.0/go.mod h1:lxykvypVfKilxhTklov0wz1FoaUZ8X4EwbhS6rpRfN8= -k8s.io/code-generator v0.25.0/go.mod h1:B6jZgI3DvDFAualltPitbYMQ74NjaCFxum3YeKZZ+3w= -k8s.io/component-base v0.25.0 h1:haVKlLkPCFZhkcqB6WCvpVxftrg6+FK5x1ZuaIDaQ5Y= -k8s.io/component-base v0.25.0/go.mod h1:F2Sumv9CnbBlqrpdf7rKZTmmd2meJq0HizeyY/yAFxk= -k8s.io/component-helpers v0.25.0/go.mod h1:auaFj2bvb5Zmy0mLk4WJNmwP0w4e7Zk+/Tu9FFBGA20= -k8s.io/cri-api v0.25.0/go.mod h1:J1rAyQkSJ2Q6I+aBMOVgg2/cbbebso6FNa0UagiR0kc= +k8s.io/api v0.25.1 h1:yL7du50yc93k17nH/Xe9jujAYrcDkI/i5DL1jPz4E3M= +k8s.io/api v0.25.1/go.mod h1:hh4itDvrWSJsmeUc28rIFNri8MatNAAxJjKcQmhX6TU= +k8s.io/apiextensions-apiserver v0.25.1 h1:HEIKlxj6oHaDwHgotEIX/Ld5K/RGuOFwN/TWMiQ5s5s= +k8s.io/apiextensions-apiserver v0.25.1/go.mod h1:67sgnMs2yIO2iV4DpCdS91vlP+pdnVIsG/mz60qRn44= +k8s.io/apimachinery v0.25.1 h1:t0XrnmCEHVgJlR2arwO8Awp9ylluDic706WePaYCBTI= +k8s.io/apimachinery v0.25.1/go.mod h1:hqqA1X0bsgsxI6dXsJ4HnNTBOmJNxyPp8dw3u2fSHwA= +k8s.io/apiserver v0.25.1/go.mod h1:IB1EhM28U3cCrV+VNC06p1/YSZMCNYiH+P5sI5yLaZY= +k8s.io/cli-runtime v0.25.1/go.mod h1:JSzAcqIK3JK7Ab/TY0PENKhmEg/HboNWK3VKiwsYB6E= +k8s.io/client-go v0.25.1 h1:uFj4AJKtE1/ckcSKz8IhgAuZTdRXZDKev8g387ndD58= +k8s.io/client-go v0.25.1/go.mod h1:rdFWTLV/uj2C74zGbQzOsmXPUtMAjSf7ajil4iJUNKo= +k8s.io/code-generator v0.25.1/go.mod h1:f61OcU2VqVQcjt/6TrU0sta1TA5hHkOO6ZZPwkL9Eys= +k8s.io/component-base v0.25.1 h1:Wmj33QwddVwsJFJWmXlf24Nu8do2bGHLabXHrKz7Org= +k8s.io/component-base v0.25.1/go.mod h1:j78+TFdsKM8RXHfM88oeAdZu2v9qMZdQZOfg0LGW+q4= +k8s.io/component-helpers v0.25.1/go.mod h1:C0zYGZ5jvaPaXsQCIxkTEQ+HqsPvT3cvAtQY8EDu/nk= +k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= +k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= @@ -1665,24 +1677,27 @@ k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.10.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.70.1 h1:7aaoSdahviPmR+XkS7FyxlkkXs6tHISSG03RxleQAVQ= k8s.io/klog/v2 v2.70.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-aggregator v0.25.0/go.mod h1:dfdl4aQkleiWK/U++UDLdDC8g2rsonhkB23zzUeBCgM= k8s.io/kube-openapi v0.0.0-20220401212409-b28bf2818661/go.mod h1:daOouuuwd9JXpv1L7Y34iV3yf6nxzipkKMWWlqlvK9M= -k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 h1:MQ8BAZPZlWk3S9K4a9NCkIFQtZShWqoha7snGixVgEA= k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1/go.mod h1:C/N6wCaBHeBHkHUesQOQy2/MZqGgMAFPqGsGQLdbZBU= -k8s.io/kubectl v0.25.0/go.mod h1:n16ULWsOl2jmQpzt2o7Dud1t4o0+Y186ICb4O+GwKAU= -k8s.io/kubelet v0.25.0/go.mod h1:J6aQxrZdSsGPrskYrhZdEn6PCnGha+GNvF0g9aWfQnw= +k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E= +k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= +k8s.io/kubectl v0.25.1/go.mod h1:ki8ymtGZau2M1lloUV2fqMxP9UCX/i0WIhnWTfqsGSY= +k8s.io/kubelet v0.25.1/go.mod h1:mXo8HjxCrwVduGBk4tzuhegJYPvNwPyycRf39H4KKqE= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/kubernetes v1.25.4 h1:M1+MR8IxE64zHhSSDn30twChLaOI+p0Kt77pvyQMKwU= -k8s.io/kubernetes v1.25.4/go.mod h1:lvEY+3iJhh+sGIK1LorGkI56rW0eLGsfalnp68wQwYU= -k8s.io/metrics v0.25.0/go.mod h1:HZZrbhuRX+fsDcRc3u59o2FbrKhqD67IGnoFECNmovc= +k8s.io/kubernetes v1.26.0 h1:fL8VMr4xlfTazPORLhz5fsvO5I3bsFpmynVxZTH1ItQ= +k8s.io/kubernetes v1.26.0/go.mod h1:z0aCJwn6DxzB/dDiWLbQaJO5jWOR2qoaCMnmSAx45XM= +k8s.io/metrics v0.25.1/go.mod h1:/t3eughLPd1sQNc47py2vTOY8e1E8bIxecA8rq/qQjM= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed h1:jAne/RjBTyawwAy0utX5eqigAwz/lQhTmy+Hr/Cpue4= k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 h1:KTgPnR10d5zhztWptI952TNtt/4u5h3IzDXkdIMuo2Y= +k8s.io/utils v0.0.0-20221128185143-99ec85e7a448/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY= @@ -1693,8 +1708,6 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= -sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= From 989b34b812c48c4e6a8445359cf0e3d899c1873e Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 16 Feb 2023 11:34:52 +0100 Subject: [PATCH 09/63] controller: set PEERPODS_NAMESPACE env variable This is required for the peer-pod-controller to find resources like the configmap and secret. Signed-off-by: Jens Freimann --- config/manager/manager.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index 72a779ad..6f752dcd 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -57,6 +57,8 @@ spec: image: controller:latest name: manager env: + - name: PEERPODS_NAMESPACE + value: "openshift-sandboxed-containers-operator" - name: KATA_MONITOR_IMAGE value: quay.io/openshift_sandboxed_containers/openshift-sandboxed-containers-monitor:latest imagePullPolicy: Always From 7dae22183ecfa781c5fb50e4017a337d577bac78 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 16 Feb 2023 12:02:12 +0100 Subject: [PATCH 10/63] add parameters for createRuntimeClass Signed-off-by: Jens Freimann --- controllers/openshift_controller.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 939c755e..964e7428 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -668,8 +668,7 @@ func (r *KataConfigOpenShiftReconciler) createScc() error { return nil } -func (r *KataConfigOpenShiftReconciler) createRuntimeClass() error { - runtimeClassName := "kata" +func (r *KataConfigOpenShiftReconciler) createRuntimeClass(runtimeClassName string, cpuOverhead string, memoryOverhead string) error { rc := func() *nodeapi.RuntimeClass { rc := &nodeapi.RuntimeClass{ @@ -685,8 +684,8 @@ func (r *KataConfigOpenShiftReconciler) createRuntimeClass() error { // https://github.com/kata-containers/packaging/blob/f17450317563b6e4d6b1a71f0559360b37783e19/kata-deploy/k8s-1.18/kata-runtimeClasses.yaml#L7 Overhead: &nodeapi.Overhead{ PodFixed: corev1.ResourceList{ - corev1.ResourceCPU: resource.MustParse("250m"), - corev1.ResourceMemory: resource.MustParse("350Mi"), + corev1.ResourceCPU: resource.MustParse(cpuOverhead), + corev1.ResourceMemory: resource.MustParse(memoryOverhead), }, }, } @@ -1007,7 +1006,7 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. foundMcp.Status.UpdatedMachineCount == foundMcp.Status.MachineCount { r.Log.Info("create runtime class") r.kataConfig.Status.InstallationStatus.IsInProgress = "false" - err := r.createRuntimeClass() + err := r.createRuntimeClass("kata", "250M", "350Mi") if err != nil { // Give sometime for the error to go away before reconciling again return reconcile.Result{Requeue: true, RequeueAfter: 15 * time.Second}, err From df06ae971b52df90e336457cd489788a9463f6b4 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 16 Feb 2023 12:03:13 +0100 Subject: [PATCH 11/63] add runtimeclass for peer pods when enabled in kataconfig Signed-off-by: Jens Freimann --- controllers/openshift_controller.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 964e7428..8820b998 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -1385,6 +1385,7 @@ func (r *KataConfigOpenShiftReconciler) clearFailedStatus(status kataconfigurati } func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { + var err error = nil peerpodconf := v1alpha1.PeerPodConfig{ TypeMeta: metav1.TypeMeta{}, @@ -1399,9 +1400,14 @@ func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { }, } - err := r.Client.Create(context.TODO(), &peerpodconf) + err = r.Client.Create(context.TODO(), &peerpodconf) if k8serrors.IsAlreadyExists(err) { return nil + } else if err != nil { + return err } + + err = r.createRuntimeClass("kata-remote-cc", "250M", "350Mi") + return err } From a4ddba9d0375878529786597efb440614e9a778e Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 2 Mar 2023 08:57:20 +0100 Subject: [PATCH 12/63] set version to 1.4.0 Signed-off-by: Jens Freimann --- Makefile | 2 +- ...sandboxed-containers-operator.clusterserviceversion.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index ee60c4bd..bbb12b9d 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # To re-generate a bundle for another specific version without changing the standard setup, you can: # - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) # - use environment variables to overwrite this value (e.g export VERSION=0.0.2) -VERSION ?= 1.3.4 +VERSION ?= 1.4.0 # CHANNELS define the bundle channels used in the bundle. # Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable") diff --git a/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml b/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml index ff3dd4f9..866c44c2 100644 --- a/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml @@ -13,7 +13,7 @@ metadata: } ] capabilities: Seamless Upgrades - olm.skipRange: '>=1.1.0 <1.3.2' + olm.skipRange: '>=1.1.0 <1.4.0' operatorframework.io/suggested-namespace: openshift-sandboxed-containers-operator operators.openshift.io/infrastructure-features: '["disconnected", "fips"]' operators.operatorframework.io/builder: operator-sdk-v1.20.1+git @@ -23,7 +23,7 @@ metadata: labels: operatorframework.io/arch.amd64: supported operatorframework.io/os.linux: supported - name: sandboxed-containers-operator.v1.3.2 + name: sandboxed-containers-operator.v1.4.0 spec: apiservicedefinitions: {} customresourcedefinitions: @@ -363,7 +363,7 @@ spec: maturity: beta provider: name: Red Hat - version: 1.3.2 + version: 1.4.0 webhookdefinitions: - admissionReviewVersions: - v1 From ec1fdb9e274bfd5b36dcb79f1c73482157cb6f8e Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Mar 2023 14:49:11 +0100 Subject: [PATCH 13/63] add controller-tools to go.mod Signed-off-by: Jens Freimann --- go.mod | 9 +++++++++ go.sum | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/go.mod b/go.mod index 3348db21..d386a8ab 100644 --- a/go.mod +++ b/go.mod @@ -27,11 +27,13 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/fatih/color v1.12.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect + github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect @@ -40,9 +42,12 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -52,17 +57,20 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.24.0 // indirect + golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect @@ -74,6 +82,7 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect + sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index b7585a3f..36d88da1 100644 --- a/go.sum +++ b/go.sum @@ -297,6 +297,7 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -367,6 +368,8 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= +github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= @@ -433,6 +436,8 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= +github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= +github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -624,6 +629,8 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -692,9 +699,12 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -939,6 +949,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= +github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1130,6 +1142,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1441,6 +1455,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1708,6 +1724,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= +sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= +sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= From 19fa292fc7b18d9e99da0922990b4b4158d1430f Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Mon, 30 Jan 2023 10:18:22 +0100 Subject: [PATCH 14/63] add config/peerpods This adds all the files that are used to deploy the peer pod components. Including two machine configs (for crio and kata drop-in files) and the runtime class definition. kata-remote.conf is the plain-text version of the encoded blog in the mc-40-kata-remote-config.yaml machine config definition. Signed-off-by: Jens Freimann --- config/peerpods/image.yaml | 9 + config/peerpods/kata-remote.conf | 582 ++++++++++++++++++ config/peerpods/kustomization.yaml | 14 + config/peerpods/mc-40-kata-remote-config.yaml | 17 + config/peerpods/mc-50-crio-config.yaml | 18 + config/peerpods/peerpodscm.yaml | 7 + config/peerpods/peerpodssecret.yaml | 11 + config/peerpods/runtimeclass.yaml | 10 + 8 files changed, 668 insertions(+) create mode 100644 config/peerpods/image.yaml create mode 100644 config/peerpods/kata-remote.conf create mode 100644 config/peerpods/kustomization.yaml create mode 100644 config/peerpods/mc-40-kata-remote-config.yaml create mode 100644 config/peerpods/mc-50-crio-config.yaml create mode 100644 config/peerpods/peerpodscm.yaml create mode 100644 config/peerpods/peerpodssecret.yaml create mode 100644 config/peerpods/runtimeclass.yaml diff --git a/config/peerpods/image.yaml b/config/peerpods/image.yaml new file mode 100644 index 00000000..06a83a2f --- /dev/null +++ b/config/peerpods/image.yaml @@ -0,0 +1,9 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: controller-manager +spec: + containers: + image: quay.io/openshift_sandboxed_containers/osc-peer-pods + newTag: latest + diff --git a/config/peerpods/kata-remote.conf b/config/peerpods/kata-remote.conf new file mode 100644 index 00000000..0dbe19e0 --- /dev/null +++ b/config/peerpods/kata-remote.conf @@ -0,0 +1,582 @@ +# Copyright (c) 2017-2019 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 +# + +# XXX: WARNING: this file is auto-generated. +# XXX: +# XXX: Source file: "config/configuration-qemu.toml.in" +# XXX: Project: +# XXX: Name: Kata Containers +# XXX: Type: kata + + +[hypervisor.remote] +remote_hypervisor_socket = "/run/peerpod/hypervisor.sock" +remote_hypervisor_timeout = 600 + + +# Enable confidential guest support. +# Toggling that setting may trigger different hardware features, ranging +# from memory encryption to both memory and CPU-state encryption and integrity. +# The Kata Containers runtime dynamically detects the available feature set and +# aims at enabling the largest possible one. +# Default false +# confidential_guest = true + +# Enable running QEMU VMM as a non-root user. +# By default QEMU VMM run as root. When this is set to true, QEMU VMM process runs as +# a non-root random user. See documentation for the limitations of this mode. +# rootless = true + +# List of valid annotation names for the hypervisor +# Each member of the list is a regular expression, which is the base name +# of the annotation, e.g. "path" for io.katacontainers.config.hypervisor.path" +enable_annotations = [] + +# List of valid annotations values for the hypervisor +# Each member of the list is a path pattern as described by glob(3). +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: ["/usr/bin/qemu-system-x86_64"] +valid_hypervisor_paths = ["/usr/libexec/qemu-kiwi"] + +# Optional space-separated list of options to pass to the guest kernel. +# For example, use `kernel_params = "vsyscall=emulate"` if you are having +# trouble running pre-2.15 glibc. +# +# WARNING: - any parameter specified here will take priority over the default +# parameter value of the same name used to start the virtual machine. +# Do not set values here unless you understand the impact of doing so as you +# may stop the virtual machine from booting. +# To see the list of default parameters, enable hypervisor debug, create a +# container and look for 'default-kernel-parameters' log entries. +kernel_params = "agent.log=debug" + +# Path to the firmware. +# If you want that qemu uses the default firmware leave this option empty +firmware = "" + +# Machine accelerators +# comma-separated list of machine accelerators to pass to the hypervisor. +# For example, `machine_accelerators = "nosmm,nosmbus,nosata,nopit,static-prt,nofw"` +machine_accelerators="" + +# CPU features +# comma-separated list of cpu features to pass to the cpu +# For example, `cpu_features = "pmu=off,vmx=off" +cpu_features="pmu=off" + +# Default number of vCPUs per SB/VM: +# unspecified or 0 --> will be set to 1 +# < 0 --> will be set to the actual number of physical cores +# > 0 <= number of physical cores --> will be set to the specified number +# > number of physical cores --> will be set to the actual number of physical cores +default_vcpus = 1 + +# Default maximum number of vCPUs per SB/VM: +# unspecified or == 0 --> will be set to the actual number of physical cores or to the maximum number +# of vCPUs supported by KVM if that number is exceeded +# > 0 <= number of physical cores --> will be set to the specified number +# > number of physical cores --> will be set to the actual number of physical cores or to the maximum number +# of vCPUs supported by KVM if that number is exceeded +# WARNING: Depending of the architecture, the maximum number of vCPUs supported by KVM is used when +# the actual number of physical cores is greater than it. +# WARNING: Be aware that this value impacts the virtual machine's memory footprint and CPU +# the hotplug functionality. For example, `default_maxvcpus = 240` specifies that until 240 vCPUs +# can be added to a SB/VM, but the memory footprint will be big. Another example, with +# `default_maxvcpus = 8` the memory footprint will be small, but 8 will be the maximum number of +# vCPUs supported by the SB/VM. In general, we recommend that you do not edit this variable, +# unless you know what are you doing. +# NOTICE: on arm platform with gicv2 interrupt controller, set it to 8. +default_maxvcpus = 0 + +# Bridges can be used to hot plug devices. +# Limitations: +# * Currently only pci bridges are supported +# * Until 30 devices per bridge can be hot plugged. +# * Until 5 PCI bridges can be cold plugged per VM. +# This limitation could be a bug in qemu or in the kernel +# Default number of bridges per SB/VM: +# unspecified or 0 --> will be set to 1 +# > 1 <= 5 --> will be set to the specified number +# > 5 --> will be set to 5 +default_bridges = 1 + +# Default memory size in MiB for SB/VM. +# If unspecified then it will be set 2048 MiB. +default_memory = 2048 +# +# Default memory slots per SB/VM. +# If unspecified then it will be set 10. +# This is will determine the times that memory will be hotadded to sandbox/VM. +#memory_slots = 10 + +# The size in MiB will be plused to max memory of hypervisor. +# It is the memory address space for the NVDIMM devie. +# If set block storage driver (block_device_driver) to "nvdimm", +# should set memory_offset to the size of block device. +# Default 0 +#memory_offset = 0 + +# Specifies virtio-mem will be enabled or not. +# Please note that this option should be used with the command +# "echo 1 > /proc/sys/vm/overcommit_memory". +# Default false +#enable_virtio_mem = true + +# Disable block device from being used for a container's rootfs. +# In case of a storage driver like devicemapper where a container's +# root file system is backed by a block device, the block device is passed +# directly to the hypervisor for performance reasons. +# This flag prevents the block device from being passed to the hypervisor, +# 9pfs is used instead to pass the rootfs. +disable_block_device_use = false + +# Shared file system type: +# - virtio-fs (default) +# - virtio-9p +shared_fs = "virtio-fs" + +# Path to vhost-user-fs daemon. +virtio_fs_daemon = "/usr/libexec/virtiofsd" + +# List of valid annotations values for the virtiofs daemon +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: ["/usr/libexec/kata-qemu/virtiofsd"] +valid_virtio_fs_daemon_paths = ["/usr/libexec/virtiofsd"] + +# Default size of DAX cache in MiB +virtio_fs_cache_size = 0 + +# Extra args for virtiofsd daemon +# +# Format example: +# ["-o", "arg1=xxx,arg2", "-o", "hello world", "--arg3=yyy"] +# +# see `virtiofsd -h` for possible options. +virtio_fs_extra_args = ["--thread-pool-size=1"] + +# Cache mode: +# +# - none +# Metadata, data, and pathname lookup are not cached in guest. They are +# always fetched from host and any changes are immediately pushed to host. +# +# - auto +# Metadata and pathname lookup cache expires after a configured amount of +# time (default is 1 second). Data is cached while the file is open (close +# to open consistency). +# +# - always +# Metadata, data, and pathname lookup are cached in guest and never expire. +virtio_fs_cache = "auto" + +# Block storage driver to be used for the hypervisor in case the container +# rootfs is backed by a block device. This is virtio-scsi, virtio-blk +# or nvdimm. +block_device_driver = "virtio-scsi" + +# Specifies cache-related options will be set to block devices or not. +# Default false +#block_device_cache_set = true + +# Specifies cache-related options for block devices. +# Denotes whether use of O_DIRECT (bypass the host page cache) is enabled. +# Default false +#block_device_cache_direct = true + +# Specifies cache-related options for block devices. +# Denotes whether flush requests for the device are ignored. +# Default false +#block_device_cache_noflush = true + +# Enable iothreads (data-plane) to be used. This causes IO to be +# handled in a separate IO thread. This is currently only implemented +# for SCSI. +# +enable_iothreads = false + +# Enable pre allocation of VM RAM, default false +# Enabling this will result in lower container density +# as all of the memory will be allocated and locked +# This is useful when you want to reserve all the memory +# upfront or in the cases where you want memory latencies +# to be very predictable +# Default false +#enable_mem_prealloc = true + +# Enable huge pages for VM RAM, default false +# Enabling this will result in the VM memory +# being allocated using huge pages. +# This is useful when you want to use vhost-user network +# stacks within the container. This will automatically +# result in memory pre allocation +#enable_hugepages = true + +# Enable vhost-user storage device, default false +# Enabling this will result in some Linux reserved block type +# major range 240-254 being chosen to represent vhost-user devices. +enable_vhost_user_store = false + +# The base directory specifically used for vhost-user devices. +# Its sub-path "block" is used for block devices; "block/sockets" is +# where we expect vhost-user sockets to live; "block/devices" is where +# simulated block device nodes for vhost-user devices to live. +vhost_user_store_path = "/var/run/kata-containers/vhost-user" + +# Enable vIOMMU, default false +# Enabling this will result in the VM having a vIOMMU device +# This will also add the following options to the kernel's +# command line: intel_iommu=on,iommu=pt +#enable_iommu = true + +# Enable IOMMU_PLATFORM, default false +# Enabling this will result in the VM device having iommu_platform=on set +#enable_iommu_platform = true + +# List of valid annotations values for the vhost user store path +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: ["/var/run/kata-containers/vhost-user"] +valid_vhost_user_store_paths = ["/var/run/kata-containers/vhost-user"] + +# Enable file based guest memory support. The default is an empty string which +# will disable this feature. In the case of virtio-fs, this is enabled +# automatically and '/dev/shm' is used as the backing folder. +# This option will be ignored if VM templating is enabled. +#file_mem_backend = "" + +# List of valid annotations values for the file_mem_backend annotation +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: [""] +valid_file_mem_backends = [""] + +# Enable swap of vm memory. Default false. +# The behaviour is undefined if mem_prealloc is also set to true +#enable_swap = true + +# -pflash can add image file to VM. The arguments of it should be in format +# of ["/path/to/flash0.img", "/path/to/flash1.img"] +pflashes = [] + +# This option changes the default hypervisor and kernel parameters +# to enable debug output where available. +# +# Default false +enable_debug = true + +# Disable the customizations done in the runtime when it detects +# that it is running on top a VMM. This will result in the runtime +# behaving as it would when running on bare metal. +# +#disable_nesting_checks = true + +# This is the msize used for 9p shares. It is the number of bytes +# used for 9p packet payload. +#msize_9p = 8192 + +# If false and nvdimm is supported, use nvdimm device to plug guest image. +# Otherwise virtio-block device is used. +# Default is false +#disable_image_nvdimm = true + +# VFIO devices are hotplugged on a bridge by default. +# Enable hotplugging on root bus. This may be required for devices with +# a large PCI bar, as this is a current limitation with hotplugging on +# a bridge. +# Default false +#hotplug_vfio_on_root_bus = true + +# Before hot plugging a PCIe device, you need to add a pcie_root_port device. +# Use this parameter when using some large PCI bar devices, such as Nvidia GPU +# The value means the number of pcie_root_port +# This value is valid when hotplug_vfio_on_root_bus is true and machine_type is "q35" +# Default 0 +#pcie_root_port = 2 + +# If vhost-net backend for virtio-net is not desired, set to true. Default is false, which trades off +# security (vhost-net runs ring0) for network I/O performance. +#disable_vhost_net = true + +# +# Default entropy source. +# The path to a host source of entropy (including a real hardware RNG) +# /dev/urandom and /dev/random are two main options. +# Be aware that /dev/random is a blocking source of entropy. If the host +# runs out of entropy, the VMs boot time will increase leading to get startup +# timeouts. +# The source of entropy /dev/urandom is non-blocking and provides a +# generally acceptable source of entropy. It should work well for pretty much +# all practical purposes. +#entropy_source= "/dev/urandom" + +# List of valid annotations values for entropy_source +# The default if not set is empty (all annotations rejected.) +# Your distribution recommends: ["/dev/urandom","/dev/random",""] +valid_entropy_sources = ["/dev/urandom","/dev/random",""] + +# Path to OCI hook binaries in the *guest rootfs*. +# This does not affect host-side hooks which must instead be added to +# the OCI spec passed to the runtime. +# +# You can create a rootfs with hooks by customizing the osbuilder scripts: +# https://github.com/kata-containers/kata-containers/tree/main/tools/osbuilder +# +# Hooks must be stored in a subdirectory of guest_hook_path according to their +# hook type, i.e. "guest_hook_path/{prestart,poststart,poststop}". +# The agent will scan these directories for executable files and add them, in +# lexicographical order, to the lifecycle of the guest container. +# Hooks are executed in the runtime namespace of the guest. See the official documentation: +# https://github.com/opencontainers/runtime-spec/blob/v1.0.1/config.md#posix-platform-hooks +# Warnings will be logged if any error is encountered while scanning for hooks, +# but it will not abort container execution. +#guest_hook_path = "/usr/share/oci/hooks" +# +# Use rx Rate Limiter to control network I/O inbound bandwidth(size in bits/sec for SB/VM). +# In Qemu, we use classful qdiscs HTB(Hierarchy Token Bucket) to discipline traffic. +# Default 0-sized value means unlimited rate. +#rx_rate_limiter_max_rate = 0 +# Use tx Rate Limiter to control network I/O outbound bandwidth(size in bits/sec for SB/VM). +# In Qemu, we use classful qdiscs HTB(Hierarchy Token Bucket) and ifb(Intermediate Functional Block) +# to discipline traffic. +# Default 0-sized value means unlimited rate. +#tx_rate_limiter_max_rate = 0 + +# Set where to save the guest memory dump file. +# If set, when GUEST_PANICKED event occurred, +# guest memeory will be dumped to host filesystem under guest_memory_dump_path, +# This directory will be created automatically if it does not exist. +# +# The dumped file(also called vmcore) can be processed with crash or gdb. +# +# WARNING: +# Dump guest’s memory can take very long depending on the amount of guest memory +# and use much disk space. +#guest_memory_dump_path="/var/crash/kata" + +# If enable paging. +# Basically, if you want to use "gdb" rather than "crash", +# or need the guest-virtual addresses in the ELF vmcore, +# then you should enable paging. +# +# See: https://www.qemu.org/docs/master/qemu-qmp-ref.html#Dump-guest-memory for details +#guest_memory_dump_paging=false + +# Enable swap in the guest. Default false. +# When enable_guest_swap is enabled, insert a raw file to the guest as the swap device +# if the swappiness of a container (set by annotation "io.katacontainers.container.resource.swappiness") +# is bigger than 0. +# The size of the swap device should be +# swap_in_bytes (set by annotation "io.katacontainers.container.resource.swap_in_bytes") - memory_limit_in_bytes. +# If swap_in_bytes is not set, the size should be memory_limit_in_bytes. +# If swap_in_bytes and memory_limit_in_bytes is not set, the size should +# be default_memory. +#enable_guest_swap = true + +[factory] +# VM templating support. Once enabled, new VMs are created from template +# using vm cloning. They will share the same initial kernel, initramfs and +# agent memory by mapping it readonly. It helps speeding up new container +# creation and saves a lot of memory if there are many kata containers running +# on the same host. +# +# When disabled, new VMs are created from scratch. +# +# Note: Requires "initrd=" to be set ("image=" is not supported). +# +# Default false +#enable_template = true + +# Specifies the path of template. +# +# Default "/run/vc/vm/template" +#template_path = "/run/vc/vm/template" + +# The number of caches of VMCache: +# unspecified or == 0 --> VMCache is disabled +# > 0 --> will be set to the specified number +# +# VMCache is a function that creates VMs as caches before using it. +# It helps speed up new container creation. +# The function consists of a server and some clients communicating +# through Unix socket. The protocol is gRPC in protocols/cache/cache.proto. +# The VMCache server will create some VMs and cache them by factory cache. +# It will convert the VM to gRPC format and transport it when gets +# requestion from clients. +# Factory grpccache is the VMCache client. It will request gRPC format +# VM and convert it back to a VM. If VMCache function is enabled, +# kata-runtime will request VM from factory grpccache when it creates +# a new sandbox. +# +# Default 0 +#vm_cache_number = 0 + +# Specify the address of the Unix socket that is used by VMCache. +# +# Default /var/run/kata-containers/cache.sock +#vm_cache_endpoint = "/var/run/kata-containers/cache.sock" + +[agent.kata] +# If enabled, make the agent display debug-level messages. +# (default: disabled) +enable_debug = true + +# Enable agent tracing. +# +# If enabled, the agent will generate OpenTelemetry trace spans. +# +# Notes: +# +# - If the runtime also has tracing enabled, the agent spans will be +# associated with the appropriate runtime parent span. +# - If enabled, the runtime will wait for the container to shutdown, +# increasing the container shutdown time slightly. +# +# (default: disabled) +#enable_tracing = true + +# Comma separated list of kernel modules and their parameters. +# These modules will be loaded in the guest kernel using modprobe(8). +# The following example can be used to load two kernel modules with parameters +# - kernel_modules=["e1000e InterruptThrottleRate=3000,3000,3000 EEE=1", "i915 enable_ppgtt=0"] +# The first word is considered as the module name and the rest as its parameters. +# Container will not be started when: +# * A kernel module is specified and the modprobe command is not installed in the guest +# or it fails loading the module. +# * The module is not available in the guest or it doesn't met the guest kernel +# requirements, like architecture and version. +# +kernel_modules=[] + +# Enable debug console. + +# If enabled, user can connect guest OS running inside hypervisor +# through "kata-runtime exec " command + +debug_console_enabled = true + +# Agent connection dialing timeout value in seconds +# (default: 30) +#dial_timeout = 30 + +[netmon] +# If enabled, the network monitoring process gets started when the +# sandbox is created. This allows for the detection of some additional +# network being added to the existing network namespace, after the +# sandbox has been created. +# (default: disabled) +#enable_netmon = true + +# Specify the path to the netmon binary. +path = "/opt/kata/libexec/kata-containers/kata-netmon" + +# If enabled, netmon messages will be sent to the system log +# (default: disabled) +enable_debug = true + +[runtime] +# If enabled, the runtime will log additional debug messages to the +# system log +# (default: disabled) +enable_debug = true +# +# Internetworking model +# Determines how the VM should be connected to the +# the container network interface +# Options: +# +# - macvtap +# Used when the Container network interface can be bridged using +# macvtap. +# +# - none +# Used when customize network. Only creates a tap device. No veth pair. +# +# - tcfilter +# Uses tc filter rules to redirect traffic from the network interface +# provided by plugin to a tap interface connected to the VM. +# +internetworking_model="none" + +# disable guest seccomp +# Determines whether container seccomp profiles are passed to the virtual +# machine and applied by the kata agent. If set to true, seccomp is not applied +# within the guest +# (default: true) +disable_guest_seccomp=true + +# If enabled, the runtime will create opentracing.io traces and spans. +# (See https://www.jaegertracing.io/docs/getting-started). +# (default: disabled) +#enable_tracing = true + +# Set the full url to the Jaeger HTTP Thrift collector. +# The default if not set will be "http://localhost:14268/api/traces" +#jaeger_endpoint = "" + +# Sets the username to be used if basic auth is required for Jaeger. +#jaeger_user = "" + +# Sets the password to be used if basic auth is required for Jaeger. +#jaeger_password = "" + +# If enabled, the runtime will not create a network namespace for shim and hypervisor processes. +# This option may have some potential impacts to your host. It should only be used when you know what you're doing. +# `disable_new_netns` conflicts with `enable_netmon` +# `disable_new_netns` conflicts with `internetworking_model=tcfilter` and `internetworking_model=macvtap`. It works only +# with `internetworking_model=none`. The tap device will be in the host network namespace and can connect to a bridge +# (like OVS) directly. +# If you are using docker, `disable_new_netns` only works with `docker run --net=none` +# (default: false) +disable_new_netns = true + +# if enabled, the runtime will add all the kata processes inside one dedicated cgroup. +# The container cgroups in the host are not created, just one single cgroup per sandbox. +# The runtime caller is free to restrict or collect cgroup stats of the overall Kata sandbox. +# The sandbox cgroup path is the parent cgroup of a container with the PodSandbox annotation. +# The sandbox cgroup is constrained if there is no container type annotation. +# See: https://godoc.org/github.com/kata-containers/runtime/virtcontainers#ContainerType +sandbox_cgroup_only=false + +# If specified, sandbox_bind_mounts identifieds host paths to be mounted (ro) into the sandboxes shared path. +# This is only valid if filesystem sharing is utilized. The provided path(s) will be bindmounted into the shared fs directory. +# If defaults are utilized, these mounts should be available in the guest at `/run/kata-containers/shared/containers/sandbox-mounts` +# These will not be exposed to the container workloads, and are only provided for potential guest services. +sandbox_bind_mounts=[] + +# Enabled experimental feature list, format: ["a", "b"]. +# Experimental features are features not stable enough for production, +# they may break compatibility, and are prepared for a big version bump. +# Supported experimental features: +# (default: []) +experimental=[] + +# If enabled, user can run pprof tools with shim v2 process through kata-monitor. +# (default: false) +# enable_pprof = true + +# WARNING: All the options in the following section have not been implemented yet. +# This section was added as a placeholder. DO NOT USE IT! +[image] +# Container image service. +# +# Offload the CRI image management service to the Kata agent. +# (default: false) +service_offload = true + +# Container image decryption keys provisioning. +# Applies only if service_offload is true. +# Keys can be provisioned locally (e.g. through a special command or +# a local file) or remotely (usually after the guest is remotely attested). +# The provision setting is a complete URL that lets the Kata agent decide +# which method to use in order to fetch the keys. +# +# Keys can be stored in a local file, in a measured and attested initrd: +#provision=data:///local/key/file +# +# Keys could be fetched through a special command or binary from the +# initrd (guest) image, e.g. a firmware call: +#provision=file:///path/to/bin/fetcher/in/guest +# +# Keys can be remotely provisioned. The Kata agent fetches them from e.g. +# a HTTPS URL: +#provision=https://my-key-broker.foo/tenant/ diff --git a/config/peerpods/kustomization.yaml b/config/peerpods/kustomization.yaml new file mode 100644 index 00000000..cabc710c --- /dev/null +++ b/config/peerpods/kustomization.yaml @@ -0,0 +1,14 @@ +resources: +- webhook-deploy.yaml +- ../default +- mc-50-crio-config.yaml +- mc-40-kata-remote-config.yaml +- peerpodssecret.yaml +- peerpodscm.yaml +- runtimeclass.yaml + + +images: +- name: controller:latest + newName: quay.io/openshift_sandboxed_containers/osc-peerpods + newTag: latest diff --git a/config/peerpods/mc-40-kata-remote-config.yaml b/config/peerpods/mc-40-kata-remote-config.yaml new file mode 100644 index 00000000..5c1c25dd --- /dev/null +++ b/config/peerpods/mc-40-kata-remote-config.yaml @@ -0,0 +1,17 @@ +apiVersion: machineconfiguration.openshift.io/v1 +kind: MachineConfig +metadata: + labels: + machineconfiguration.openshift.io/role: worker + name: 40-worker-kata-remote-config +spec: + config: + ignition: + version: 2.2.0 + storage: + files: + - contents: + source: data:text/plain;charset=utf-8;base64,IyBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgojCiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKIwoKIyBYWFg6IFdBUk5JTkc6IHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4KIyBYWFg6CiMgWFhYOiBTb3VyY2UgZmlsZTogImNvbmZpZy9jb25maWd1cmF0aW9uLXFlbXUudG9tbC5pbiIKIyBYWFg6IFByb2plY3Q6CiMgWFhYOiAgIE5hbWU6IEthdGEgQ29udGFpbmVycwojIFhYWDogICBUeXBlOiBrYXRhCgoKW2h5cGVydmlzb3IucmVtb3RlXQpyZW1vdGVfaHlwZXJ2aXNvcl9zb2NrZXQgPSAiL3J1bi9wZWVycG9kL2h5cGVydmlzb3Iuc29jayIKcmVtb3RlX2h5cGVydmlzb3JfdGltZW91dCA9IDYwMAoKCiMgRW5hYmxlIGNvbmZpZGVudGlhbCBndWVzdCBzdXBwb3J0LgojIFRvZ2dsaW5nIHRoYXQgc2V0dGluZyBtYXkgdHJpZ2dlciBkaWZmZXJlbnQgaGFyZHdhcmUgZmVhdHVyZXMsIHJhbmdpbmcKIyBmcm9tIG1lbW9yeSBlbmNyeXB0aW9uIHRvIGJvdGggbWVtb3J5IGFuZCBDUFUtc3RhdGUgZW5jcnlwdGlvbiBhbmQgaW50ZWdyaXR5LgojIFRoZSBLYXRhIENvbnRhaW5lcnMgcnVudGltZSBkeW5hbWljYWxseSBkZXRlY3RzIHRoZSBhdmFpbGFibGUgZmVhdHVyZSBzZXQgYW5kCiMgYWltcyBhdCBlbmFibGluZyB0aGUgbGFyZ2VzdCBwb3NzaWJsZSBvbmUuCiMgRGVmYXVsdCBmYWxzZQojIGNvbmZpZGVudGlhbF9ndWVzdCA9IHRydWUKCiMgRW5hYmxlIHJ1bm5pbmcgUUVNVSBWTU0gYXMgYSBub24tcm9vdCB1c2VyLgojIEJ5IGRlZmF1bHQgUUVNVSBWTU0gcnVuIGFzIHJvb3QuIFdoZW4gdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgUUVNVSBWTU0gcHJvY2VzcyBydW5zIGFzCiMgYSBub24tcm9vdCByYW5kb20gdXNlci4gU2VlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBsaW1pdGF0aW9ucyBvZiB0aGlzIG1vZGUuCiMgcm9vdGxlc3MgPSB0cnVlCgojIExpc3Qgb2YgdmFsaWQgYW5ub3RhdGlvbiBuYW1lcyBmb3IgdGhlIGh5cGVydmlzb3IKIyBFYWNoIG1lbWJlciBvZiB0aGUgbGlzdCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgd2hpY2ggaXMgdGhlIGJhc2UgbmFtZQojIG9mIHRoZSBhbm5vdGF0aW9uLCBlLmcuICJwYXRoIiBmb3IgaW8ua2F0YWNvbnRhaW5lcnMuY29uZmlnLmh5cGVydmlzb3IucGF0aCIKZW5hYmxlX2Fubm90YXRpb25zID0gW10KCiMgTGlzdCBvZiB2YWxpZCBhbm5vdGF0aW9ucyB2YWx1ZXMgZm9yIHRoZSBoeXBlcnZpc29yCiMgRWFjaCBtZW1iZXIgb2YgdGhlIGxpc3QgaXMgYSBwYXRoIHBhdHRlcm4gYXMgZGVzY3JpYmVkIGJ5IGdsb2IoMykuCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCBpcyBlbXB0eSAoYWxsIGFubm90YXRpb25zIHJlamVjdGVkLikKIyBZb3VyIGRpc3RyaWJ1dGlvbiByZWNvbW1lbmRzOiBbIi91c3IvYmluL3FlbXUtc3lzdGVtLXg4Nl82NCJdCnZhbGlkX2h5cGVydmlzb3JfcGF0aHMgPSBbIi91c3IvbGliZXhlYy9xZW11LWtpd2kiXQoKIyBPcHRpb25hbCBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGd1ZXN0IGtlcm5lbC4KIyBGb3IgZXhhbXBsZSwgdXNlIGBrZXJuZWxfcGFyYW1zID0gInZzeXNjYWxsPWVtdWxhdGUiYCBpZiB5b3UgYXJlIGhhdmluZwojIHRyb3VibGUgcnVubmluZyBwcmUtMi4xNSBnbGliYy4KIwojIFdBUk5JTkc6IC0gYW55IHBhcmFtZXRlciBzcGVjaWZpZWQgaGVyZSB3aWxsIHRha2UgcHJpb3JpdHkgb3ZlciB0aGUgZGVmYXVsdAojIHBhcmFtZXRlciB2YWx1ZSBvZiB0aGUgc2FtZSBuYW1lIHVzZWQgdG8gc3RhcnQgdGhlIHZpcnR1YWwgbWFjaGluZS4KIyBEbyBub3Qgc2V0IHZhbHVlcyBoZXJlIHVubGVzcyB5b3UgdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIGRvaW5nIHNvIGFzIHlvdQojIG1heSBzdG9wIHRoZSB2aXJ0dWFsIG1hY2hpbmUgZnJvbSBib290aW5nLgojIFRvIHNlZSB0aGUgbGlzdCBvZiBkZWZhdWx0IHBhcmFtZXRlcnMsIGVuYWJsZSBoeXBlcnZpc29yIGRlYnVnLCBjcmVhdGUgYQojIGNvbnRhaW5lciBhbmQgbG9vayBmb3IgJ2RlZmF1bHQta2VybmVsLXBhcmFtZXRlcnMnIGxvZyBlbnRyaWVzLgprZXJuZWxfcGFyYW1zID0gImFnZW50LmxvZz1kZWJ1ZyIKCiMgUGF0aCB0byB0aGUgZmlybXdhcmUuCiMgSWYgeW91IHdhbnQgdGhhdCBxZW11IHVzZXMgdGhlIGRlZmF1bHQgZmlybXdhcmUgbGVhdmUgdGhpcyBvcHRpb24gZW1wdHkKZmlybXdhcmUgPSAiIgoKIyBNYWNoaW5lIGFjY2VsZXJhdG9ycwojIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1hY2hpbmUgYWNjZWxlcmF0b3JzIHRvIHBhc3MgdG8gdGhlIGh5cGVydmlzb3IuCiMgRm9yIGV4YW1wbGUsIGBtYWNoaW5lX2FjY2VsZXJhdG9ycyA9ICJub3NtbSxub3NtYnVzLG5vc2F0YSxub3BpdCxzdGF0aWMtcHJ0LG5vZnciYAptYWNoaW5lX2FjY2VsZXJhdG9ycz0iIgoKIyBDUFUgZmVhdHVyZXMKIyBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjcHUgZmVhdHVyZXMgdG8gcGFzcyB0byB0aGUgY3B1CiMgRm9yIGV4YW1wbGUsIGBjcHVfZmVhdHVyZXMgPSAicG11PW9mZix2bXg9b2ZmIgpjcHVfZmVhdHVyZXM9InBtdT1vZmYiCgojIERlZmF1bHQgbnVtYmVyIG9mIHZDUFVzIHBlciBTQi9WTToKIyB1bnNwZWNpZmllZCBvciAwICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byAxCiMgPCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4gd2lsbCBiZSBzZXQgdG8gdGhlIGFjdHVhbCBudW1iZXIgb2YgcGh5c2ljYWwgY29yZXMKIyA+IDAgPD0gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojID4gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzCmRlZmF1bHRfdmNwdXMgPSAxCgojIERlZmF1bHQgbWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIFNCL1ZNOgojIHVuc3BlY2lmaWVkIG9yID09IDAgICAgICAgICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIG9yIHRvIHRoZSBtYXhpbXVtIG51bWJlcgojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaWYgdGhhdCBudW1iZXIgaXMgZXhjZWVkZWQKIyA+IDAgPD0gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojID4gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIG9yIHRvIHRoZSBtYXhpbXVtIG51bWJlcgojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaWYgdGhhdCBudW1iZXIgaXMgZXhjZWVkZWQKIyBXQVJOSU5HOiBEZXBlbmRpbmcgb2YgdGhlIGFyY2hpdGVjdHVyZSwgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaXMgdXNlZCB3aGVuCiMgdGhlIGFjdHVhbCBudW1iZXIgb2YgcGh5c2ljYWwgY29yZXMgaXMgZ3JlYXRlciB0aGFuIGl0LgojIFdBUk5JTkc6IEJlIGF3YXJlIHRoYXQgdGhpcyB2YWx1ZSBpbXBhY3RzIHRoZSB2aXJ0dWFsIG1hY2hpbmUncyBtZW1vcnkgZm9vdHByaW50IGFuZCBDUFUKIyB0aGUgaG90cGx1ZyBmdW5jdGlvbmFsaXR5LiBGb3IgZXhhbXBsZSwgYGRlZmF1bHRfbWF4dmNwdXMgPSAyNDBgIHNwZWNpZmllcyB0aGF0IHVudGlsIDI0MCB2Q1BVcwojIGNhbiBiZSBhZGRlZCB0byBhIFNCL1ZNLCBidXQgdGhlIG1lbW9yeSBmb290cHJpbnQgd2lsbCBiZSBiaWcuIEFub3RoZXIgZXhhbXBsZSwgd2l0aAojIGBkZWZhdWx0X21heHZjcHVzID0gOGAgdGhlIG1lbW9yeSBmb290cHJpbnQgd2lsbCBiZSBzbWFsbCwgYnV0IDggd2lsbCBiZSB0aGUgbWF4aW11bSBudW1iZXIgb2YKIyB2Q1BVcyBzdXBwb3J0ZWQgYnkgdGhlIFNCL1ZNLiBJbiBnZW5lcmFsLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgZG8gbm90IGVkaXQgdGhpcyB2YXJpYWJsZSwKIyB1bmxlc3MgeW91IGtub3cgd2hhdCBhcmUgeW91IGRvaW5nLgojIE5PVElDRTogb24gYXJtIHBsYXRmb3JtIHdpdGggZ2ljdjIgaW50ZXJydXB0IGNvbnRyb2xsZXIsIHNldCBpdCB0byA4LgpkZWZhdWx0X21heHZjcHVzID0gMAoKIyBCcmlkZ2VzIGNhbiBiZSB1c2VkIHRvIGhvdCBwbHVnIGRldmljZXMuCiMgTGltaXRhdGlvbnM6CiMgKiBDdXJyZW50bHkgb25seSBwY2kgYnJpZGdlcyBhcmUgc3VwcG9ydGVkCiMgKiBVbnRpbCAzMCBkZXZpY2VzIHBlciBicmlkZ2UgY2FuIGJlIGhvdCBwbHVnZ2VkLgojICogVW50aWwgNSBQQ0kgYnJpZGdlcyBjYW4gYmUgY29sZCBwbHVnZ2VkIHBlciBWTS4KIyAgIFRoaXMgbGltaXRhdGlvbiBjb3VsZCBiZSBhIGJ1ZyBpbiBxZW11IG9yIGluIHRoZSBrZXJuZWwKIyBEZWZhdWx0IG51bWJlciBvZiBicmlkZ2VzIHBlciBTQi9WTToKIyB1bnNwZWNpZmllZCBvciAwICAgLS0+IHdpbGwgYmUgc2V0IHRvIDEKIyA+IDEgPD0gNSAgICAgICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyCiMgPiA1ICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byA1CmRlZmF1bHRfYnJpZGdlcyA9IDEKCiMgRGVmYXVsdCBtZW1vcnkgc2l6ZSBpbiBNaUIgZm9yIFNCL1ZNLgojIElmIHVuc3BlY2lmaWVkIHRoZW4gaXQgd2lsbCBiZSBzZXQgMjA0OCBNaUIuCmRlZmF1bHRfbWVtb3J5ID0gMjA0OAojCiMgRGVmYXVsdCBtZW1vcnkgc2xvdHMgcGVyIFNCL1ZNLgojIElmIHVuc3BlY2lmaWVkIHRoZW4gaXQgd2lsbCBiZSBzZXQgMTAuCiMgVGhpcyBpcyB3aWxsIGRldGVybWluZSB0aGUgdGltZXMgdGhhdCBtZW1vcnkgd2lsbCBiZSBob3RhZGRlZCB0byBzYW5kYm94L1ZNLgojbWVtb3J5X3Nsb3RzID0gMTAKCiMgVGhlIHNpemUgaW4gTWlCIHdpbGwgYmUgcGx1c2VkIHRvIG1heCBtZW1vcnkgb2YgaHlwZXJ2aXNvci4KIyBJdCBpcyB0aGUgbWVtb3J5IGFkZHJlc3Mgc3BhY2UgZm9yIHRoZSBOVkRJTU0gZGV2aWUuCiMgSWYgc2V0IGJsb2NrIHN0b3JhZ2UgZHJpdmVyIChibG9ja19kZXZpY2VfZHJpdmVyKSB0byAibnZkaW1tIiwKIyBzaG91bGQgc2V0IG1lbW9yeV9vZmZzZXQgdG8gdGhlIHNpemUgb2YgYmxvY2sgZGV2aWNlLgojIERlZmF1bHQgMAojbWVtb3J5X29mZnNldCA9IDAKCiMgU3BlY2lmaWVzIHZpcnRpby1tZW0gd2lsbCBiZSBlbmFibGVkIG9yIG5vdC4KIyBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggdGhlIGNvbW1hbmQKIyAiZWNobyAxID4gL3Byb2Mvc3lzL3ZtL292ZXJjb21taXRfbWVtb3J5Ii4KIyBEZWZhdWx0IGZhbHNlCiNlbmFibGVfdmlydGlvX21lbSA9IHRydWUKCiMgRGlzYWJsZSBibG9jayBkZXZpY2UgZnJvbSBiZWluZyB1c2VkIGZvciBhIGNvbnRhaW5lcidzIHJvb3Rmcy4KIyBJbiBjYXNlIG9mIGEgc3RvcmFnZSBkcml2ZXIgbGlrZSBkZXZpY2VtYXBwZXIgd2hlcmUgYSBjb250YWluZXIncwojIHJvb3QgZmlsZSBzeXN0ZW0gaXMgYmFja2VkIGJ5IGEgYmxvY2sgZGV2aWNlLCB0aGUgYmxvY2sgZGV2aWNlIGlzIHBhc3NlZAojIGRpcmVjdGx5IHRvIHRoZSBoeXBlcnZpc29yIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgojIFRoaXMgZmxhZyBwcmV2ZW50cyB0aGUgYmxvY2sgZGV2aWNlIGZyb20gYmVpbmcgcGFzc2VkIHRvIHRoZSBoeXBlcnZpc29yLAojIDlwZnMgaXMgdXNlZCBpbnN0ZWFkIHRvIHBhc3MgdGhlIHJvb3Rmcy4KZGlzYWJsZV9ibG9ja19kZXZpY2VfdXNlID0gZmFsc2UKCiMgU2hhcmVkIGZpbGUgc3lzdGVtIHR5cGU6CiMgICAtIHZpcnRpby1mcyAoZGVmYXVsdCkKIyAgIC0gdmlydGlvLTlwCnNoYXJlZF9mcyA9ICJ2aXJ0aW8tZnMiCgojIFBhdGggdG8gdmhvc3QtdXNlci1mcyBkYWVtb24uCnZpcnRpb19mc19kYWVtb24gPSAiL3Vzci9saWJleGVjL3ZpcnRpb2ZzZCIKCiMgTGlzdCBvZiB2YWxpZCBhbm5vdGF0aW9ucyB2YWx1ZXMgZm9yIHRoZSB2aXJ0aW9mcyBkYWVtb24KIyBUaGUgZGVmYXVsdCBpZiBub3Qgc2V0IGlzIGVtcHR5IChhbGwgYW5ub3RhdGlvbnMgcmVqZWN0ZWQuKQojIFlvdXIgZGlzdHJpYnV0aW9uIHJlY29tbWVuZHM6IFsiL3Vzci9saWJleGVjL2thdGEtcWVtdS92aXJ0aW9mc2QiXQp2YWxpZF92aXJ0aW9fZnNfZGFlbW9uX3BhdGhzID0gWyIvdXNyL2xpYmV4ZWMvdmlydGlvZnNkIl0KCiMgRGVmYXVsdCBzaXplIG9mIERBWCBjYWNoZSBpbiBNaUIKdmlydGlvX2ZzX2NhY2hlX3NpemUgPSAwCgojIEV4dHJhIGFyZ3MgZm9yIHZpcnRpb2ZzZCBkYWVtb24KIwojIEZvcm1hdCBleGFtcGxlOgojICAgWyItbyIsICJhcmcxPXh4eCxhcmcyIiwgIi1vIiwgImhlbGxvIHdvcmxkIiwgIi0tYXJnMz15eXkiXQojCiMgc2VlIGB2aXJ0aW9mc2QgLWhgIGZvciBwb3NzaWJsZSBvcHRpb25zLgp2aXJ0aW9fZnNfZXh0cmFfYXJncyA9IFsiLS10aHJlYWQtcG9vbC1zaXplPTEiXQoKIyBDYWNoZSBtb2RlOgojCiMgIC0gbm9uZQojICAgIE1ldGFkYXRhLCBkYXRhLCBhbmQgcGF0aG5hbWUgbG9va3VwIGFyZSBub3QgY2FjaGVkIGluIGd1ZXN0LiBUaGV5IGFyZQojICAgIGFsd2F5cyBmZXRjaGVkIGZyb20gaG9zdCBhbmQgYW55IGNoYW5nZXMgYXJlIGltbWVkaWF0ZWx5IHB1c2hlZCB0byBob3N0LgojCiMgIC0gYXV0bwojICAgIE1ldGFkYXRhIGFuZCBwYXRobmFtZSBsb29rdXAgY2FjaGUgZXhwaXJlcyBhZnRlciBhIGNvbmZpZ3VyZWQgYW1vdW50IG9mCiMgICAgdGltZSAoZGVmYXVsdCBpcyAxIHNlY29uZCkuIERhdGEgaXMgY2FjaGVkIHdoaWxlIHRoZSBmaWxlIGlzIG9wZW4gKGNsb3NlCiMgICAgdG8gb3BlbiBjb25zaXN0ZW5jeSkuCiMKIyAgLSBhbHdheXMKIyAgICBNZXRhZGF0YSwgZGF0YSwgYW5kIHBhdGhuYW1lIGxvb2t1cCBhcmUgY2FjaGVkIGluIGd1ZXN0IGFuZCBuZXZlciBleHBpcmUuCnZpcnRpb19mc19jYWNoZSA9ICJhdXRvIgoKIyBCbG9jayBzdG9yYWdlIGRyaXZlciB0byBiZSB1c2VkIGZvciB0aGUgaHlwZXJ2aXNvciBpbiBjYXNlIHRoZSBjb250YWluZXIKIyByb290ZnMgaXMgYmFja2VkIGJ5IGEgYmxvY2sgZGV2aWNlLiBUaGlzIGlzIHZpcnRpby1zY3NpLCB2aXJ0aW8tYmxrCiMgb3IgbnZkaW1tLgpibG9ja19kZXZpY2VfZHJpdmVyID0gInZpcnRpby1zY3NpIgoKIyBTcGVjaWZpZXMgY2FjaGUtcmVsYXRlZCBvcHRpb25zIHdpbGwgYmUgc2V0IHRvIGJsb2NrIGRldmljZXMgb3Igbm90LgojIERlZmF1bHQgZmFsc2UKI2Jsb2NrX2RldmljZV9jYWNoZV9zZXQgPSB0cnVlCgojIFNwZWNpZmllcyBjYWNoZS1yZWxhdGVkIG9wdGlvbnMgZm9yIGJsb2NrIGRldmljZXMuCiMgRGVub3RlcyB3aGV0aGVyIHVzZSBvZiBPX0RJUkVDVCAoYnlwYXNzIHRoZSBob3N0IHBhZ2UgY2FjaGUpIGlzIGVuYWJsZWQuCiMgRGVmYXVsdCBmYWxzZQojYmxvY2tfZGV2aWNlX2NhY2hlX2RpcmVjdCA9IHRydWUKCiMgU3BlY2lmaWVzIGNhY2hlLXJlbGF0ZWQgb3B0aW9ucyBmb3IgYmxvY2sgZGV2aWNlcy4KIyBEZW5vdGVzIHdoZXRoZXIgZmx1c2ggcmVxdWVzdHMgZm9yIHRoZSBkZXZpY2UgYXJlIGlnbm9yZWQuCiMgRGVmYXVsdCBmYWxzZQojYmxvY2tfZGV2aWNlX2NhY2hlX25vZmx1c2ggPSB0cnVlCgojIEVuYWJsZSBpb3RocmVhZHMgKGRhdGEtcGxhbmUpIHRvIGJlIHVzZWQuIFRoaXMgY2F1c2VzIElPIHRvIGJlCiMgaGFuZGxlZCBpbiBhIHNlcGFyYXRlIElPIHRocmVhZC4gVGhpcyBpcyBjdXJyZW50bHkgb25seSBpbXBsZW1lbnRlZAojIGZvciBTQ1NJLgojCmVuYWJsZV9pb3RocmVhZHMgPSBmYWxzZQoKIyBFbmFibGUgcHJlIGFsbG9jYXRpb24gb2YgVk0gUkFNLCBkZWZhdWx0IGZhbHNlCiMgRW5hYmxpbmcgdGhpcyB3aWxsIHJlc3VsdCBpbiBsb3dlciBjb250YWluZXIgZGVuc2l0eQojIGFzIGFsbCBvZiB0aGUgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkIGFuZCBsb2NrZWQKIyBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHJlc2VydmUgYWxsIHRoZSBtZW1vcnkKIyB1cGZyb250IG9yIGluIHRoZSBjYXNlcyB3aGVyZSB5b3Ugd2FudCBtZW1vcnkgbGF0ZW5jaWVzCiMgdG8gYmUgdmVyeSBwcmVkaWN0YWJsZQojIERlZmF1bHQgZmFsc2UKI2VuYWJsZV9tZW1fcHJlYWxsb2MgPSB0cnVlCgojIEVuYWJsZSBodWdlIHBhZ2VzIGZvciBWTSBSQU0sIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBWTSBtZW1vcnkKIyBiZWluZyBhbGxvY2F0ZWQgdXNpbmcgaHVnZSBwYWdlcy4KIyBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHVzZSB2aG9zdC11c2VyIG5ldHdvcmsKIyBzdGFja3Mgd2l0aGluIHRoZSBjb250YWluZXIuIFRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5CiMgcmVzdWx0IGluIG1lbW9yeSBwcmUgYWxsb2NhdGlvbgojZW5hYmxlX2h1Z2VwYWdlcyA9IHRydWUKCiMgRW5hYmxlIHZob3N0LXVzZXIgc3RvcmFnZSBkZXZpY2UsIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHNvbWUgTGludXggcmVzZXJ2ZWQgYmxvY2sgdHlwZQojIG1ham9yIHJhbmdlIDI0MC0yNTQgYmVpbmcgY2hvc2VuIHRvIHJlcHJlc2VudCB2aG9zdC11c2VyIGRldmljZXMuCmVuYWJsZV92aG9zdF91c2VyX3N0b3JlID0gZmFsc2UKCiMgVGhlIGJhc2UgZGlyZWN0b3J5IHNwZWNpZmljYWxseSB1c2VkIGZvciB2aG9zdC11c2VyIGRldmljZXMuCiMgSXRzIHN1Yi1wYXRoICJibG9jayIgaXMgdXNlZCBmb3IgYmxvY2sgZGV2aWNlczsgImJsb2NrL3NvY2tldHMiIGlzCiMgd2hlcmUgd2UgZXhwZWN0IHZob3N0LXVzZXIgc29ja2V0cyB0byBsaXZlOyAiYmxvY2svZGV2aWNlcyIgaXMgd2hlcmUKIyBzaW11bGF0ZWQgYmxvY2sgZGV2aWNlIG5vZGVzIGZvciB2aG9zdC11c2VyIGRldmljZXMgdG8gbGl2ZS4Kdmhvc3RfdXNlcl9zdG9yZV9wYXRoID0gIi92YXIvcnVuL2thdGEtY29udGFpbmVycy92aG9zdC11c2VyIgoKIyBFbmFibGUgdklPTU1VLCBkZWZhdWx0IGZhbHNlCiMgRW5hYmxpbmcgdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgVk0gaGF2aW5nIGEgdklPTU1VIGRldmljZQojIFRoaXMgd2lsbCBhbHNvIGFkZCB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gdGhlIGtlcm5lbCdzCiMgY29tbWFuZCBsaW5lOiBpbnRlbF9pb21tdT1vbixpb21tdT1wdAojZW5hYmxlX2lvbW11ID0gdHJ1ZQoKIyBFbmFibGUgSU9NTVVfUExBVEZPUk0sIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBWTSBkZXZpY2UgaGF2aW5nIGlvbW11X3BsYXRmb3JtPW9uIHNldAojZW5hYmxlX2lvbW11X3BsYXRmb3JtID0gdHJ1ZQoKIyBMaXN0IG9mIHZhbGlkIGFubm90YXRpb25zIHZhbHVlcyBmb3IgdGhlIHZob3N0IHVzZXIgc3RvcmUgcGF0aAojIFRoZSBkZWZhdWx0IGlmIG5vdCBzZXQgaXMgZW1wdHkgKGFsbCBhbm5vdGF0aW9ucyByZWplY3RlZC4pCiMgWW91ciBkaXN0cmlidXRpb24gcmVjb21tZW5kczogWyIvdmFyL3J1bi9rYXRhLWNvbnRhaW5lcnMvdmhvc3QtdXNlciJdCnZhbGlkX3Zob3N0X3VzZXJfc3RvcmVfcGF0aHMgPSBbIi92YXIvcnVuL2thdGEtY29udGFpbmVycy92aG9zdC11c2VyIl0KCiMgRW5hYmxlIGZpbGUgYmFzZWQgZ3Vlc3QgbWVtb3J5IHN1cHBvcnQuIFRoZSBkZWZhdWx0IGlzIGFuIGVtcHR5IHN0cmluZyB3aGljaAojIHdpbGwgZGlzYWJsZSB0aGlzIGZlYXR1cmUuIEluIHRoZSBjYXNlIG9mIHZpcnRpby1mcywgdGhpcyBpcyBlbmFibGVkCiMgYXV0b21hdGljYWxseSBhbmQgJy9kZXYvc2htJyBpcyB1c2VkIGFzIHRoZSBiYWNraW5nIGZvbGRlci4KIyBUaGlzIG9wdGlvbiB3aWxsIGJlIGlnbm9yZWQgaWYgVk0gdGVtcGxhdGluZyBpcyBlbmFibGVkLgojZmlsZV9tZW1fYmFja2VuZCA9ICIiCgojIExpc3Qgb2YgdmFsaWQgYW5ub3RhdGlvbnMgdmFsdWVzIGZvciB0aGUgZmlsZV9tZW1fYmFja2VuZCBhbm5vdGF0aW9uCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCBpcyBlbXB0eSAoYWxsIGFubm90YXRpb25zIHJlamVjdGVkLikKIyBZb3VyIGRpc3RyaWJ1dGlvbiByZWNvbW1lbmRzOiBbIiJdCnZhbGlkX2ZpbGVfbWVtX2JhY2tlbmRzID0gWyIiXQoKIyBFbmFibGUgc3dhcCBvZiB2bSBtZW1vcnkuIERlZmF1bHQgZmFsc2UuCiMgVGhlIGJlaGF2aW91ciBpcyB1bmRlZmluZWQgaWYgbWVtX3ByZWFsbG9jIGlzIGFsc28gc2V0IHRvIHRydWUKI2VuYWJsZV9zd2FwID0gdHJ1ZQoKIyAtcGZsYXNoIGNhbiBhZGQgaW1hZ2UgZmlsZSB0byBWTS4gVGhlIGFyZ3VtZW50cyBvZiBpdCBzaG91bGQgYmUgaW4gZm9ybWF0CiMgb2YgWyIvcGF0aC90by9mbGFzaDAuaW1nIiwgIi9wYXRoL3RvL2ZsYXNoMS5pbWciXQpwZmxhc2hlcyA9IFtdCgojIFRoaXMgb3B0aW9uIGNoYW5nZXMgdGhlIGRlZmF1bHQgaHlwZXJ2aXNvciBhbmQga2VybmVsIHBhcmFtZXRlcnMKIyB0byBlbmFibGUgZGVidWcgb3V0cHV0IHdoZXJlIGF2YWlsYWJsZS4KIwojIERlZmF1bHQgZmFsc2UKZW5hYmxlX2RlYnVnID0gdHJ1ZQoKIyBEaXNhYmxlIHRoZSBjdXN0b21pemF0aW9ucyBkb25lIGluIHRoZSBydW50aW1lIHdoZW4gaXQgZGV0ZWN0cwojIHRoYXQgaXQgaXMgcnVubmluZyBvbiB0b3AgYSBWTU0uIFRoaXMgd2lsbCByZXN1bHQgaW4gdGhlIHJ1bnRpbWUKIyBiZWhhdmluZyBhcyBpdCB3b3VsZCB3aGVuIHJ1bm5pbmcgb24gYmFyZSBtZXRhbC4KIwojZGlzYWJsZV9uZXN0aW5nX2NoZWNrcyA9IHRydWUKCiMgVGhpcyBpcyB0aGUgbXNpemUgdXNlZCBmb3IgOXAgc2hhcmVzLiBJdCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzCiMgdXNlZCBmb3IgOXAgcGFja2V0IHBheWxvYWQuCiNtc2l6ZV85cCA9IDgxOTIKCiMgSWYgZmFsc2UgYW5kIG52ZGltbSBpcyBzdXBwb3J0ZWQsIHVzZSBudmRpbW0gZGV2aWNlIHRvIHBsdWcgZ3Vlc3QgaW1hZ2UuCiMgT3RoZXJ3aXNlIHZpcnRpby1ibG9jayBkZXZpY2UgaXMgdXNlZC4KIyBEZWZhdWx0IGlzIGZhbHNlCiNkaXNhYmxlX2ltYWdlX252ZGltbSA9IHRydWUKCiMgVkZJTyBkZXZpY2VzIGFyZSBob3RwbHVnZ2VkIG9uIGEgYnJpZGdlIGJ5IGRlZmF1bHQuCiMgRW5hYmxlIGhvdHBsdWdnaW5nIG9uIHJvb3QgYnVzLiBUaGlzIG1heSBiZSByZXF1aXJlZCBmb3IgZGV2aWNlcyB3aXRoCiMgYSBsYXJnZSBQQ0kgYmFyLCBhcyB0aGlzIGlzIGEgY3VycmVudCBsaW1pdGF0aW9uIHdpdGggaG90cGx1Z2dpbmcgb24KIyBhIGJyaWRnZS4KIyBEZWZhdWx0IGZhbHNlCiNob3RwbHVnX3ZmaW9fb25fcm9vdF9idXMgPSB0cnVlCgojIEJlZm9yZSBob3QgcGx1Z2dpbmcgYSBQQ0llIGRldmljZSwgeW91IG5lZWQgdG8gYWRkIGEgcGNpZV9yb290X3BvcnQgZGV2aWNlLgojIFVzZSB0aGlzIHBhcmFtZXRlciB3aGVuIHVzaW5nIHNvbWUgbGFyZ2UgUENJIGJhciBkZXZpY2VzLCBzdWNoIGFzIE52aWRpYSBHUFUKIyBUaGUgdmFsdWUgbWVhbnMgdGhlIG51bWJlciBvZiBwY2llX3Jvb3RfcG9ydAojIFRoaXMgdmFsdWUgaXMgdmFsaWQgd2hlbiBob3RwbHVnX3ZmaW9fb25fcm9vdF9idXMgaXMgdHJ1ZSBhbmQgbWFjaGluZV90eXBlIGlzICJxMzUiCiMgRGVmYXVsdCAwCiNwY2llX3Jvb3RfcG9ydCA9IDIKCiMgSWYgdmhvc3QtbmV0IGJhY2tlbmQgZm9yIHZpcnRpby1uZXQgaXMgbm90IGRlc2lyZWQsIHNldCB0byB0cnVlLiBEZWZhdWx0IGlzIGZhbHNlLCB3aGljaCB0cmFkZXMgb2ZmCiMgc2VjdXJpdHkgKHZob3N0LW5ldCBydW5zIHJpbmcwKSBmb3IgbmV0d29yayBJL08gcGVyZm9ybWFuY2UuCiNkaXNhYmxlX3Zob3N0X25ldCA9IHRydWUKCiMKIyBEZWZhdWx0IGVudHJvcHkgc291cmNlLgojIFRoZSBwYXRoIHRvIGEgaG9zdCBzb3VyY2Ugb2YgZW50cm9weSAoaW5jbHVkaW5nIGEgcmVhbCBoYXJkd2FyZSBSTkcpCiMgL2Rldi91cmFuZG9tIGFuZCAvZGV2L3JhbmRvbSBhcmUgdHdvIG1haW4gb3B0aW9ucy4KIyBCZSBhd2FyZSB0aGF0IC9kZXYvcmFuZG9tIGlzIGEgYmxvY2tpbmcgc291cmNlIG9mIGVudHJvcHkuICBJZiB0aGUgaG9zdAojIHJ1bnMgb3V0IG9mIGVudHJvcHksIHRoZSBWTXMgYm9vdCB0aW1lIHdpbGwgaW5jcmVhc2UgbGVhZGluZyB0byBnZXQgc3RhcnR1cAojIHRpbWVvdXRzLgojIFRoZSBzb3VyY2Ugb2YgZW50cm9weSAvZGV2L3VyYW5kb20gaXMgbm9uLWJsb2NraW5nIGFuZCBwcm92aWRlcyBhCiMgZ2VuZXJhbGx5IGFjY2VwdGFibGUgc291cmNlIG9mIGVudHJvcHkuIEl0IHNob3VsZCB3b3JrIHdlbGwgZm9yIHByZXR0eSBtdWNoCiMgYWxsIHByYWN0aWNhbCBwdXJwb3Nlcy4KI2VudHJvcHlfc291cmNlPSAiL2Rldi91cmFuZG9tIgoKIyBMaXN0IG9mIHZhbGlkIGFubm90YXRpb25zIHZhbHVlcyBmb3IgZW50cm9weV9zb3VyY2UKIyBUaGUgZGVmYXVsdCBpZiBub3Qgc2V0IGlzIGVtcHR5IChhbGwgYW5ub3RhdGlvbnMgcmVqZWN0ZWQuKQojIFlvdXIgZGlzdHJpYnV0aW9uIHJlY29tbWVuZHM6IFsiL2Rldi91cmFuZG9tIiwiL2Rldi9yYW5kb20iLCIiXQp2YWxpZF9lbnRyb3B5X3NvdXJjZXMgPSBbIi9kZXYvdXJhbmRvbSIsIi9kZXYvcmFuZG9tIiwiIl0KCiMgUGF0aCB0byBPQ0kgaG9vayBiaW5hcmllcyBpbiB0aGUgKmd1ZXN0IHJvb3RmcyouCiMgVGhpcyBkb2VzIG5vdCBhZmZlY3QgaG9zdC1zaWRlIGhvb2tzIHdoaWNoIG11c3QgaW5zdGVhZCBiZSBhZGRlZCB0bwojIHRoZSBPQ0kgc3BlYyBwYXNzZWQgdG8gdGhlIHJ1bnRpbWUuCiMKIyBZb3UgY2FuIGNyZWF0ZSBhIHJvb3RmcyB3aXRoIGhvb2tzIGJ5IGN1c3RvbWl6aW5nIHRoZSBvc2J1aWxkZXIgc2NyaXB0czoKIyBodHRwczovL2dpdGh1Yi5jb20va2F0YS1jb250YWluZXJzL2thdGEtY29udGFpbmVycy90cmVlL21haW4vdG9vbHMvb3NidWlsZGVyCiMKIyBIb29rcyBtdXN0IGJlIHN0b3JlZCBpbiBhIHN1YmRpcmVjdG9yeSBvZiBndWVzdF9ob29rX3BhdGggYWNjb3JkaW5nIHRvIHRoZWlyCiMgaG9vayB0eXBlLCBpLmUuICJndWVzdF9ob29rX3BhdGgve3ByZXN0YXJ0LHBvc3RzdGFydCxwb3N0c3RvcH0iLgojIFRoZSBhZ2VudCB3aWxsIHNjYW4gdGhlc2UgZGlyZWN0b3JpZXMgZm9yIGV4ZWN1dGFibGUgZmlsZXMgYW5kIGFkZCB0aGVtLCBpbgojIGxleGljb2dyYXBoaWNhbCBvcmRlciwgdG8gdGhlIGxpZmVjeWNsZSBvZiB0aGUgZ3Vlc3QgY29udGFpbmVyLgojIEhvb2tzIGFyZSBleGVjdXRlZCBpbiB0aGUgcnVudGltZSBuYW1lc3BhY2Ugb2YgdGhlIGd1ZXN0LiBTZWUgdGhlIG9mZmljaWFsIGRvY3VtZW50YXRpb246CiMgaHR0cHM6Ly9naXRodWIuY29tL29wZW5jb250YWluZXJzL3J1bnRpbWUtc3BlYy9ibG9iL3YxLjAuMS9jb25maWcubWQjcG9zaXgtcGxhdGZvcm0taG9va3MKIyBXYXJuaW5ncyB3aWxsIGJlIGxvZ2dlZCBpZiBhbnkgZXJyb3IgaXMgZW5jb3VudGVyZWQgd2hpbGUgc2Nhbm5pbmcgZm9yIGhvb2tzLAojIGJ1dCBpdCB3aWxsIG5vdCBhYm9ydCBjb250YWluZXIgZXhlY3V0aW9uLgojZ3Vlc3RfaG9va19wYXRoID0gIi91c3Ivc2hhcmUvb2NpL2hvb2tzIgojCiMgVXNlIHJ4IFJhdGUgTGltaXRlciB0byBjb250cm9sIG5ldHdvcmsgSS9PIGluYm91bmQgYmFuZHdpZHRoKHNpemUgaW4gYml0cy9zZWMgZm9yIFNCL1ZNKS4KIyBJbiBRZW11LCB3ZSB1c2UgY2xhc3NmdWwgcWRpc2NzIEhUQihIaWVyYXJjaHkgVG9rZW4gQnVja2V0KSB0byBkaXNjaXBsaW5lIHRyYWZmaWMuCiMgRGVmYXVsdCAwLXNpemVkIHZhbHVlIG1lYW5zIHVubGltaXRlZCByYXRlLgojcnhfcmF0ZV9saW1pdGVyX21heF9yYXRlID0gMAojIFVzZSB0eCBSYXRlIExpbWl0ZXIgdG8gY29udHJvbCBuZXR3b3JrIEkvTyBvdXRib3VuZCBiYW5kd2lkdGgoc2l6ZSBpbiBiaXRzL3NlYyBmb3IgU0IvVk0pLgojIEluIFFlbXUsIHdlIHVzZSBjbGFzc2Z1bCBxZGlzY3MgSFRCKEhpZXJhcmNoeSBUb2tlbiBCdWNrZXQpIGFuZCBpZmIoSW50ZXJtZWRpYXRlIEZ1bmN0aW9uYWwgQmxvY2spCiMgdG8gZGlzY2lwbGluZSB0cmFmZmljLgojIERlZmF1bHQgMC1zaXplZCB2YWx1ZSBtZWFucyB1bmxpbWl0ZWQgcmF0ZS4KI3R4X3JhdGVfbGltaXRlcl9tYXhfcmF0ZSA9IDAKCiMgU2V0IHdoZXJlIHRvIHNhdmUgdGhlIGd1ZXN0IG1lbW9yeSBkdW1wIGZpbGUuCiMgSWYgc2V0LCB3aGVuIEdVRVNUX1BBTklDS0VEIGV2ZW50IG9jY3VycmVkLAojIGd1ZXN0IG1lbWVvcnkgd2lsbCBiZSBkdW1wZWQgdG8gaG9zdCBmaWxlc3lzdGVtIHVuZGVyIGd1ZXN0X21lbW9yeV9kdW1wX3BhdGgsCiMgVGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgaWYgaXQgZG9lcyBub3QgZXhpc3QuCiMKIyBUaGUgZHVtcGVkIGZpbGUoYWxzbyBjYWxsZWQgdm1jb3JlKSBjYW4gYmUgcHJvY2Vzc2VkIHdpdGggY3Jhc2ggb3IgZ2RiLgojCiMgV0FSTklORzoKIyAgIER1bXAgZ3Vlc3TigJlzIG1lbW9yeSBjYW4gdGFrZSB2ZXJ5IGxvbmcgZGVwZW5kaW5nIG9uIHRoZSBhbW91bnQgb2YgZ3Vlc3QgbWVtb3J5CiMgICBhbmQgdXNlIG11Y2ggZGlzayBzcGFjZS4KI2d1ZXN0X21lbW9yeV9kdW1wX3BhdGg9Ii92YXIvY3Jhc2gva2F0YSIKCiMgSWYgZW5hYmxlIHBhZ2luZy4KIyBCYXNpY2FsbHksIGlmIHlvdSB3YW50IHRvIHVzZSAiZ2RiIiByYXRoZXIgdGhhbiAiY3Jhc2giLAojIG9yIG5lZWQgdGhlIGd1ZXN0LXZpcnR1YWwgYWRkcmVzc2VzIGluIHRoZSBFTEYgdm1jb3JlLAojIHRoZW4geW91IHNob3VsZCBlbmFibGUgcGFnaW5nLgojCiMgU2VlOiBodHRwczovL3d3dy5xZW11Lm9yZy9kb2NzL21hc3Rlci9xZW11LXFtcC1yZWYuaHRtbCNEdW1wLWd1ZXN0LW1lbW9yeSBmb3IgZGV0YWlscwojZ3Vlc3RfbWVtb3J5X2R1bXBfcGFnaW5nPWZhbHNlCgojIEVuYWJsZSBzd2FwIGluIHRoZSBndWVzdC4gRGVmYXVsdCBmYWxzZS4KIyBXaGVuIGVuYWJsZV9ndWVzdF9zd2FwIGlzIGVuYWJsZWQsIGluc2VydCBhIHJhdyBmaWxlIHRvIHRoZSBndWVzdCBhcyB0aGUgc3dhcCBkZXZpY2UKIyBpZiB0aGUgc3dhcHBpbmVzcyBvZiBhIGNvbnRhaW5lciAoc2V0IGJ5IGFubm90YXRpb24gImlvLmthdGFjb250YWluZXJzLmNvbnRhaW5lci5yZXNvdXJjZS5zd2FwcGluZXNzIikKIyBpcyBiaWdnZXIgdGhhbiAwLgojIFRoZSBzaXplIG9mIHRoZSBzd2FwIGRldmljZSBzaG91bGQgYmUKIyBzd2FwX2luX2J5dGVzIChzZXQgYnkgYW5ub3RhdGlvbiAiaW8ua2F0YWNvbnRhaW5lcnMuY29udGFpbmVyLnJlc291cmNlLnN3YXBfaW5fYnl0ZXMiKSAtIG1lbW9yeV9saW1pdF9pbl9ieXRlcy4KIyBJZiBzd2FwX2luX2J5dGVzIGlzIG5vdCBzZXQsIHRoZSBzaXplIHNob3VsZCBiZSBtZW1vcnlfbGltaXRfaW5fYnl0ZXMuCiMgSWYgc3dhcF9pbl9ieXRlcyBhbmQgbWVtb3J5X2xpbWl0X2luX2J5dGVzIGlzIG5vdCBzZXQsIHRoZSBzaXplIHNob3VsZAojIGJlIGRlZmF1bHRfbWVtb3J5LgojZW5hYmxlX2d1ZXN0X3N3YXAgPSB0cnVlCgpbZmFjdG9yeV0KIyBWTSB0ZW1wbGF0aW5nIHN1cHBvcnQuIE9uY2UgZW5hYmxlZCwgbmV3IFZNcyBhcmUgY3JlYXRlZCBmcm9tIHRlbXBsYXRlCiMgdXNpbmcgdm0gY2xvbmluZy4gVGhleSB3aWxsIHNoYXJlIHRoZSBzYW1lIGluaXRpYWwga2VybmVsLCBpbml0cmFtZnMgYW5kCiMgYWdlbnQgbWVtb3J5IGJ5IG1hcHBpbmcgaXQgcmVhZG9ubHkuIEl0IGhlbHBzIHNwZWVkaW5nIHVwIG5ldyBjb250YWluZXIKIyBjcmVhdGlvbiBhbmQgc2F2ZXMgYSBsb3Qgb2YgbWVtb3J5IGlmIHRoZXJlIGFyZSBtYW55IGthdGEgY29udGFpbmVycyBydW5uaW5nCiMgb24gdGhlIHNhbWUgaG9zdC4KIwojIFdoZW4gZGlzYWJsZWQsIG5ldyBWTXMgYXJlIGNyZWF0ZWQgZnJvbSBzY3JhdGNoLgojCiMgTm90ZTogUmVxdWlyZXMgImluaXRyZD0iIHRvIGJlIHNldCAoImltYWdlPSIgaXMgbm90IHN1cHBvcnRlZCkuCiMKIyBEZWZhdWx0IGZhbHNlCiNlbmFibGVfdGVtcGxhdGUgPSB0cnVlCgojIFNwZWNpZmllcyB0aGUgcGF0aCBvZiB0ZW1wbGF0ZS4KIwojIERlZmF1bHQgIi9ydW4vdmMvdm0vdGVtcGxhdGUiCiN0ZW1wbGF0ZV9wYXRoID0gIi9ydW4vdmMvdm0vdGVtcGxhdGUiCgojIFRoZSBudW1iZXIgb2YgY2FjaGVzIG9mIFZNQ2FjaGU6CiMgdW5zcGVjaWZpZWQgb3IgPT0gMCAgIC0tPiBWTUNhY2hlIGlzIGRpc2FibGVkCiMgPiAwICAgICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojCiMgVk1DYWNoZSBpcyBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBWTXMgYXMgY2FjaGVzIGJlZm9yZSB1c2luZyBpdC4KIyBJdCBoZWxwcyBzcGVlZCB1cCBuZXcgY29udGFpbmVyIGNyZWF0aW9uLgojIFRoZSBmdW5jdGlvbiBjb25zaXN0cyBvZiBhIHNlcnZlciBhbmQgc29tZSBjbGllbnRzIGNvbW11bmljYXRpbmcKIyB0aHJvdWdoIFVuaXggc29ja2V0LiAgVGhlIHByb3RvY29sIGlzIGdSUEMgaW4gcHJvdG9jb2xzL2NhY2hlL2NhY2hlLnByb3RvLgojIFRoZSBWTUNhY2hlIHNlcnZlciB3aWxsIGNyZWF0ZSBzb21lIFZNcyBhbmQgY2FjaGUgdGhlbSBieSBmYWN0b3J5IGNhY2hlLgojIEl0IHdpbGwgY29udmVydCB0aGUgVk0gdG8gZ1JQQyBmb3JtYXQgYW5kIHRyYW5zcG9ydCBpdCB3aGVuIGdldHMKIyByZXF1ZXN0aW9uIGZyb20gY2xpZW50cy4KIyBGYWN0b3J5IGdycGNjYWNoZSBpcyB0aGUgVk1DYWNoZSBjbGllbnQuICBJdCB3aWxsIHJlcXVlc3QgZ1JQQyBmb3JtYXQKIyBWTSBhbmQgY29udmVydCBpdCBiYWNrIHRvIGEgVk0uICBJZiBWTUNhY2hlIGZ1bmN0aW9uIGlzIGVuYWJsZWQsCiMga2F0YS1ydW50aW1lIHdpbGwgcmVxdWVzdCBWTSBmcm9tIGZhY3RvcnkgZ3JwY2NhY2hlIHdoZW4gaXQgY3JlYXRlcwojIGEgbmV3IHNhbmRib3guCiMKIyBEZWZhdWx0IDAKI3ZtX2NhY2hlX251bWJlciA9IDAKCiMgU3BlY2lmeSB0aGUgYWRkcmVzcyBvZiB0aGUgVW5peCBzb2NrZXQgdGhhdCBpcyB1c2VkIGJ5IFZNQ2FjaGUuCiMKIyBEZWZhdWx0IC92YXIvcnVuL2thdGEtY29udGFpbmVycy9jYWNoZS5zb2NrCiN2bV9jYWNoZV9lbmRwb2ludCA9ICIvdmFyL3J1bi9rYXRhLWNvbnRhaW5lcnMvY2FjaGUuc29jayIKClthZ2VudC5rYXRhXQojIElmIGVuYWJsZWQsIG1ha2UgdGhlIGFnZW50IGRpc3BsYXkgZGVidWctbGV2ZWwgbWVzc2FnZXMuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQplbmFibGVfZGVidWcgPSB0cnVlCgojIEVuYWJsZSBhZ2VudCB0cmFjaW5nLgojCiMgSWYgZW5hYmxlZCwgdGhlIGFnZW50IHdpbGwgZ2VuZXJhdGUgT3BlblRlbGVtZXRyeSB0cmFjZSBzcGFucy4KIwojIE5vdGVzOgojCiMgLSBJZiB0aGUgcnVudGltZSBhbHNvIGhhcyB0cmFjaW5nIGVuYWJsZWQsIHRoZSBhZ2VudCBzcGFucyB3aWxsIGJlCiMgICBhc3NvY2lhdGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHJ1bnRpbWUgcGFyZW50IHNwYW4uCiMgLSBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIHdhaXQgZm9yIHRoZSBjb250YWluZXIgdG8gc2h1dGRvd24sCiMgICBpbmNyZWFzaW5nIHRoZSBjb250YWluZXIgc2h1dGRvd24gdGltZSBzbGlnaHRseS4KIwojIChkZWZhdWx0OiBkaXNhYmxlZCkKI2VuYWJsZV90cmFjaW5nID0gdHJ1ZQoKIyBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBrZXJuZWwgbW9kdWxlcyBhbmQgdGhlaXIgcGFyYW1ldGVycy4KIyBUaGVzZSBtb2R1bGVzIHdpbGwgYmUgbG9hZGVkIGluIHRoZSBndWVzdCBrZXJuZWwgdXNpbmcgbW9kcHJvYmUoOCkuCiMgVGhlIGZvbGxvd2luZyBleGFtcGxlIGNhbiBiZSB1c2VkIHRvIGxvYWQgdHdvIGtlcm5lbCBtb2R1bGVzIHdpdGggcGFyYW1ldGVycwojICAtIGtlcm5lbF9tb2R1bGVzPVsiZTEwMDBlIEludGVycnVwdFRocm90dGxlUmF0ZT0zMDAwLDMwMDAsMzAwMCBFRUU9MSIsICJpOTE1IGVuYWJsZV9wcGd0dD0wIl0KIyBUaGUgZmlyc3Qgd29yZCBpcyBjb25zaWRlcmVkIGFzIHRoZSBtb2R1bGUgbmFtZSBhbmQgdGhlIHJlc3QgYXMgaXRzIHBhcmFtZXRlcnMuCiMgQ29udGFpbmVyIHdpbGwgbm90IGJlIHN0YXJ0ZWQgd2hlbjoKIyAgKiBBIGtlcm5lbCBtb2R1bGUgaXMgc3BlY2lmaWVkIGFuZCB0aGUgbW9kcHJvYmUgY29tbWFuZCBpcyBub3QgaW5zdGFsbGVkIGluIHRoZSBndWVzdAojICAgIG9yIGl0IGZhaWxzIGxvYWRpbmcgdGhlIG1vZHVsZS4KIyAgKiBUaGUgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGd1ZXN0IG9yIGl0IGRvZXNuJ3QgbWV0IHRoZSBndWVzdCBrZXJuZWwKIyAgICByZXF1aXJlbWVudHMsIGxpa2UgYXJjaGl0ZWN0dXJlIGFuZCB2ZXJzaW9uLgojCmtlcm5lbF9tb2R1bGVzPVtdCgojIEVuYWJsZSBkZWJ1ZyBjb25zb2xlLgoKIyBJZiBlbmFibGVkLCB1c2VyIGNhbiBjb25uZWN0IGd1ZXN0IE9TIHJ1bm5pbmcgaW5zaWRlIGh5cGVydmlzb3IKIyB0aHJvdWdoICJrYXRhLXJ1bnRpbWUgZXhlYyA8c2FuZGJveC1pZD4iIGNvbW1hbmQKCmRlYnVnX2NvbnNvbGVfZW5hYmxlZCA9IHRydWUKCiMgQWdlbnQgY29ubmVjdGlvbiBkaWFsaW5nIHRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcwojIChkZWZhdWx0OiAzMCkKI2RpYWxfdGltZW91dCA9IDMwCgpbbmV0bW9uXQojIElmIGVuYWJsZWQsIHRoZSBuZXR3b3JrIG1vbml0b3JpbmcgcHJvY2VzcyBnZXRzIHN0YXJ0ZWQgd2hlbiB0aGUKIyBzYW5kYm94IGlzIGNyZWF0ZWQuIFRoaXMgYWxsb3dzIGZvciB0aGUgZGV0ZWN0aW9uIG9mIHNvbWUgYWRkaXRpb25hbAojIG5ldHdvcmsgYmVpbmcgYWRkZWQgdG8gdGhlIGV4aXN0aW5nIG5ldHdvcmsgbmFtZXNwYWNlLCBhZnRlciB0aGUKIyBzYW5kYm94IGhhcyBiZWVuIGNyZWF0ZWQuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQojZW5hYmxlX25ldG1vbiA9IHRydWUKCiMgU3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgbmV0bW9uIGJpbmFyeS4KcGF0aCA9ICIvb3B0L2thdGEvbGliZXhlYy9rYXRhLWNvbnRhaW5lcnMva2F0YS1uZXRtb24iCgojIElmIGVuYWJsZWQsIG5ldG1vbiBtZXNzYWdlcyB3aWxsIGJlIHNlbnQgdG8gdGhlIHN5c3RlbSBsb2cKIyAoZGVmYXVsdDogZGlzYWJsZWQpCmVuYWJsZV9kZWJ1ZyA9IHRydWUKCltydW50aW1lXQojIElmIGVuYWJsZWQsIHRoZSBydW50aW1lIHdpbGwgbG9nIGFkZGl0aW9uYWwgZGVidWcgbWVzc2FnZXMgdG8gdGhlCiMgc3lzdGVtIGxvZwojIChkZWZhdWx0OiBkaXNhYmxlZCkKZW5hYmxlX2RlYnVnID0gdHJ1ZQojCiMgSW50ZXJuZXR3b3JraW5nIG1vZGVsCiMgRGV0ZXJtaW5lcyBob3cgdGhlIFZNIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gdGhlCiMgdGhlIGNvbnRhaW5lciBuZXR3b3JrIGludGVyZmFjZQojIE9wdGlvbnM6CiMKIyAgIC0gbWFjdnRhcAojICAgICBVc2VkIHdoZW4gdGhlIENvbnRhaW5lciBuZXR3b3JrIGludGVyZmFjZSBjYW4gYmUgYnJpZGdlZCB1c2luZwojICAgICBtYWN2dGFwLgojCiMgICAtIG5vbmUKIyAgICAgVXNlZCB3aGVuIGN1c3RvbWl6ZSBuZXR3b3JrLiBPbmx5IGNyZWF0ZXMgYSB0YXAgZGV2aWNlLiBObyB2ZXRoIHBhaXIuCiMKIyAgIC0gdGNmaWx0ZXIKIyAgICAgVXNlcyB0YyBmaWx0ZXIgcnVsZXMgdG8gcmVkaXJlY3QgdHJhZmZpYyBmcm9tIHRoZSBuZXR3b3JrIGludGVyZmFjZQojICAgICBwcm92aWRlZCBieSBwbHVnaW4gdG8gYSB0YXAgaW50ZXJmYWNlIGNvbm5lY3RlZCB0byB0aGUgVk0uCiMKaW50ZXJuZXR3b3JraW5nX21vZGVsPSJub25lIgoKIyBkaXNhYmxlIGd1ZXN0IHNlY2NvbXAKIyBEZXRlcm1pbmVzIHdoZXRoZXIgY29udGFpbmVyIHNlY2NvbXAgcHJvZmlsZXMgYXJlIHBhc3NlZCB0byB0aGUgdmlydHVhbAojIG1hY2hpbmUgYW5kIGFwcGxpZWQgYnkgdGhlIGthdGEgYWdlbnQuIElmIHNldCB0byB0cnVlLCBzZWNjb21wIGlzIG5vdCBhcHBsaWVkCiMgd2l0aGluIHRoZSBndWVzdAojIChkZWZhdWx0OiB0cnVlKQpkaXNhYmxlX2d1ZXN0X3NlY2NvbXA9dHJ1ZQoKIyBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIGNyZWF0ZSBvcGVudHJhY2luZy5pbyB0cmFjZXMgYW5kIHNwYW5zLgojIChTZWUgaHR0cHM6Ly93d3cuamFlZ2VydHJhY2luZy5pby9kb2NzL2dldHRpbmctc3RhcnRlZCkuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQojZW5hYmxlX3RyYWNpbmcgPSB0cnVlCgojIFNldCB0aGUgZnVsbCB1cmwgdG8gdGhlIEphZWdlciBIVFRQIFRocmlmdCBjb2xsZWN0b3IuCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCB3aWxsIGJlICJodHRwOi8vbG9jYWxob3N0OjE0MjY4L2FwaS90cmFjZXMiCiNqYWVnZXJfZW5kcG9pbnQgPSAiIgoKIyBTZXRzIHRoZSB1c2VybmFtZSB0byBiZSB1c2VkIGlmIGJhc2ljIGF1dGggaXMgcmVxdWlyZWQgZm9yIEphZWdlci4KI2phZWdlcl91c2VyID0gIiIKCiMgU2V0cyB0aGUgcGFzc3dvcmQgdG8gYmUgdXNlZCBpZiBiYXNpYyBhdXRoIGlzIHJlcXVpcmVkIGZvciBKYWVnZXIuCiNqYWVnZXJfcGFzc3dvcmQgPSAiIgoKIyBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIG5vdCBjcmVhdGUgYSBuZXR3b3JrIG5hbWVzcGFjZSBmb3Igc2hpbSBhbmQgaHlwZXJ2aXNvciBwcm9jZXNzZXMuCiMgVGhpcyBvcHRpb24gbWF5IGhhdmUgc29tZSBwb3RlbnRpYWwgaW1wYWN0cyB0byB5b3VyIGhvc3QuIEl0IHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZy4KIyBgZGlzYWJsZV9uZXdfbmV0bnNgIGNvbmZsaWN0cyB3aXRoIGBlbmFibGVfbmV0bW9uYAojIGBkaXNhYmxlX25ld19uZXRuc2AgY29uZmxpY3RzIHdpdGggYGludGVybmV0d29ya2luZ19tb2RlbD10Y2ZpbHRlcmAgYW5kIGBpbnRlcm5ldHdvcmtpbmdfbW9kZWw9bWFjdnRhcGAuIEl0IHdvcmtzIG9ubHkKIyB3aXRoIGBpbnRlcm5ldHdvcmtpbmdfbW9kZWw9bm9uZWAuIFRoZSB0YXAgZGV2aWNlIHdpbGwgYmUgaW4gdGhlIGhvc3QgbmV0d29yayBuYW1lc3BhY2UgYW5kIGNhbiBjb25uZWN0IHRvIGEgYnJpZGdlCiMgKGxpa2UgT1ZTKSBkaXJlY3RseS4KIyBJZiB5b3UgYXJlIHVzaW5nIGRvY2tlciwgYGRpc2FibGVfbmV3X25ldG5zYCBvbmx5IHdvcmtzIHdpdGggYGRvY2tlciBydW4gLS1uZXQ9bm9uZWAKIyAoZGVmYXVsdDogZmFsc2UpCmRpc2FibGVfbmV3X25ldG5zID0gdHJ1ZQoKIyBpZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIGFkZCBhbGwgdGhlIGthdGEgcHJvY2Vzc2VzIGluc2lkZSBvbmUgZGVkaWNhdGVkIGNncm91cC4KIyBUaGUgY29udGFpbmVyIGNncm91cHMgaW4gdGhlIGhvc3QgYXJlIG5vdCBjcmVhdGVkLCBqdXN0IG9uZSBzaW5nbGUgY2dyb3VwIHBlciBzYW5kYm94LgojIFRoZSBydW50aW1lIGNhbGxlciBpcyBmcmVlIHRvIHJlc3RyaWN0IG9yIGNvbGxlY3QgY2dyb3VwIHN0YXRzIG9mIHRoZSBvdmVyYWxsIEthdGEgc2FuZGJveC4KIyBUaGUgc2FuZGJveCBjZ3JvdXAgcGF0aCBpcyB0aGUgcGFyZW50IGNncm91cCBvZiBhIGNvbnRhaW5lciB3aXRoIHRoZSBQb2RTYW5kYm94IGFubm90YXRpb24uCiMgVGhlIHNhbmRib3ggY2dyb3VwIGlzIGNvbnN0cmFpbmVkIGlmIHRoZXJlIGlzIG5vIGNvbnRhaW5lciB0eXBlIGFubm90YXRpb24uCiMgU2VlOiBodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2thdGEtY29udGFpbmVycy9ydW50aW1lL3ZpcnRjb250YWluZXJzI0NvbnRhaW5lclR5cGUKc2FuZGJveF9jZ3JvdXBfb25seT1mYWxzZQoKIyBJZiBzcGVjaWZpZWQsIHNhbmRib3hfYmluZF9tb3VudHMgaWRlbnRpZmllZHMgaG9zdCBwYXRocyB0byBiZSBtb3VudGVkIChybykgaW50byB0aGUgc2FuZGJveGVzIHNoYXJlZCBwYXRoLgojIFRoaXMgaXMgb25seSB2YWxpZCBpZiBmaWxlc3lzdGVtIHNoYXJpbmcgaXMgdXRpbGl6ZWQuIFRoZSBwcm92aWRlZCBwYXRoKHMpIHdpbGwgYmUgYmluZG1vdW50ZWQgaW50byB0aGUgc2hhcmVkIGZzIGRpcmVjdG9yeS4KIyBJZiBkZWZhdWx0cyBhcmUgdXRpbGl6ZWQsIHRoZXNlIG1vdW50cyBzaG91bGQgYmUgYXZhaWxhYmxlIGluIHRoZSBndWVzdCBhdCBgL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvc2FuZGJveC1tb3VudHNgCiMgVGhlc2Ugd2lsbCBub3QgYmUgZXhwb3NlZCB0byB0aGUgY29udGFpbmVyIHdvcmtsb2FkcywgYW5kIGFyZSBvbmx5IHByb3ZpZGVkIGZvciBwb3RlbnRpYWwgZ3Vlc3Qgc2VydmljZXMuCnNhbmRib3hfYmluZF9tb3VudHM9W10KCiMgRW5hYmxlZCBleHBlcmltZW50YWwgZmVhdHVyZSBsaXN0LCBmb3JtYXQ6IFsiYSIsICJiIl0uCiMgRXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBmZWF0dXJlcyBub3Qgc3RhYmxlIGVub3VnaCBmb3IgcHJvZHVjdGlvbiwKIyB0aGV5IG1heSBicmVhayBjb21wYXRpYmlsaXR5LCBhbmQgYXJlIHByZXBhcmVkIGZvciBhIGJpZyB2ZXJzaW9uIGJ1bXAuCiMgU3VwcG9ydGVkIGV4cGVyaW1lbnRhbCBmZWF0dXJlczoKIyAoZGVmYXVsdDogW10pCmV4cGVyaW1lbnRhbD1bXQoKIyBJZiBlbmFibGVkLCB1c2VyIGNhbiBydW4gcHByb2YgdG9vbHMgd2l0aCBzaGltIHYyIHByb2Nlc3MgdGhyb3VnaCBrYXRhLW1vbml0b3IuCiMgKGRlZmF1bHQ6IGZhbHNlKQojIGVuYWJsZV9wcHJvZiA9IHRydWUKCiMgV0FSTklORzogQWxsIHRoZSBvcHRpb25zIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbiBoYXZlIG5vdCBiZWVuIGltcGxlbWVudGVkIHlldC4KIyBUaGlzIHNlY3Rpb24gd2FzIGFkZGVkIGFzIGEgcGxhY2Vob2xkZXIuIERPIE5PVCBVU0UgSVQhCltpbWFnZV0KIyBDb250YWluZXIgaW1hZ2Ugc2VydmljZS4KIwojIE9mZmxvYWQgdGhlIENSSSBpbWFnZSBtYW5hZ2VtZW50IHNlcnZpY2UgdG8gdGhlIEthdGEgYWdlbnQuCiMgKGRlZmF1bHQ6IGZhbHNlKQpzZXJ2aWNlX29mZmxvYWQgPSB0cnVlCgojIENvbnRhaW5lciBpbWFnZSBkZWNyeXB0aW9uIGtleXMgcHJvdmlzaW9uaW5nLgojIEFwcGxpZXMgb25seSBpZiBzZXJ2aWNlX29mZmxvYWQgaXMgdHJ1ZS4KIyBLZXlzIGNhbiBiZSBwcm92aXNpb25lZCBsb2NhbGx5IChlLmcuIHRocm91Z2ggYSBzcGVjaWFsIGNvbW1hbmQgb3IKIyBhIGxvY2FsIGZpbGUpIG9yIHJlbW90ZWx5ICh1c3VhbGx5IGFmdGVyIHRoZSBndWVzdCBpcyByZW1vdGVseSBhdHRlc3RlZCkuCiMgVGhlIHByb3Zpc2lvbiBzZXR0aW5nIGlzIGEgY29tcGxldGUgVVJMIHRoYXQgbGV0cyB0aGUgS2F0YSBhZ2VudCBkZWNpZGUKIyB3aGljaCBtZXRob2QgdG8gdXNlIGluIG9yZGVyIHRvIGZldGNoIHRoZSBrZXlzLgojCiMgS2V5cyBjYW4gYmUgc3RvcmVkIGluIGEgbG9jYWwgZmlsZSwgaW4gYSBtZWFzdXJlZCBhbmQgYXR0ZXN0ZWQgaW5pdHJkOgojcHJvdmlzaW9uPWRhdGE6Ly8vbG9jYWwva2V5L2ZpbGUKIwojIEtleXMgY291bGQgYmUgZmV0Y2hlZCB0aHJvdWdoIGEgc3BlY2lhbCBjb21tYW5kIG9yIGJpbmFyeSBmcm9tIHRoZQojIGluaXRyZCAoZ3Vlc3QpIGltYWdlLCBlLmcuIGEgZmlybXdhcmUgY2FsbDoKI3Byb3Zpc2lvbj1maWxlOi8vL3BhdGgvdG8vYmluL2ZldGNoZXIvaW4vZ3Vlc3QKIwojIEtleXMgY2FuIGJlIHJlbW90ZWx5IHByb3Zpc2lvbmVkLiBUaGUgS2F0YSBhZ2VudCBmZXRjaGVzIHRoZW0gZnJvbSBlLmcuCiMgYSBIVFRQUyBVUkw6CiNwcm92aXNpb249aHR0cHM6Ly9teS1rZXktYnJva2VyLmZvby90ZW5hbnQvPHRlbmFudC1pZD4= + filesystem: root + mode: 0644 + path: /opt/kata/configuration-remote.toml diff --git a/config/peerpods/mc-50-crio-config.yaml b/config/peerpods/mc-50-crio-config.yaml new file mode 100644 index 00000000..6a2aaa9e --- /dev/null +++ b/config/peerpods/mc-50-crio-config.yaml @@ -0,0 +1,18 @@ +apiVersion: machineconfiguration.openshift.io/v1 +kind: MachineConfig +metadata: + labels: + machineconfiguration.openshift.io/role: worker + name: 50-kata-remote-cc +spec: + config: + ignition: + version: 2.2.0 + storage: + files: + - contents: + source: data:text/plain;charset=utf-8;base64,W2NyaW8ucnVudGltZS5ydW50aW1lcy5rYXRhLXJlbW90ZS1jY10KIHJ1bnRpbWVfcGF0aCA9ICIvdXNyL2Jpbi9jb250YWluZXJkLXNoaW0ta2F0YS12Mi10cCIKIHJ1bnRpbWVfdHlwZSA9ICJ2bSIKIHJ1bnRpbWVfcm9vdCA9ICIvcnVuL3ZjIgogcnVudGltZV9jb25maWdfcGF0aCA9ICIvb3B0L2thdGEvY29uZmlndXJhdGlvbi1yZW1vdGUudG9tbCIKIHByaXZpbGVnZWRfd2l0aG91dF9ob3N0X2RldmljZXMgPSB0cnVlCg== + filesystem: root + mode: 0644 + path: /etc/crio/crio.conf.d/50-kata-remote-cc + diff --git a/config/peerpods/peerpodscm.yaml b/config/peerpods/peerpodscm.yaml new file mode 100644 index 00000000..36dceb3d --- /dev/null +++ b/config/peerpods/peerpodscm.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: peer-pods-cm + namespace: openshift-sandboxed-containers-operator +data: + #CLOUD_PROVIDER: "libvirt" diff --git a/config/peerpods/peerpodssecret.yaml b/config/peerpods/peerpodssecret.yaml new file mode 100644 index 00000000..45743954 --- /dev/null +++ b/config/peerpods/peerpodssecret.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Secret +metadata: + name: peer-pods-secret + namespace: openshift-sandboxed-containers-operator +type: Opaque +stringData: + #CLOUD_PROVIDER: "libvirt" + #LIBVIRT_URI: "qemu+ssh://root@192.168.122.1/system?no_verify=1" + #LIBVIRT_NET: "default + #LIBVIRT_POOL: "default" diff --git a/config/peerpods/runtimeclass.yaml b/config/peerpods/runtimeclass.yaml new file mode 100644 index 00000000..3a81020a --- /dev/null +++ b/config/peerpods/runtimeclass.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: node.k8s.io/v1 +handler: kata-remote-cc +kind: RuntimeClass +metadata: + name: kata-remote-cc +overhead: + podFixed: + memory: "120Mi" + cpu: "250m" From 97b9663f31570f9582bac0e91f96aca4f42f2017 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:02:37 +0100 Subject: [PATCH 15/63] api: add EnablePeerPods field This field when set to true will make the controller create a PeerPodConfig custom. Signed-off-by: Jens Freimann --- api/v1/kataconfig_types.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api/v1/kataconfig_types.go b/api/v1/kataconfig_types.go index bfeef96d..5e07f3bb 100644 --- a/api/v1/kataconfig_types.go +++ b/api/v1/kataconfig_types.go @@ -38,6 +38,12 @@ type KataConfigSpec struct { // Sets log level on kata-equipped nodes. Valid values are the same as for `crio --log-level`. // +kubebuilder:default:="info" LogLevel string `json:"logLevel,omitempty"` + + // EnablePeerPods is used to transparently create pods on a remote system. + // For more information on how this works, please refer to the sandboxed containers documentation - https://docs.openshift.com/container-platform/latest/sandboxed_containers/deploying-sandboxed-container-workloads.html + // +optional + // +kubebuilder:default:=false + EnablePeerPods bool `json:"enablePeerPods"` } // KataConfigStatus defines the observed state of KataConfig From 6262eb4ecc55d0a43181208b92a7f72e0ba43b8f Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:23:50 +0100 Subject: [PATCH 16/63] add pod-security privileged labels Signed-off-by: Jens Freimann --- config/manager/manager.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index 7060c11c..b3e0bd23 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -3,6 +3,9 @@ kind: Namespace metadata: labels: control-plane: controller-manager + pod-security.kubernetes.io/audit: privileged + pod-security.kubernetes.io/enforce: privileged + pod-security.kubernetes.io/warn: privileged name: "openshift-sandboxed-containers-operator" --- apiVersion: apps/v1 From e257b6cde5178cb693608bc892f852b69903c623 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:26:49 +0100 Subject: [PATCH 17/63] rbac: add rights to edit peerpodconfigs Signed-off-by: Jens Freimann --- config/rbac/kataconfig_editor_role.yaml | 4 ++++ config/rbac/kataconfig_viewer_role.yaml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/config/rbac/kataconfig_editor_role.yaml b/config/rbac/kataconfig_editor_role.yaml index 8b696641..f868784f 100644 --- a/config/rbac/kataconfig_editor_role.yaml +++ b/config/rbac/kataconfig_editor_role.yaml @@ -6,8 +6,10 @@ metadata: rules: - apiGroups: - kataconfiguration.openshift.io + - peerpodconfiguration.confidentialcontainers.org resources: - kataconfigs + - peerpodconfigs verbs: - create - delete @@ -18,7 +20,9 @@ rules: - watch - apiGroups: - kataconfiguration.openshift.io + - peerpodconfiguration.confidentialcontainers.org resources: - kataconfigs/status + - peerpodconfigs/status verbs: - get diff --git a/config/rbac/kataconfig_viewer_role.yaml b/config/rbac/kataconfig_viewer_role.yaml index 9c87bc96..411aebb1 100644 --- a/config/rbac/kataconfig_viewer_role.yaml +++ b/config/rbac/kataconfig_viewer_role.yaml @@ -6,15 +6,19 @@ metadata: rules: - apiGroups: - kataconfiguration.openshift.io + - peerpodconfiguration.confidentialcontainers.org resources: - kataconfigs + - peerpodconfigs verbs: - get - list - watch - apiGroups: + - peerpodconfiguration.confidentialcontainers.org - kataconfiguration.openshift.io resources: - kataconfigs/status + - peerpodconfigs/status verbs: - get From c0bea303605388091033de390af287f1138a9e98 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:27:36 +0100 Subject: [PATCH 18/63] samples: add peerpodconfig CR sample Signed-off-by: Jens Freimann --- config/samples/_v1alpha1_peerpodconfig.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 config/samples/_v1alpha1_peerpodconfig.yaml diff --git a/config/samples/_v1alpha1_peerpodconfig.yaml b/config/samples/_v1alpha1_peerpodconfig.yaml new file mode 100644 index 00000000..3a1116ac --- /dev/null +++ b/config/samples/_v1alpha1_peerpodconfig.yaml @@ -0,0 +1,6 @@ +apiVersion: confidentialcontainers.org/v1alpha1 +kind: PeerPodConfig +metadata: + name: peerpodconfig-sample +spec: + # TODO(user): Add fields here From 43872662b7599ca80fcd8597cb7a12dd352e349d Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:32:45 +0100 Subject: [PATCH 19/63] controller: run peer pods components when enabled During reconcile of KataConfig, check kataconfig.spec.enablePeerPods and if set to true create a PeerPodConfig custom resource which will then be handled by the peerpod-controller which runs in parallel to the KataConfig controller. Signed-off-by: Jens Freimann --- controllers/openshift_controller.go | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 3ee191c2..d8052555 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -23,6 +23,8 @@ import ( "reflect" "time" + "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/api/v1alpha1" + appsv1 "k8s.io/api/apps/v1" "k8s.io/apimachinery/pkg/labels" @@ -67,6 +69,7 @@ const ( dashboard_configmap_name = "grafana-dashboard-sandboxed-containers" dashboard_configmap_namespace = "openshift-config-managed" container_runtime_config_name = "kata-crio-config" + DEFAULT_PEER_PODS = "10" ) // +kubebuilder:rbac:groups=kataconfiguration.openshift.io,resources=kataconfigs;kataconfigs/finalizers,verbs=get;list;watch;create;update;patch;delete @@ -78,6 +81,10 @@ const ( // +kubebuilder:rbac:groups="";machineconfiguration.openshift.io,resources=nodes;machineconfigs;machineconfigpools;containerruntimeconfigs;pods;services;services/finalizers;endpoints;persistentvolumeclaims;events;configmaps;secrets,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=security.openshift.io,resources=securitycontextconstraints,verbs=use;get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups="",resources=namespaces,verbs=get;update +// +kubebuilder:rbac:groups="",resources=nodes/status,verbs=patch +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs/status,verbs=get;update;patch +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs/finalizers,verbs=update func (r *KataConfigOpenShiftReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { _ = r.Log.WithValues("kataconfig", req.NamespacedName) @@ -924,6 +931,15 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. } } + // peer pod enablement + if r.kataConfig.Spec.EnablePeerPods { + err := r.enablePeerPods() + if err != nil { + r.Log.Error(err, "Peer pod enabling failed") + return ctrl.Result{}, err + } + } + // If converged cluster, then MCP == master, otherwise "kata-oc" if it exists machinePool, err := r.getMcpName() if err != nil { @@ -1692,3 +1708,25 @@ func (r *KataConfigOpenShiftReconciler) clearFailedStatus(status kataconfigurati return status } + +func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { + + peerpodconf := v1alpha1.PeerPodConfig{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{ + Name: "peerpodconfig-example", + Namespace: "openshift-sandboxed-containers-operator", + }, + Spec: v1alpha1.PeerPodConfigSpec{ + CloudSecretName: "peer-pods-secret", + ConfigMapName: "peer-pods-cm", + Limit: DEFAULT_PEER_PODS, + }, + } + + err := r.Client.Create(context.TODO(), &peerpodconf) + if k8serrors.IsAlreadyExists(err) { + return nil + } + return err +} From 9d7195a94c409be2c5bae9dc8dde49cefded7d76 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:36:51 +0100 Subject: [PATCH 20/63] main: run peer pod controller Start the peer-pod controller which will handle the reconciliation for the PeerPodConfig CR that we create when kataconfig.spec.enablePeerPods=true is set. Signed-off-by: Jens Freimann --- main.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index d9c0e922..b0cfa8be 100644 --- a/main.go +++ b/main.go @@ -19,8 +19,7 @@ package main import ( "context" "flag" - "os" - + peerpodcontrollers "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/controllers" secv1 "github.com/openshift/api/security/v1" mcfgapi "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io" "go.uber.org/zap/zapcore" @@ -32,11 +31,13 @@ import ( clientgoscheme "k8s.io/client-go/kubernetes/scheme" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" nodeapi "k8s.io/kubernetes/pkg/apis/node/v1" + "os" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" + peerpodconfig "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/api/v1alpha1" kataconfigurationv1 "github.com/openshift/sandboxed-containers-operator/api/v1" "github.com/openshift/sandboxed-containers-operator/controllers" // +kubebuilder:scaffold:imports @@ -61,6 +62,8 @@ func init() { utilruntime.Must(mcfgapi.Install(scheme)) utilruntime.Must(kataconfigurationv1.AddToScheme(scheme)) + + utilruntime.Must(peerpodconfig.AddToScheme(scheme)) // +kubebuilder:scaffold:scheme } @@ -123,12 +126,22 @@ func main() { setupLog.Error(err, "unable to create KataConfig controller for OpenShift cluster", "controller", "KataConfig") os.Exit(1) } + + if err = (&peerpodcontrollers.PeerPodConfigReconciler{ + Client: mgr.GetClient(), + Log: ctrl.Log.WithName("controllers").WithName("RemotePodConfig"), + Scheme: mgr.GetScheme(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create RemotePodConfig controller for OpenShift cluster", "controller", "RemotePodConfig") + os.Exit(1) + } } if err = (&kataconfigurationv1.KataConfig{}).SetupWebhookWithManager(mgr); err != nil { setupLog.Error(err, "unable to create webhook", "webhook", "KataConfig") os.Exit(1) } + // +kubebuilder:scaffold:builder setupLog.Info("starting manager") From 1db515e70ed61e897c2b85966c868a311f88e804 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Feb 2023 10:44:04 +0100 Subject: [PATCH 21/63] update go.mod and go.sum Signed-off-by: Jens Freimann --- go.mod | 110 +++++++++++++++++-------------------------- go.sum | 145 +++++++++++++++++++++++++++++++-------------------------- 2 files changed, 123 insertions(+), 132 deletions(-) diff --git a/go.mod b/go.mod index af184493..3348db21 100644 --- a/go.mod +++ b/go.mod @@ -1,119 +1,97 @@ module github.com/openshift/sandboxed-containers-operator -go 1.18 +go 1.19 require ( + github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c github.com/coreos/ignition/v2 v2.9.0 github.com/go-logr/logr v1.2.3 - github.com/onsi/ginkgo/v2 v2.1.6 - github.com/onsi/gomega v1.20.1 + github.com/onsi/ginkgo/v2 v2.6.1 + github.com/onsi/gomega v1.24.2 github.com/openshift/api v0.0.0-20210924154557-a4f696157341 github.com/openshift/machine-config-operator v0.0.1-0.20211015230756-5353b8ec1122 - k8s.io/api v0.25.0 - k8s.io/apimachinery v0.25.0 - k8s.io/client-go v0.25.0 - k8s.io/kubernetes v1.25.4 - sigs.k8s.io/controller-runtime v0.13.0 + k8s.io/api v0.26.0 + k8s.io/apimachinery v0.26.0 + k8s.io/client-go v0.26.0 + k8s.io/kubernetes v1.26.0 + sigs.k8s.io/controller-runtime v0.14.0 ) require ( cloud.google.com/go v0.97.0 // indirect - github.com/PuerkitoBio/purell v1.1.1 // indirect - github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/coreos/vcontext v0.0.0-20201120045928-b0e13dab675c // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/emicklei/go-restful/v3 v3.8.0 // indirect + github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/fatih/color v1.12.0 // indirect - github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect - github.com/go-openapi/jsonreference v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect - github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/gnostic v0.5.7-v3refs // indirect - github.com/google/go-cmp v0.5.8 // indirect + github.com/google/go-cmp v0.5.9 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.12.2 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.32.1 // indirect - github.com/prometheus/procfs v0.7.3 // indirect - github.com/spf13/cobra v1.4.0 // indirect + github.com/prometheus/client_golang v1.14.0 // indirect + github.com/prometheus/client_model v0.3.0 // indirect + github.com/prometheus/common v0.37.0 // indirect + github.com/prometheus/procfs v0.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect - go.uber.org/zap v1.21.0 // indirect - golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect - golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect - golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect - golang.org/x/text v0.3.7 // indirect - golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect - golang.org/x/tools v0.1.12 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/net v0.4.0 // indirect + golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/term v0.3.0 // indirect + golang.org/x/text v0.5.0 // indirect + golang.org/x/time v0.3.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.28.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.25.0 // indirect - k8s.io/component-base v0.25.0 // indirect - k8s.io/klog/v2 v2.70.1 // indirect - k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 // indirect - k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect - sigs.k8s.io/controller-tools v0.9.2 // indirect + k8s.io/apiextensions-apiserver v0.26.0 // indirect + k8s.io/component-base v0.26.0 // indirect + k8s.io/klog/v2 v2.80.1 // indirect + k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect + k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) replace ( - // So that we can import MCO - k8s.io/api => k8s.io/api v0.25.0 - k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.0 - k8s.io/apimachinery => k8s.io/apimachinery v0.25.0 - k8s.io/apiserver => k8s.io/apiserver v0.25.0 - k8s.io/cli-runtime => k8s.io/cli-runtime v0.25.0 - k8s.io/client-go => k8s.io/client-go v0.25.0 - k8s.io/cloud-provider => k8s.io/cloud-provider v0.25.0 - k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.25.0 - k8s.io/code-generator => k8s.io/code-generator v0.25.0 - k8s.io/component-base => k8s.io/component-base v0.25.0 - k8s.io/component-helpers => k8s.io/component-helpers v0.25.0 - k8s.io/controller-manager => k8s.io/controller-manager v0.25.0 - k8s.io/cri-api => k8s.io/cri-api v0.25.0 - k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.25.0 + //github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller => ../cloud-api-adaptor/peer-pod-controller + k8s.io/api => k8s.io/api v0.25.1 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.1 + k8s.io/apimachinery => k8s.io/apimachinery v0.25.1 + k8s.io/apiserver => k8s.io/apiserver v0.25.1 + k8s.io/cli-runtime => k8s.io/cli-runtime v0.25.1 + k8s.io/client-go => k8s.io/client-go v0.25.1 + k8s.io/code-generator => k8s.io/code-generator v0.25.1 + k8s.io/component-base => k8s.io/component-base v0.25.1 k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.25.0 - k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.25.0 - k8s.io/kube-proxy => k8s.io/kube-proxy v0.25.0 - k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.25.0 - k8s.io/kubectl => k8s.io/kubectl v0.25.0 - k8s.io/kubelet => k8s.io/kubelet v0.25.0 - k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.25.0 - k8s.io/metrics => k8s.io/metrics v0.25.0 - k8s.io/mount-utils => k8s.io/mount-utils v0.25.0 - k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.25.0 - k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.25.0 + k8s.io/kubectl => k8s.io/kubectl v0.25.1 + k8s.io/kubelet => k8s.io/kubelet v0.25.1 + // So that we can import MCO + sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.13.0 ) diff --git a/go.sum b/go.sum index b5f7cca3..b7585a3f 100644 --- a/go.sum +++ b/go.sum @@ -93,9 +93,7 @@ github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMo github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenPeeDeeP/depguard v1.0.0/go.mod h1:7/4sitnI9YlQgTLLk734QlzXT8DuHVnAyztLplQjk+o= github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= -github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= -github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= @@ -174,6 +172,8 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c h1:wXEJtq8D5WxHp4ec4epAOp3kmlOLeGtDIs9xP2nUrP4= +github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c/go.mod h1:rmBJfRaPJ18+nqNp4OHfOQ4jTH284rn5bWMJ+ANOjlE= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= @@ -345,8 +345,9 @@ github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8 github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.10.0+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.8.0 h1:eCZ8ulSerjdAiaNpF7GxXIE7ZCMo1moN1qX+S609eVw= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE= +github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -366,15 +367,13 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= @@ -391,10 +390,12 @@ github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3I github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= @@ -409,8 +410,9 @@ github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34 github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= +github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= @@ -431,8 +433,6 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= -github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -444,6 +444,7 @@ github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/ github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= @@ -451,7 +452,6 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -517,7 +517,7 @@ github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9/go.mod h1:0EXg4mc1CNP github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/cel-go v0.12.4/go.mod h1:Av7CU6r6X3YmcHR9GXqVDaEJYfEtSxl6wvIjUQTriCw= +github.com/google/cel-go v0.12.5/go.mod h1:Jk7ljRzLBhkmiAwBoUxB1sZSCVBAzkqPF25olK/iRDw= github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -532,8 +532,9 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-intervals v0.0.2/go.mod h1:MkaR3LNRfeKLPmqgJYs4E66z5InYjmCjbbr4TQlcT6Y= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -622,7 +623,6 @@ github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -692,12 +692,9 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -707,8 +704,8 @@ github.com/mattn/go-shellwords v1.0.11/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lL github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.2 h1:hAHbPm5IJGijwng3PWk09JkG9WeqChjprR5s9bBZ+OM= +github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= @@ -772,8 +769,9 @@ github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vv github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= -github.com/onsi/ginkgo/v2 v2.1.6 h1:Fx2POJZfKRQcM1pH49qSZiYeu319wji004qX+GDovrU= github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= +github.com/onsi/ginkgo/v2 v2.6.1 h1:1xQPCjcqYw/J5LchOcp4/2q/jzJFjiAOc25chhnDw+Q= +github.com/onsi/ginkgo/v2 v2.6.1/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -783,8 +781,9 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.20.1 h1:PA/3qinGoukvymdIDV8pii6tiZgC8kbmJO6Z5+b002Q= github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= +github.com/onsi/gomega v1.24.2 h1:J/tulyYK6JwBldPViHJReihxxZ+22FHs0piGjQAvoUE= +github.com/onsi/gomega v1.24.2/go.mod h1:gs3J10IS7Z7r7eXRoNJIrNqU4ToQukCJhFtKrWgHWnk= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -851,14 +850,15 @@ github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= -github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -866,8 +866,9 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -878,8 +879,9 @@ github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -936,7 +938,6 @@ github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3 github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= @@ -1059,7 +1060,6 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= @@ -1067,8 +1067,8 @@ go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9i go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= -go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go4.org v0.0.0-20200104003542-c7e774b10ea0/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/arch v0.0.0-20180920145803-b19384d3c130/go.mod h1:cYlCBUl1MsqxdiKgmc4uh7TxZfWSFLOGSRR090WDxt8= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1129,7 +1129,6 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1193,8 +1192,10 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1210,8 +1211,9 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 h1:RerP+noqYHUQ8CMRcPlC2nvTa4dcBIjegkuWdcUDuqg= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1252,6 +1254,7 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1296,6 +1299,7 @@ golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1327,14 +1331,17 @@ golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1344,16 +1351,17 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220609170525-579cf78fd858 h1:Dpdu/EMxGMFgq0CeYMh4fazTD2vtlZRYE7wyynxJb9U= -golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20170915040203-e531a2a1c15f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1432,7 +1440,6 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1518,6 +1525,7 @@ google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1587,8 +1595,9 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= @@ -1641,21 +1650,24 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.25.0 h1:H+Q4ma2U/ww0iGB78ijZx6DRByPz6/733jIuFpX70e0= -k8s.io/api v0.25.0/go.mod h1:ttceV1GyV1i1rnmvzT3BST08N6nGt+dudGrquzVQWPk= -k8s.io/apiextensions-apiserver v0.25.0 h1:CJ9zlyXAbq0FIW8CD7HHyozCMBpDSiH7EdrSTCZcZFY= -k8s.io/apiextensions-apiserver v0.25.0/go.mod h1:3pAjZiN4zw7R8aZC5gR0y3/vCkGlAjCazcg1me8iB/E= -k8s.io/apimachinery v0.25.0 h1:MlP0r6+3XbkUG2itd6vp3oxbtdQLQI94fD5gCS+gnoU= -k8s.io/apimachinery v0.25.0/go.mod h1:qMx9eAk0sZQGsXGu86fab8tZdffHbwUfsvzqKn4mfB0= -k8s.io/apiserver v0.25.0/go.mod h1:BKwsE+PTC+aZK+6OJQDPr0v6uS91/HWxX7evElAH6xo= -k8s.io/cli-runtime v0.25.0/go.mod h1:bHOI5ZZInRHhbq12OdUiYZQN8ml8aKZLwQgt9QlLINw= -k8s.io/client-go v0.25.0 h1:CVWIaCETLMBNiTUta3d5nzRbXvY5Hy9Dpl+VvREpu5E= -k8s.io/client-go v0.25.0/go.mod h1:lxykvypVfKilxhTklov0wz1FoaUZ8X4EwbhS6rpRfN8= -k8s.io/code-generator v0.25.0/go.mod h1:B6jZgI3DvDFAualltPitbYMQ74NjaCFxum3YeKZZ+3w= -k8s.io/component-base v0.25.0 h1:haVKlLkPCFZhkcqB6WCvpVxftrg6+FK5x1ZuaIDaQ5Y= -k8s.io/component-base v0.25.0/go.mod h1:F2Sumv9CnbBlqrpdf7rKZTmmd2meJq0HizeyY/yAFxk= -k8s.io/component-helpers v0.25.0/go.mod h1:auaFj2bvb5Zmy0mLk4WJNmwP0w4e7Zk+/Tu9FFBGA20= -k8s.io/cri-api v0.25.0/go.mod h1:J1rAyQkSJ2Q6I+aBMOVgg2/cbbebso6FNa0UagiR0kc= +k8s.io/api v0.25.1 h1:yL7du50yc93k17nH/Xe9jujAYrcDkI/i5DL1jPz4E3M= +k8s.io/api v0.25.1/go.mod h1:hh4itDvrWSJsmeUc28rIFNri8MatNAAxJjKcQmhX6TU= +k8s.io/apiextensions-apiserver v0.25.1 h1:HEIKlxj6oHaDwHgotEIX/Ld5K/RGuOFwN/TWMiQ5s5s= +k8s.io/apiextensions-apiserver v0.25.1/go.mod h1:67sgnMs2yIO2iV4DpCdS91vlP+pdnVIsG/mz60qRn44= +k8s.io/apimachinery v0.25.1 h1:t0XrnmCEHVgJlR2arwO8Awp9ylluDic706WePaYCBTI= +k8s.io/apimachinery v0.25.1/go.mod h1:hqqA1X0bsgsxI6dXsJ4HnNTBOmJNxyPp8dw3u2fSHwA= +k8s.io/apiserver v0.25.1/go.mod h1:IB1EhM28U3cCrV+VNC06p1/YSZMCNYiH+P5sI5yLaZY= +k8s.io/cli-runtime v0.25.1/go.mod h1:JSzAcqIK3JK7Ab/TY0PENKhmEg/HboNWK3VKiwsYB6E= +k8s.io/client-go v0.25.1 h1:uFj4AJKtE1/ckcSKz8IhgAuZTdRXZDKev8g387ndD58= +k8s.io/client-go v0.25.1/go.mod h1:rdFWTLV/uj2C74zGbQzOsmXPUtMAjSf7ajil4iJUNKo= +k8s.io/code-generator v0.25.1/go.mod h1:f61OcU2VqVQcjt/6TrU0sta1TA5hHkOO6ZZPwkL9Eys= +k8s.io/component-base v0.25.1 h1:Wmj33QwddVwsJFJWmXlf24Nu8do2bGHLabXHrKz7Org= +k8s.io/component-base v0.25.1/go.mod h1:j78+TFdsKM8RXHfM88oeAdZu2v9qMZdQZOfg0LGW+q4= +k8s.io/component-helpers v0.25.1/go.mod h1:C0zYGZ5jvaPaXsQCIxkTEQ+HqsPvT3cvAtQY8EDu/nk= +k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= +k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= @@ -1665,24 +1677,27 @@ k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.10.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.70.1 h1:7aaoSdahviPmR+XkS7FyxlkkXs6tHISSG03RxleQAVQ= k8s.io/klog/v2 v2.70.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-aggregator v0.25.0/go.mod h1:dfdl4aQkleiWK/U++UDLdDC8g2rsonhkB23zzUeBCgM= k8s.io/kube-openapi v0.0.0-20220401212409-b28bf2818661/go.mod h1:daOouuuwd9JXpv1L7Y34iV3yf6nxzipkKMWWlqlvK9M= -k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 h1:MQ8BAZPZlWk3S9K4a9NCkIFQtZShWqoha7snGixVgEA= k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1/go.mod h1:C/N6wCaBHeBHkHUesQOQy2/MZqGgMAFPqGsGQLdbZBU= -k8s.io/kubectl v0.25.0/go.mod h1:n16ULWsOl2jmQpzt2o7Dud1t4o0+Y186ICb4O+GwKAU= -k8s.io/kubelet v0.25.0/go.mod h1:J6aQxrZdSsGPrskYrhZdEn6PCnGha+GNvF0g9aWfQnw= +k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E= +k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= +k8s.io/kubectl v0.25.1/go.mod h1:ki8ymtGZau2M1lloUV2fqMxP9UCX/i0WIhnWTfqsGSY= +k8s.io/kubelet v0.25.1/go.mod h1:mXo8HjxCrwVduGBk4tzuhegJYPvNwPyycRf39H4KKqE= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/kubernetes v1.25.4 h1:M1+MR8IxE64zHhSSDn30twChLaOI+p0Kt77pvyQMKwU= -k8s.io/kubernetes v1.25.4/go.mod h1:lvEY+3iJhh+sGIK1LorGkI56rW0eLGsfalnp68wQwYU= -k8s.io/metrics v0.25.0/go.mod h1:HZZrbhuRX+fsDcRc3u59o2FbrKhqD67IGnoFECNmovc= +k8s.io/kubernetes v1.26.0 h1:fL8VMr4xlfTazPORLhz5fsvO5I3bsFpmynVxZTH1ItQ= +k8s.io/kubernetes v1.26.0/go.mod h1:z0aCJwn6DxzB/dDiWLbQaJO5jWOR2qoaCMnmSAx45XM= +k8s.io/metrics v0.25.1/go.mod h1:/t3eughLPd1sQNc47py2vTOY8e1E8bIxecA8rq/qQjM= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed h1:jAne/RjBTyawwAy0utX5eqigAwz/lQhTmy+Hr/Cpue4= k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 h1:KTgPnR10d5zhztWptI952TNtt/4u5h3IzDXkdIMuo2Y= +k8s.io/utils v0.0.0-20221128185143-99ec85e7a448/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY= @@ -1693,8 +1708,6 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= -sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= From 128f6e3eee50ebd839150a68a1ee852d09313e91 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 16 Feb 2023 11:34:52 +0100 Subject: [PATCH 22/63] controller: set PEERPODS_NAMESPACE env variable This is required for the peer-pod-controller to find resources like the configmap and secret. Signed-off-by: Jens Freimann --- config/manager/manager.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index b3e0bd23..8cbdc81c 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -57,6 +57,8 @@ spec: image: controller:latest name: manager env: + - name: PEERPODS_NAMESPACE + value: "openshift-sandboxed-containers-operator" - name: KATA_MONITOR_IMAGE value: quay.io/openshift_sandboxed_containers/openshift-sandboxed-containers-monitor:latest - name: SANDBOXED_CONTAINERS_EXTENSION From 68300ee8433d7aa2359a277fec304d9db503e4b7 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 16 Feb 2023 12:02:12 +0100 Subject: [PATCH 23/63] add parameters for createRuntimeClass Signed-off-by: Jens Freimann --- controllers/openshift_controller.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index d8052555..67688328 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -631,8 +631,7 @@ func (r *KataConfigOpenShiftReconciler) createScc() error { return nil } -func (r *KataConfigOpenShiftReconciler) createRuntimeClass() error { - runtimeClassName := "kata" +func (r *KataConfigOpenShiftReconciler) createRuntimeClass(runtimeClassName string, cpuOverhead string, memoryOverhead string) error { rc := func() *nodeapi.RuntimeClass { rc := &nodeapi.RuntimeClass{ @@ -648,8 +647,8 @@ func (r *KataConfigOpenShiftReconciler) createRuntimeClass() error { // https://github.com/kata-containers/packaging/blob/f17450317563b6e4d6b1a71f0559360b37783e19/kata-deploy/k8s-1.18/kata-runtimeClasses.yaml#L7 Overhead: &nodeapi.Overhead{ PodFixed: corev1.ResourceList{ - corev1.ResourceCPU: resource.MustParse("250m"), - corev1.ResourceMemory: resource.MustParse("350Mi"), + corev1.ResourceCPU: resource.MustParse(cpuOverhead), + corev1.ResourceMemory: resource.MustParse(memoryOverhead), }, }, } @@ -1018,7 +1017,7 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. foundMcp.Status.UpdatedMachineCount == foundMcp.Status.MachineCount { r.Log.Info("create runtime class") r.kataConfig.Status.InstallationStatus.IsInProgress = "false" - err := r.createRuntimeClass() + err := r.createRuntimeClass("kata", "250M", "350Mi") if err != nil { // Give sometime for the error to go away before reconciling again return reconcile.Result{Requeue: true, RequeueAfter: 15 * time.Second}, err From d78dc292d4ec9afb586fb0edda752cefa9ae51e8 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 16 Feb 2023 12:03:13 +0100 Subject: [PATCH 24/63] add runtimeclass for peer pods when enabled in kataconfig Signed-off-by: Jens Freimann --- controllers/openshift_controller.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 67688328..1a707817 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -1709,6 +1709,7 @@ func (r *KataConfigOpenShiftReconciler) clearFailedStatus(status kataconfigurati } func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { + var err error = nil peerpodconf := v1alpha1.PeerPodConfig{ TypeMeta: metav1.TypeMeta{}, @@ -1723,9 +1724,14 @@ func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { }, } - err := r.Client.Create(context.TODO(), &peerpodconf) + err = r.Client.Create(context.TODO(), &peerpodconf) if k8serrors.IsAlreadyExists(err) { return nil + } else if err != nil { + return err } + + err = r.createRuntimeClass("kata-remote-cc", "250M", "350Mi") + return err } From 18d4e370004fd8440eac1e1b036bc0175586aaf0 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 2 Mar 2023 08:57:20 +0100 Subject: [PATCH 25/63] set version to 1.4.0 Signed-off-by: Jens Freimann --- Makefile | 2 +- ...sandboxed-containers-operator.clusterserviceversion.yaml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index ee60c4bd..bbb12b9d 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # To re-generate a bundle for another specific version without changing the standard setup, you can: # - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) # - use environment variables to overwrite this value (e.g export VERSION=0.0.2) -VERSION ?= 1.3.4 +VERSION ?= 1.4.0 # CHANNELS define the bundle channels used in the bundle. # Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable") diff --git a/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml b/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml index ff3dd4f9..866c44c2 100644 --- a/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml @@ -13,7 +13,7 @@ metadata: } ] capabilities: Seamless Upgrades - olm.skipRange: '>=1.1.0 <1.3.2' + olm.skipRange: '>=1.1.0 <1.4.0' operatorframework.io/suggested-namespace: openshift-sandboxed-containers-operator operators.openshift.io/infrastructure-features: '["disconnected", "fips"]' operators.operatorframework.io/builder: operator-sdk-v1.20.1+git @@ -23,7 +23,7 @@ metadata: labels: operatorframework.io/arch.amd64: supported operatorframework.io/os.linux: supported - name: sandboxed-containers-operator.v1.3.2 + name: sandboxed-containers-operator.v1.4.0 spec: apiservicedefinitions: {} customresourcedefinitions: @@ -363,7 +363,7 @@ spec: maturity: beta provider: name: Red Hat - version: 1.3.2 + version: 1.4.0 webhookdefinitions: - admissionReviewVersions: - v1 From 6e574c686fd16e79b62ae6c8b3b82988547e9837 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 3 Mar 2023 14:49:11 +0100 Subject: [PATCH 26/63] add controller-tools to go.mod Signed-off-by: Jens Freimann --- go.mod | 9 +++++++++ go.sum | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/go.mod b/go.mod index 3348db21..d386a8ab 100644 --- a/go.mod +++ b/go.mod @@ -27,11 +27,13 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/fatih/color v1.12.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect + github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect @@ -40,9 +42,12 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -52,17 +57,20 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.24.0 // indirect + golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect @@ -74,6 +82,7 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect + sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index b7585a3f..36d88da1 100644 --- a/go.sum +++ b/go.sum @@ -297,6 +297,7 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -367,6 +368,8 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= +github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= @@ -433,6 +436,8 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= +github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= +github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -624,6 +629,8 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -692,9 +699,12 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -939,6 +949,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= +github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1130,6 +1142,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1441,6 +1455,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1708,6 +1724,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= +sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= +sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= From 9cd97f78a6d5f5a2208b357af99843c854d91f8e Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Fri, 24 Mar 2023 08:46:07 +0100 Subject: [PATCH 27/63] controller: fix wrong amount of cpu request in RuntimeClass In commit 7dae22183ecfa781c5fb50e4017a337d577bac78 and df06ae971b52df90e336457cd489788a9463f6b4 I turned '250m' into '250M'. This means a pod will request 250 full CPUs instead of a quarter CPU. Fix it by using '0.25' as value for CPU resources, it's less error prone than '250m' and works as well according to the documentation https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu Fixes: rhjira#KATA-2069 Signed-off-by: Jens Freimann --- controllers/openshift_controller.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 1a707817..a22c56c6 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -1017,7 +1017,7 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. foundMcp.Status.UpdatedMachineCount == foundMcp.Status.MachineCount { r.Log.Info("create runtime class") r.kataConfig.Status.InstallationStatus.IsInProgress = "false" - err := r.createRuntimeClass("kata", "250M", "350Mi") + err := r.createRuntimeClass("kata", "0.25", "350Mi") if err != nil { // Give sometime for the error to go away before reconciling again return reconcile.Result{Requeue: true, RequeueAfter: 15 * time.Second}, err @@ -1731,7 +1731,7 @@ func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { return err } - err = r.createRuntimeClass("kata-remote-cc", "250M", "350Mi") + err = r.createRuntimeClass("kata-remote-cc", "0.25", "350Mi") return err } From 09229f073bdcb3d8538aacc380f4e8cafeddc9a2 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 30 Mar 2023 22:04:05 +0200 Subject: [PATCH 28/63] bundle: add peerpodconfig crd file We need the PeerPodConfig CRD file in the bundle so that it is deployed with the Operator. Fixes: rhjira#KATA-2098 Signed-off-by: Jens Freimann --- PROJECT | 4 + ...identialcontainers.org_peerpodconfigs.yaml | 122 ++++++++++++++++++ .../extension-crds/kustomization.yaml | 4 + config/manifests/kustomization.yaml | 1 + 4 files changed, 131 insertions(+) create mode 100644 config/manifests/extension-crds/confidentialcontainers.org_peerpodconfigs.yaml create mode 100644 config/manifests/extension-crds/kustomization.yaml diff --git a/PROJECT b/PROJECT index 3380b8d9..24ef2ec2 100644 --- a/PROJECT +++ b/PROJECT @@ -7,6 +7,10 @@ plugins: projectName: sandboxed-containers-operator repo: github.com/openshift/sandboxed-containers-operator resources: +- group: confidentialcontainers + version: v1alpha1 + kind: PeerPodConfig + path: github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/api/v1alpha1 - controller: true domain: kataconfiguration.openshift.io group: kataconfiguration diff --git a/config/manifests/extension-crds/confidentialcontainers.org_peerpodconfigs.yaml b/config/manifests/extension-crds/confidentialcontainers.org_peerpodconfigs.yaml new file mode 100644 index 00000000..ed4b2c3b --- /dev/null +++ b/config/manifests/extension-crds/confidentialcontainers.org_peerpodconfigs.yaml @@ -0,0 +1,122 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.10.0 + creationTimestamp: null + name: peerpodconfigs.confidentialcontainers.org +spec: + group: confidentialcontainers.org + names: + kind: PeerPodConfig + listKind: PeerPodConfigList + plural: peerpodconfigs + singular: peerpodconfig + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: PeerPodConfig is the Schema for the peerpodconfigs API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + example: + type: string + x-kubernetes-preserve-unknown-fields: true + description: PeerPodConfigSpec defines the desired state of PeerPodConfig + properties: + cloudSecretName: + default: peer-pods-secret + description: CloudSecretName is the name of the secret that holds + the credentials for the cloud provider + type: string + configMapName: + default: peer-pods-cm + description: ConfigMapName is the name of the configmap that holds + cloud provider specific environment Variables + type: string + instanceType: + description: InstanceType describes the name of the instance type + of the chosen cloud provider + type: string + labelSelector: + description: LabelSelector selects the nodes to which the caa pods, + the RuntimeClass and the MachineConfigs we use to deploy the full + peer pod solution. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. + The requirements are ANDed. + items: + description: A label selector requirement is a selector that + contains values, a key, and an operator that relates the key + and values. + properties: + key: + description: key is the label key that the selector applies + to. + type: string + operator: + description: operator represents a key's relationship to + a set of values. Valid operators are In, NotIn, Exists + and DoesNotExist. + type: string + values: + description: values is an array of string values. If the + operator is In or NotIn, the values array must be non-empty. + If the operator is Exists or DoesNotExist, the values + array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single + {key,value} in the matchLabels map is equivalent to an element + of matchExpressions, whose key field is "key", the operator + is "In", and the values array contains only "value". The requirements + are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + limit: + description: Limit is the max number of peer pods. This is exposed + as expended resource on nodes + type: string + required: + - cloudSecretName + - configMapName + type: object + status: + description: PeerPodConfigStatus defines the observed state of PeerPodConfig + properties: + setupCompleted: + description: SetupCompleted is set to true when all components have + been deployed/created + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/config/manifests/extension-crds/kustomization.yaml b/config/manifests/extension-crds/kustomization.yaml new file mode 100644 index 00000000..bef00c27 --- /dev/null +++ b/config/manifests/extension-crds/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- confidentialcontainers.org_peerpodconfigs.yaml diff --git a/config/manifests/kustomization.yaml b/config/manifests/kustomization.yaml index 4f94cc53..fd798678 100644 --- a/config/manifests/kustomization.yaml +++ b/config/manifests/kustomization.yaml @@ -5,6 +5,7 @@ resources: - ../default - ../samples - ../scorecard +- extension-crds/ # [WEBHOOK] To enable webhooks, uncomment all the sections with [WEBHOOK] prefix. # Do NOT uncomment sections with prefix [CERTMANAGER], as OLM does not support cert-manager. From 1675feb1d78c5c4a8d9affec5a8f2767f30f7e67 Mon Sep 17 00:00:00 2001 From: Snir Sheriber Date: Sun, 2 Apr 2023 14:22:55 +0300 Subject: [PATCH 29/63] controller: use new naming peerpodconfig-ctrl instead of peer-pod-controller Signed-off-by: Snir Sheriber --- PROJECT | 2 +- controllers/openshift_controller.go | 2 +- go.mod | 15 +++------------ go.sum | 22 ++-------------------- main.go | 4 ++-- 5 files changed, 9 insertions(+), 36 deletions(-) diff --git a/PROJECT b/PROJECT index 24ef2ec2..7e6411f5 100644 --- a/PROJECT +++ b/PROJECT @@ -10,7 +10,7 @@ resources: - group: confidentialcontainers version: v1alpha1 kind: PeerPodConfig - path: github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/api/v1alpha1 + path: github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/api/v1alpha1 - controller: true domain: kataconfiguration.openshift.io group: kataconfiguration diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index a22c56c6..2ddca612 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -23,7 +23,7 @@ import ( "reflect" "time" - "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/api/v1alpha1" + "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/api/v1alpha1" appsv1 "k8s.io/api/apps/v1" diff --git a/go.mod b/go.mod index d386a8ab..06f0c243 100644 --- a/go.mod +++ b/go.mod @@ -3,13 +3,14 @@ module github.com/openshift/sandboxed-containers-operator go 1.19 require ( - github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c + github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230404000240-f0579b30f889 github.com/coreos/ignition/v2 v2.9.0 github.com/go-logr/logr v1.2.3 github.com/onsi/ginkgo/v2 v2.6.1 github.com/onsi/gomega v1.24.2 github.com/openshift/api v0.0.0-20210924154557-a4f696157341 github.com/openshift/machine-config-operator v0.0.1-0.20211015230756-5353b8ec1122 + go.uber.org/zap v1.24.0 k8s.io/api v0.26.0 k8s.io/apimachinery v0.26.0 k8s.io/client-go v0.26.0 @@ -27,13 +28,11 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/fatih/color v1.12.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect - github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect @@ -42,12 +41,9 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -57,20 +53,16 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect - github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect - go.uber.org/zap v1.24.0 // indirect - golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect @@ -82,14 +74,13 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect - sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) replace ( - //github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller => ../cloud-api-adaptor/peer-pod-controller + //github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl => ../cloud-api-adaptor/peerpodconfig-ctrl k8s.io/api => k8s.io/api v0.25.1 k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.1 k8s.io/apimachinery => k8s.io/apimachinery v0.25.1 diff --git a/go.sum b/go.sum index 36d88da1..7070955d 100644 --- a/go.sum +++ b/go.sum @@ -172,8 +172,8 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWH github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c h1:wXEJtq8D5WxHp4ec4epAOp3kmlOLeGtDIs9xP2nUrP4= -github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller v0.0.0-20230202170208-2ff2a157c06c/go.mod h1:rmBJfRaPJ18+nqNp4OHfOQ4jTH284rn5bWMJ+ANOjlE= +github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230404000240-f0579b30f889 h1:dDpb3E5euZYR7FTkmhhiZXTfmbKxxtyJJbOP8ViJcJk= +github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230404000240-f0579b30f889/go.mod h1:LH9ur4GVe4uZM9MnQIGIeBr5CdCVMQ9AtUHGPs1WoD4= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= @@ -297,7 +297,6 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -368,8 +367,6 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= @@ -436,8 +433,6 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= -github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -629,8 +624,6 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -699,12 +692,9 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -949,8 +939,6 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= -github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= -github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1142,8 +1130,6 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1455,8 +1441,6 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1724,8 +1708,6 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= -sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= diff --git a/main.go b/main.go index b0cfa8be..9afee30c 100644 --- a/main.go +++ b/main.go @@ -19,7 +19,7 @@ package main import ( "context" "flag" - peerpodcontrollers "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/controllers" + peerpodcontrollers "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/controllers" secv1 "github.com/openshift/api/security/v1" mcfgapi "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io" "go.uber.org/zap/zapcore" @@ -37,7 +37,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" - peerpodconfig "github.com/confidential-containers/cloud-api-adaptor/peer-pod-controller/api/v1alpha1" + peerpodconfig "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/api/v1alpha1" kataconfigurationv1 "github.com/openshift/sandboxed-containers-operator/api/v1" "github.com/openshift/sandboxed-containers-operator/controllers" // +kubebuilder:scaffold:imports From 089f95e68f495aa4d575e0c3e9c236d5b951b06a Mon Sep 17 00:00:00 2001 From: Cameron Meadors Date: Wed, 5 Apr 2023 12:02:16 -0400 Subject: [PATCH 30/63] go get mods for controller-tools --- go.mod | 9 +++++++++ go.sum | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/go.mod b/go.mod index 06f0c243..cd2cde1a 100644 --- a/go.mod +++ b/go.mod @@ -28,11 +28,13 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/fatih/color v1.12.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect + github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect @@ -41,9 +43,12 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -53,16 +58,19 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect + golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect @@ -74,6 +82,7 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect + sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index 7070955d..21255739 100644 --- a/go.sum +++ b/go.sum @@ -297,6 +297,7 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -367,6 +368,8 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= +github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= @@ -433,6 +436,8 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= +github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= +github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -624,6 +629,8 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -692,9 +699,12 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -939,6 +949,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= +github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1130,6 +1142,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1441,6 +1455,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1708,6 +1724,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= +sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= +sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= From 131d7fd284667830a62c121a09d07abfd05778a6 Mon Sep 17 00:00:00 2001 From: Beraldo Leal Date: Mon, 10 Apr 2023 09:14:10 -0400 Subject: [PATCH 31/63] tests: cleanup KataConfig after test After the test we should clean up to avoid conflict with other tests. This is not the optimal way since there is too much duplicated code. I will try to fix this properly with an AfterEach(func()). Just adding this now, since it is blocking the main commit (the next one). Signed-off-by: Beraldo Leal --- controllers/openshift_controller_test.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/controllers/openshift_controller_test.go b/controllers/openshift_controller_test.go index 7f7fa099..c59e0f4b 100644 --- a/controllers/openshift_controller_test.go +++ b/controllers/openshift_controller_test.go @@ -631,6 +631,19 @@ var _ = Describe("OpenShift KataConfig Controller", func() { By("Creating the KataConfig CR successfully") Expect(k8sClient.Create(context.Background(), kataConfig)).Should(Succeed()) + // Delete + By("Deleting KataConfig CR successfully") + kataConfigKey := types.NamespacedName{Name: kataConfig.Name} + Eventually(func() error { + k8sClient.Get(context.Background(), kataConfigKey, kataConfig) + return k8sClient.Delete(context.Background(), kataConfig) + }, timeout, interval).Should(Succeed()) + + By("Expecting to delete KataConfig CR successfully") + Eventually(func() error { + return k8sClient.Get(context.Background(), kataConfigKey, kataConfig) + }, timeout, interval).ShouldNot(Succeed()) + }) }) }) From ab5148ded4203d84b539fc97a89712365c479597 Mon Sep 17 00:00:00 2001 From: Beraldo Leal Date: Thu, 6 Apr 2023 11:59:57 -0400 Subject: [PATCH 32/63] controller: checkNodeEligibility vs peerpods: noop checkNodeEligibility and enablePeerPods are mutually exclusive. This change will skip if Peer pods is enabled. Signed-off-by: Beraldo Leal --- controllers/openshift_controller.go | 5 ++++ controllers/openshift_controller_test.go | 35 ++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 2ddca612..6d3368e3 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -576,6 +576,11 @@ func (r *KataConfigOpenShiftReconciler) checkConvergedCluster() (bool, error) { func (r *KataConfigOpenShiftReconciler) checkNodeEligibility() error { r.Log.Info("Check Node Eligibility to run Kata containers") // Check if node eligibility label exists + + if r.kataConfig.Spec.EnablePeerPods { + r.Log.Info("enablePeerPods is true. Skipping since they are mutually exclusive.") + return nil + } err, nodes := r.getNodesWithLabels(map[string]string{"feature.node.kubernetes.io/runtime.kata": "true"}) if err != nil { r.Log.Error(err, "Error in getting list of nodes with label: feature.node.kubernetes.io/runtime.kata") diff --git a/controllers/openshift_controller_test.go b/controllers/openshift_controller_test.go index c59e0f4b..b9b0fa6f 100644 --- a/controllers/openshift_controller_test.go +++ b/controllers/openshift_controller_test.go @@ -646,4 +646,39 @@ var _ = Describe("OpenShift KataConfig Controller", func() { }) }) + Context("Custom KataConfig with CheckNodeEligibility and PeerPods enabled", func() { + It("Should ignore CheckNodeEligibility when PeerPods is enabled", func() { + + kataConfig := &kataconfigurationv1.KataConfig{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "kataconfiguration.openshift.io/v1", + Kind: "KataConfig", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: name + "-with-peerpods", + }, + Spec: kataconfigurationv1.KataConfigSpec{ + CheckNodeEligibility: true, + EnablePeerPods: true, + }, + } + + By("Creating the KataConfig CR successfully") + Expect(k8sClient.Create(context.Background(), kataConfig)).Should(Succeed()) + + // Delete + By("Deleting KataConfig CR successfully") + kataConfigKey := types.NamespacedName{Name: kataConfig.Name} + Eventually(func() error { + k8sClient.Get(context.Background(), kataConfigKey, kataConfig) + return k8sClient.Delete(context.Background(), kataConfig) + }, timeout, interval).Should(Succeed()) + + By("Expecting to delete KataConfig CR successfully") + Eventually(func() error { + return k8sClient.Get(context.Background(), kataConfigKey, kataConfig) + }, timeout, interval).ShouldNot(Succeed()) + + }) + }) }) From bbf585734d993f228c9d0972ffbbf017b3d9b375 Mon Sep 17 00:00:00 2001 From: Greg Kurz Date: Thu, 13 Apr 2023 18:12:38 +0200 Subject: [PATCH 33/63] Reformat go code Most target in the makefile, e.g. 'make test' or 'make build', internally invoke 'make fmt' which reformats all the go code. Despite of that, badly formatted go code landed in the repo. This causes unrelated changes to appear in local repos during regular development. This is quite irritating for picky(?) people who don't want to push alien changes in their PRs. A long term solution would be that the gating CI catch these nits upfront. They are a variety of solutions available to developers to run 'go fmt' in their environement before pushing code. In the meantime, fix the current code base. This obviously doesn't change any behavior. Signed-off-by: Greg Kurz --- controllers/openshift_controller.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 6d3368e3..488c82be 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -41,9 +41,9 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" - labelsutil "k8s.io/kubernetes/pkg/util/labels" "k8s.io/client-go/kubernetes" "k8s.io/client-go/util/workqueue" + labelsutil "k8s.io/kubernetes/pkg/util/labels" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -707,7 +707,7 @@ func (r *KataConfigOpenShiftReconciler) getKataConfigNodeSelectorAsLabelSelector isConvergedCluster, err := r.checkConvergedCluster() if err == nil && isConvergedCluster { // master MCP cannot be customized - return &metav1.LabelSelector { MatchLabels: map[string]string{ "node-role.kubernetes.io/master": "" }} + return &metav1.LabelSelector{MatchLabels: map[string]string{"node-role.kubernetes.io/master": ""}} } nodeSelector := &metav1.LabelSelector{} @@ -741,7 +741,7 @@ func (r *KataConfigOpenShiftReconciler) getNodeSelectorAsMap() map[string]string isConvergedCluster, err := r.checkConvergedCluster() if err == nil && isConvergedCluster { // master MCP cannot be customized - return map[string]string{ "node-role.kubernetes.io/master": "" } + return map[string]string{"node-role.kubernetes.io/master": ""} } else { return map[string]string{"node-role.kubernetes.io/kata-oc": ""} } @@ -1239,7 +1239,6 @@ func (eh *McpEventHandler) Generic(event event.GenericEvent, queue workqueue.Rat log.Info("MCP generic event") } - func (r *KataConfigOpenShiftReconciler) nodeMatchesKataSelector(nodeLabels map[string]string) bool { nodeSelector, err := r.getKataConfigNodeSelectorAsSelector() @@ -1293,7 +1292,6 @@ func getStringMapDiff(oldMap, newMap map[string]string) (added, modified, remove return added, modified, removed } - type NodeEventHandler struct { reconciler *KataConfigOpenShiftReconciler } From 6577693479bc0f181442923e93e5e2c2df0fa271 Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Thu, 20 Apr 2023 05:25:32 -0400 Subject: [PATCH 34/63] Apply peerpod related MachineConfigs Peer pod enablement requires creating a new kata runtime class and providing the configuration.toml. In OpenShift we need to create MachineConfig objects to create these files. The required MachineConfig yaml files are bundled within the controller-manager image and the manager process reads the yaml and creates the required MachineConfig objects. This gives us the flexibility to keep updating the yaml as needed without hardcoding the struct in the code Fixes: #Kata-2130 Signed-off-by: Jens Freimann Signed-off-by: Pradipta Banerjee --- Dockerfile | 1 + config/peerpods/mc-40-kata-remote-config.yaml | 16 +- config/peerpods/mc-50-crio-config.yaml | 3 +- controllers/openshift_controller.go | 147 ++++++++++++++++-- controllers/utils.go | 23 +++ go.mod | 10 +- go.sum | 19 +-- 7 files changed, 169 insertions(+), 50 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1275f1b2..0a2a1514 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,6 +23,7 @@ RUN GOFLAGS="" make build FROM registry.ci.openshift.org/ocp/4.11:base WORKDIR / COPY --from=builder /workspace/bin/manager . +COPY --from=builder /workspace/config/peerpods /config/peerpods RUN useradd -r -u 499 nonroot RUN getent group nonroot || groupadd -o -g 499 nonroot diff --git a/config/peerpods/mc-40-kata-remote-config.yaml b/config/peerpods/mc-40-kata-remote-config.yaml index 5c1c25dd..16b31f05 100644 --- a/config/peerpods/mc-40-kata-remote-config.yaml +++ b/config/peerpods/mc-40-kata-remote-config.yaml @@ -1,17 +1,19 @@ +# Generated by Butane; do not edit apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: - machineconfiguration.openshift.io/role: worker + app: peerpodconfig-openshift + machineconfiguration.openshift.io/role: kata-oc name: 40-worker-kata-remote-config spec: config: ignition: - version: 2.2.0 + version: 3.2.0 storage: files: - - contents: - source: data:text/plain;charset=utf-8;base64,IyBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgojCiMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAKIwoKIyBYWFg6IFdBUk5JTkc6IHRoaXMgZmlsZSBpcyBhdXRvLWdlbmVyYXRlZC4KIyBYWFg6CiMgWFhYOiBTb3VyY2UgZmlsZTogImNvbmZpZy9jb25maWd1cmF0aW9uLXFlbXUudG9tbC5pbiIKIyBYWFg6IFByb2plY3Q6CiMgWFhYOiAgIE5hbWU6IEthdGEgQ29udGFpbmVycwojIFhYWDogICBUeXBlOiBrYXRhCgoKW2h5cGVydmlzb3IucmVtb3RlXQpyZW1vdGVfaHlwZXJ2aXNvcl9zb2NrZXQgPSAiL3J1bi9wZWVycG9kL2h5cGVydmlzb3Iuc29jayIKcmVtb3RlX2h5cGVydmlzb3JfdGltZW91dCA9IDYwMAoKCiMgRW5hYmxlIGNvbmZpZGVudGlhbCBndWVzdCBzdXBwb3J0LgojIFRvZ2dsaW5nIHRoYXQgc2V0dGluZyBtYXkgdHJpZ2dlciBkaWZmZXJlbnQgaGFyZHdhcmUgZmVhdHVyZXMsIHJhbmdpbmcKIyBmcm9tIG1lbW9yeSBlbmNyeXB0aW9uIHRvIGJvdGggbWVtb3J5IGFuZCBDUFUtc3RhdGUgZW5jcnlwdGlvbiBhbmQgaW50ZWdyaXR5LgojIFRoZSBLYXRhIENvbnRhaW5lcnMgcnVudGltZSBkeW5hbWljYWxseSBkZXRlY3RzIHRoZSBhdmFpbGFibGUgZmVhdHVyZSBzZXQgYW5kCiMgYWltcyBhdCBlbmFibGluZyB0aGUgbGFyZ2VzdCBwb3NzaWJsZSBvbmUuCiMgRGVmYXVsdCBmYWxzZQojIGNvbmZpZGVudGlhbF9ndWVzdCA9IHRydWUKCiMgRW5hYmxlIHJ1bm5pbmcgUUVNVSBWTU0gYXMgYSBub24tcm9vdCB1c2VyLgojIEJ5IGRlZmF1bHQgUUVNVSBWTU0gcnVuIGFzIHJvb3QuIFdoZW4gdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgUUVNVSBWTU0gcHJvY2VzcyBydW5zIGFzCiMgYSBub24tcm9vdCByYW5kb20gdXNlci4gU2VlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBsaW1pdGF0aW9ucyBvZiB0aGlzIG1vZGUuCiMgcm9vdGxlc3MgPSB0cnVlCgojIExpc3Qgb2YgdmFsaWQgYW5ub3RhdGlvbiBuYW1lcyBmb3IgdGhlIGh5cGVydmlzb3IKIyBFYWNoIG1lbWJlciBvZiB0aGUgbGlzdCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiwgd2hpY2ggaXMgdGhlIGJhc2UgbmFtZQojIG9mIHRoZSBhbm5vdGF0aW9uLCBlLmcuICJwYXRoIiBmb3IgaW8ua2F0YWNvbnRhaW5lcnMuY29uZmlnLmh5cGVydmlzb3IucGF0aCIKZW5hYmxlX2Fubm90YXRpb25zID0gW10KCiMgTGlzdCBvZiB2YWxpZCBhbm5vdGF0aW9ucyB2YWx1ZXMgZm9yIHRoZSBoeXBlcnZpc29yCiMgRWFjaCBtZW1iZXIgb2YgdGhlIGxpc3QgaXMgYSBwYXRoIHBhdHRlcm4gYXMgZGVzY3JpYmVkIGJ5IGdsb2IoMykuCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCBpcyBlbXB0eSAoYWxsIGFubm90YXRpb25zIHJlamVjdGVkLikKIyBZb3VyIGRpc3RyaWJ1dGlvbiByZWNvbW1lbmRzOiBbIi91c3IvYmluL3FlbXUtc3lzdGVtLXg4Nl82NCJdCnZhbGlkX2h5cGVydmlzb3JfcGF0aHMgPSBbIi91c3IvbGliZXhlYy9xZW11LWtpd2kiXQoKIyBPcHRpb25hbCBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBvcHRpb25zIHRvIHBhc3MgdG8gdGhlIGd1ZXN0IGtlcm5lbC4KIyBGb3IgZXhhbXBsZSwgdXNlIGBrZXJuZWxfcGFyYW1zID0gInZzeXNjYWxsPWVtdWxhdGUiYCBpZiB5b3UgYXJlIGhhdmluZwojIHRyb3VibGUgcnVubmluZyBwcmUtMi4xNSBnbGliYy4KIwojIFdBUk5JTkc6IC0gYW55IHBhcmFtZXRlciBzcGVjaWZpZWQgaGVyZSB3aWxsIHRha2UgcHJpb3JpdHkgb3ZlciB0aGUgZGVmYXVsdAojIHBhcmFtZXRlciB2YWx1ZSBvZiB0aGUgc2FtZSBuYW1lIHVzZWQgdG8gc3RhcnQgdGhlIHZpcnR1YWwgbWFjaGluZS4KIyBEbyBub3Qgc2V0IHZhbHVlcyBoZXJlIHVubGVzcyB5b3UgdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mIGRvaW5nIHNvIGFzIHlvdQojIG1heSBzdG9wIHRoZSB2aXJ0dWFsIG1hY2hpbmUgZnJvbSBib290aW5nLgojIFRvIHNlZSB0aGUgbGlzdCBvZiBkZWZhdWx0IHBhcmFtZXRlcnMsIGVuYWJsZSBoeXBlcnZpc29yIGRlYnVnLCBjcmVhdGUgYQojIGNvbnRhaW5lciBhbmQgbG9vayBmb3IgJ2RlZmF1bHQta2VybmVsLXBhcmFtZXRlcnMnIGxvZyBlbnRyaWVzLgprZXJuZWxfcGFyYW1zID0gImFnZW50LmxvZz1kZWJ1ZyIKCiMgUGF0aCB0byB0aGUgZmlybXdhcmUuCiMgSWYgeW91IHdhbnQgdGhhdCBxZW11IHVzZXMgdGhlIGRlZmF1bHQgZmlybXdhcmUgbGVhdmUgdGhpcyBvcHRpb24gZW1wdHkKZmlybXdhcmUgPSAiIgoKIyBNYWNoaW5lIGFjY2VsZXJhdG9ycwojIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1hY2hpbmUgYWNjZWxlcmF0b3JzIHRvIHBhc3MgdG8gdGhlIGh5cGVydmlzb3IuCiMgRm9yIGV4YW1wbGUsIGBtYWNoaW5lX2FjY2VsZXJhdG9ycyA9ICJub3NtbSxub3NtYnVzLG5vc2F0YSxub3BpdCxzdGF0aWMtcHJ0LG5vZnciYAptYWNoaW5lX2FjY2VsZXJhdG9ycz0iIgoKIyBDUFUgZmVhdHVyZXMKIyBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjcHUgZmVhdHVyZXMgdG8gcGFzcyB0byB0aGUgY3B1CiMgRm9yIGV4YW1wbGUsIGBjcHVfZmVhdHVyZXMgPSAicG11PW9mZix2bXg9b2ZmIgpjcHVfZmVhdHVyZXM9InBtdT1vZmYiCgojIERlZmF1bHQgbnVtYmVyIG9mIHZDUFVzIHBlciBTQi9WTToKIyB1bnNwZWNpZmllZCBvciAwICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byAxCiMgPCAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLT4gd2lsbCBiZSBzZXQgdG8gdGhlIGFjdHVhbCBudW1iZXIgb2YgcGh5c2ljYWwgY29yZXMKIyA+IDAgPD0gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojID4gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzCmRlZmF1bHRfdmNwdXMgPSAxCgojIERlZmF1bHQgbWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIFNCL1ZNOgojIHVuc3BlY2lmaWVkIG9yID09IDAgICAgICAgICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIG9yIHRvIHRoZSBtYXhpbXVtIG51bWJlcgojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaWYgdGhhdCBudW1iZXIgaXMgZXhjZWVkZWQKIyA+IDAgPD0gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojID4gbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBoeXNpY2FsIGNvcmVzIG9yIHRvIHRoZSBtYXhpbXVtIG51bWJlcgojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaWYgdGhhdCBudW1iZXIgaXMgZXhjZWVkZWQKIyBXQVJOSU5HOiBEZXBlbmRpbmcgb2YgdGhlIGFyY2hpdGVjdHVyZSwgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZDUFVzIHN1cHBvcnRlZCBieSBLVk0gaXMgdXNlZCB3aGVuCiMgdGhlIGFjdHVhbCBudW1iZXIgb2YgcGh5c2ljYWwgY29yZXMgaXMgZ3JlYXRlciB0aGFuIGl0LgojIFdBUk5JTkc6IEJlIGF3YXJlIHRoYXQgdGhpcyB2YWx1ZSBpbXBhY3RzIHRoZSB2aXJ0dWFsIG1hY2hpbmUncyBtZW1vcnkgZm9vdHByaW50IGFuZCBDUFUKIyB0aGUgaG90cGx1ZyBmdW5jdGlvbmFsaXR5LiBGb3IgZXhhbXBsZSwgYGRlZmF1bHRfbWF4dmNwdXMgPSAyNDBgIHNwZWNpZmllcyB0aGF0IHVudGlsIDI0MCB2Q1BVcwojIGNhbiBiZSBhZGRlZCB0byBhIFNCL1ZNLCBidXQgdGhlIG1lbW9yeSBmb290cHJpbnQgd2lsbCBiZSBiaWcuIEFub3RoZXIgZXhhbXBsZSwgd2l0aAojIGBkZWZhdWx0X21heHZjcHVzID0gOGAgdGhlIG1lbW9yeSBmb290cHJpbnQgd2lsbCBiZSBzbWFsbCwgYnV0IDggd2lsbCBiZSB0aGUgbWF4aW11bSBudW1iZXIgb2YKIyB2Q1BVcyBzdXBwb3J0ZWQgYnkgdGhlIFNCL1ZNLiBJbiBnZW5lcmFsLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgZG8gbm90IGVkaXQgdGhpcyB2YXJpYWJsZSwKIyB1bmxlc3MgeW91IGtub3cgd2hhdCBhcmUgeW91IGRvaW5nLgojIE5PVElDRTogb24gYXJtIHBsYXRmb3JtIHdpdGggZ2ljdjIgaW50ZXJydXB0IGNvbnRyb2xsZXIsIHNldCBpdCB0byA4LgpkZWZhdWx0X21heHZjcHVzID0gMAoKIyBCcmlkZ2VzIGNhbiBiZSB1c2VkIHRvIGhvdCBwbHVnIGRldmljZXMuCiMgTGltaXRhdGlvbnM6CiMgKiBDdXJyZW50bHkgb25seSBwY2kgYnJpZGdlcyBhcmUgc3VwcG9ydGVkCiMgKiBVbnRpbCAzMCBkZXZpY2VzIHBlciBicmlkZ2UgY2FuIGJlIGhvdCBwbHVnZ2VkLgojICogVW50aWwgNSBQQ0kgYnJpZGdlcyBjYW4gYmUgY29sZCBwbHVnZ2VkIHBlciBWTS4KIyAgIFRoaXMgbGltaXRhdGlvbiBjb3VsZCBiZSBhIGJ1ZyBpbiBxZW11IG9yIGluIHRoZSBrZXJuZWwKIyBEZWZhdWx0IG51bWJlciBvZiBicmlkZ2VzIHBlciBTQi9WTToKIyB1bnNwZWNpZmllZCBvciAwICAgLS0+IHdpbGwgYmUgc2V0IHRvIDEKIyA+IDEgPD0gNSAgICAgICAgICAgLS0+IHdpbGwgYmUgc2V0IHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyCiMgPiA1ICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byA1CmRlZmF1bHRfYnJpZGdlcyA9IDEKCiMgRGVmYXVsdCBtZW1vcnkgc2l6ZSBpbiBNaUIgZm9yIFNCL1ZNLgojIElmIHVuc3BlY2lmaWVkIHRoZW4gaXQgd2lsbCBiZSBzZXQgMjA0OCBNaUIuCmRlZmF1bHRfbWVtb3J5ID0gMjA0OAojCiMgRGVmYXVsdCBtZW1vcnkgc2xvdHMgcGVyIFNCL1ZNLgojIElmIHVuc3BlY2lmaWVkIHRoZW4gaXQgd2lsbCBiZSBzZXQgMTAuCiMgVGhpcyBpcyB3aWxsIGRldGVybWluZSB0aGUgdGltZXMgdGhhdCBtZW1vcnkgd2lsbCBiZSBob3RhZGRlZCB0byBzYW5kYm94L1ZNLgojbWVtb3J5X3Nsb3RzID0gMTAKCiMgVGhlIHNpemUgaW4gTWlCIHdpbGwgYmUgcGx1c2VkIHRvIG1heCBtZW1vcnkgb2YgaHlwZXJ2aXNvci4KIyBJdCBpcyB0aGUgbWVtb3J5IGFkZHJlc3Mgc3BhY2UgZm9yIHRoZSBOVkRJTU0gZGV2aWUuCiMgSWYgc2V0IGJsb2NrIHN0b3JhZ2UgZHJpdmVyIChibG9ja19kZXZpY2VfZHJpdmVyKSB0byAibnZkaW1tIiwKIyBzaG91bGQgc2V0IG1lbW9yeV9vZmZzZXQgdG8gdGhlIHNpemUgb2YgYmxvY2sgZGV2aWNlLgojIERlZmF1bHQgMAojbWVtb3J5X29mZnNldCA9IDAKCiMgU3BlY2lmaWVzIHZpcnRpby1tZW0gd2lsbCBiZSBlbmFibGVkIG9yIG5vdC4KIyBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgb3B0aW9uIHNob3VsZCBiZSB1c2VkIHdpdGggdGhlIGNvbW1hbmQKIyAiZWNobyAxID4gL3Byb2Mvc3lzL3ZtL292ZXJjb21taXRfbWVtb3J5Ii4KIyBEZWZhdWx0IGZhbHNlCiNlbmFibGVfdmlydGlvX21lbSA9IHRydWUKCiMgRGlzYWJsZSBibG9jayBkZXZpY2UgZnJvbSBiZWluZyB1c2VkIGZvciBhIGNvbnRhaW5lcidzIHJvb3Rmcy4KIyBJbiBjYXNlIG9mIGEgc3RvcmFnZSBkcml2ZXIgbGlrZSBkZXZpY2VtYXBwZXIgd2hlcmUgYSBjb250YWluZXIncwojIHJvb3QgZmlsZSBzeXN0ZW0gaXMgYmFja2VkIGJ5IGEgYmxvY2sgZGV2aWNlLCB0aGUgYmxvY2sgZGV2aWNlIGlzIHBhc3NlZAojIGRpcmVjdGx5IHRvIHRoZSBoeXBlcnZpc29yIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgojIFRoaXMgZmxhZyBwcmV2ZW50cyB0aGUgYmxvY2sgZGV2aWNlIGZyb20gYmVpbmcgcGFzc2VkIHRvIHRoZSBoeXBlcnZpc29yLAojIDlwZnMgaXMgdXNlZCBpbnN0ZWFkIHRvIHBhc3MgdGhlIHJvb3Rmcy4KZGlzYWJsZV9ibG9ja19kZXZpY2VfdXNlID0gZmFsc2UKCiMgU2hhcmVkIGZpbGUgc3lzdGVtIHR5cGU6CiMgICAtIHZpcnRpby1mcyAoZGVmYXVsdCkKIyAgIC0gdmlydGlvLTlwCnNoYXJlZF9mcyA9ICJ2aXJ0aW8tZnMiCgojIFBhdGggdG8gdmhvc3QtdXNlci1mcyBkYWVtb24uCnZpcnRpb19mc19kYWVtb24gPSAiL3Vzci9saWJleGVjL3ZpcnRpb2ZzZCIKCiMgTGlzdCBvZiB2YWxpZCBhbm5vdGF0aW9ucyB2YWx1ZXMgZm9yIHRoZSB2aXJ0aW9mcyBkYWVtb24KIyBUaGUgZGVmYXVsdCBpZiBub3Qgc2V0IGlzIGVtcHR5IChhbGwgYW5ub3RhdGlvbnMgcmVqZWN0ZWQuKQojIFlvdXIgZGlzdHJpYnV0aW9uIHJlY29tbWVuZHM6IFsiL3Vzci9saWJleGVjL2thdGEtcWVtdS92aXJ0aW9mc2QiXQp2YWxpZF92aXJ0aW9fZnNfZGFlbW9uX3BhdGhzID0gWyIvdXNyL2xpYmV4ZWMvdmlydGlvZnNkIl0KCiMgRGVmYXVsdCBzaXplIG9mIERBWCBjYWNoZSBpbiBNaUIKdmlydGlvX2ZzX2NhY2hlX3NpemUgPSAwCgojIEV4dHJhIGFyZ3MgZm9yIHZpcnRpb2ZzZCBkYWVtb24KIwojIEZvcm1hdCBleGFtcGxlOgojICAgWyItbyIsICJhcmcxPXh4eCxhcmcyIiwgIi1vIiwgImhlbGxvIHdvcmxkIiwgIi0tYXJnMz15eXkiXQojCiMgc2VlIGB2aXJ0aW9mc2QgLWhgIGZvciBwb3NzaWJsZSBvcHRpb25zLgp2aXJ0aW9fZnNfZXh0cmFfYXJncyA9IFsiLS10aHJlYWQtcG9vbC1zaXplPTEiXQoKIyBDYWNoZSBtb2RlOgojCiMgIC0gbm9uZQojICAgIE1ldGFkYXRhLCBkYXRhLCBhbmQgcGF0aG5hbWUgbG9va3VwIGFyZSBub3QgY2FjaGVkIGluIGd1ZXN0LiBUaGV5IGFyZQojICAgIGFsd2F5cyBmZXRjaGVkIGZyb20gaG9zdCBhbmQgYW55IGNoYW5nZXMgYXJlIGltbWVkaWF0ZWx5IHB1c2hlZCB0byBob3N0LgojCiMgIC0gYXV0bwojICAgIE1ldGFkYXRhIGFuZCBwYXRobmFtZSBsb29rdXAgY2FjaGUgZXhwaXJlcyBhZnRlciBhIGNvbmZpZ3VyZWQgYW1vdW50IG9mCiMgICAgdGltZSAoZGVmYXVsdCBpcyAxIHNlY29uZCkuIERhdGEgaXMgY2FjaGVkIHdoaWxlIHRoZSBmaWxlIGlzIG9wZW4gKGNsb3NlCiMgICAgdG8gb3BlbiBjb25zaXN0ZW5jeSkuCiMKIyAgLSBhbHdheXMKIyAgICBNZXRhZGF0YSwgZGF0YSwgYW5kIHBhdGhuYW1lIGxvb2t1cCBhcmUgY2FjaGVkIGluIGd1ZXN0IGFuZCBuZXZlciBleHBpcmUuCnZpcnRpb19mc19jYWNoZSA9ICJhdXRvIgoKIyBCbG9jayBzdG9yYWdlIGRyaXZlciB0byBiZSB1c2VkIGZvciB0aGUgaHlwZXJ2aXNvciBpbiBjYXNlIHRoZSBjb250YWluZXIKIyByb290ZnMgaXMgYmFja2VkIGJ5IGEgYmxvY2sgZGV2aWNlLiBUaGlzIGlzIHZpcnRpby1zY3NpLCB2aXJ0aW8tYmxrCiMgb3IgbnZkaW1tLgpibG9ja19kZXZpY2VfZHJpdmVyID0gInZpcnRpby1zY3NpIgoKIyBTcGVjaWZpZXMgY2FjaGUtcmVsYXRlZCBvcHRpb25zIHdpbGwgYmUgc2V0IHRvIGJsb2NrIGRldmljZXMgb3Igbm90LgojIERlZmF1bHQgZmFsc2UKI2Jsb2NrX2RldmljZV9jYWNoZV9zZXQgPSB0cnVlCgojIFNwZWNpZmllcyBjYWNoZS1yZWxhdGVkIG9wdGlvbnMgZm9yIGJsb2NrIGRldmljZXMuCiMgRGVub3RlcyB3aGV0aGVyIHVzZSBvZiBPX0RJUkVDVCAoYnlwYXNzIHRoZSBob3N0IHBhZ2UgY2FjaGUpIGlzIGVuYWJsZWQuCiMgRGVmYXVsdCBmYWxzZQojYmxvY2tfZGV2aWNlX2NhY2hlX2RpcmVjdCA9IHRydWUKCiMgU3BlY2lmaWVzIGNhY2hlLXJlbGF0ZWQgb3B0aW9ucyBmb3IgYmxvY2sgZGV2aWNlcy4KIyBEZW5vdGVzIHdoZXRoZXIgZmx1c2ggcmVxdWVzdHMgZm9yIHRoZSBkZXZpY2UgYXJlIGlnbm9yZWQuCiMgRGVmYXVsdCBmYWxzZQojYmxvY2tfZGV2aWNlX2NhY2hlX25vZmx1c2ggPSB0cnVlCgojIEVuYWJsZSBpb3RocmVhZHMgKGRhdGEtcGxhbmUpIHRvIGJlIHVzZWQuIFRoaXMgY2F1c2VzIElPIHRvIGJlCiMgaGFuZGxlZCBpbiBhIHNlcGFyYXRlIElPIHRocmVhZC4gVGhpcyBpcyBjdXJyZW50bHkgb25seSBpbXBsZW1lbnRlZAojIGZvciBTQ1NJLgojCmVuYWJsZV9pb3RocmVhZHMgPSBmYWxzZQoKIyBFbmFibGUgcHJlIGFsbG9jYXRpb24gb2YgVk0gUkFNLCBkZWZhdWx0IGZhbHNlCiMgRW5hYmxpbmcgdGhpcyB3aWxsIHJlc3VsdCBpbiBsb3dlciBjb250YWluZXIgZGVuc2l0eQojIGFzIGFsbCBvZiB0aGUgbWVtb3J5IHdpbGwgYmUgYWxsb2NhdGVkIGFuZCBsb2NrZWQKIyBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHJlc2VydmUgYWxsIHRoZSBtZW1vcnkKIyB1cGZyb250IG9yIGluIHRoZSBjYXNlcyB3aGVyZSB5b3Ugd2FudCBtZW1vcnkgbGF0ZW5jaWVzCiMgdG8gYmUgdmVyeSBwcmVkaWN0YWJsZQojIERlZmF1bHQgZmFsc2UKI2VuYWJsZV9tZW1fcHJlYWxsb2MgPSB0cnVlCgojIEVuYWJsZSBodWdlIHBhZ2VzIGZvciBWTSBSQU0sIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBWTSBtZW1vcnkKIyBiZWluZyBhbGxvY2F0ZWQgdXNpbmcgaHVnZSBwYWdlcy4KIyBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB3YW50IHRvIHVzZSB2aG9zdC11c2VyIG5ldHdvcmsKIyBzdGFja3Mgd2l0aGluIHRoZSBjb250YWluZXIuIFRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5CiMgcmVzdWx0IGluIG1lbW9yeSBwcmUgYWxsb2NhdGlvbgojZW5hYmxlX2h1Z2VwYWdlcyA9IHRydWUKCiMgRW5hYmxlIHZob3N0LXVzZXIgc3RvcmFnZSBkZXZpY2UsIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHNvbWUgTGludXggcmVzZXJ2ZWQgYmxvY2sgdHlwZQojIG1ham9yIHJhbmdlIDI0MC0yNTQgYmVpbmcgY2hvc2VuIHRvIHJlcHJlc2VudCB2aG9zdC11c2VyIGRldmljZXMuCmVuYWJsZV92aG9zdF91c2VyX3N0b3JlID0gZmFsc2UKCiMgVGhlIGJhc2UgZGlyZWN0b3J5IHNwZWNpZmljYWxseSB1c2VkIGZvciB2aG9zdC11c2VyIGRldmljZXMuCiMgSXRzIHN1Yi1wYXRoICJibG9jayIgaXMgdXNlZCBmb3IgYmxvY2sgZGV2aWNlczsgImJsb2NrL3NvY2tldHMiIGlzCiMgd2hlcmUgd2UgZXhwZWN0IHZob3N0LXVzZXIgc29ja2V0cyB0byBsaXZlOyAiYmxvY2svZGV2aWNlcyIgaXMgd2hlcmUKIyBzaW11bGF0ZWQgYmxvY2sgZGV2aWNlIG5vZGVzIGZvciB2aG9zdC11c2VyIGRldmljZXMgdG8gbGl2ZS4Kdmhvc3RfdXNlcl9zdG9yZV9wYXRoID0gIi92YXIvcnVuL2thdGEtY29udGFpbmVycy92aG9zdC11c2VyIgoKIyBFbmFibGUgdklPTU1VLCBkZWZhdWx0IGZhbHNlCiMgRW5hYmxpbmcgdGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgVk0gaGF2aW5nIGEgdklPTU1VIGRldmljZQojIFRoaXMgd2lsbCBhbHNvIGFkZCB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gdGhlIGtlcm5lbCdzCiMgY29tbWFuZCBsaW5lOiBpbnRlbF9pb21tdT1vbixpb21tdT1wdAojZW5hYmxlX2lvbW11ID0gdHJ1ZQoKIyBFbmFibGUgSU9NTVVfUExBVEZPUk0sIGRlZmF1bHQgZmFsc2UKIyBFbmFibGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBWTSBkZXZpY2UgaGF2aW5nIGlvbW11X3BsYXRmb3JtPW9uIHNldAojZW5hYmxlX2lvbW11X3BsYXRmb3JtID0gdHJ1ZQoKIyBMaXN0IG9mIHZhbGlkIGFubm90YXRpb25zIHZhbHVlcyBmb3IgdGhlIHZob3N0IHVzZXIgc3RvcmUgcGF0aAojIFRoZSBkZWZhdWx0IGlmIG5vdCBzZXQgaXMgZW1wdHkgKGFsbCBhbm5vdGF0aW9ucyByZWplY3RlZC4pCiMgWW91ciBkaXN0cmlidXRpb24gcmVjb21tZW5kczogWyIvdmFyL3J1bi9rYXRhLWNvbnRhaW5lcnMvdmhvc3QtdXNlciJdCnZhbGlkX3Zob3N0X3VzZXJfc3RvcmVfcGF0aHMgPSBbIi92YXIvcnVuL2thdGEtY29udGFpbmVycy92aG9zdC11c2VyIl0KCiMgRW5hYmxlIGZpbGUgYmFzZWQgZ3Vlc3QgbWVtb3J5IHN1cHBvcnQuIFRoZSBkZWZhdWx0IGlzIGFuIGVtcHR5IHN0cmluZyB3aGljaAojIHdpbGwgZGlzYWJsZSB0aGlzIGZlYXR1cmUuIEluIHRoZSBjYXNlIG9mIHZpcnRpby1mcywgdGhpcyBpcyBlbmFibGVkCiMgYXV0b21hdGljYWxseSBhbmQgJy9kZXYvc2htJyBpcyB1c2VkIGFzIHRoZSBiYWNraW5nIGZvbGRlci4KIyBUaGlzIG9wdGlvbiB3aWxsIGJlIGlnbm9yZWQgaWYgVk0gdGVtcGxhdGluZyBpcyBlbmFibGVkLgojZmlsZV9tZW1fYmFja2VuZCA9ICIiCgojIExpc3Qgb2YgdmFsaWQgYW5ub3RhdGlvbnMgdmFsdWVzIGZvciB0aGUgZmlsZV9tZW1fYmFja2VuZCBhbm5vdGF0aW9uCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCBpcyBlbXB0eSAoYWxsIGFubm90YXRpb25zIHJlamVjdGVkLikKIyBZb3VyIGRpc3RyaWJ1dGlvbiByZWNvbW1lbmRzOiBbIiJdCnZhbGlkX2ZpbGVfbWVtX2JhY2tlbmRzID0gWyIiXQoKIyBFbmFibGUgc3dhcCBvZiB2bSBtZW1vcnkuIERlZmF1bHQgZmFsc2UuCiMgVGhlIGJlaGF2aW91ciBpcyB1bmRlZmluZWQgaWYgbWVtX3ByZWFsbG9jIGlzIGFsc28gc2V0IHRvIHRydWUKI2VuYWJsZV9zd2FwID0gdHJ1ZQoKIyAtcGZsYXNoIGNhbiBhZGQgaW1hZ2UgZmlsZSB0byBWTS4gVGhlIGFyZ3VtZW50cyBvZiBpdCBzaG91bGQgYmUgaW4gZm9ybWF0CiMgb2YgWyIvcGF0aC90by9mbGFzaDAuaW1nIiwgIi9wYXRoL3RvL2ZsYXNoMS5pbWciXQpwZmxhc2hlcyA9IFtdCgojIFRoaXMgb3B0aW9uIGNoYW5nZXMgdGhlIGRlZmF1bHQgaHlwZXJ2aXNvciBhbmQga2VybmVsIHBhcmFtZXRlcnMKIyB0byBlbmFibGUgZGVidWcgb3V0cHV0IHdoZXJlIGF2YWlsYWJsZS4KIwojIERlZmF1bHQgZmFsc2UKZW5hYmxlX2RlYnVnID0gdHJ1ZQoKIyBEaXNhYmxlIHRoZSBjdXN0b21pemF0aW9ucyBkb25lIGluIHRoZSBydW50aW1lIHdoZW4gaXQgZGV0ZWN0cwojIHRoYXQgaXQgaXMgcnVubmluZyBvbiB0b3AgYSBWTU0uIFRoaXMgd2lsbCByZXN1bHQgaW4gdGhlIHJ1bnRpbWUKIyBiZWhhdmluZyBhcyBpdCB3b3VsZCB3aGVuIHJ1bm5pbmcgb24gYmFyZSBtZXRhbC4KIwojZGlzYWJsZV9uZXN0aW5nX2NoZWNrcyA9IHRydWUKCiMgVGhpcyBpcyB0aGUgbXNpemUgdXNlZCBmb3IgOXAgc2hhcmVzLiBJdCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzCiMgdXNlZCBmb3IgOXAgcGFja2V0IHBheWxvYWQuCiNtc2l6ZV85cCA9IDgxOTIKCiMgSWYgZmFsc2UgYW5kIG52ZGltbSBpcyBzdXBwb3J0ZWQsIHVzZSBudmRpbW0gZGV2aWNlIHRvIHBsdWcgZ3Vlc3QgaW1hZ2UuCiMgT3RoZXJ3aXNlIHZpcnRpby1ibG9jayBkZXZpY2UgaXMgdXNlZC4KIyBEZWZhdWx0IGlzIGZhbHNlCiNkaXNhYmxlX2ltYWdlX252ZGltbSA9IHRydWUKCiMgVkZJTyBkZXZpY2VzIGFyZSBob3RwbHVnZ2VkIG9uIGEgYnJpZGdlIGJ5IGRlZmF1bHQuCiMgRW5hYmxlIGhvdHBsdWdnaW5nIG9uIHJvb3QgYnVzLiBUaGlzIG1heSBiZSByZXF1aXJlZCBmb3IgZGV2aWNlcyB3aXRoCiMgYSBsYXJnZSBQQ0kgYmFyLCBhcyB0aGlzIGlzIGEgY3VycmVudCBsaW1pdGF0aW9uIHdpdGggaG90cGx1Z2dpbmcgb24KIyBhIGJyaWRnZS4KIyBEZWZhdWx0IGZhbHNlCiNob3RwbHVnX3ZmaW9fb25fcm9vdF9idXMgPSB0cnVlCgojIEJlZm9yZSBob3QgcGx1Z2dpbmcgYSBQQ0llIGRldmljZSwgeW91IG5lZWQgdG8gYWRkIGEgcGNpZV9yb290X3BvcnQgZGV2aWNlLgojIFVzZSB0aGlzIHBhcmFtZXRlciB3aGVuIHVzaW5nIHNvbWUgbGFyZ2UgUENJIGJhciBkZXZpY2VzLCBzdWNoIGFzIE52aWRpYSBHUFUKIyBUaGUgdmFsdWUgbWVhbnMgdGhlIG51bWJlciBvZiBwY2llX3Jvb3RfcG9ydAojIFRoaXMgdmFsdWUgaXMgdmFsaWQgd2hlbiBob3RwbHVnX3ZmaW9fb25fcm9vdF9idXMgaXMgdHJ1ZSBhbmQgbWFjaGluZV90eXBlIGlzICJxMzUiCiMgRGVmYXVsdCAwCiNwY2llX3Jvb3RfcG9ydCA9IDIKCiMgSWYgdmhvc3QtbmV0IGJhY2tlbmQgZm9yIHZpcnRpby1uZXQgaXMgbm90IGRlc2lyZWQsIHNldCB0byB0cnVlLiBEZWZhdWx0IGlzIGZhbHNlLCB3aGljaCB0cmFkZXMgb2ZmCiMgc2VjdXJpdHkgKHZob3N0LW5ldCBydW5zIHJpbmcwKSBmb3IgbmV0d29yayBJL08gcGVyZm9ybWFuY2UuCiNkaXNhYmxlX3Zob3N0X25ldCA9IHRydWUKCiMKIyBEZWZhdWx0IGVudHJvcHkgc291cmNlLgojIFRoZSBwYXRoIHRvIGEgaG9zdCBzb3VyY2Ugb2YgZW50cm9weSAoaW5jbHVkaW5nIGEgcmVhbCBoYXJkd2FyZSBSTkcpCiMgL2Rldi91cmFuZG9tIGFuZCAvZGV2L3JhbmRvbSBhcmUgdHdvIG1haW4gb3B0aW9ucy4KIyBCZSBhd2FyZSB0aGF0IC9kZXYvcmFuZG9tIGlzIGEgYmxvY2tpbmcgc291cmNlIG9mIGVudHJvcHkuICBJZiB0aGUgaG9zdAojIHJ1bnMgb3V0IG9mIGVudHJvcHksIHRoZSBWTXMgYm9vdCB0aW1lIHdpbGwgaW5jcmVhc2UgbGVhZGluZyB0byBnZXQgc3RhcnR1cAojIHRpbWVvdXRzLgojIFRoZSBzb3VyY2Ugb2YgZW50cm9weSAvZGV2L3VyYW5kb20gaXMgbm9uLWJsb2NraW5nIGFuZCBwcm92aWRlcyBhCiMgZ2VuZXJhbGx5IGFjY2VwdGFibGUgc291cmNlIG9mIGVudHJvcHkuIEl0IHNob3VsZCB3b3JrIHdlbGwgZm9yIHByZXR0eSBtdWNoCiMgYWxsIHByYWN0aWNhbCBwdXJwb3Nlcy4KI2VudHJvcHlfc291cmNlPSAiL2Rldi91cmFuZG9tIgoKIyBMaXN0IG9mIHZhbGlkIGFubm90YXRpb25zIHZhbHVlcyBmb3IgZW50cm9weV9zb3VyY2UKIyBUaGUgZGVmYXVsdCBpZiBub3Qgc2V0IGlzIGVtcHR5IChhbGwgYW5ub3RhdGlvbnMgcmVqZWN0ZWQuKQojIFlvdXIgZGlzdHJpYnV0aW9uIHJlY29tbWVuZHM6IFsiL2Rldi91cmFuZG9tIiwiL2Rldi9yYW5kb20iLCIiXQp2YWxpZF9lbnRyb3B5X3NvdXJjZXMgPSBbIi9kZXYvdXJhbmRvbSIsIi9kZXYvcmFuZG9tIiwiIl0KCiMgUGF0aCB0byBPQ0kgaG9vayBiaW5hcmllcyBpbiB0aGUgKmd1ZXN0IHJvb3RmcyouCiMgVGhpcyBkb2VzIG5vdCBhZmZlY3QgaG9zdC1zaWRlIGhvb2tzIHdoaWNoIG11c3QgaW5zdGVhZCBiZSBhZGRlZCB0bwojIHRoZSBPQ0kgc3BlYyBwYXNzZWQgdG8gdGhlIHJ1bnRpbWUuCiMKIyBZb3UgY2FuIGNyZWF0ZSBhIHJvb3RmcyB3aXRoIGhvb2tzIGJ5IGN1c3RvbWl6aW5nIHRoZSBvc2J1aWxkZXIgc2NyaXB0czoKIyBodHRwczovL2dpdGh1Yi5jb20va2F0YS1jb250YWluZXJzL2thdGEtY29udGFpbmVycy90cmVlL21haW4vdG9vbHMvb3NidWlsZGVyCiMKIyBIb29rcyBtdXN0IGJlIHN0b3JlZCBpbiBhIHN1YmRpcmVjdG9yeSBvZiBndWVzdF9ob29rX3BhdGggYWNjb3JkaW5nIHRvIHRoZWlyCiMgaG9vayB0eXBlLCBpLmUuICJndWVzdF9ob29rX3BhdGgve3ByZXN0YXJ0LHBvc3RzdGFydCxwb3N0c3RvcH0iLgojIFRoZSBhZ2VudCB3aWxsIHNjYW4gdGhlc2UgZGlyZWN0b3JpZXMgZm9yIGV4ZWN1dGFibGUgZmlsZXMgYW5kIGFkZCB0aGVtLCBpbgojIGxleGljb2dyYXBoaWNhbCBvcmRlciwgdG8gdGhlIGxpZmVjeWNsZSBvZiB0aGUgZ3Vlc3QgY29udGFpbmVyLgojIEhvb2tzIGFyZSBleGVjdXRlZCBpbiB0aGUgcnVudGltZSBuYW1lc3BhY2Ugb2YgdGhlIGd1ZXN0LiBTZWUgdGhlIG9mZmljaWFsIGRvY3VtZW50YXRpb246CiMgaHR0cHM6Ly9naXRodWIuY29tL29wZW5jb250YWluZXJzL3J1bnRpbWUtc3BlYy9ibG9iL3YxLjAuMS9jb25maWcubWQjcG9zaXgtcGxhdGZvcm0taG9va3MKIyBXYXJuaW5ncyB3aWxsIGJlIGxvZ2dlZCBpZiBhbnkgZXJyb3IgaXMgZW5jb3VudGVyZWQgd2hpbGUgc2Nhbm5pbmcgZm9yIGhvb2tzLAojIGJ1dCBpdCB3aWxsIG5vdCBhYm9ydCBjb250YWluZXIgZXhlY3V0aW9uLgojZ3Vlc3RfaG9va19wYXRoID0gIi91c3Ivc2hhcmUvb2NpL2hvb2tzIgojCiMgVXNlIHJ4IFJhdGUgTGltaXRlciB0byBjb250cm9sIG5ldHdvcmsgSS9PIGluYm91bmQgYmFuZHdpZHRoKHNpemUgaW4gYml0cy9zZWMgZm9yIFNCL1ZNKS4KIyBJbiBRZW11LCB3ZSB1c2UgY2xhc3NmdWwgcWRpc2NzIEhUQihIaWVyYXJjaHkgVG9rZW4gQnVja2V0KSB0byBkaXNjaXBsaW5lIHRyYWZmaWMuCiMgRGVmYXVsdCAwLXNpemVkIHZhbHVlIG1lYW5zIHVubGltaXRlZCByYXRlLgojcnhfcmF0ZV9saW1pdGVyX21heF9yYXRlID0gMAojIFVzZSB0eCBSYXRlIExpbWl0ZXIgdG8gY29udHJvbCBuZXR3b3JrIEkvTyBvdXRib3VuZCBiYW5kd2lkdGgoc2l6ZSBpbiBiaXRzL3NlYyBmb3IgU0IvVk0pLgojIEluIFFlbXUsIHdlIHVzZSBjbGFzc2Z1bCBxZGlzY3MgSFRCKEhpZXJhcmNoeSBUb2tlbiBCdWNrZXQpIGFuZCBpZmIoSW50ZXJtZWRpYXRlIEZ1bmN0aW9uYWwgQmxvY2spCiMgdG8gZGlzY2lwbGluZSB0cmFmZmljLgojIERlZmF1bHQgMC1zaXplZCB2YWx1ZSBtZWFucyB1bmxpbWl0ZWQgcmF0ZS4KI3R4X3JhdGVfbGltaXRlcl9tYXhfcmF0ZSA9IDAKCiMgU2V0IHdoZXJlIHRvIHNhdmUgdGhlIGd1ZXN0IG1lbW9yeSBkdW1wIGZpbGUuCiMgSWYgc2V0LCB3aGVuIEdVRVNUX1BBTklDS0VEIGV2ZW50IG9jY3VycmVkLAojIGd1ZXN0IG1lbWVvcnkgd2lsbCBiZSBkdW1wZWQgdG8gaG9zdCBmaWxlc3lzdGVtIHVuZGVyIGd1ZXN0X21lbW9yeV9kdW1wX3BhdGgsCiMgVGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgaWYgaXQgZG9lcyBub3QgZXhpc3QuCiMKIyBUaGUgZHVtcGVkIGZpbGUoYWxzbyBjYWxsZWQgdm1jb3JlKSBjYW4gYmUgcHJvY2Vzc2VkIHdpdGggY3Jhc2ggb3IgZ2RiLgojCiMgV0FSTklORzoKIyAgIER1bXAgZ3Vlc3TigJlzIG1lbW9yeSBjYW4gdGFrZSB2ZXJ5IGxvbmcgZGVwZW5kaW5nIG9uIHRoZSBhbW91bnQgb2YgZ3Vlc3QgbWVtb3J5CiMgICBhbmQgdXNlIG11Y2ggZGlzayBzcGFjZS4KI2d1ZXN0X21lbW9yeV9kdW1wX3BhdGg9Ii92YXIvY3Jhc2gva2F0YSIKCiMgSWYgZW5hYmxlIHBhZ2luZy4KIyBCYXNpY2FsbHksIGlmIHlvdSB3YW50IHRvIHVzZSAiZ2RiIiByYXRoZXIgdGhhbiAiY3Jhc2giLAojIG9yIG5lZWQgdGhlIGd1ZXN0LXZpcnR1YWwgYWRkcmVzc2VzIGluIHRoZSBFTEYgdm1jb3JlLAojIHRoZW4geW91IHNob3VsZCBlbmFibGUgcGFnaW5nLgojCiMgU2VlOiBodHRwczovL3d3dy5xZW11Lm9yZy9kb2NzL21hc3Rlci9xZW11LXFtcC1yZWYuaHRtbCNEdW1wLWd1ZXN0LW1lbW9yeSBmb3IgZGV0YWlscwojZ3Vlc3RfbWVtb3J5X2R1bXBfcGFnaW5nPWZhbHNlCgojIEVuYWJsZSBzd2FwIGluIHRoZSBndWVzdC4gRGVmYXVsdCBmYWxzZS4KIyBXaGVuIGVuYWJsZV9ndWVzdF9zd2FwIGlzIGVuYWJsZWQsIGluc2VydCBhIHJhdyBmaWxlIHRvIHRoZSBndWVzdCBhcyB0aGUgc3dhcCBkZXZpY2UKIyBpZiB0aGUgc3dhcHBpbmVzcyBvZiBhIGNvbnRhaW5lciAoc2V0IGJ5IGFubm90YXRpb24gImlvLmthdGFjb250YWluZXJzLmNvbnRhaW5lci5yZXNvdXJjZS5zd2FwcGluZXNzIikKIyBpcyBiaWdnZXIgdGhhbiAwLgojIFRoZSBzaXplIG9mIHRoZSBzd2FwIGRldmljZSBzaG91bGQgYmUKIyBzd2FwX2luX2J5dGVzIChzZXQgYnkgYW5ub3RhdGlvbiAiaW8ua2F0YWNvbnRhaW5lcnMuY29udGFpbmVyLnJlc291cmNlLnN3YXBfaW5fYnl0ZXMiKSAtIG1lbW9yeV9saW1pdF9pbl9ieXRlcy4KIyBJZiBzd2FwX2luX2J5dGVzIGlzIG5vdCBzZXQsIHRoZSBzaXplIHNob3VsZCBiZSBtZW1vcnlfbGltaXRfaW5fYnl0ZXMuCiMgSWYgc3dhcF9pbl9ieXRlcyBhbmQgbWVtb3J5X2xpbWl0X2luX2J5dGVzIGlzIG5vdCBzZXQsIHRoZSBzaXplIHNob3VsZAojIGJlIGRlZmF1bHRfbWVtb3J5LgojZW5hYmxlX2d1ZXN0X3N3YXAgPSB0cnVlCgpbZmFjdG9yeV0KIyBWTSB0ZW1wbGF0aW5nIHN1cHBvcnQuIE9uY2UgZW5hYmxlZCwgbmV3IFZNcyBhcmUgY3JlYXRlZCBmcm9tIHRlbXBsYXRlCiMgdXNpbmcgdm0gY2xvbmluZy4gVGhleSB3aWxsIHNoYXJlIHRoZSBzYW1lIGluaXRpYWwga2VybmVsLCBpbml0cmFtZnMgYW5kCiMgYWdlbnQgbWVtb3J5IGJ5IG1hcHBpbmcgaXQgcmVhZG9ubHkuIEl0IGhlbHBzIHNwZWVkaW5nIHVwIG5ldyBjb250YWluZXIKIyBjcmVhdGlvbiBhbmQgc2F2ZXMgYSBsb3Qgb2YgbWVtb3J5IGlmIHRoZXJlIGFyZSBtYW55IGthdGEgY29udGFpbmVycyBydW5uaW5nCiMgb24gdGhlIHNhbWUgaG9zdC4KIwojIFdoZW4gZGlzYWJsZWQsIG5ldyBWTXMgYXJlIGNyZWF0ZWQgZnJvbSBzY3JhdGNoLgojCiMgTm90ZTogUmVxdWlyZXMgImluaXRyZD0iIHRvIGJlIHNldCAoImltYWdlPSIgaXMgbm90IHN1cHBvcnRlZCkuCiMKIyBEZWZhdWx0IGZhbHNlCiNlbmFibGVfdGVtcGxhdGUgPSB0cnVlCgojIFNwZWNpZmllcyB0aGUgcGF0aCBvZiB0ZW1wbGF0ZS4KIwojIERlZmF1bHQgIi9ydW4vdmMvdm0vdGVtcGxhdGUiCiN0ZW1wbGF0ZV9wYXRoID0gIi9ydW4vdmMvdm0vdGVtcGxhdGUiCgojIFRoZSBudW1iZXIgb2YgY2FjaGVzIG9mIFZNQ2FjaGU6CiMgdW5zcGVjaWZpZWQgb3IgPT0gMCAgIC0tPiBWTUNhY2hlIGlzIGRpc2FibGVkCiMgPiAwICAgICAgICAgICAgICAgICAgIC0tPiB3aWxsIGJlIHNldCB0byB0aGUgc3BlY2lmaWVkIG51bWJlcgojCiMgVk1DYWNoZSBpcyBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBWTXMgYXMgY2FjaGVzIGJlZm9yZSB1c2luZyBpdC4KIyBJdCBoZWxwcyBzcGVlZCB1cCBuZXcgY29udGFpbmVyIGNyZWF0aW9uLgojIFRoZSBmdW5jdGlvbiBjb25zaXN0cyBvZiBhIHNlcnZlciBhbmQgc29tZSBjbGllbnRzIGNvbW11bmljYXRpbmcKIyB0aHJvdWdoIFVuaXggc29ja2V0LiAgVGhlIHByb3RvY29sIGlzIGdSUEMgaW4gcHJvdG9jb2xzL2NhY2hlL2NhY2hlLnByb3RvLgojIFRoZSBWTUNhY2hlIHNlcnZlciB3aWxsIGNyZWF0ZSBzb21lIFZNcyBhbmQgY2FjaGUgdGhlbSBieSBmYWN0b3J5IGNhY2hlLgojIEl0IHdpbGwgY29udmVydCB0aGUgVk0gdG8gZ1JQQyBmb3JtYXQgYW5kIHRyYW5zcG9ydCBpdCB3aGVuIGdldHMKIyByZXF1ZXN0aW9uIGZyb20gY2xpZW50cy4KIyBGYWN0b3J5IGdycGNjYWNoZSBpcyB0aGUgVk1DYWNoZSBjbGllbnQuICBJdCB3aWxsIHJlcXVlc3QgZ1JQQyBmb3JtYXQKIyBWTSBhbmQgY29udmVydCBpdCBiYWNrIHRvIGEgVk0uICBJZiBWTUNhY2hlIGZ1bmN0aW9uIGlzIGVuYWJsZWQsCiMga2F0YS1ydW50aW1lIHdpbGwgcmVxdWVzdCBWTSBmcm9tIGZhY3RvcnkgZ3JwY2NhY2hlIHdoZW4gaXQgY3JlYXRlcwojIGEgbmV3IHNhbmRib3guCiMKIyBEZWZhdWx0IDAKI3ZtX2NhY2hlX251bWJlciA9IDAKCiMgU3BlY2lmeSB0aGUgYWRkcmVzcyBvZiB0aGUgVW5peCBzb2NrZXQgdGhhdCBpcyB1c2VkIGJ5IFZNQ2FjaGUuCiMKIyBEZWZhdWx0IC92YXIvcnVuL2thdGEtY29udGFpbmVycy9jYWNoZS5zb2NrCiN2bV9jYWNoZV9lbmRwb2ludCA9ICIvdmFyL3J1bi9rYXRhLWNvbnRhaW5lcnMvY2FjaGUuc29jayIKClthZ2VudC5rYXRhXQojIElmIGVuYWJsZWQsIG1ha2UgdGhlIGFnZW50IGRpc3BsYXkgZGVidWctbGV2ZWwgbWVzc2FnZXMuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQplbmFibGVfZGVidWcgPSB0cnVlCgojIEVuYWJsZSBhZ2VudCB0cmFjaW5nLgojCiMgSWYgZW5hYmxlZCwgdGhlIGFnZW50IHdpbGwgZ2VuZXJhdGUgT3BlblRlbGVtZXRyeSB0cmFjZSBzcGFucy4KIwojIE5vdGVzOgojCiMgLSBJZiB0aGUgcnVudGltZSBhbHNvIGhhcyB0cmFjaW5nIGVuYWJsZWQsIHRoZSBhZ2VudCBzcGFucyB3aWxsIGJlCiMgICBhc3NvY2lhdGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHJ1bnRpbWUgcGFyZW50IHNwYW4uCiMgLSBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIHdhaXQgZm9yIHRoZSBjb250YWluZXIgdG8gc2h1dGRvd24sCiMgICBpbmNyZWFzaW5nIHRoZSBjb250YWluZXIgc2h1dGRvd24gdGltZSBzbGlnaHRseS4KIwojIChkZWZhdWx0OiBkaXNhYmxlZCkKI2VuYWJsZV90cmFjaW5nID0gdHJ1ZQoKIyBDb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBrZXJuZWwgbW9kdWxlcyBhbmQgdGhlaXIgcGFyYW1ldGVycy4KIyBUaGVzZSBtb2R1bGVzIHdpbGwgYmUgbG9hZGVkIGluIHRoZSBndWVzdCBrZXJuZWwgdXNpbmcgbW9kcHJvYmUoOCkuCiMgVGhlIGZvbGxvd2luZyBleGFtcGxlIGNhbiBiZSB1c2VkIHRvIGxvYWQgdHdvIGtlcm5lbCBtb2R1bGVzIHdpdGggcGFyYW1ldGVycwojICAtIGtlcm5lbF9tb2R1bGVzPVsiZTEwMDBlIEludGVycnVwdFRocm90dGxlUmF0ZT0zMDAwLDMwMDAsMzAwMCBFRUU9MSIsICJpOTE1IGVuYWJsZV9wcGd0dD0wIl0KIyBUaGUgZmlyc3Qgd29yZCBpcyBjb25zaWRlcmVkIGFzIHRoZSBtb2R1bGUgbmFtZSBhbmQgdGhlIHJlc3QgYXMgaXRzIHBhcmFtZXRlcnMuCiMgQ29udGFpbmVyIHdpbGwgbm90IGJlIHN0YXJ0ZWQgd2hlbjoKIyAgKiBBIGtlcm5lbCBtb2R1bGUgaXMgc3BlY2lmaWVkIGFuZCB0aGUgbW9kcHJvYmUgY29tbWFuZCBpcyBub3QgaW5zdGFsbGVkIGluIHRoZSBndWVzdAojICAgIG9yIGl0IGZhaWxzIGxvYWRpbmcgdGhlIG1vZHVsZS4KIyAgKiBUaGUgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGd1ZXN0IG9yIGl0IGRvZXNuJ3QgbWV0IHRoZSBndWVzdCBrZXJuZWwKIyAgICByZXF1aXJlbWVudHMsIGxpa2UgYXJjaGl0ZWN0dXJlIGFuZCB2ZXJzaW9uLgojCmtlcm5lbF9tb2R1bGVzPVtdCgojIEVuYWJsZSBkZWJ1ZyBjb25zb2xlLgoKIyBJZiBlbmFibGVkLCB1c2VyIGNhbiBjb25uZWN0IGd1ZXN0IE9TIHJ1bm5pbmcgaW5zaWRlIGh5cGVydmlzb3IKIyB0aHJvdWdoICJrYXRhLXJ1bnRpbWUgZXhlYyA8c2FuZGJveC1pZD4iIGNvbW1hbmQKCmRlYnVnX2NvbnNvbGVfZW5hYmxlZCA9IHRydWUKCiMgQWdlbnQgY29ubmVjdGlvbiBkaWFsaW5nIHRpbWVvdXQgdmFsdWUgaW4gc2Vjb25kcwojIChkZWZhdWx0OiAzMCkKI2RpYWxfdGltZW91dCA9IDMwCgpbbmV0bW9uXQojIElmIGVuYWJsZWQsIHRoZSBuZXR3b3JrIG1vbml0b3JpbmcgcHJvY2VzcyBnZXRzIHN0YXJ0ZWQgd2hlbiB0aGUKIyBzYW5kYm94IGlzIGNyZWF0ZWQuIFRoaXMgYWxsb3dzIGZvciB0aGUgZGV0ZWN0aW9uIG9mIHNvbWUgYWRkaXRpb25hbAojIG5ldHdvcmsgYmVpbmcgYWRkZWQgdG8gdGhlIGV4aXN0aW5nIG5ldHdvcmsgbmFtZXNwYWNlLCBhZnRlciB0aGUKIyBzYW5kYm94IGhhcyBiZWVuIGNyZWF0ZWQuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQojZW5hYmxlX25ldG1vbiA9IHRydWUKCiMgU3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgbmV0bW9uIGJpbmFyeS4KcGF0aCA9ICIvb3B0L2thdGEvbGliZXhlYy9rYXRhLWNvbnRhaW5lcnMva2F0YS1uZXRtb24iCgojIElmIGVuYWJsZWQsIG5ldG1vbiBtZXNzYWdlcyB3aWxsIGJlIHNlbnQgdG8gdGhlIHN5c3RlbSBsb2cKIyAoZGVmYXVsdDogZGlzYWJsZWQpCmVuYWJsZV9kZWJ1ZyA9IHRydWUKCltydW50aW1lXQojIElmIGVuYWJsZWQsIHRoZSBydW50aW1lIHdpbGwgbG9nIGFkZGl0aW9uYWwgZGVidWcgbWVzc2FnZXMgdG8gdGhlCiMgc3lzdGVtIGxvZwojIChkZWZhdWx0OiBkaXNhYmxlZCkKZW5hYmxlX2RlYnVnID0gdHJ1ZQojCiMgSW50ZXJuZXR3b3JraW5nIG1vZGVsCiMgRGV0ZXJtaW5lcyBob3cgdGhlIFZNIHNob3VsZCBiZSBjb25uZWN0ZWQgdG8gdGhlCiMgdGhlIGNvbnRhaW5lciBuZXR3b3JrIGludGVyZmFjZQojIE9wdGlvbnM6CiMKIyAgIC0gbWFjdnRhcAojICAgICBVc2VkIHdoZW4gdGhlIENvbnRhaW5lciBuZXR3b3JrIGludGVyZmFjZSBjYW4gYmUgYnJpZGdlZCB1c2luZwojICAgICBtYWN2dGFwLgojCiMgICAtIG5vbmUKIyAgICAgVXNlZCB3aGVuIGN1c3RvbWl6ZSBuZXR3b3JrLiBPbmx5IGNyZWF0ZXMgYSB0YXAgZGV2aWNlLiBObyB2ZXRoIHBhaXIuCiMKIyAgIC0gdGNmaWx0ZXIKIyAgICAgVXNlcyB0YyBmaWx0ZXIgcnVsZXMgdG8gcmVkaXJlY3QgdHJhZmZpYyBmcm9tIHRoZSBuZXR3b3JrIGludGVyZmFjZQojICAgICBwcm92aWRlZCBieSBwbHVnaW4gdG8gYSB0YXAgaW50ZXJmYWNlIGNvbm5lY3RlZCB0byB0aGUgVk0uCiMKaW50ZXJuZXR3b3JraW5nX21vZGVsPSJub25lIgoKIyBkaXNhYmxlIGd1ZXN0IHNlY2NvbXAKIyBEZXRlcm1pbmVzIHdoZXRoZXIgY29udGFpbmVyIHNlY2NvbXAgcHJvZmlsZXMgYXJlIHBhc3NlZCB0byB0aGUgdmlydHVhbAojIG1hY2hpbmUgYW5kIGFwcGxpZWQgYnkgdGhlIGthdGEgYWdlbnQuIElmIHNldCB0byB0cnVlLCBzZWNjb21wIGlzIG5vdCBhcHBsaWVkCiMgd2l0aGluIHRoZSBndWVzdAojIChkZWZhdWx0OiB0cnVlKQpkaXNhYmxlX2d1ZXN0X3NlY2NvbXA9dHJ1ZQoKIyBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIGNyZWF0ZSBvcGVudHJhY2luZy5pbyB0cmFjZXMgYW5kIHNwYW5zLgojIChTZWUgaHR0cHM6Ly93d3cuamFlZ2VydHJhY2luZy5pby9kb2NzL2dldHRpbmctc3RhcnRlZCkuCiMgKGRlZmF1bHQ6IGRpc2FibGVkKQojZW5hYmxlX3RyYWNpbmcgPSB0cnVlCgojIFNldCB0aGUgZnVsbCB1cmwgdG8gdGhlIEphZWdlciBIVFRQIFRocmlmdCBjb2xsZWN0b3IuCiMgVGhlIGRlZmF1bHQgaWYgbm90IHNldCB3aWxsIGJlICJodHRwOi8vbG9jYWxob3N0OjE0MjY4L2FwaS90cmFjZXMiCiNqYWVnZXJfZW5kcG9pbnQgPSAiIgoKIyBTZXRzIHRoZSB1c2VybmFtZSB0byBiZSB1c2VkIGlmIGJhc2ljIGF1dGggaXMgcmVxdWlyZWQgZm9yIEphZWdlci4KI2phZWdlcl91c2VyID0gIiIKCiMgU2V0cyB0aGUgcGFzc3dvcmQgdG8gYmUgdXNlZCBpZiBiYXNpYyBhdXRoIGlzIHJlcXVpcmVkIGZvciBKYWVnZXIuCiNqYWVnZXJfcGFzc3dvcmQgPSAiIgoKIyBJZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIG5vdCBjcmVhdGUgYSBuZXR3b3JrIG5hbWVzcGFjZSBmb3Igc2hpbSBhbmQgaHlwZXJ2aXNvciBwcm9jZXNzZXMuCiMgVGhpcyBvcHRpb24gbWF5IGhhdmUgc29tZSBwb3RlbnRpYWwgaW1wYWN0cyB0byB5b3VyIGhvc3QuIEl0IHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZy4KIyBgZGlzYWJsZV9uZXdfbmV0bnNgIGNvbmZsaWN0cyB3aXRoIGBlbmFibGVfbmV0bW9uYAojIGBkaXNhYmxlX25ld19uZXRuc2AgY29uZmxpY3RzIHdpdGggYGludGVybmV0d29ya2luZ19tb2RlbD10Y2ZpbHRlcmAgYW5kIGBpbnRlcm5ldHdvcmtpbmdfbW9kZWw9bWFjdnRhcGAuIEl0IHdvcmtzIG9ubHkKIyB3aXRoIGBpbnRlcm5ldHdvcmtpbmdfbW9kZWw9bm9uZWAuIFRoZSB0YXAgZGV2aWNlIHdpbGwgYmUgaW4gdGhlIGhvc3QgbmV0d29yayBuYW1lc3BhY2UgYW5kIGNhbiBjb25uZWN0IHRvIGEgYnJpZGdlCiMgKGxpa2UgT1ZTKSBkaXJlY3RseS4KIyBJZiB5b3UgYXJlIHVzaW5nIGRvY2tlciwgYGRpc2FibGVfbmV3X25ldG5zYCBvbmx5IHdvcmtzIHdpdGggYGRvY2tlciBydW4gLS1uZXQ9bm9uZWAKIyAoZGVmYXVsdDogZmFsc2UpCmRpc2FibGVfbmV3X25ldG5zID0gdHJ1ZQoKIyBpZiBlbmFibGVkLCB0aGUgcnVudGltZSB3aWxsIGFkZCBhbGwgdGhlIGthdGEgcHJvY2Vzc2VzIGluc2lkZSBvbmUgZGVkaWNhdGVkIGNncm91cC4KIyBUaGUgY29udGFpbmVyIGNncm91cHMgaW4gdGhlIGhvc3QgYXJlIG5vdCBjcmVhdGVkLCBqdXN0IG9uZSBzaW5nbGUgY2dyb3VwIHBlciBzYW5kYm94LgojIFRoZSBydW50aW1lIGNhbGxlciBpcyBmcmVlIHRvIHJlc3RyaWN0IG9yIGNvbGxlY3QgY2dyb3VwIHN0YXRzIG9mIHRoZSBvdmVyYWxsIEthdGEgc2FuZGJveC4KIyBUaGUgc2FuZGJveCBjZ3JvdXAgcGF0aCBpcyB0aGUgcGFyZW50IGNncm91cCBvZiBhIGNvbnRhaW5lciB3aXRoIHRoZSBQb2RTYW5kYm94IGFubm90YXRpb24uCiMgVGhlIHNhbmRib3ggY2dyb3VwIGlzIGNvbnN0cmFpbmVkIGlmIHRoZXJlIGlzIG5vIGNvbnRhaW5lciB0eXBlIGFubm90YXRpb24uCiMgU2VlOiBodHRwczovL2dvZG9jLm9yZy9naXRodWIuY29tL2thdGEtY29udGFpbmVycy9ydW50aW1lL3ZpcnRjb250YWluZXJzI0NvbnRhaW5lclR5cGUKc2FuZGJveF9jZ3JvdXBfb25seT1mYWxzZQoKIyBJZiBzcGVjaWZpZWQsIHNhbmRib3hfYmluZF9tb3VudHMgaWRlbnRpZmllZHMgaG9zdCBwYXRocyB0byBiZSBtb3VudGVkIChybykgaW50byB0aGUgc2FuZGJveGVzIHNoYXJlZCBwYXRoLgojIFRoaXMgaXMgb25seSB2YWxpZCBpZiBmaWxlc3lzdGVtIHNoYXJpbmcgaXMgdXRpbGl6ZWQuIFRoZSBwcm92aWRlZCBwYXRoKHMpIHdpbGwgYmUgYmluZG1vdW50ZWQgaW50byB0aGUgc2hhcmVkIGZzIGRpcmVjdG9yeS4KIyBJZiBkZWZhdWx0cyBhcmUgdXRpbGl6ZWQsIHRoZXNlIG1vdW50cyBzaG91bGQgYmUgYXZhaWxhYmxlIGluIHRoZSBndWVzdCBhdCBgL3J1bi9rYXRhLWNvbnRhaW5lcnMvc2hhcmVkL2NvbnRhaW5lcnMvc2FuZGJveC1tb3VudHNgCiMgVGhlc2Ugd2lsbCBub3QgYmUgZXhwb3NlZCB0byB0aGUgY29udGFpbmVyIHdvcmtsb2FkcywgYW5kIGFyZSBvbmx5IHByb3ZpZGVkIGZvciBwb3RlbnRpYWwgZ3Vlc3Qgc2VydmljZXMuCnNhbmRib3hfYmluZF9tb3VudHM9W10KCiMgRW5hYmxlZCBleHBlcmltZW50YWwgZmVhdHVyZSBsaXN0LCBmb3JtYXQ6IFsiYSIsICJiIl0uCiMgRXhwZXJpbWVudGFsIGZlYXR1cmVzIGFyZSBmZWF0dXJlcyBub3Qgc3RhYmxlIGVub3VnaCBmb3IgcHJvZHVjdGlvbiwKIyB0aGV5IG1heSBicmVhayBjb21wYXRpYmlsaXR5LCBhbmQgYXJlIHByZXBhcmVkIGZvciBhIGJpZyB2ZXJzaW9uIGJ1bXAuCiMgU3VwcG9ydGVkIGV4cGVyaW1lbnRhbCBmZWF0dXJlczoKIyAoZGVmYXVsdDogW10pCmV4cGVyaW1lbnRhbD1bXQoKIyBJZiBlbmFibGVkLCB1c2VyIGNhbiBydW4gcHByb2YgdG9vbHMgd2l0aCBzaGltIHYyIHByb2Nlc3MgdGhyb3VnaCBrYXRhLW1vbml0b3IuCiMgKGRlZmF1bHQ6IGZhbHNlKQojIGVuYWJsZV9wcHJvZiA9IHRydWUKCiMgV0FSTklORzogQWxsIHRoZSBvcHRpb25zIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbiBoYXZlIG5vdCBiZWVuIGltcGxlbWVudGVkIHlldC4KIyBUaGlzIHNlY3Rpb24gd2FzIGFkZGVkIGFzIGEgcGxhY2Vob2xkZXIuIERPIE5PVCBVU0UgSVQhCltpbWFnZV0KIyBDb250YWluZXIgaW1hZ2Ugc2VydmljZS4KIwojIE9mZmxvYWQgdGhlIENSSSBpbWFnZSBtYW5hZ2VtZW50IHNlcnZpY2UgdG8gdGhlIEthdGEgYWdlbnQuCiMgKGRlZmF1bHQ6IGZhbHNlKQpzZXJ2aWNlX29mZmxvYWQgPSB0cnVlCgojIENvbnRhaW5lciBpbWFnZSBkZWNyeXB0aW9uIGtleXMgcHJvdmlzaW9uaW5nLgojIEFwcGxpZXMgb25seSBpZiBzZXJ2aWNlX29mZmxvYWQgaXMgdHJ1ZS4KIyBLZXlzIGNhbiBiZSBwcm92aXNpb25lZCBsb2NhbGx5IChlLmcuIHRocm91Z2ggYSBzcGVjaWFsIGNvbW1hbmQgb3IKIyBhIGxvY2FsIGZpbGUpIG9yIHJlbW90ZWx5ICh1c3VhbGx5IGFmdGVyIHRoZSBndWVzdCBpcyByZW1vdGVseSBhdHRlc3RlZCkuCiMgVGhlIHByb3Zpc2lvbiBzZXR0aW5nIGlzIGEgY29tcGxldGUgVVJMIHRoYXQgbGV0cyB0aGUgS2F0YSBhZ2VudCBkZWNpZGUKIyB3aGljaCBtZXRob2QgdG8gdXNlIGluIG9yZGVyIHRvIGZldGNoIHRoZSBrZXlzLgojCiMgS2V5cyBjYW4gYmUgc3RvcmVkIGluIGEgbG9jYWwgZmlsZSwgaW4gYSBtZWFzdXJlZCBhbmQgYXR0ZXN0ZWQgaW5pdHJkOgojcHJvdmlzaW9uPWRhdGE6Ly8vbG9jYWwva2V5L2ZpbGUKIwojIEtleXMgY291bGQgYmUgZmV0Y2hlZCB0aHJvdWdoIGEgc3BlY2lhbCBjb21tYW5kIG9yIGJpbmFyeSBmcm9tIHRoZQojIGluaXRyZCAoZ3Vlc3QpIGltYWdlLCBlLmcuIGEgZmlybXdhcmUgY2FsbDoKI3Byb3Zpc2lvbj1maWxlOi8vL3BhdGgvdG8vYmluL2ZldGNoZXIvaW4vZ3Vlc3QKIwojIEtleXMgY2FuIGJlIHJlbW90ZWx5IHByb3Zpc2lvbmVkLiBUaGUgS2F0YSBhZ2VudCBmZXRjaGVzIHRoZW0gZnJvbSBlLmcuCiMgYSBIVFRQUyBVUkw6CiNwcm92aXNpb249aHR0cHM6Ly9teS1rZXktYnJva2VyLmZvby90ZW5hbnQvPHRlbmFudC1pZD4= - filesystem: root - mode: 0644 - path: /opt/kata/configuration-remote.toml + - contents: + compression: gzip + source: data:;base64,H4sIAAAAAAAC/9R8bXMbN9Lgd/4KHPnB0hZfJCfZS3SrVNmys6tLZPmxZW+ecrkocKaHg2gGmAAYUtyrq7q/cX/vfslVdwOYGYpylDzP7tXlgx0PgUaj0e/dwERcmGZn1br04ig7Fs9PTv/r7PnJ6XfiUnuoxIWxjbHSK6NHk9FEvH/76ufZTyoD7WB2mYP2qlBgz8SLRmYlzJ7PT0aT0Wgifv755zPx9xfv3ly++euZ8KVyolAVCOWEbL2ZrUGDlR7yeRgc57w3rc2ABp+JcWZ0odYL/qtlRGa/Qt3OvamrudLjOO+tNb9A5hMcId7IGs7Ej9JLcWG0l0qDdd3PN7sGzsSd9HI0Gn0qdw3YjXLGzi3UxsPnEf+97H5ZOpPdgRfnYrywrV40ALYx+aI3F0eMD8z0qgbT4tTvTk5GuXJyVcFy3YLzSweV0u29OBfetjBC6r3W+LugbRORZSVosHBt0xjrkWo3Zr2ulF4LX0ovHHiP/6jlTnir1muwIldFARa0F6W0+VZaEAVI31pwU2GlXiu9Hk1EYU0taqiN3QnQmd01SGbhjVgZX8ZfpM7FxdsPM+elh/44/EFpD2ur/I4QK2Gf7MK2Gmkg8p2WtcpkVe1EDh4y74QvQciNVBVtOmCIG0LQo4mQqnZCegFIFd4wiEraNRKkMc4pnGc04OKvoJBt5UUhKwejyYCGTPBE6ERn22qNcP/t9dUH8fHqSkgnpNBGz6wxXrQOLIJ+iSgz9DTSthpH47i5+HsJmnldOcLfG1pq2o1vrMnAET2ckMiOvYWs1LmpeT3xHkDkJmtr0J74XhTG8tZVrfiTE6bgBWuT0/YRToULdJv8STmP4zayUrmQWpsAT8saXILacSsSRmZ08CuwvASu6jyJr7CwbitpBdw3FpxTRk/FtlRZiT/j0JV0QNBHkzi7W3YqYL6ei3EjfTmm1ZWZoxhmiVvmLO/znmDR6BFxACw7YLjPT5+/tEuHX9o/tE9cE//wYOmQc3CZVSvIxWon1pVZHX11HPk9MoYqhDYkjQgD6sbvxJGsqgFGFlBVQT4/Hk3Ev5sWJdV5q1YtnYuFzNQ16NydiU/jRevsYqX0AtXezO2ch3p2/+2fl3/+evx5RNvtaxpEmqjCEyu1gnvIePKd2qoxUeuaRFdWwjUyg5mDRpI25t2bQpiGUfVGNNLR30gcFqA7sBoq3PoPBtlA1k0FU+Rbccu/LRFejXiMN27nUN7PoW4r6WF8i0TamVagPirlhpWQt6bty2Jj0ZqcfiPWlVplc7I+yZ7MhNQ7QWuABytcAxkaolyUYEFsVVUJL+9ANFYZVEvCbICPPxzUaNKbThwSz9/JmpkX95Pjxp2X1tNvG2V9KytRy6xUQd+YdOCB0QiFVpMU4jZbnYN1HtUkwlB1IzOicW5wo84gb+1MO5qQ8nbeNIcWYzW9MgbVPOt/4QA6nkWIgQvT1tyUtWaf7UUOq3Y9FZkF1OSSlSSLHinzypg7EpdnAd6MD3XWgX0mKrMWoL1V4OajB4cu16D9vDLrc1psjDz3FsUp8FGhbI32CPdxydywldqzKUNeReK7/oGlKaICuQHWesylLGajNOBcjGnBq0A4mWVQobdhyP6jcMkDLF8fGL7P/z2NtM/9t2H+cjD/XIy1cXU9xT9XrcO/pZdTbRrlp2hLVTZrrJ9qU2zHt6NDQM55OxdvPyTz/YVtZE2bhu2jnzXtA7Szpl2m8edi3NTtuSmK6aa+x7/Ho/6A8/gzYRRtrW6jAt1cvP3gRANWvH+5+HiF3lirO+k0VpyIvf9ms+9ZYFcQbebpaCL+8nDkb00jO5ORzHQYNeXOob8hMsN0+16ciL+cPzriMcDdJngmQXoUyH8ExcDwy03WtHgip31S1/Je1W39u0h+fr5Hyz+GGIIKI4dYjCbiKf8lXIMPy3b0x49XaA9I8MPKaDjvM4Ac8v8Pzuv/EVmSLXwFDegcLUl0tWxWKvSsWwvTA3h9aUXHRm9bgkab/ITdKyfWZEjQvEotFMUmCbuXICQpZdoJKW22tmwG3SFL98zFmKMwxjdWaR+jj4BUaXxTtWtRtDpjRwZDjz3FFuWolvdRlJ5/fXKbOMMxThiYVPgLEwU1q9TIAjLP2f5LlqypWLXsBjzALnLNSq3n4oU2voQeJlvly9HkIELf3n4ZoKtlVfHC36aPB490NDl0qDiUkJ+LSy046K6mYgudk8lUQAucsysDuUonZRU6D1PSKcmhudNmK7Y4Cw+WZwaf5M31zeXF6zOBYaGtRVNJXxhbEwnEWmWb5xQqWts2nrwOa6oK7JQdZhK5b+ejA4Q6QSX40qp8DS4eUPTPSuMFsUMOG5WhP4LhQIqRUCP+SVy0FiPhaieMrnaiyZRYBXC4i0Q1GvyBeOKrkwiR1CsPj4vHRdecwohzvhFvLy4T5DA2M1UeBxOoj1dz0g43SOUunBOZaauceE+s2rVQmn0hjJE0nSU7WgdNb1zzt4zvI/b2e3GKavab3zYTBzXrN0+wz9+kg4247hs3FgOn/gG44Sv1ktxQZmD2FPsb8hhuKz9Y5vnJ19/ixB4TMdBz+onCiP3lKuN7ZHviQqcnHPpxsE+/5Oga1+hCIpm8qqOKCQvF6aXxSbc4qfOVued1edySEToXp8T0GF32KRKhNFXk/1rexyVMseeiXvoYlMc0Tp5j0M6BXwqK33x8dXl1RewefXLc5Koy2R1GJFauQeRWYRR1RF+XLBpL/niMeIz1Jld1PUZ14UpiZQQSdmWKos9EuCPkWlqBYfXTNyeJGmFeUAHvk/JGo6HMrIY6kYRDHeJ0bcgOva2AchHG9y1QCBsCjlGTkI4iLxk9a8o8jSErjTgV34tFY022cDu32NQLDCZxkIrcNT6QeQq5CkYTx/VSMq84ATjYfYjvAC054YNnI7vQ7BlnmQpSb5daZLgxUwi5fz6VuoMAs5YN8vWWQtIBrJAq4qQsJxWQUVYyu2PLIQfIsR8xQFc5Ci1IY+bKQoa69UGYRLtowKIVkDpDuyOd0S4JT1FJCvY3oIM38BhReLWHSyC7fdcULnkvSjsPMu+CnxIS6WLqdcDDrcOgkc8NeayUFunfI43fNXBGKnsWGa9w4ijomOPhL981I0cglgVnQOKEQRi8KY3zs9aBRVC5hNro+SiwS+GW/IWSzf1EDg8oXD7+XVmvOC0s9K/JWkWc76SXlLXvYR9TV/sbfiyB1Z/ZE7aoR169+FlkMiujmuwRkj4vaWBQIq/vvZVC2jXTJ4FOxOEguZY+OnF89p/GMzOeirG069Pz+/v7qbTr5/iBP5dQVUZsja1y+jiTdv3V+W63G38mkA5A3HaLzcpblo6UweacW58JADFdEqZIkdnMlxZkPmuMqWa4pfNTpscF7b02OaKKyM6ENho4BrkCL3Pp5VTwn+hMI5kpy1UZc9c25AQhDxC1UIY41zdHPtnhrwxKVlu5c6IAT8NIPJGRCabUO5GVUkenStU15Ep6QIerdWV015yfRyRl680QyYPY8dHCfaMw5pAFhhtSxLIQ5ELWptWe/WAhyPgm8USePhUOMqPz47l4hYsoF3e6LVHOOSnFBSrTgBZHWWVc2LQ3/C0z2innQWe7424HRJHfR+g9ItM4DRsKGnCL8332pZxa6w0J/ctDVtmbZMgeZrpxJbIXbN6CFQg2gDXnY5p/nnycoMZc5tQ0/mNV3Y0mZG/J9M9HB3yDngrEueOhGaftzSxUlMSKaec9z7GPkOuZ9z2TO1g8iD306z2/tSxSbrAWL4Lug0MrSnFdy3b3evnq8t3rixtxtNolM0Oi0Mh1OOJjUqfslTwNX7ak/9koF1XrSmHhV+S2zigEG0uiutbGPhVJbRjgg0KaMqyf0DSizm8qqeG4x5uBmzJJ6d3La/5pNBGl1HnFIiFFTGrSAALYcWE2jOMUaucaNEduFC1cvL9E4Qz+V4dSz8IHdBv0iqrKZBx9mUJ8vBLvXlxNu6RzqCK+7kqP0du34Ei3aFGZLdheDj0H7ZTfjSZUR6yqmJjZCwPCyqi8KOmO8tcLKVoHRVtRKqaXHze4LtgNTe9BxVivKaxBHZiiRRR5F7y/BCJggVykM0UpUT6fDdgdkiRXmUfyPOrS1lAvGwuE/0MeKNs1kAgwn/0hiiLyH6+6rbED2BGsdfjvbqX5E+iGYtv5XEKD3xqL2st5md05cv8j3eJRBrYj7FD91tJz7RpVZ8I2UHTITYlaiCWT4wGpeugkbR7c7d9FLmdqED9RE0HgjjzoBPRbqa70i7FU8Qfx/OuT2fNvvg40zUrjQDNfNThZ+z5aSafEaAZ/Qn/ZLhHjgdt8Eyu/rMMotGblxeX+ZJsOwcdI1QnXrmZUdR0T+uPk0j/Qcv8tDFlwT4bDoaNJ4PUtuQqoR/sU5oG41UptIAEIAGktmo4sobhWmQ+DEW3ywNUPtxDhzkf7NCKPlvz4jbTUOEL+cFfuXnTQxn3uuLy+uvrwxySHy6pCBiABySglzM+VM0LmXJQsTFWZLSWRu8Jvl3B6lgpOqKmUhjNK41VLZeq6PTd6yv/T+MT29OEhyxM6y7c/vbj54frdH1QL4TTCHmmhZcw0nmNcD3topF+f0BXxMHIim56EFMih++fHT0/glRRCHWK4EEI9CUx3POQCoxDnwTONObLQdjTctRMyFF8FbkSvuQ0E5ZDyYSHLwd1fXEGkPHS0TUT/GBxPU+dMcJjQfvZ1LpnJZyivC1fWz5JukLHpJLtDFApT5dyvc9PL9USjG/wcPLGPV8JDjaxBbNR31JAMZObIK9Z5Kik/mWseQOjG/tN5JzHGPhLME4MDd1vZ0IZiB9h8aPRjf8sKUNxwYSS7zqFQmsk48AaQJVCv9JqfkijSUp0Azpqikq6kHDmqIVWj/SMG9EZ8vGJek3ZNHVDU6aR8L2enqCGqlp6bjD6NF8j2C28WBPdkruo1huHDz6f0+fOIF4euf6jPLDGG7bcf9IIp5EPWi71GC3ajQrMFNT0I0/qm9TH7Fhvc5oMcNOu9QCGe9jBNSPLSOm9q9Y/AELnREFVi7K3bhjR16KujWpmksopyqa+GGvsaIcXHq6u+ezPUsgEkuV7RljhKgRP5aaUexBWGEDV4WdHuYpJNg0PZWmYloIfVbSz6auS/UmYmWfnvGkHJMzfv5a57VY6dJ5e1P76R1JbZyF1lJIovgVx+h9z27el3z0ec0CZSc6hNwSo16cWyD3cvhR+CgfGGy0qsCYk/URyuMaTaKgddEDxMi1Kg0ztj1H5s3iJhCNYyrNaR5eMPl9fJn6DuKK5zrjHew8AolKBWqRFx3vO7w9hwJJTdXbUunHEtdyg0GAIqG0gXVwr1Sck9lVzAknbKipUPSsa4q1+tooT5cFkCw1geCCXD2OWmUGZp9BJxXK7aPme8hMLYXnWNvZi3F5eda4xOvYZQms1zIUWTKWBgeJi9asIHF6xP1+tFrMvxA7nNgz1HkkyFa7MSCfBmo3IlxV+p9IwKiavXNUi9z5pDLCKXh2q3CyaDln+UDsjutmUmjZ1A6MLjD+Nfv/pmPKyQ7O37XERWZ+uuwYtofro8J31WjoxODg65YdrX1/MHfBu7O72V6P+aoqBkZtZSZ91Rtxg1taIfcHJMC4YYS1wurvs1gHknCOy66H6SprdF0N6aZicc9YRHU9SEBLrkbAv/iAcQhx8pnVVtzqyDlqlrf3735q9oQcmJaEO7LRKbPsR/WxB+a0Qtle5yspO9Vob+DBIQ0gLMVnsIzQWeSUwPYeiIdDKt742ZBufWUYcf5y9JLyudWaphVSBpS96INXhuSmwbVPLcW+4ifR4SZLBdOno9S+hSjtKajcKzlaNJ7BJAhyvLoPHsJzzc1GWyxnTIW6gqzmdb8H4n6pY8QfRkGiszcuJE09rGOAr4ApwlQ8bwqIfl052tIZh/vl/eR3I67nHBeNo5XkOkgiv+GzN7paHri0tRGnMnVkpLq8BFs/wnNkWctf1T8nFzAyzPsigw6iWBdCoHguKC+NYtWrFQG+v1t4SeGlwU4/W9OlvwBNhr+XfTkr8WW0dj/jhYAlxrtUuuSmzVN27VKnTKhcusajx1ZJTeN+5ssVgrX7areWbqBzHK/r+9BVigVC68MZVbJLiE299oedrkCjhUi+nEdtWlJEzB9nyJ6HJoLrPM2ChbvgRlET+kP+reqVBzmIvx3qzF/2gskBBOG+N8//9M8z/HURipEZYl2SHlfAm9DImKTHwPWetTBOa4msKxeT0VCu1qBfcqM2srm5JEydgc7DQeU6UKyHZZldqYmVO6TFaiEGowXo/p0/cg6UYANQb0ofBdBDrJolCZktXwYsIjx2ka0L3TC2vMkMcWq8qsFpvT+cn8NFzumdf5pDFO3c9isD4jhhpNxN+lRUezqwpUhlwiVVDFCaw13B2nM9NqDzZVdZDkmoNCy/w5RZe29ambg6Rmhdazy98ydZTR89Fkn1diOZZ81IXJ1ILAjokF0d2w9+IdygY1IHFdJvQ5Dcyh0ivT6lyspM63KvflUezxWCnvFg6yrvXlOFT8/w3qlnq30FXNKulc0Vbi11y5zIm/3bw8+psCK21W7sSNuQMtXrboGFP+HQeppqLmFCvxGAfdFlRLzAfOTavJ1YNcWOlR/u39Ev9vyZ/tspb8gaqqwdd62uZN6/+Fu6f7ScXq6BJZIxQkxQ+pc5DLacccv/0nkMl/iUyjiXgPMSSk9p8N9MQ1ZFvytm5IEXStOFP2HP/64fX7m+XbF28uL358/UpQ14QwGTnnOfJ2ggP9UgMC7IqvrGO4sYEuJwSNGBpucDAx+zTZl6Q9I0A2APlegkZRiJ6sEdyrWOklo8xI4OJHlCTASUjNOjMWjmOzXLghFRtyMitdKYwV63w1vAVCJddXSCpC///8r/+d+kZJ08q7UNOojF6LvGuTZZ2XKsYD2hNQ5BjkMnRhkCXuuFsqqYN9Qp1zno1QJas1Dn54SAc0ch36I19Kx7Saxksw/fLEeJ2vxshHZeymHRNM6qgif5qb0RjjWWybDS1dnZvw+qcfAlWnbNy5EhK8tX2kiCfhLKnw7XY7pyuWxq4XucncopbOg+U7RL/WzcxCMS99XU2Q+jNGJrWwYhDlparcYWrhouf7hThKDQXkg8l5kIWiy3UhURIuTtKslLdDO+nAenRL5DZlkjrpColCmpYS4qpIHxulwTnuqeqswRE1wu36F+fGB2+sBUNrIYQrHcgxahflxIqvZdLJnsz7vX2m2Eety3RhsLWVzVLpJWU//mMYJTDjYzGLvXmkq9IvUesMFg0RI6mi1MDXZeOeDohi20Ojv7QEJaLEsKVznjKLPXaIYeSnQpLG+jya7CV6Uyr7WmfQ8Y6GLYVf1J4RtBt1t4SpQEknBLCpRVYZdCtCcwx7dyWHhuECmdKKbu1ynnBK/7ayLly800p+YRCa1U7UxCtr1J8WZG50xRFWCVXj0C8H0l1tQ4j2WzgI2XgPF+0JBqOV4StNDJ953HKlv0afCXmlg5Kyg6hmdLeJrlOHhC8E7V8ilsus9FnJk94YD2fiHaecnBgTDfLzcag3IxcfjSkVdj5Ohx8TcseH8qTxwOOZHOyT8DFHgEIVBg6B8fXtTbbY1Is4YjyaxP/tPL1Dw4LYdnkf6olw3D1AbViPX8GZzb6PgwTZVRcrHd8fvO705A5s4vIEV6aLEZyr4CNyfGQuIrziVBszNV/bGDLcA25LvBZ1V1omdEYF5UklaM6TU44tqxSl8DGQbrXKSBDJMlnTrkvxQav7UJ+dC87xWONNZiq6XvLu7QUah/jNLWgD/OecvkZ8Ig0CAkS6EKsSIkQAnYd2MgyuUPaCquCvgQw81egNhKufqEQM48JlBwLkrdSOkm/Ks4e2Bsq8h14buraNghFIQLcGw3Jr22RZPDLfw57HzkXCIwDrr85qjfYSkFSc7OPM2McrTjpFkOmgeuZyNCE1MEvlg/5SH68Y7+IBsrHKEJiKb7DDNnayDyXtZDTZ1LFriCVm0MjNN1RiT3qwgj12CBWMUOlb7eKGhqs8WuXkE0VQPTxA541R2n+xJN/NHI9Gn/g6K4753Hfs8qmo0cv0KdDPlWsqueMC0KyCDVSiBudik0psSTxLsn/8WPEnuEYM11uZJW+tv74f5hjisxriugF9AxXU4O2OpqPakJTJDKrZcafoLCYnIx+Qb16is8SLHlqMQEXVxD6zcyZTZAlSI71sGmsaSwFXhN5IGwHM4+qDBQbsuJXKp5pqp4cwcipbn5utntLqIUsaM07dyDiMM6quUuvSVzsmwqHDSBYm7L07jwtT111rWnffNlQCa5O3MXNDOaRebTCoJwdpVJfJkHmXhunfrg96uTZ5Y80Kjr5NTw10vRqhOXn/PhQCpQz2Hmp0LoOKpZiFMcsw5vzTGE5PTk6A3n+ha1o3pTXeV4CB/flXJycn0/SHeP369fnpeCrG6rvTb6Jz3jRr789Pxp8jvso6L7bG5tS/h5YipxxN8Md5ab5yHy/J2+CvK+/26JjeFOnyN5Tuk3TlDZUTBYZ/Ei+G26dqX7KbcZ1I3tTcEtwQpZ3n6LR/NNzkayyqvwJDHCJ1ZDpeZ86r33QbCyC7F04Gp83QMGbWz9Ah9A84gVcNlTuqhU/5jkf/oiftaAPWsXUe7R9rv+bPmgYPwiC+exqFOl0oyWu0hswHXK7fp4Kv0pxb7j+kEU35eGBS4B4y8ZdgGWYq/36cLteMCItlwGIZr+508vaCFE1AAk1XriR3BoW3dEJlTYfObjeQ6K9OjkcTnNF7euerk9HokwZfG/35gBqNGaraaOWN5Uco+LUWNOoDHsMJGJfxzoiv2Q0O5VaJItpvtPVhE6ZgT0TmueL802iSVg5tjvFumKeWd0U19DQmpWinoQ1+iAnq7RWATvj8hp5jcjzwo3edFx0QCQOpIrGbj5KLbBpPxnN42WM/i8+zx/u8FoBGC9nzdXXn7HKiqjLr32M/PwUWPHTQAwtTmXXvMIJsJIQYB6TvH8GCjDXq0XB4QaGHC5zhsqATpdlGF7MLqAPjJ04IVZrOskWGoPu0haRkBj/rEgw7avdaZhsvm3AV/YPrsW9Pkz4AFS0KV/JDv20AEkDO0xrdPZPeArEGlMQK4+1ql0IRKXxKdczFGyM2QMZJ2Q6wzwpV+XSR/gO9CJIJ/igs2TRqXA1N8yFjG8L2nkT3SYT/hXInOZRN1a6VZq/ZUxYq0WDvBPjW7kgND3RJB3o+RioQf8eut/BeF2SZqZvhgce2/J6bwsMQs1AAokbDfiEuZPuomzc8VKJzdLEq1d31prievdV4hzO9QRXXiPaIZ1KzXup8jmau43Cce/zgxTKCdB51xhcFLMRfpgEdvVhl2CNlbym6peLoPcAgC/mLhDXYbhZnI9f80tks6OPj+e925d4HK1u0VSVaW0US/3daT/zt5uatuCmtKtD+VBXlvr/w0FPUWmPE/WyxqEwmq9I4f3b69fM/f7uQjVrwfsejCe9pEISMA07sDqH9JV+od6NHFWIlncqEbD29sjXo42G05wk2WfAHcJGbyAn7w3AThAj7i+dOl8linfiB9aIFXKm4/aLXXBfT/26/g7OWO1HKTYjkG+PDu3jpIQkjdqa1nLTqNSfQNZF0xzfmwrs3DHamfWahe8Lgtute26J51O6WLppVClchH/p2YDxvnzjpsOKISu6WCPHIoKBzb2lf+JOjbQXZfWwWqqRbbqPslG3XCau7G0sPj4ezJJ0TSPqRzQGKG/mf1x/fH6erv72XnGTKKuUYxNvpQfLQufBeeBM8mF7Um6HDwPgPhJuygJ02StB6sq2+xJPULhbuzZCqTNwWnVqjUcRzxfdMsrU1bRNFv5cHo+9uQMN0gZIdr6n4pUX3XoNAUmCURpPooYEuV0KAI45UEKNSdmEBwmUfb1VGYUJQRRGO89KnlInZUMsOP7u4Bz26hnF96dNDfSEYD7/sFT5SGP/W5O8DjK7k8Aj0EOF5K2N/MGeeyej0I/hdA3vQBkWotclNRhWoLzSIBLrR3eDu8yQ5Nje7BkYBwSUjuES2C/Unfn1rGQfEMsmyXtf9G3hoR2PgOI37Xa6UzpdUQnRCxYdQcxdvAPrSBUVLYyAXR9Yco3cRvFoGA44LB3xNtH+NicSDO59U0a/Y4vjQsN56Val/cNABnVeDoI7cce9VGp1HLDoEwiX3XnU3iHCQNvZB4hLT0LkSdtz5qY+EtdKL24OJNV530f8SwkMGfZtyJf34Hu4b0/OFekxq7B0G4Y4v2yLK/L5LJAbfsPbDR1TR2NC1owOnOYiVc7pIZBX1ulTpbdJKOT8Nmdgz8Wksx1MxXo0/UzvugQlMy/QPchy43Qc0hc3cN2fylqLEULXdcdeuBXmHYXMjvVqpSvldt9fGQiNteixipdYxCSBWbU2a6316D+jQVqgXq1Ownz4fj/rDAjEO5gdQUTfosApqx2J9QSZ98zxFzjEvQGwQIuv5IZ0+6dJHCLITv/SU1IuguOMNpcBvXTrMhRibvARmHND9G6JiBz7JWBy9lS6E3PTqa1PJDEq+QyJeXYs31zfiw/vX4vLmv4w+UbHq8yALxdcWAkdx7HJdFJyCwyDr3WUYUkst14RIHB25+cfOaT9EmTB6aQLYfkpyiEUO6VHeO9g5FgJkhuDavCCXP+gWVYh9yKH9GIf+iPO7jgwGA3RNlVo9jugR13i6kjUkPQrGeTRKCkkeTtrrGE0YP4yM01vXcotpzGHELnvXDZLeg4seftJwxNzxtWNuTTd4xB7Eh3c/ccGgik5vR1okjsqB7ghSNyT40uSx80Jp7qfDf9PbBuHy2y7ky/vk6LcWdvub8ocapOMHCVBCwwa4+pufjSZpB+e59PJsEYKFxR3sFgilt1hUsPGphS/ROqRlUuSLfhAtKY6IrMfMIOHpXdm9pYmHOUCL3t1eLNKlmZXSC8bALpRehPhwjyLpxHqcMu+egWb6MxTHVTdCFJEhLsGA6z2e3gCV6ArUu9kd7GYra+7AzgtjFh601H7xF/57pvLvR/83AAD///sSPZPJXAAA + mode: 420 + path: /opt/kata/configuration-remote.toml diff --git a/config/peerpods/mc-50-crio-config.yaml b/config/peerpods/mc-50-crio-config.yaml index 6a2aaa9e..89490f93 100644 --- a/config/peerpods/mc-50-crio-config.yaml +++ b/config/peerpods/mc-50-crio-config.yaml @@ -2,7 +2,8 @@ apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: - machineconfiguration.openshift.io/role: worker + app: peerpodconfig-openshift + machineconfiguration.openshift.io/role: kata-oc name: 50-kata-remote-cc spec: config: diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 488c82be..31282dd3 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -66,10 +66,19 @@ type KataConfigOpenShiftReconciler struct { } const ( - dashboard_configmap_name = "grafana-dashboard-sandboxed-containers" - dashboard_configmap_namespace = "openshift-config-managed" - container_runtime_config_name = "kata-crio-config" - DEFAULT_PEER_PODS = "10" + dashboard_configmap_name = "grafana-dashboard-sandboxed-containers" + dashboard_configmap_namespace = "openshift-config-managed" + container_runtime_config_name = "kata-crio-config" + DEFAULT_PEER_PODS = "10" + peerpodConfigCrdName = "peerpodconfig-openshift" + peerpodsMachineConfigPathLocation = "/config/peerpods" + peerpodsCrioMachineConfig = "50-kata-remote-cc" + peerpodsCrioMachineConfigYaml = "mc-50-crio-config.yaml" + peerpodsKataRemoteMachineConfig = "40-worker-kata-remote-config" + peerpodsKataRemoteMachineConfigYaml = "mc-40-kata-remote-config.yaml" + peerpodsRuntimeClassName = "kata-remote-cc" + peerpodsRuntimeClassCpuOverhead = "0.25" + peerpodsRuntimeClassMemOverhead = "350Mi" ) // +kubebuilder:rbac:groups=kataconfiguration.openshift.io,resources=kataconfigs;kataconfigs/finalizers,verbs=get;list;watch;create;update;patch;delete @@ -900,6 +909,13 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R } } + if r.kataConfig.Spec.EnablePeerPods { + // We are explicitly ignoring any errors in peerpodconfig and related machineconfigs removal as + // these can be removed manually if needed and this is not in the critical path + // of operator functionality + _ = r.disablePeerPods() + } + scc := GetScc() err = r.Client.Delete(context.TODO(), scc) if err != nil { @@ -919,6 +935,7 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R r.Log.Error(err, "Unable to update KataConfig") return ctrl.Result{}, err } + return ctrl.Result{}, nil } @@ -939,7 +956,7 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. if r.kataConfig.Spec.EnablePeerPods { err := r.enablePeerPods() if err != nil { - r.Log.Error(err, "Peer pod enabling failed") + r.Log.Info("Enabling peerpods configuration failed", "err", err) return ctrl.Result{}, err } } @@ -1712,12 +1729,10 @@ func (r *KataConfigOpenShiftReconciler) clearFailedStatus(status kataconfigurati } func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { - var err error = nil - - peerpodconf := v1alpha1.PeerPodConfig{ + peerPodConfig := v1alpha1.PeerPodConfig{ TypeMeta: metav1.TypeMeta{}, ObjectMeta: metav1.ObjectMeta{ - Name: "peerpodconfig-example", + Name: peerpodConfigCrdName, Namespace: "openshift-sandboxed-containers-operator", }, Spec: v1alpha1.PeerPodConfigSpec{ @@ -1727,14 +1742,116 @@ func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { }, } - err = r.Client.Create(context.TODO(), &peerpodconf) - if k8serrors.IsAlreadyExists(err) { - return nil - } else if err != nil { + err := r.Client.Create(context.TODO(), &peerPodConfig) + if err != nil && !k8serrors.IsAlreadyExists(err) { + r.Log.Info("Error in creating peerpodconfig", "err", err) return err } - err = r.createRuntimeClass("kata-remote-cc", "0.25", "350Mi") + //Create MachineConfig for kata-remote hyp CRIO config + err = r.createMcFromFile(peerpodsCrioMachineConfigYaml) + if err != nil { + r.Log.Info("Error in creating CRIO MachineConfig", "err", err) + return err + } + + //Create MachineConfig for kata-remote hyp config toml + err = r.createMcFromFile(peerpodsKataRemoteMachineConfigYaml) + if err != nil { + r.Log.Info("Error in creating kata remote configuration.toml MachineConfig", "err", err) + return err + } + + // Create runtimeClass config for peer-pods + err = r.createRuntimeClass(peerpodsRuntimeClassName, peerpodsRuntimeClassCpuOverhead, peerpodsRuntimeClassMemOverhead) + if err != nil { + r.Log.Info("Error in creating kata remote runtimeclass", "err", err) + return err + } + return nil +} + +func (r *KataConfigOpenShiftReconciler) disablePeerPods() error { + peerPodConfig := v1alpha1.PeerPodConfig{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{ + Name: peerpodConfigCrdName, + Namespace: "openshift-sandboxed-containers-operator", + }, + } + err := r.Client.Delete(context.TODO(), &peerPodConfig) + if err != nil { + // error during removing peerpodconfig. Just log the error and move on. + r.Log.Info("Error found deleting PeerPodConfig. If the PeerPodConfig object exists after uninstallation it can be safely deleted manually", "err", err) + } + + mc := mcfgv1.MachineConfig{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "machineconfiguration.openshift.io/v1", + Kind: "MachineConfig", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: peerpodsKataRemoteMachineConfig, + }, + } - return err + err = r.Client.Delete(context.TODO(), &mc) + if err != nil { + // error during removing mc. Just log the error and move on. + r.Log.Info("Error found deleting mc. If the MachineConfig object exists after uninstallation it can be safely deleted manually", + "mc", mc.Name, "err", err) + } + + mc = mcfgv1.MachineConfig{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "machineconfiguration.openshift.io/v1", + Kind: "MachineConfig", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: peerpodsCrioMachineConfig, + }, + } + + err = r.Client.Delete(context.TODO(), &mc) + if err != nil { + // error during removing mc. Just log the error and move on. + r.Log.Info("Error found deleting mc. If the MachineConfig object exists after uninstallation it can be safely deleted manually", + "mc", mc.Name, "err", err) + } + + return nil +} + +func (r *KataConfigOpenShiftReconciler) createMcFromFile(mcFileName string) error { + yamlData, err := readMachineConfigYAML(mcFileName) + if err != nil { + r.Log.Info("Error in reading MachineConfigYaml", "mcFileName", mcFileName, "err", err) + return err + } + + r.Log.Info("machineConfig yaml dump ", "yamlData", yamlData) + + machineConfig, err := parseMachineConfigYAML(yamlData) + if err != nil { + r.Log.Info("Error in parsing MachineConfigYaml", "mcFileName", mcFileName, "err", err) + return err + } + + // Default MCP is kata-oc, however for converged cluster it should be "master" + isConvergedCluster, err := r.checkConvergedCluster() + if isConvergedCluster && err == nil { + machineConfig.Labels["machineconfiguration.openshift.io/role"] = "master" + } + + r.Log.Info("machineConfig dump ", "machineConfig", machineConfig) + + if err := r.Client.Create(context.TODO(), machineConfig); err != nil { + if k8serrors.IsAlreadyExists(err) { + r.Log.Info("machineConfig already exists") + return nil + } else { + return err + } + } + return nil } diff --git a/controllers/utils.go b/controllers/utils.go index 837ea5ba..95828622 100644 --- a/controllers/utils.go +++ b/controllers/utils.go @@ -1,6 +1,11 @@ package controllers import ( + "os" + "path/filepath" + + yaml "github.com/ghodss/yaml" + mcfgv1 "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io/v1" "k8s.io/client-go/discovery" "sigs.k8s.io/controller-runtime/pkg/client/config" ) @@ -31,3 +36,21 @@ func IsOpenShift() (bool, error) { return false, nil } + +func parseMachineConfigYAML(yamlData []byte) (*mcfgv1.MachineConfig, error) { + machineConfig := &mcfgv1.MachineConfig{} + err := yaml.Unmarshal(yamlData, machineConfig) + if err != nil { + return nil, err + } + return machineConfig, nil +} + +func readMachineConfigYAML(mcFileName string) ([]byte, error) { + machineConfigFilePath := filepath.Join(peerpodsMachineConfigPathLocation, mcFileName) + yamlData, err := os.ReadFile(machineConfigFilePath) + if err != nil { + return nil, err + } + return yamlData, nil +} diff --git a/go.mod b/go.mod index cd2cde1a..314681c7 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.19 require ( github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230404000240-f0579b30f889 github.com/coreos/ignition/v2 v2.9.0 + github.com/ghodss/yaml v1.0.0 github.com/go-logr/logr v1.2.3 github.com/onsi/ginkgo/v2 v2.6.1 github.com/onsi/gomega v1.24.2 @@ -28,13 +29,11 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/fatih/color v1.12.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect - github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect @@ -43,12 +42,9 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -58,19 +54,16 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect - github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect - golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect @@ -82,7 +75,6 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect - sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index 21255739..14477cd7 100644 --- a/go.sum +++ b/go.sum @@ -297,7 +297,6 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -368,8 +367,6 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= @@ -382,6 +379,7 @@ github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui72 github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-bindata/go-bindata v3.1.2+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA= @@ -436,8 +434,6 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= -github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -629,8 +625,6 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -699,12 +693,9 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -949,8 +940,6 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= -github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= -github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1142,8 +1131,6 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1455,8 +1442,6 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1724,8 +1709,6 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= -sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= From c57f8540fcc886e5293be43ad34841ad0dc35976 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Thu, 20 Apr 2023 22:02:13 +0200 Subject: [PATCH 35/63] Add controller-tools mods back for downstream builds Signed-off-by: Jens Freimann [greg: run go get sigs.k8s.io/controller-tools/cmd/controller-gen@v0.9.2 ] Signed-off-by: Greg Kurz --- go.mod | 9 +++++++++ go.sum | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/go.mod b/go.mod index 314681c7..225edf75 100644 --- a/go.mod +++ b/go.mod @@ -29,11 +29,13 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/fatih/color v1.12.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect + github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect @@ -42,9 +44,12 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -54,16 +59,19 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect + golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect @@ -75,6 +83,7 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect + sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index 14477cd7..71b6313e 100644 --- a/go.sum +++ b/go.sum @@ -297,6 +297,7 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -367,6 +368,8 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= +github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= @@ -434,6 +437,8 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= +github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= +github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -625,6 +630,8 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -693,9 +700,12 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -940,6 +950,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= +github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1131,6 +1143,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1442,6 +1456,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1709,6 +1725,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= +sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= +sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= From 7bf476cbca72c2300156f8201649eb5d6a3e1d55 Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Mon, 24 Apr 2023 08:25:04 -0400 Subject: [PATCH 36/63] Include a direct dependency to controller-tools. controller-tools is required for manifest generation and for downstream builds we need to cache all the modules. Consequently all the required modules should be in go.mod Fixes: #294 Signed-off-by: Pradipta Banerjee --- go.mod | 10 +--------- go.sum | 16 ---------------- main.go | 4 ++++ 3 files changed, 5 insertions(+), 25 deletions(-) diff --git a/go.mod b/go.mod index 225edf75..58940a62 100644 --- a/go.mod +++ b/go.mod @@ -17,6 +17,7 @@ require ( k8s.io/client-go v0.26.0 k8s.io/kubernetes v1.26.0 sigs.k8s.io/controller-runtime v0.14.0 + sigs.k8s.io/controller-tools v0.9.2 ) require ( @@ -29,13 +30,11 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/fatih/color v1.12.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect - github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect @@ -44,12 +43,9 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -59,19 +55,16 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect - github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect - golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect @@ -83,7 +76,6 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect - sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index 71b6313e..b8ed74dd 100644 --- a/go.sum +++ b/go.sum @@ -297,7 +297,6 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -368,8 +367,6 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= @@ -437,8 +434,6 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= -github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= -github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -630,8 +625,6 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -700,12 +693,9 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -950,8 +940,6 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= -github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= -github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1143,8 +1131,6 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1456,8 +1442,6 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/main.go b/main.go index 9afee30c..916d30fe 100644 --- a/main.go +++ b/main.go @@ -36,6 +36,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" + "sigs.k8s.io/controller-tools/pkg/version" peerpodconfig "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/api/v1alpha1" kataconfigurationv1 "github.com/openshift/sandboxed-containers-operator/api/v1" @@ -96,6 +97,9 @@ func main() { os.Exit(1) } + // This statement is added to include a direct dependency to controller-tools + setupLog.Info("Manifests built using controller-tools", "version", version.Version()) + isOpenshift, err := controllers.IsOpenShift() if err != nil { setupLog.Error(err, "unable to use discovery client") From 0e701cd9bf99dc379cb5d8124574cb207a2cd1e6 Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Tue, 25 Apr 2023 12:19:03 -0400 Subject: [PATCH 37/63] Revert "Merge pull request #296 from bpradipt/tp-fix-294" This reverts commit 6a1b3ca4c0e6e6ba25343b9ceb02e97ccb45e9b3, reversing changes made to 611d9f9314f32ba094c76d2524a83ef5e65ded35. This is not a complete fix for downstream builds and hence reverting --- go.mod | 10 +++++++++- go.sum | 16 ++++++++++++++++ main.go | 4 ---- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index 58940a62..225edf75 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,6 @@ require ( k8s.io/client-go v0.26.0 k8s.io/kubernetes v1.26.0 sigs.k8s.io/controller-runtime v0.14.0 - sigs.k8s.io/controller-tools v0.9.2 ) require ( @@ -30,11 +29,13 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect + github.com/fatih/color v1.12.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect github.com/go-openapi/swag v0.19.14 // indirect + github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect @@ -43,9 +44,12 @@ require ( github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-colorable v0.1.8 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect @@ -55,16 +59,19 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect + golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/term v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.4.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.1 // indirect @@ -76,6 +83,7 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect + sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index b8ed74dd..71b6313e 100644 --- a/go.sum +++ b/go.sum @@ -297,6 +297,7 @@ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwc github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -367,6 +368,8 @@ github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZM github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= +github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= @@ -434,6 +437,8 @@ github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Il github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= +github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= +github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -625,6 +630,8 @@ github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -693,9 +700,12 @@ github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEX github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= @@ -940,6 +950,8 @@ github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tL github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= +github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1131,6 +1143,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1442,6 +1456,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/main.go b/main.go index 916d30fe..9afee30c 100644 --- a/main.go +++ b/main.go @@ -36,7 +36,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" - "sigs.k8s.io/controller-tools/pkg/version" peerpodconfig "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/api/v1alpha1" kataconfigurationv1 "github.com/openshift/sandboxed-containers-operator/api/v1" @@ -97,9 +96,6 @@ func main() { os.Exit(1) } - // This statement is added to include a direct dependency to controller-tools - setupLog.Info("Manifests built using controller-tools", "version", version.Version()) - isOpenshift, err := controllers.IsOpenShift() if err != nil { setupLog.Error(err, "unable to use discovery client") From 8c1d8f02b4cc7a8da81645aef6bf90f998fd214f Mon Sep 17 00:00:00 2001 From: Emanuele Giuseppe Esposito Date: Tue, 11 Apr 2023 03:19:16 -0400 Subject: [PATCH 38/63] controller: automatically create a Secret containing the cluster's pull-secret Instead of letting the user manually do the following: oc create secret generic auth-json-secret --from-literal=auth.json=\ $(oc get -n openshift-config secret/pull-secret -ojson | jq -r '.data.".dockerconfigjson" | @base64d') \ -n openshift-sandboxed-containers-operator do the same programmatically in enablePeerPods(). Fixes: KATA-1998 Signed-off-by: Emanuele Giuseppe Esposito --- controllers/openshift_controller.go | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 31282dd3..cea2f34c 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -1728,6 +1728,43 @@ func (r *KataConfigOpenShiftReconciler) clearFailedStatus(status kataconfigurati return status } +func (r *KataConfigOpenShiftReconciler) createAuthJsonSecret() error { + var err error = nil + + pullSecret := &corev1.Secret{} + err = r.Client.Get(context.TODO(), types.NamespacedName{Name: "pull-secret", Namespace: "openshift-config"}, pullSecret) + if err != nil { + r.Log.Info("Error fetching pull-secret", "err", err) + return err + } + + authJsonSecret := corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Name: "auth-json-secret", + Namespace: "openshift-sandboxed-containers-operator", + }, + Data: map[string][]byte{ + "auth.json": pullSecret.Data[".dockerconfigjson"], + }, + Type: corev1.SecretTypeOpaque, + } + + err = r.Client.Create(context.TODO(), &authJsonSecret) + if err != nil { + if k8serrors.IsAlreadyExists(err) { + err = r.Client.Update(context.TODO(), &authJsonSecret) + if err != nil { + r.Log.Info("Error UPDATING auth-json-secret", "err", err) + return err + } + } + r.Log.Info("Error creating auth-json-secret", "err", err) + return err + } + + return err +} + func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { peerPodConfig := v1alpha1.PeerPodConfig{ TypeMeta: metav1.TypeMeta{}, @@ -1748,6 +1785,13 @@ func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { return err } + //Get pull-secret from openshift-config ns and save it as auth-json-secret in our ns + err = r.createAuthJsonSecret() + if err != nil { + r.Log.Info("Error in creating auth-json-secret", "err", err) + return err + } + //Create MachineConfig for kata-remote hyp CRIO config err = r.createMcFromFile(peerpodsCrioMachineConfigYaml) if err != nil { From 23acb0265746ee80fb0dd98066b46007a8f59f72 Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Tue, 25 Apr 2023 13:06:28 -0400 Subject: [PATCH 39/63] Add unused references to controller-gen and deps Adding unused references to go modules in the import section. This is to ensure that the modules are in go.mod and hence can be cached by downstream builds. This also ensures that running `go mod tidy` will not remove these modules as these are not used in the code. This improves upon the PR-294 fix as it was an incomplete fix and didn't include all the required deps. Signed-off-by: Pradipta Banerjee --- Makefile | 2 +- go.mod | 4 ++-- go.sum | 5 +++-- main.go | 11 ++++++++++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index bbb12b9d..25cc56c1 100644 --- a/Makefile +++ b/Makefile @@ -184,7 +184,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest ## Tool Versions KUSTOMIZE_VERSION ?= v4.5.5 -CONTROLLER_TOOLS_VERSION ?= v0.9.2 +CONTROLLER_TOOLS_VERSION ?= v0.10.0 KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" .PHONY: kustomize diff --git a/go.mod b/go.mod index 225edf75..ce5c7583 100644 --- a/go.mod +++ b/go.mod @@ -11,12 +11,14 @@ require ( github.com/onsi/gomega v1.24.2 github.com/openshift/api v0.0.0-20210924154557-a4f696157341 github.com/openshift/machine-config-operator v0.0.1-0.20211015230756-5353b8ec1122 + github.com/spf13/cobra v1.6.0 go.uber.org/zap v1.24.0 k8s.io/api v0.26.0 k8s.io/apimachinery v0.26.0 k8s.io/client-go v0.26.0 k8s.io/kubernetes v1.26.0 sigs.k8s.io/controller-runtime v0.14.0 + sigs.k8s.io/controller-tools v0.10.0 ) require ( @@ -59,7 +61,6 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect - github.com/spf13/cobra v1.6.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect go.uber.org/atomic v1.7.0 // indirect @@ -83,7 +84,6 @@ require ( k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect - sigs.k8s.io/controller-tools v0.9.2 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index 71b6313e..8eff2c16 100644 --- a/go.sum +++ b/go.sum @@ -1241,6 +1241,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1725,8 +1726,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32/go.mod h1:fEO7lR sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= sigs.k8s.io/controller-runtime v0.13.0/go.mod h1:Zbz+el8Yg31jubvAEyglRZGdLAjplZl+PgtYNI6WNTI= sigs.k8s.io/controller-tools v0.2.8/go.mod h1:9VKHPszmf2DHz/QmHkcfZoewO6BL7pPs9uAiBVsaJSE= -sigs.k8s.io/controller-tools v0.9.2 h1:AkTE3QAdz9LS4iD3EJvHyYxBkg/g9fTbgiYsrcsFCcM= -sigs.k8s.io/controller-tools v0.9.2/go.mod h1:NUkn8FTV3Sad3wWpSK7dt/145qfuQ8CKJV6j4jHC5rM= +sigs.k8s.io/controller-tools v0.10.0 h1:0L5DTDTFB67jm9DkfrONgTGmfc/zYow0ZaHyppizU2U= +sigs.k8s.io/controller-tools v0.10.0/go.mod h1:uvr0EW6IsprfB0jpQq6evtKy+hHyHCXNfdWI5ONPx94= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kube-storage-version-migrator v0.0.4/go.mod h1:mXfSLkx9xbJHQsgNDDUZK/iQTs2tMbx/hsJlWe6Fthw= diff --git a/main.go b/main.go index 9afee30c..fcf1d74a 100644 --- a/main.go +++ b/main.go @@ -19,6 +19,8 @@ package main import ( "context" "flag" + "os" + peerpodcontrollers "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/controllers" secv1 "github.com/openshift/api/security/v1" mcfgapi "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io" @@ -31,12 +33,19 @@ import ( clientgoscheme "k8s.io/client-go/kubernetes/scheme" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" nodeapi "k8s.io/kubernetes/pkg/apis/node/v1" - "os" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" + // These imports are unused but required in go.mod + // for caching during manifest generation by controller-gen + _ "github.com/spf13/cobra" + _ "sigs.k8s.io/controller-tools/pkg/crd" + _ "sigs.k8s.io/controller-tools/pkg/genall" + _ "sigs.k8s.io/controller-tools/pkg/genall/help/pretty" + _ "sigs.k8s.io/controller-tools/pkg/loader" + peerpodconfig "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/api/v1alpha1" kataconfigurationv1 "github.com/openshift/sandboxed-containers-operator/api/v1" "github.com/openshift/sandboxed-containers-operator/controllers" From 828c5b625ed2024285d78a681ff7d2533e8aa82b Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Mon, 1 May 2023 13:29:10 -0400 Subject: [PATCH 40/63] Update the base docker images to align with 4.13 images Signed-off-by: Pradipta Banerjee --- Dockerfile | 4 ++-- Makefile | 4 ++-- docs/DEVELOPMENT.md | 19 +++++++++++++------ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 86e302ab..0d089dcd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Use OpenShift golang builder image # These images needs to be synced with the images in the Makefile. -ARG BUILDER_IMAGE=${BUILDER_IMAGE:-registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.18-openshift-4.11} -ARG TARGET_IMAGE=${TARGET_IMAGE:-registry.ci.openshift.org/ocp/4.11:base} +ARG BUILDER_IMAGE=${BUILDER_IMAGE:-registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.19-openshift-4.13} +ARG TARGET_IMAGE=${TARGET_IMAGE:-registry.ci.openshift.org/ocp/4.13:base} FROM ${BUILDER_IMAGE} AS builder WORKDIR /workspace diff --git a/Makefile b/Makefile index 47eb5d15..02660427 100644 --- a/Makefile +++ b/Makefile @@ -61,8 +61,8 @@ GOBIN=$(shell go env GOBIN) endif # These images needs to be synced with the default values in the Dockerfile. -BUILDER_IMAGE ?= registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.18-openshift-4.11 -TARGET_IMAGE ?= registry.ci.openshift.org/ocp/4.11:base +BUILDER_IMAGE ?= registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.19-openshift-4.13 +TARGET_IMAGE ?= registry.ci.openshift.org/ocp/4.13:base # Setting SHELL to bash allows bash commands to be executed by recipes. # This is a requirement for 'setup-envtest.sh' in the test target. diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index e3264ce3..d625e61d 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -1,17 +1,17 @@ # Hacking on the sandboxed-containers-operator ## Prerequisites -- Golang - 1.18.x -- Operator SDK version - 1.25.3 +- Golang - 1.19.x +- Operator SDK version - 1.26.1 ``` export ARCH=$(case $(uname -m) in x86_64) echo -n amd64 ;; aarch64) echo -n arm64 ;; *) echo -n $(uname -m) ;; esac) export OS=$(uname | awk '{print tolower($0)}') -export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.25.3 +export OPERATOR_SDK_DL_URL=https://github.com/operator-framework/operator-sdk/releases/download/v1.26.1 curl -LO ${OPERATOR_SDK_DL_URL}/operator-sdk_${OS}_${ARCH} install -m 755 operator-sdk_linux_amd64 ${SOME_DIR_IN_YOUR_PATH}/operator-sdk ``` - podman, podman-docker or docker -- Access to OpenShift cluster (4.8+) +- Access to OpenShift cluster (4.12+) - Container registry to storage images ### Get a token on registry.ci.openshift.org @@ -32,8 +32,8 @@ public images during build and test. At the time of writing, the following publi does the trick. ```shell -export BUILDER_IMAGE=registry.ci.openshift.org/openshift/release:golang-1.18 -export TARGET_IMAGE=registry.ci.openshift.org/origin/4.10:base +export BUILDER_IMAGE=registry.ci.openshift.org/openshift/release:golang-1.19 +export TARGET_IMAGE=registry.ci.openshift.org/origin/4.13:base make docker-build ``` @@ -61,12 +61,19 @@ make docker-push ``` ## Building Operator bundle image + +If you are deploying in an OpenShift cluster then modify the +value of the env variable `SANDBOXED_CONTAINERS_EXTENSION` to `sandboxed-containers` +in the file `config/manager/manager.yaml` before running the below mentioned +commands. + ``` make bundle CHANNELS=candidate make bundle-build make bundle-push ``` + ## Building Catalog image ``` make catalog-build From 35edfb6ecf3dbc6fb9d5b6408c4ca521f778e985 Mon Sep 17 00:00:00 2001 From: Emanuele Giuseppe Esposito Date: Tue, 2 May 2023 04:02:44 -0400 Subject: [PATCH 41/63] controller: fix incorrect logs in createAuthJsonSecret If the client is just updated with no error, the code was always falling back to r.Log.Info("Error creating auth-json-secret", "err", err) thus printing it also when it was not necessary. Signed-off-by: Emanuele Giuseppe Esposito --- controllers/openshift_controller.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 528c1b71..7ff734e8 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -1831,12 +1831,13 @@ func (r *KataConfigOpenShiftReconciler) createAuthJsonSecret() error { if k8serrors.IsAlreadyExists(err) { err = r.Client.Update(context.TODO(), &authJsonSecret) if err != nil { - r.Log.Info("Error UPDATING auth-json-secret", "err", err) + r.Log.Info("Error updating auth-json-secret", "err", err) return err } + } else { + r.Log.Info("Error creating auth-json-secret", "err", err) + return err } - r.Log.Info("Error creating auth-json-secret", "err", err) - return err } return err From f7b3d19ec5c41601806c0a2e015775b50370acd4 Mon Sep 17 00:00:00 2001 From: Snir Sheriber Date: Tue, 2 May 2023 12:08:56 +0300 Subject: [PATCH 42/63] go.mod: fix go mod error to avoid: vbom.ml/util@v0.0.0-20180919145318-efcd4e0f9787: unrecognized import path "vbom.ml/util": https fetch: Get "https://vbom.ml/util?go-get=1": dial tcp: lookup vbom.ml: no such host Signed-off-by: Snir Sheriber --- go.mod | 1 + go.sum | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index ce5c7583..8a453e7f 100644 --- a/go.mod +++ b/go.mod @@ -104,4 +104,5 @@ replace ( k8s.io/kubelet => k8s.io/kubelet v0.25.1 // So that we can import MCO sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.13.0 + vbom.ml/util => github.com/fvbommel/util v0.0.3 ) diff --git a/go.sum b/go.sum index 8eff2c16..19d26c2b 100644 --- a/go.sum +++ b/go.sum @@ -136,6 +136,7 @@ github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bruth/assert v0.0.0-20130823105606-de420fa3b72e/go.mod h1:MT8TZkfLPRir91B19sXF7pmKBma+n6ecyjbqgXabchs= github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= @@ -379,6 +380,7 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4 github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= +github.com/fvbommel/util v0.0.3/go.mod h1:izA2AZeYyvrB6Qo1T9wenVzrx1Clqo3ReUreqM8o5t8= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= @@ -1743,4 +1745,3 @@ sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= -vbom.ml/util v0.0.0-20180919145318-efcd4e0f9787/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= From 40e524c5a56466ab9925f9d44d6ce869fffbc8f5 Mon Sep 17 00:00:00 2001 From: Snir Sheriber Date: Thu, 4 May 2023 15:05:47 +0300 Subject: [PATCH 43/63] controller: embed the peerpod-ctrl in the current controller https://github.com/confidential-containers/cloud-api-adaptor/tree/staging/peerpod-ctrl Signed-off-by: Snir Sheriber --- Dockerfile | 2 +- Makefile | 12 +- config/manager/manager.yaml | 17 + .../extension-crds/kustomization.yaml | 1 + config/samples/_v1alpha1_peerpod.yaml | 12 + controllers/openshift_controller.go | 4 +- go.mod | 104 +- go.sum | 1336 ++++++++++++++++- main.go | 20 +- 9 files changed, 1447 insertions(+), 61 deletions(-) create mode 100644 config/samples/_v1alpha1_peerpod.yaml diff --git a/Dockerfile b/Dockerfile index 86e302ab..9925cd24 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN go mod download # needed for docker build but not for local builds RUN go mod vendor -RUN GOFLAGS="" make build +RUN make build # Use OpenShift base image FROM ${TARGET_IMAGE} diff --git a/Makefile b/Makefile index 47eb5d15..c84fb13d 100644 --- a/Makefile +++ b/Makefile @@ -70,6 +70,12 @@ TARGET_IMAGE ?= registry.ci.openshift.org/ocp/4.11:base SHELL = /usr/bin/env bash -o pipefail .SHELLFLAGS = -ec +BUILTIN_CLOUD_PROVIDERS ?= aws azure +# Build tags required to build cloud-api-adaptor are derived from BUILTIN_CLOUD_PROVIDERS. +space := $() $() +comma := , +GOFLAGS := -tags=$(subst $(space),$(comma),$(strip $(BUILTIN_CLOUD_PROVIDERS))) + .PHONY: all all: build @@ -110,17 +116,15 @@ vet: ## Run go vet against code. .PHONY: test test: manifests generate fmt vet envtest ## Run tests. - KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test ./... -coverprofile cover.out + KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test $(GOFLAGS) ./... -coverprofile cover.out # set write flag on created folder, so that we can clean it up chmod +w $(LOCALBIN)/k8s/$(ENVTEST_K8S_VERSION)* - - ##@ Build .PHONY: build build: generate fmt vet ## Build manager binary. - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -mod=mod -o bin/manager main.go + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build $(GOFLAGS) -mod=mod -o bin/manager main.go .PHONY: run run: manifests generate fmt vet ## Run a controller from your host. diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index 8cbdc81c..a8c50079 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -49,11 +49,28 @@ spec: - effect: NoSchedule key: node.kubernetes.io/memory-pressure operator: Exists + volumes: + - name: ssh + secret: + defaultMode: 384 + optional: true + secretName: ssh-key-secret containers: - command: - /manager args: - --enable-leader-election + volumeMounts: + - mountPath: /root/.ssh/ + name: ssh + readOnly: true + envFrom: + - secretRef: + name: peer-pods-secret + optional: true + - configMapRef: + name: peer-pods-cm + optional: true image: controller:latest name: manager env: diff --git a/config/manifests/extension-crds/kustomization.yaml b/config/manifests/extension-crds/kustomization.yaml index bef00c27..a7a5f6c9 100644 --- a/config/manifests/extension-crds/kustomization.yaml +++ b/config/manifests/extension-crds/kustomization.yaml @@ -2,3 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - confidentialcontainers.org_peerpodconfigs.yaml +- confidentialcontainers.org_peerpods.yaml diff --git a/config/samples/_v1alpha1_peerpod.yaml b/config/samples/_v1alpha1_peerpod.yaml new file mode 100644 index 00000000..748b4edc --- /dev/null +++ b/config/samples/_v1alpha1_peerpod.yaml @@ -0,0 +1,12 @@ +apiVersion: confidentialcontainers.org/v1alpha1 +kind: PeerPod +metadata: + labels: + app.kubernetes.io/name: peerpod + app.kubernetes.io/instance: peerpod-sample + app.kubernetes.io/part-of: peerpod-ctrl + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/created-by: peerpod-ctrl + name: peerpod-sample +spec: + # TODO(user): Add fields here diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 528c1b71..cb57c767 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -1717,8 +1717,8 @@ func (r *KataConfigOpenShiftReconciler) updateFailedNodes(node *corev1.Node, if err != nil { return err, failedList } - if (mcfgv1.IsMachineConfigPoolConditionTrue(foundMcp.Status.Conditions, mcfgv1.MachineConfigPoolNodeDegraded) || - mcfgv1.IsMachineConfigPoolConditionTrue(foundMcp.Status.Conditions, mcfgv1.MachineConfigPoolDegraded)) { + if mcfgv1.IsMachineConfigPoolConditionTrue(foundMcp.Status.Conditions, mcfgv1.MachineConfigPoolNodeDegraded) || + mcfgv1.IsMachineConfigPoolConditionTrue(foundMcp.Status.Conditions, mcfgv1.MachineConfigPoolDegraded) { failedList = append(r.kataConfig.Status.InstallationStatus.Failed.FailedNodesList, kataconfigurationv1.FailedNodeStatus{Name: node.GetName(), diff --git a/go.mod b/go.mod index 8a453e7f..64ad9cd8 100644 --- a/go.mod +++ b/go.mod @@ -3,12 +3,13 @@ module github.com/openshift/sandboxed-containers-operator go 1.19 require ( - github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230404000240-f0579b30f889 + github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230504095339-77bef7014153 + github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230504095339-77bef7014153 github.com/coreos/ignition/v2 v2.9.0 github.com/ghodss/yaml v1.0.0 github.com/go-logr/logr v1.2.3 - github.com/onsi/ginkgo/v2 v2.6.1 - github.com/onsi/gomega v1.24.2 + github.com/onsi/ginkgo/v2 v2.8.1 + github.com/onsi/gomega v1.27.1 github.com/openshift/api v0.0.0-20210924154557-a4f696157341 github.com/openshift/machine-config-operator v0.0.1-0.20211015230756-5353b8ec1122 github.com/spf13/cobra v1.6.0 @@ -17,73 +18,136 @@ require ( k8s.io/apimachinery v0.26.0 k8s.io/client-go v0.26.0 k8s.io/kubernetes v1.26.0 - sigs.k8s.io/controller-runtime v0.14.0 + sigs.k8s.io/controller-runtime v0.14.1 sigs.k8s.io/controller-tools v0.10.0 ) require ( - cloud.google.com/go v0.97.0 // indirect + cloud.google.com/go/compute v1.7.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v3 v3.0.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork v1.1.0 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 // indirect + github.com/IBM-Cloud/power-go-client v1.2.3 // indirect + github.com/IBM/go-sdk-core/v5 v5.13.1 // indirect + github.com/IBM/platform-services-go-sdk v0.36.0 // indirect + github.com/IBM/vpc-go-sdk v0.35.0 // indirect + github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect + github.com/avast/retry-go/v4 v4.3.3 // indirect + github.com/aws/aws-sdk-go-v2 v1.16.5 // indirect + github.com/aws/aws-sdk-go-v2/config v1.15.11 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.12.6 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.6 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.12 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.13 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.31.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.11.9 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.16.7 // indirect + github.com/aws/smithy-go v1.11.3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/confidential-containers/cloud-api-adaptor v0.5.1-0.20230504043629-580abeb128aa // indirect + github.com/containerd/containerd v1.6.6 // indirect + github.com/containerd/ttrpc v1.1.0 // indirect + github.com/containernetworking/plugins v1.1.1 // indirect + github.com/containers/podman/v4 v4.2.0 // indirect + github.com/coreos/go-iptables v0.6.0 // indirect github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/coreos/vcontext v0.0.0-20201120045928-b0e13dab675c // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/fatih/color v1.12.0 // indirect + github.com/fatih/color v1.13.0 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-logr/zapr v1.2.3 // indirect + github.com/go-openapi/analysis v0.21.2 // indirect + github.com/go-openapi/errors v0.20.3 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect github.com/go-openapi/jsonreference v0.20.0 // indirect - github.com/go-openapi/swag v0.19.14 // indirect + github.com/go-openapi/loads v0.21.1 // indirect + github.com/go-openapi/runtime v0.23.0 // indirect + github.com/go-openapi/spec v0.20.4 // indirect + github.com/go-openapi/strfmt v0.21.3 // indirect + github.com/go-openapi/swag v0.21.1 // indirect + github.com/go-openapi/validate v0.22.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.11.2 // indirect github.com/gobuffalo/flect v0.2.5 // indirect github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang-jwt/jwt v3.2.1+incompatible // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/google/gnostic v0.5.7-v3refs // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.2.0 // indirect - github.com/imdario/mergo v0.3.12 // indirect + github.com/google/uuid v1.3.0 // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-retryablehttp v0.7.2 // indirect + github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/mailru/easyjson v0.7.6 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect + github.com/kata-containers/kata-containers/src/runtime v0.0.0-20220913141151-9b49a6ddc6fd // indirect + github.com/kylelemons/godebug v1.1.0 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-colorable v0.1.12 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/oklog/ulid v1.3.1 // indirect + github.com/opencontainers/runtime-spec v1.0.3-0.20211214071223-8958f93039ab // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/prometheus/client_golang v1.14.0 // indirect github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 // indirect - go.uber.org/atomic v1.7.0 // indirect + github.com/vishvananda/netlink v1.1.1-0.20220115184804-dd687eb2f2d4 // indirect + github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f // indirect + github.com/vmware/govmomi v0.29.0 // indirect + go.mongodb.org/mongo-driver v1.11.2 // indirect + go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.6.0 // indirect - golang.org/x/mod v0.7.0 // indirect - golang.org/x/net v0.4.0 // indirect - golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/term v0.3.0 // indirect - golang.org/x/text v0.5.0 // indirect + golang.org/x/crypto v0.5.0 // indirect + golang.org/x/mod v0.8.0 // indirect + golang.org/x/net v0.7.0 // indirect + golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 // indirect + golang.org/x/sys v0.5.0 // indirect + golang.org/x/term v0.5.0 // indirect + golang.org/x/text v0.7.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.4.0 // indirect + golang.org/x/tools v0.6.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f // indirect + google.golang.org/grpc v1.49.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiextensions-apiserver v0.26.0 // indirect k8s.io/component-base v0.26.0 // indirect + k8s.io/cri-api v0.23.1 // indirect k8s.io/klog/v2 v2.80.1 // indirect k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect + libvirt.org/go/libvirt v1.8002.0 // indirect + libvirt.org/go/libvirtxml v1.8002.0 // indirect sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect diff --git a/go.sum b/go.sum index 19d26c2b..0be571d8 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,7 @@ +4d63.com/gochecknoglobals v0.1.0/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= +bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= +bitbucket.org/creachadair/shell v0.0.6/go.mod h1:8Qqi/cYk7vPnsOePHroKXDJYmb5x7ENhtiFtfZq8K+M= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= @@ -13,6 +16,7 @@ cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bP cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.58.0/go.mod h1:W+9FnSUw6nhVwXlFcp1eL+krq5+HQUJeUogSeJZZiWg= +cloud.google.com/go v0.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eAU= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= @@ -26,49 +30,113 @@ cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWc cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= -cloud.google.com/go v0.97.0 h1:3DXvAyifywvq64LfkKaMOmkWPS1CikIQdMe2lY9vxU8= cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0 h1:v/k9Eueb8aAJ0vZuxKMrgm6kPhCLZU9HxFU+AFDs9Uk= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.5.0/go.mod h1:ZEwJccE3z93Z2HWvstpri00jOg7oO4UZDtKhwDwqF0w= +cloud.google.com/go/spanner v1.7.0/go.mod h1:sd3K2gZ9Fd0vMPLXzeCrF6fq4i63Q7aTLW/lBIfBkIk= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.9.0/go.mod h1:m+/etGaqZbylxaNT876QGXqEHp4PR2Rq5GMqICWb9bU= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5/go.mod h1:v4VVB6oBMz/c9fRY6vZrwr5xKRWOH5NPDjQZlPk0Gbs= +contrib.go.opencensus.io/exporter/stackdriver v0.13.4/go.mod h1:aXENhDJ1Y4lIg4EUaVTwzvYETVNZk10Pu26tevFKLUc= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/14rcole/gopopulate v0.0.0-20180821133914-b175b219e774/go.mod h1:6/0dYRLLXyJjbkIPeeGyoJ/eKOSI0eU6eTlCBYibgd0= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= +github.com/Antonboom/errname v0.1.5/go.mod h1:DugbBstvPFQbv/5uLcRRzfrNqKE9tVdVCqWCLp6Cifo= +github.com/Antonboom/nilnil v0.1.0/go.mod h1:PhHLvRPSghY5Y7mX4TW+BHZQYo1A8flE5H20D3IPZBo= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmVGurPWMHDX2YNXVQMrBpEE= +github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2 h1:lneMk5qtUMulXa/eVxjVd+/bDYMEDIqYpLzLa2/EsNI= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v3 v3.0.1 h1:H3g2mkmu105ON0c/Gqx3Bm+bzoIijLom8LmV9Gjn7X0= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v3 v3.0.1/go.mod h1:EAc3kjhZf9soch7yLID8PeKcE6VfKvQTllSBHYVdXd8= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal v1.0.0 h1:lMW1lD/17LUA5z1XTURo7LcVG2ICBPlyMHjIUrcFZNQ= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork v1.1.0 h1:QM6sE5k2ZT/vI5BEe0r7mqjsUSnhVBFbOsVkEuaEfiA= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork v1.1.0/go.mod h1:243D9iHbcQXoFUtgHJwL7gl2zx1aDuDMjvBZVGr2uW0= +github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.0.0 h1:ECsQtyERDVz3NP3kvDOTLvbQhqWp/x9EsGKtb4ogUr8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U= github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= github.com/Azure/go-autorest/autorest/adal v0.9.20/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.11/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= +github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= +github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE= +github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.0.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= +github.com/IBM-Cloud/power-go-client v1.2.3 h1:Scx70PyqpKv3zS/kJeMEg0qOOmsG6cM3bueiAYcCgXI= +github.com/IBM-Cloud/power-go-client v1.2.3/go.mod h1:Qfx0fNi+9hms+xu9Z6Euhu9088ByW6C/TCMLECTRWNE= +github.com/IBM/go-sdk-core/v5 v5.13.1 h1:zD6p3t1whAlRJo/VBmE69c8RcH9LCHL1n0/sO1MWlpw= +github.com/IBM/go-sdk-core/v5 v5.13.1/go.mod h1:pVkN7IGmsSdmR1ZCU4E/cLcCclqRKMYgg7ya+O2Mk6g= +github.com/IBM/platform-services-go-sdk v0.36.0 h1:ElwA6czZWfbda6BZPqrqBxin6x0MgLhfLtSYG+t9cSU= +github.com/IBM/platform-services-go-sdk v0.36.0/go.mod h1:oFW/DQyAXGBcGytB+DtKjE3yNdEGM2bmw5SDOjrRwTw= +github.com/IBM/vpc-go-sdk v0.35.0 h1:Qc0OV2WIQLGwxuvPKusJdgeXiMwyHQITvSof+v125D8= +github.com/IBM/vpc-go-sdk v0.35.0/go.mod h1:Ozn0YBCs284Qvy+CNAmoLhh2eD48NnobiAyfgVd8wmA= github.com/InVisionApp/go-health v2.1.0+incompatible/go.mod h1:/+Gv1o8JUsrjC6pi6MN6/CgKJo4OqZ6x77XAnImrzhg= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver/v3 v3.0.3/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Masterminds/sprig v2.20.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= @@ -78,6 +146,8 @@ github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JP github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= @@ -86,6 +156,11 @@ github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2 github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.22/go.mod h1:91uVCVzvX2QD16sMCenoxxXo6L1wJnLMX2PSufFMtF0= +github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= +github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/Microsoft/hcsshim v0.9.3/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= @@ -93,13 +168,18 @@ github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMo github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OpenPeeDeeP/depguard v1.0.0/go.mod h1:7/4sitnI9YlQgTLLk734QlzXT8DuHVnAyztLplQjk+o= github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= +github.com/ProtonMail/go-crypto v0.0.0-20220517143526-88bb52951d5b/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= +github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/ReneKroon/ttlcache/v2 v2.11.0/go.mod h1:mBxvsNY+BT8qLLd6CuAJubbKo6r0jh3nb5et22bbfGY= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= github.com/VividCortex/ewma v1.1.1/go.mod h1:2Tkkvm3sRDVXaiyucHiACn4cqf7DpdyLvmxzcbUokwA= github.com/VividCortex/ewma v1.2.0/go.mod h1:nz4BbCtbLyFDeC9SUHbtcT5644juEuWfUAUnGx7j5l4= github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= +github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/ajeddeloh/go-json v0.0.0-20170920214419-6a2fe990e083/go.mod h1:otnto4/Icqn88WCcM4bhIJNSgsh9VLBuspyyCfvof9c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -107,19 +187,76 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= +github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= +github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= +github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20220418222510-f25a4f6275ed/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= +github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= github.com/apparentlymart/go-cidr v1.0.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= +github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-metrics v0.3.9/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= +github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= +github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= +github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= +github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/ashanbrown/forbidigo v1.2.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= +github.com/ashanbrown/makezero v0.0.0-20210520155254-b6261585ddde/go.mod h1:oG9Dnez7/ESBqc4EdrdNlryeo7d0KcW1ftXHm7nU/UU= github.com/ashcrow/osrelease v0.0.0-20180626175927-9b292693c55c/go.mod h1:BRljTyotlu+6N+Qlu5MhjxpdmccCnp9lDvZjNNV8qr4= +github.com/avast/retry-go/v4 v4.3.3 h1:G56Bp6mU0b5HE1SkaoVjscZjlQb0oy4mezwY/cGH19w= +github.com/avast/retry-go/v4 v4.3.3/go.mod h1:rg6XFaiuFYII0Xu3RDbZQkxCofFwruZKW8oEF1jpWiU= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.19.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.23.20/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.30.28/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= +github.com/aws/aws-sdk-go v1.36.30/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= +github.com/aws/aws-sdk-go v1.44.44/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go-v2 v1.15.0/go.mod h1:lJYcuZZEHWNIb6ugJjbQY1fykdoobWbOS7kJYb4APoI= +github.com/aws/aws-sdk-go-v2 v1.16.5 h1:Ah9h1TZD9E2S1LzHpViBO3Jz9FPL5+rmflmb8hXirtI= +github.com/aws/aws-sdk-go-v2 v1.16.5/go.mod h1:Wh7MEsmEApyL5hrWzpDkba4gwAPc5/piwLVLFnCxp48= +github.com/aws/aws-sdk-go-v2/config v1.15.11 h1:qfec8AtiCqVbwMcx51G1yO2PYVfWfhp2lWkDH65V9HA= +github.com/aws/aws-sdk-go-v2/config v1.15.11/go.mod h1:mD5tNFciV7YHNjPpFYqJ6KGpoSfY107oZULvTHIxtbI= +github.com/aws/aws-sdk-go-v2/credentials v1.12.6 h1:No1wZFW4bcM/uF6Tzzj6IbaeQJM+xxqXOYmoObm33ws= +github.com/aws/aws-sdk-go-v2/credentials v1.12.6/go.mod h1:mQgnRmBPF2S/M01W4T4Obp3ZaZB6o1s/R8cOUda9vtI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.6 h1:+NZzDh/RpcQTpo9xMFUgkseIam6PC+YJbdhbQp1NOXI= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.6/go.mod h1:ClLMcuQA/wcHPmOIfNzNI4Y1Q0oDbmEkbYhMFOzHDh8= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.6/go.mod h1:SSPEdf9spsFgJyhjrXvawfpyzrXHBCUe+2eQ1CjC1Ak= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.12 h1:Zt7DDk5V7SyQULUUwIKzsROtVzp/kVvcz15uQx/Tkow= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.12/go.mod h1:Afj/U8svX6sJ77Q+FPWMzabJ9QjbwP32YlopgKALUpg= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.0/go.mod h1:viTrxhAuejD+LszDahzAE2x40YjYWhMqzHxv2ZiWaME= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6 h1:eeXdGVtXEe+2Jc49+/vAzna3FAQnUD4AagAw8tzbmfc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.6/go.mod h1:FwpAKI+FBPIELJIdmQzlLtRe8LQSOreMcM2wBsPMvvc= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.13 h1:L/l0WbIpIadRO7i44jZh1/XeXpNDX0sokFppb4ZnXUI= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.13/go.mod h1:hiM/y1XPp3DoEPhoVEYc/CZcS58dP6RKJRDFp99wdX0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.31.0 h1:8Q6WYZvgBylP7kh7S5gQvGKpsjphcZPEuytwl/JxxoA= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.31.0/go.mod h1:Z8942YP2VgLQpgPCx06iXCrOt7mxxCe0dESCm9FFhgs= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.0/go.mod h1:R31ot6BgESRCIoxwfKtIHzZMo/vsZn2un81g9BJ4nmo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.6 h1:0ZxYAZ1cn7Swi/US55VKciCE6RhRHIwCKIWaMLdT6pg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.6/go.mod h1:DxAPjquoEHf3rUHh1b9+47RAaXB8/7cB6jkzCt/GOEI= +github.com/aws/aws-sdk-go-v2/service/kms v1.17.3/go.mod h1:EKkrWWXwWYf8x3Nrm6Oix3zZP9NRBHqxw5buFGVBHA0= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.9 h1:Gju1UO3E8ceuoYc/AHcdXLuTZ0WGE1PT2BYDwcYhJg8= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.9/go.mod h1:UqRD9bBt15P0ofRyDZX6CfsIqPpzeHOhZKWzgSuAzpo= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.7 h1:HLzjwQM9975FQWSF3uENDGHT1gFQm/q3QXu2BYIcI08= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.7/go.mod h1:lVxTdiiSHY3jb1aeg+BBFtDzZGSUCv6qaNOyEGCJ1AY= +github.com/aws/smithy-go v1.11.1/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= +github.com/aws/smithy-go v1.11.3 h1:DQixirEFM9IaKxX1olZ3ke3nvxRS2xMDteKIDWxozW8= +github.com/aws/smithy-go v1.11.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/beeker1121/goque v1.0.3-0.20191103205551-d618510128af/go.mod h1:84CWnaDz4g1tEVnFLnuBigmGK15oPohy0RfvSN8d4eg= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -132,16 +269,29 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= +github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/blizzy78/varnamelen v0.3.0/go.mod h1:hbwRdBvoBqxk34XyQ6HA0UH3G0/1TKuv5AC4eaBT0Ec= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bombsimon/wsl/v3 v3.3.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= +github.com/breml/bidichk v0.1.1/go.mod h1:zbfeitpevDUGI7V91Uzzuwrn4Vls8MoBMrwtt78jmso= github.com/bruth/assert v0.0.0-20130823105606-de420fa3b72e/go.mod h1:MT8TZkfLPRir91B19sXF7pmKBma+n6ecyjbqgXabchs= github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/buger/goterm v1.0.4/go.mod h1:HiFWV3xnkolgrBV3mY8m0X0Pumt4zg4QhbdOzQtB8tE= github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= +github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= +github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= +github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= @@ -150,8 +300,13 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= +github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= +github.com/chavacava/garif v0.0.0-20210405164556-e8a0a408d6af/go.mod h1:Qjyv4H3//PWVzTeCezG2b9IRn6myJxJSr4TD/xo6ojU= +github.com/checkpoint-restore/checkpointctl v0.0.0-20220321135231-33f4a66335f0/go.mod h1:67kWC1PXQLR3lM/mmNnu3Kzn7K4TSWZAGUuQP1JSngk= github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= +github.com/checkpoint-restore/go-criu/v5 v5.2.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -160,6 +315,10 @@ github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLI github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/cilium/ebpf v0.6.1/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= +github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clarketm/json v1.14.1/go.mod h1:ynr2LRfb0fQU34l07csRNBTcivjySLLiY1YzQqKVfdo= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= @@ -167,14 +326,23 @@ github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnht github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230404000240-f0579b30f889 h1:dDpb3E5euZYR7FTkmhhiZXTfmbKxxtyJJbOP8ViJcJk= -github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230404000240-f0579b30f889/go.mod h1:LH9ur4GVe4uZM9MnQIGIeBr5CdCVMQ9AtUHGPs1WoD4= +github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4= +github.com/confidential-containers/cloud-api-adaptor v0.5.1-0.20230504043629-580abeb128aa h1:dRChI1GYwl5maTTkBszTmcPOx541mORE1S4Cxm1mbp0= +github.com/confidential-containers/cloud-api-adaptor v0.5.1-0.20230504043629-580abeb128aa/go.mod h1:PgjQnT5SSuSMiVM2uVKj7Qq70lMc5nVhZOPYU0lyy+s= +github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230504095339-77bef7014153 h1:Fi+koFVy+nTa69XzsLo+6ktjalQH15om/RxfzW0GLPQ= +github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230504095339-77bef7014153/go.mod h1:MHjPSHrlD3SLbWqT6RteKSgZRc2fRRZahf5lfPYbHUM= +github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230504095339-77bef7014153 h1:5w9u2wIXGi0DGWyjP43m8yIRL4OPcm5GS3/jWZ/6SGA= +github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230504095339-77bef7014153/go.mod h1:LH9ur4GVe4uZM9MnQIGIeBr5CdCVMQ9AtUHGPs1WoD4= +github.com/container-orchestrated-devices/container-device-interface v0.4.0/go.mod h1:E1zcucIkq9P3eyNmY+68dBQsTcsXJh9cgRo2IVNScKQ= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= @@ -189,11 +357,14 @@ github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4S github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= +github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= +github.com/containerd/cgroups v1.0.5-0.20220625035431-cf7417bca682/go.mod h1:nLNQtsF7Sl2HxNebu77i1R0oDlhiTG+kO4JTrUzo6IA= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= +github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= @@ -202,11 +373,18 @@ github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMX github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= +github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= +github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= +github.com/containerd/containerd v1.5.9/go.mod h1:fvQqCfadDGga5HZyn3j4+dx56qj2I9YwBrlSdalvJYQ= +github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= +github.com/containerd/containerd v1.6.6 h1:xJNPhbrmz8xAMDNoVjHy9YHtWwEQNS+CDkcIRh7t8Y0= +github.com/containerd/containerd v1.6.6/go.mod h1:ZoP1geJldzCVY3Tonoz7b1IXk8rIX0Nltt5QE4OMNk0= github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= @@ -214,6 +392,8 @@ github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cE github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= +github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= +github.com/containerd/cri-containerd v1.19.0/go.mod h1:wxbGdReWGCalzGOEpifoHeYCK4xAgnj4o/4bVB+9voU= github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= @@ -222,6 +402,9 @@ github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1S github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= +github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.6/go.mod h1:BWtoWl5ghVymxu6MBjg79W9NZrCRyHIdUtk4cauMe34= github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= @@ -231,14 +414,23 @@ github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= +github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= +github.com/containerd/imgcrypt v1.1.4/go.mod h1:LorQnPtzL/T0IyCeftcsMEO7AqxUDbdO8j/tSUpgxvo= github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= +github.com/containerd/stargz-snapshotter/estargz v0.9.0/go.mod h1:aE5PCyhFMwR8sbrErO5eM2GcvkyXTTJremG883D4qF0= +github.com/containerd/stargz-snapshotter/estargz v0.10.1/go.mod h1:aE5PCyhFMwR8sbrErO5eM2GcvkyXTTJremG883D4qF0= +github.com/containerd/stargz-snapshotter/estargz v0.11.4/go.mod h1:7vRJIcImfY8bpifnMjt+HTJoQxASq7T28MYbP15/Nf0= +github.com/containerd/stargz-snapshotter/estargz v0.12.0/go.mod h1:AIQ59TewBFJ4GOPEQXujcrJ/EKxh5xXZegW1rkR1P/M= github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= +github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= @@ -251,17 +443,37 @@ github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNR github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= +github.com/containernetworking/cni v1.1.1/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= +github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= +github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= +github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= +github.com/containernetworking/plugins v1.1.1 h1:+AGfFigZ5TiQH00vhR8qPeSatj53eNGz0C1d3wVYlHE= +github.com/containernetworking/plugins v1.1.1/go.mod h1:Sr5TH/eBsGLXK/h71HeLfX19sZPp3ry5uHSkI4LPxV8= +github.com/containers/buildah v1.27.0/go.mod h1:anH3ExvDXRNP9zLQCrOc1vWb5CrhqLF/aYFim4tslvA= +github.com/containers/common v0.49.1/go.mod h1:ueM5hT0itKqCQvVJDs+EtjornAQtrHYxQJzP2gxeGIg= +github.com/containers/conmon v2.0.20+incompatible/go.mod h1:hgwZ2mtuDrppv78a/cOBNiCm6O0UMWGx1mu7P00nu5I= github.com/containers/image/v5 v5.11.0/go.mod h1:dCbUB4w6gmxIEOCsE0tZQppr8iBoXb4Evr74ZKlmwoI= github.com/containers/image/v5 v5.14.0/go.mod h1:SxiBKOcKuT+4yTjD0AskjO+UwFvNcVOJ9qlAw1HNSPU= +github.com/containers/image/v5 v5.22.0/go.mod h1:D8Ksv2RNB8qLJ7xe1P3rgJJOSQpahA6amv2Ax++/YO4= github.com/containers/libtrust v0.0.0-20190913040956-14b96171aa3b/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY= +github.com/containers/libtrust v0.0.0-20200511145503-9c3a6c22cd9a/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY= github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/containers/ocicrypt v1.1.3/go.mod h1:xpdkbVAuaH3WzbEabUd5yDsl9SwJA5pABH85425Es2g= +github.com/containers/ocicrypt v1.1.5/go.mod h1:WgjxPWdTJMqYMjf3M6cuIFFA1/MpyyhIM99YInA+Rvc= +github.com/containers/podman/v4 v4.2.0 h1:mqQ0CtdSOTfsl6IEcO0UiA/Yi/9Yxoe/mSEC4h21CK8= +github.com/containers/podman/v4 v4.2.0/go.mod h1:sUxBZd/VXjXXsHuQURWaQaetb0Ugqd1C6y7uScgmf4o= +github.com/containers/psgo v1.7.2/go.mod h1:SLpqxsPOHtTqRygjutCPXmeU2PoEFzV3gzJplN4BMx0= github.com/containers/storage v1.28.1/go.mod h1:5bwiMh2LkrN3AWIfDFMH7A/xbVNLcve+oeXYvHvW8cc= github.com/containers/storage v1.32.6/go.mod h1:mdB+b89p+jU8zpzLTVXA0gWMmIo0WrkfGMh1R8O2IQw= +github.com/containers/storage v1.37.0/go.mod h1:kqeJeS0b7DO2ZT1nVWs0XufrmPFbgV3c+Q/45RlH6r4= +github.com/containers/storage v1.38.0/go.mod h1:lBzt28gAk5ADZuRtwdndRJyqX22vnRaXmlF+7ktfMYc= +github.com/containers/storage v1.42.0/go.mod h1:JiUJwOgOo1dr2DdOUc1MRe2GCAXABYoYmOdPF8yvH78= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -269,8 +481,11 @@ github.com/coreos/fcct v0.5.0/go.mod h1:cbE+j77YSQwFB2fozWVB3qsI2Pi3YiVEbDz/b6Yy github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk= +github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= github.com/coreos/go-json v0.0.0-20170920214419-6a2fe990e083/go.mod h1:FmxyHfvrCFfCsXRylD4QQRlQmvzl+DG6iTHyEEykPfU= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-oidc/v3 v3.2.0/go.mod h1:rEJ/idjfUyfkBit1eI1fvyr+64/g9dcKpAm8MJMesvo= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -278,6 +493,7 @@ github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20181031085051-9002847aa142/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190620071333-e64a0ec8b42a/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= @@ -289,7 +505,9 @@ github.com/coreos/ignition/v2 v2.1.1/go.mod h1:RqmqU64zxarUJa3l4cHtbhcSwfQLpUhv0 github.com/coreos/ignition/v2 v2.7.0/go.mod h1:3CjaRpg51hmJzPjarbzB0RvSZbLkNOczxKJobTl6nOY= github.com/coreos/ignition/v2 v2.9.0 h1:Zl5N08OyqlECB8BrBlMDp3Jf1ShwVTtREPcUq/YO034= github.com/coreos/ignition/v2 v2.9.0/go.mod h1:A5lFFzA2/zvZQPVEvI1lR5WPLWRb7KZ7Q1QOeUMtcAc= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/stream-metadata-go v0.0.0-20210225230131-70edb9eb47b3/go.mod h1:RTjQyHgO/G37oJ3qnqYK6Z4TPZ5EsaabOtfMjVXmgko= github.com/coreos/vcontext v0.0.0-20190529201340-22b159166068/go.mod h1:E+6hug9bFSe0KZ2ZAzr8M9F5JlArJjv5D1JS7KSkPKE= github.com/coreos/vcontext v0.0.0-20191017033345-260217907eb5/go.mod h1:E+6hug9bFSe0KZ2ZAzr8M9F5JlArJjv5D1JS7KSkPKE= github.com/coreos/vcontext v0.0.0-20201120045928-b0e13dab675c h1:jA28WeORitsxGFVWhyWB06sAG2HbLHPQuHwDydhU2CQ= @@ -303,44 +521,66 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= +github.com/daixiang0/gci v0.2.9/go.mod h1:+4dZ7TISfSmqfAGv59ePaHfNzgGtIkHAhhdKggP1JAc= github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7hqDjlFjiygg= github.com/dave/dst v0.26.2/go.mod h1:UMDJuIRPfyUCC78eFuB+SV/WI8oDeyFDvM/JR6NI3IU= github.com/dave/gopackages v0.0.0-20170318123100-46e7023ec56e/go.mod h1:i00+b/gKdIDIxuLDFob7ustLAVqhsZRk2qVZrArELGQ= github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= github.com/dave/kerr v0.0.0-20170318121727-bc25dd6abe8e/go.mod h1:qZqlPyPvfsDJt+3wHJ1EvSXDuVjFTK0j2p/ca+gtsb8= github.com/dave/rebecca v0.9.1/go.mod h1:N6XYdMD/OKw3lkF3ywh8Z6wPGuwNFDNtWYEMFWEmXBA= +github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c= +github.com/denis-tingajkin/go-header v0.4.2/go.mod h1:eLRHAVXzE5atsKAnNRDB90WHCFFnBUn4RN0nRcs1LJA= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/digitalocean/go-libvirt v0.0.0-20201209184759-e2a69bcd5bd1/go.mod h1:QS1XzqZLcDniNYrN7EZefq3wIyb/M2WmJbql4ZKoc1Q= +github.com/digitalocean/go-qemu v0.0.0-20210326154740-ac9e0b687001/go.mod h1:IetBE52JfFxK46p2n2Rqm+p5Gx1gpu2hRHsrbnPOWZQ= +github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= +github.com/disiqueira/gotree/v3 v3.0.2/go.mod h1:ZuyjE4+mUQZlbpkI24AmruZKhg3VHEgPLDY8Qk+uUu8= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c= +github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v20.10.16+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20180920194744-16128bbac47f/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.4.2-0.20191219165747-a9416c67da9f/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.12+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.16+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/docker-credential-helpers v0.6.4/go.mod h1:ofX3UI0Gz1TteYBjtgs07O36Pyasyp66D2uKT7H8W1c= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11/go.mod h1:a6bNUGTbQBsY6VRHTr4h/rkOXjl244DyRD0tx3fgq4Q= github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= +github.com/docker/go-plugins-helpers v0.0.0-20211224144127-6eecb7beb651/go.mod h1:LFyLie6XcDbyKGeVK6bHe+9aJTYCxWLBg5IrJZOaXKA= +github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/libnetwork v0.8.0-dev.2.0.20190625141545-5a177b73e316/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8= github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dtylman/scp v0.0.0-20181017070807-f3000a34aef4/go.mod h1:jN1ZaUPSNA8jm10nmaRLky84qV/iCeiHmcEf3EbP+dc= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eggsampler/acme/v3 v3.2.1/go.mod h1:/qh0rKC/Dh7Jj+p4So7DbWmFNzC4dpcpK53r226Fhuo= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/elazarl/goproxy v0.0.0-20190911111923-ecfe977594f1/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= @@ -357,46 +597,81 @@ github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5y github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/esimonov/ifshort v1.0.3/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE= +github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch/v5 v5.5.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= +github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a/go.mod h1:7Ga40egUymuWXxAe151lTNnCv97MddSOVsjpPPkityA= +github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= +github.com/facebookgo/limitgroup v0.0.0-20150612190941-6abd8d71ec01/go.mod h1:ypD5nozFk9vcGw1ATYefw6jHe/jZP++Z15/+VTMcWhc= +github.com/facebookgo/muster v0.0.0-20150708232844-fd3d7953fd52/go.mod h1:yIquW87NGRw1FU5p5lEkpnt/QxoH5uPAOUlOVkAUuMg= +github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= +github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= +github.com/fanliao/go-promise v0.0.0-20141029170127-1890db352a72/go.mod h1:PjfxuH4FZdUyfMdtBio2lsRr1AKEaVPwelzuHuh8Lqc= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/flynn/go-docopt v0.0.0-20140912013429-f6dd2ebbb31e/go.mod h1:HyVoz1Mz5Co8TFO8EupIdlcpwShBmY98dkT2xeHkvEI= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= +github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= +github.com/frankban/quicktest v1.13.1/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsouza/go-dockerclient v1.7.7/go.mod h1:njNCXvoZj3sLPjf3yO0DPHf1mdLdCPDYPc14GskKA4Y= +github.com/fsouza/go-dockerclient v1.8.1/go.mod h1:zmA2ogSxRnXmbZcy0Aq7yhRoCdP/bDns/qghCK9SWtM= github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= +github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= github.com/fvbommel/util v0.0.3/go.mod h1:izA2AZeYyvrB6Qo1T9wenVzrx1Clqo3ReUreqM8o5t8= +github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.7.1/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= +github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-bindata/go-bindata v3.1.2+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA= +github.com/go-critic/go-critic v0.6.1/go.mod h1:SdNCfU0yF3UBjtaZGw6586/WocupMOJuiqgom5DsQxM= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gorp/gorp/v3 v3.0.2/go.mod h1:BJ3q1ejpV8cVALtcXvXaXyTOlMmJhWDxTmncaR6rwBY= github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-ini/ini v1.28.2/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-ldap/ldap/v3 v3.1.10/go.mod h1:5Zun81jBTabRaI8lzN7E1JjyEl1g6zI6u9pd8luAK4Q= github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= @@ -406,29 +681,152 @@ github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7 github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A= github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= +github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= +github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= +github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= +github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= +github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= +github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= +github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= +github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk= +github.com/go-openapi/analysis v0.20.0/go.mod h1:BMchjvaHDykmRMsK40iPtvyOfFdMMxlOmQr9FBZk+Og= +github.com/go-openapi/analysis v0.20.1/go.mod h1:BMchjvaHDykmRMsK40iPtvyOfFdMMxlOmQr9FBZk+Og= +github.com/go-openapi/analysis v0.21.2 h1:hXFrOYFHUAMQdu6zwAiKKJHJQ8kqZs1ux/ru1P1wLJU= +github.com/go-openapi/analysis v0.21.2/go.mod h1:HZwRk4RRisyG8vx2Oe6aqeSQcoxRp47Xkp3+K6q+LdY= +github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= +github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= +github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.1/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.3 h1:rz6kiC84sqNQoqrtulzaL/VERgkoCyB6WdEkc2ujzUc= +github.com/go-openapi/errors v0.20.3/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk= +github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= +github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= +github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= +github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= +github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= +github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= +github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI= +github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= +github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= +github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= +github.com/go-openapi/loads v0.20.0/go.mod h1:2LhKquiE513rN5xC6Aan6lYOSddlL8Mp20AW9kpviM4= +github.com/go-openapi/loads v0.20.2/go.mod h1:hTVUotJ+UonAMMZsvakEgmWKgtulweO9vYP2bQYKA/o= +github.com/go-openapi/loads v0.21.0/go.mod h1:rHYve9nZrQ4CJhyeIIFJINGCg1tQpx2yJrrNo8sf1ws= +github.com/go-openapi/loads v0.21.1 h1:Wb3nVZpdEzDTcly8S4HMkey6fjARRzb7iEaySimlDW0= +github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= +github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= +github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= +github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= +github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= +github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98= +github.com/go-openapi/runtime v0.19.21/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= +github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= +github.com/go-openapi/runtime v0.23.0 h1:HX6ET2sHCIvaKeDDQoU01CtO1ekg5EkekHSkLTtWXH0= +github.com/go-openapi/runtime v0.23.0/go.mod h1:aQg+kaIQEn+A2CRSY1TxbM8+sT9g2V3aLc1FbIAnbbs= +github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= +github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= +github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= +github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= +github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= +github.com/go-openapi/spec v0.20.1/go.mod h1:93x7oh+d+FQsmsieroS4cmR3u0p/ywH649a3qwC9OsQ= +github.com/go-openapi/spec v0.20.3/go.mod h1:gG4F8wdEDN+YPBMVnzE85Rbhf+Th2DTvA9nFPQ5AYEg= +github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= +github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= +github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= +github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= +github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= +github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= +github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= +github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= +github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= +github.com/go-openapi/strfmt v0.20.2/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk= +github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= +github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= +github.com/go-openapi/strfmt v0.21.3 h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o= +github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= +github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= +github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= +github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= +github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= +github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= +github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= +github.com/go-openapi/swag v0.19.13/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrKU= +github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= +github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= +github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= +github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= +github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= +github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI= +github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0= +github.com/go-openapi/validate v0.20.3/go.mod h1:goDdqVGiigM3jChcrYJxD2joalke3ZXeftD16byIjA4= +github.com/go-openapi/validate v0.22.0 h1:b0QecH6VslW/TxtpKgzpO1SNG7GU2FsaqKdP1E2T50Y= +github.com/go-openapi/validate v0.22.0/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= +github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s= +github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= +github.com/go-redis/redis/v8 v8.11.4/go.mod h1:2Z2wHZXdQpCDXEGzqMockDpNyYvi2l4Pxt6RJr792+w= +github.com/go-rod/rod v0.107.3/go.mod h1:4SqYRUrcc4dSr9iT36YRZ4hdUAPg3A0O8RhxAMh0eCQ= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= github.com/go-toolsmith/astequal v0.0.0-20180903214952-dcb477bfacd6/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= +github.com/go-toolsmith/astequal v1.0.1/go.mod h1:4oGA3EZXTVItV/ipGiOx7NWkY5veFfcsOJVS2YxltLw= github.com/go-toolsmith/astfmt v0.0.0-20180903215011-8f8ee99c3086/go.mod h1:mP93XdblcopXwlyN4X4uodxXQhldPGZbcEJIimQHrkg= github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU= @@ -438,9 +836,56 @@ github.com/go-toolsmith/pkgload v0.0.0-20181119091011-e9e65178eee8/go.mod h1:WoM github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= +github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= +github.com/gobuffalo/attrs v0.1.0/go.mod h1:fmNpaWyHM0tRm8gCZWKx8yY9fvaNLo2PyzBNSrBZ5Hw= +github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= +github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= +github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/envy v1.8.1/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= +github.com/gobuffalo/envy v1.9.0/go.mod h1:FurDp9+EDPE4aIUS3ZLyD+7/9fpx7YRt/ukY6jIHf0w= +github.com/gobuffalo/fizz v1.10.0/go.mod h1:J2XGPO0AfJ1zKw7+2BA+6FEGAkyEsdCOLvN93WCT2WI= +github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= +github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= +github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= +github.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= +github.com/gobuffalo/flect v0.2.1/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= github.com/gobuffalo/flect v0.2.5 h1:H6vvsv2an0lalEaCDRThvtBfmg44W/QHXBCYUXf/6S4= github.com/gobuffalo/flect v0.2.5/go.mod h1:1ZyCLIbg0YD7sDkzvFdPoOydPtD8y9JQnrOROolUcM8= +github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= +github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= +github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= +github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= +github.com/gobuffalo/genny/v2 v2.0.5/go.mod h1:kRkJuAw9mdI37AiEYjV4Dl+TgkBDYf8HZVjLkqe5eBg= +github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= +github.com/gobuffalo/github_flavored_markdown v1.1.0/go.mod h1:TSpTKWcRTI0+v7W3x8dkSKMLJSUpuVitlptCkpeY8ic= +github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= +github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= +github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= +github.com/gobuffalo/helpers v0.6.0/go.mod h1:pncVrer7x/KRvnL5aJABLAuT/RhKRR9klL6dkUOhyv8= +github.com/gobuffalo/helpers v0.6.1/go.mod h1:wInbDi0vTJKZBviURTLRMFLE4+nF2uRuuL2fnlYo7w4= +github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= +github.com/gobuffalo/logger v1.0.3/go.mod h1:SoeejUwldiS7ZsyCBphOGURmWdwUFXs0J7TCjEhjKxM= +github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/nulls v0.2.0/go.mod h1:w4q8RoSCEt87Q0K0sRIZWYeIxkxog5mh3eN3C/n+dUc= +github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q= +github.com/gobuffalo/packd v1.0.0/go.mod h1:6VTc4htmJRFB7u1m/4LeMTWjFoYrUiBkU9Fdec9hrhI= +github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= +github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= +github.com/gobuffalo/packr/v2 v2.8.0/go.mod h1:PDk2k3vGevNE3SwVyVRgQCCXETC9SaONCNSXT1Q8M1g= +github.com/gobuffalo/plush/v4 v4.0.0/go.mod h1:ErFS3UxKqEb8fpFJT7lYErfN/Nw6vHGiDMTjxpk5bQ0= +github.com/gobuffalo/pop/v5 v5.3.1/go.mod h1:vcEDhh6cJ3WVENqJDFt/6z7zNb7lLnlN8vj3n5G9rYA= +github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gobuffalo/tags/v3 v3.0.2/go.mod h1:ZQeN6TCTiwAFnS0dNcbDtSgZDwNKSpqajvVtt6mlYpA= +github.com/gobuffalo/tags/v3 v3.1.0/go.mod h1:ZQeN6TCTiwAFnS0dNcbDtSgZDwNKSpqajvVtt6mlYpA= +github.com/gobuffalo/validate/v3 v3.0.0/go.mod h1:HFpjq+AIiA2RHoQnQVTFKF/ZpUPXwyw82LgyDPxQ9r0= +github.com/gobuffalo/validate/v3 v3.1.0/go.mod h1:HFpjq+AIiA2RHoQnQVTFKF/ZpUPXwyw82LgyDPxQ9r0= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -448,6 +893,10 @@ github.com/godbus/dbus v0.0.0-20181025153459-66d97aec3384/go.mod h1:/YcGZj5zSblf github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -457,9 +906,13 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= +github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -476,6 +929,7 @@ github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -494,7 +948,10 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0= @@ -503,14 +960,19 @@ github.com/golangci/go-tools v0.0.0-20190318055746-e32c54105b7c/go.mod h1:unzUUL github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o= github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU= github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= +github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= github.com/golangci/golangci-lint v1.18.0/go.mod h1:kaqo8l0OZKYPtjNmG4z4HrWLgcYNIJ9B9q3LWri9uLg= +github.com/golangci/golangci-lint v1.43.0/go.mod h1:VIFlUqidx5ggxDfQagdvd9E67UjMXtTHBkBQ7sHoC5Q= github.com/golangci/gosec v0.0.0-20190211064107-66fb7fc33547/go.mod h1:0qUabqiIQgfmlAmulqxyiGkkyF6/tOGSnY2cnPVwrzU= github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU= github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= +github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= +github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI= github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4= +github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= github.com/golangplus/bytes v1.0.0/go.mod h1:AdRaCFwmc/00ZzELMWb01soso6W1R/++O1XL80yAn+A= @@ -526,6 +988,9 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/cel-go v0.12.5/go.mod h1:Jk7ljRzLBhkmiAwBoUxB1sZSCVBAzkqPF25olK/iRDw= +github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= +github.com/google/certificate-transparency-go v1.0.22-0.20181127102053-c25855a82c75/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg= +github.com/google/certificate-transparency-go v1.1.1/go.mod h1:FDKqPvSXawb2ecErVRrD+nfy23RCzyl7eqVCEmlT1Zs= github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -540,9 +1005,12 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= +github.com/google/go-containerregistry v0.10.0/go.mod h1:C7uwbB1QUAtvnknyd3ethxJRd4gtEjU/9WLXzckfI1Y= github.com/google/go-intervals v0.0.2/go.mod h1:MkaR3LNRfeKLPmqgJYs4E66z5InYjmCjbbr4TQlcT6Y= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -571,82 +1039,224 @@ github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/google/trillian v1.3.11/go.mod h1:0tPraVHrSDkA3BO6vKX67zgLXs6SsOAbHEivX+9mPgw= +github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gordonklaus/ineffassign v0.0.0-20200309095847-7953dde2c7bf/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU= +github.com/gordonklaus/ineffassign v0.0.0-20210225214923-2e10b2664254/go.mod h1:M9mZEtGIsR1oDaZagNPNG9iq9n2HrhZ17dsXk73V3Lw= +github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA= github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= +github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= github.com/gorilla/mux v0.0.0-20191024121256-f395758b854c/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= +github.com/gostaticanalysis/analysisutil v0.4.1/go.mod h1:18U/DLpRgIUd459wGxVHE0fRgmo1UgHDcbw7F5idXu0= +github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= +github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= +github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= +github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= +github.com/gostaticanalysis/forcetypeassert v0.0.0-20200621232751-01d4955beaa5/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak= +github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= +github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= +github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.1.0 h1:QsGcniKx5/LuX2eYoeL+Np3UKYPNaN7YKpTh29h8rbw= +github.com/hashicorp/go-hclog v1.1.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jUIEJnBlbgKS1N2Q61QkHiZyR1g= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-plugin v1.4.3/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= +github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-retryablehttp v0.7.2 h1:AcYqCvkpalPnPF2pn0KamgwamS42TqUDDYFRKq/RAd0= +github.com/hashicorp/go-retryablehttp v0.7.2/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-secure-stdlib/base62 v0.1.1/go.mod h1:EdWO6czbmthiwZ3/PUsDV+UD1D5IRU4ActiaWGwt0Yw= +github.com/hashicorp/go-secure-stdlib/mlock v0.1.1/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= +github.com/hashicorp/go-secure-stdlib/mlock v0.1.2/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.6/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/password v0.1.1/go.mod h1:9hH302QllNwu1o2TGYtSk8I8kTAN0ca1EHpwhm5Mmzo= +github.com/hashicorp/go-secure-stdlib/strutil v0.1.1/go.mod h1:gKOamz3EwoIoJq7mlMIRBpVTAUn8qPCrEclOKKWhD3U= +github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= +github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.1/go.mod h1:l8slYwnJA26yBz+ErHpp2IRCLr0vuOMGBORIz4rRiAs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.4.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v0.0.0-20180404174102-ef8a98b0bbce/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= +github.com/hashicorp/vault/api v1.7.2/go.mod h1:xbfA+1AvxFseDzxxdWaL0uO99n1+tndus4GCrtouy0M= +github.com/hashicorp/vault/sdk v0.5.1/go.mod h1:DoGraE9kKGNcVgPmTuX357Fm6WAx1Okvde8Vp3dPDoU= +github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hashicorp/yamux v0.0.0-20211028200310-0bc27b27de87/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/honeycombio/beeline-go v1.1.1/go.mod h1:kN0cfUGBMfA87DyCYbiiLoSzWsnw3bluZvNEWtatHxk= +github.com/honeycombio/libhoney-go v1.15.2/go.mod h1:JzhRPYgoBCd0rZvudrqmej4Ntx0w7AT3wAJpf5+t1WA= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= +github.com/hugelgupf/socketpair v0.0.0-20190730060125-05d35a94e714/go.mod h1:2Goc3h8EklBH5mspfHFxBnEoURQCGzQQH1ga9Myjvis= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= +github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/insomniacslk/dhcp v0.0.0-20220119180841-3c283ff8b7dd/go.mod h1:h+MxyHxRg9NH3terB1nfRIUaQEcI0XOVkdR9LNBlp8E= +github.com/intel-go/cpuid v0.0.0-20210602155658-5747e5cec0d9/go.mod h1:RmeVYf9XrPRbRc3XIx0gLYA8qOFvNoPOfaEZduRlEp4= +github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= +github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= +github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= +github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= +github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= +github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= +github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= +github.com/jackc/pgconn v1.6.0/go.mod h1:yeseQo4xhQbgyJs2c87RAXOH2i624N0Fh1KSPJya7qo= +github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= +github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= +github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.0.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= +github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= +github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= +github.com/jackc/pgtype v1.3.0/go.mod h1:b0JqxHvPmljG+HQ5IsvQ0yqeSi4nGcDTVjFoiLDb0Ik= +github.com/jackc/pgx v3.6.2+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I= +github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= +github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= +github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= +github.com/jackc/pgx/v4 v4.6.0/go.mod h1:vPh43ZzxijXUVJ+t/EmXBtFmbFVO72cuneCT9oAlxAg= +github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jgautheron/goconst v1.5.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= +github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= +github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4= +github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= +github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= +github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jmhodges/clock v0.0.0-20160418191101-880ee4c33548/go.mod h1:hGT6jSUVzF6no3QaDSMLGLEHtHSBSefs+MgcDWnmhmo= +github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/jmoiron/sqlx v1.3.4/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ= +github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/josharian/txtarfs v0.0.0-20210218200122-0702f000015a/go.mod h1:izVPOvVRsHiKkeGCT6tYBNWyDVuzj9wAaBb5R9qamfw= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw= +github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ= +github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod h1:hqoO/u39cqLeBLebZ8fWdE96O7FxrAsRYhnVOdgHxok= +github.com/jsimonetti/rtnetlink v0.0.0-20201110080708-d2c240429e6c/go.mod h1:huN4d1phzjhlOsNIjFsw2SVRbwIHj3fJDMEU2SDPTmg= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -656,19 +1266,40 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a/go.mod h1:UJSiEoRfvx3hP73CvoARgeLjaIOjybY9vj8PUPPFGeU= +github.com/juju/ratelimit v1.0.1/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/julz/importas v0.0.0-20210419104244-841f0c0fe66d/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= +github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= +github.com/karrick/godirwalk v1.15.3/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= +github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= +github.com/kata-containers/kata-containers/src/runtime v0.0.0-20220913141151-9b49a6ddc6fd h1:lfWVfG2l+KjhqYm/wcpPo+eN6KNPnzioncD58oONX3E= +github.com/kata-containers/kata-containers/src/runtime v0.0.0-20220913141151-9b49a6ddc6fd/go.mod h1:06RnSkAG8aNZF9GUJMH09b39U+mo0cJPJkLCH8RSXK0= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/errcheck v1.6.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v0.0.0-20161130080628-0de1eaf82fa3/go.mod h1:jxZFDH7ILpTPQTk+E2s+z4CUas9lVNjIuKR4c5/zKgM= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.12/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.13.1/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.4/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.7/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= @@ -680,67 +1311,174 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kulti/thelper v0.4.0/go.mod h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5exl2U= +github.com/kunwardeep/paralleltest v1.0.3/go.mod h1:vLydzomDFpk7yu5UX02RmP0H8QfRPOV/oFhWN85Mjb4= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= +github.com/labstack/echo/v4 v4.3.0/go.mod h1:PvmtTvhVqKDzDQy4d3bWzPjZLzom4iQbAZy2sgZ/qI8= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/ldez/gomoddirectives v0.2.2/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= +github.com/ldez/tagliatelle v0.2.0/go.mod h1:8s6WJQwEYHbKZDsp/LjArytKOG8qaMrKQQ3mFukHs88= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/letsencrypt/boulder v0.0.0-20220331220046-b23ab962616e/go.mod h1:Bl3mfF2LHYepsU2XfzMceIglyByfPe1IFAXtO+p37Qk= +github.com/letsencrypt/challtestsrv v1.2.1/go.mod h1:Ur4e4FvELUXLGhkMztHOsPIsvGxD/kzSJninOrkM+zc= +github.com/letsencrypt/pkcs11key/v4 v4.0.0/go.mod h1:EFUvBDay26dErnNb70Nd0/VW3tJiIbETBPTl9ATXQag= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.3/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/luna-duclos/instrumentedsql v1.1.3/go.mod h1:9J1njvFds+zN7y85EDhN9XNQLANWwZt2ULeIC8yMNYs= github.com/lunixbochs/vtclean v0.0.0-20180621232353-2d01aacdc34a/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= github.com/magiconair/properties v1.7.6/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= +github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEXGwov2nIKuGQ= +github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= +github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU= +github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= +github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= +github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= +github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-shellwords v1.0.11/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.2 h1:hAHbPm5IJGijwng3PWk09JkG9WeqChjprR5s9bBZ+OM= github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= +github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= +github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7/go.mod h1:U6ZQobyTjI/tJyq2HG+i/dfSoFUt8/aZCM+GKtmFk/Y= +github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= +github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M= +github.com/mdlayher/netlink v1.1.0/go.mod h1:H4WCitaheIsdF9yOYu8CFmCgQthAPIWZmcKp9uZHgmY= +github.com/mdlayher/netlink v1.1.1/go.mod h1:WTYpFb/WTvlRJAyKhZL5/uy69TDDpHHu2VZmb2XgV7o= +github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg= +github.com/mdlayher/raw v0.0.0-20191009151244-50f2db8cc065/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg= +github.com/mdlayher/socket v0.2.0/go.mod h1:QLlNPkFR88mRUNQIzRBMfXxwKal8H7u1h3bL1CV+f0E= +github.com/mdlayher/vsock v1.1.0/go.mod h1:nsVhPsVuBBwAKh6i6PzdNoke6/TNYTjkxoRKAp/+pXs= +github.com/mgechev/dots v0.0.0-20210922191527-e955255bf517/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= +github.com/mgechev/revive v1.1.2/go.mod h1:bnXsMr+ZTH09V5rssEI+jHAZ4z+ZdyhgO/zsy3EhK+0= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= +github.com/miekg/dns v1.1.45/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= +github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= +github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk= +github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= +github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mndrix/tap-go v0.0.0-20171203230836-629fa407e90b/go.mod h1:pzzDgJWZ34fGzaAZGFW22KVZDfyrYW+QABMrWnJBnSs= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/sys/mount v0.2.0/go.mod h1:aAivFE2LB3W4bACsUXChRHQ0qKWsetY4Y9V7sxOougM= +github.com/moby/sys/mount v0.3.3/go.mod h1:PBaEorSNTLG5t/+4EgukEQVlAvVEc6ZjTySwKdqp5K0= github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= +github.com/moby/sys/mountinfo v0.6.1/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= +github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= +github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= +github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/moby/vpnkit v0.5.0/go.mod h1:KyjUrL9cb6ZSNNAUwZfqRjhwwgJ3BJN+kXh0t43WTUQ= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -748,10 +1486,17 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= +github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8= github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mozilla/tls-observatory v0.0.0-20190404164649-a3c1b6cfecfd/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= +github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s= +github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474/go.mod h1:OQA4XLvDbMgS8P0CevmM4m9Q3Jq4phKUzcocxuGJ5m8= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/mtrmac/gpgme v0.1.2/go.mod h1:GYYHnGSuS7HK3zVS2n3y73y0okK/BeKzwnn5jgiVFNI= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= @@ -759,44 +1504,73 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo= +github.com/mwitkow/go-proto-validators v0.2.0/go.mod h1:ZfA1hW+UH/2ZHOWvQ3HnQaU0DtnpXu850MZiy+YUgcc= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= github.com/nbutton23/zxcvbn-go v0.0.0-20160627004424-a22cb81b2ecd/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/nbutton23/zxcvbn-go v0.0.0-20171102151520-eafdab6b0663/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= +github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/networkplumbing/go-nft v0.2.0/go.mod h1:HnnM+tYvlGAsMU7yoYwXEVLLiDW9gdMmb5HoGcwpuQs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nishanths/exhaustive v0.2.3/go.mod h1:bhIX678Nx8inLM9PbpvK1yv6oGtoP8BfaIeMzgBNKvc= +github.com/nishanths/predeclared v0.0.0-20190419143655-18a43bb90ffc/go.mod h1:62PewwiQTlm/7Rj+cxVYqZvDIUc+JjZq6GHAC1fsObQ= +github.com/nishanths/predeclared v0.2.1/go.mod h1:HvkGJcA3naj4lOwnFXFDkFxVtSqQMB9sbB1usJ+xjQE= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.2/go.mod h1:rSAaSIOAGT9odnlyGlUfAJaoc5w2fSBUmeGDbRWPxyQ= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= -github.com/onsi/ginkgo/v2 v2.6.1 h1:1xQPCjcqYw/J5LchOcp4/2q/jzJFjiAOc25chhnDw+Q= -github.com/onsi/ginkgo/v2 v2.6.1/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= +github.com/onsi/ginkgo/v2 v2.8.1 h1:xFTEVwOFa1D/Ty24Ws1npBWkDYEV9BqZrsDxVrVkrrU= +github.com/onsi/ginkgo/v2 v2.8.1/go.mod h1:N1/NbDngAFcSLdyZ+/aYTYGSlq9qMCS/cNKGJjy+csc= github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= -github.com/onsi/gomega v1.24.2 h1:J/tulyYK6JwBldPViHJReihxxZ+22FHs0piGjQAvoUE= -github.com/onsi/gomega v1.24.2/go.mod h1:gs3J10IS7Z7r7eXRoNJIrNqU4ToQukCJhFtKrWgHWnk= +github.com/onsi/gomega v1.27.1 h1:rfztXRbg6nv/5f+Raen9RcGoSecHIFgBBLQK3Wdj754= +github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfadcIAw= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -805,22 +1579,40 @@ github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3I github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.0.2-0.20190823105129-775207bd45b6/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.3-0.20220114050600-8b9d41f48198/go.mod h1:j4h1pJW6ZcJTgMZWP3+7RlG3zTaP02aDZ/Qw0sppK7Q= github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= github.com/opencontainers/runc v1.0.0/go.mod h1:MU2S3KEB2ZExnhnAQYbwjdYV6HwKtDlNbA2Z2OeNDeA= +github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= +github.com/opencontainers/runc v1.0.3/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= +github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= +github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= +github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20201121164853-7413a7f753e1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20211214071223-8958f93039ab h1:YQZXa3elcHgKXAa2GjVFC9M3JeP7ZPyFD1YByDx/dgQ= +github.com/opencontainers/runtime-spec v1.0.3-0.20211214071223-8958f93039ab/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opencontainers/runtime-tools v0.0.0-20190417131837-cd1349b7c47e/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opencontainers/runtime-tools v0.9.1-0.20220714195903-17b3287fafb7/go.mod h1:/tgP02fPXGHkU3/qKK1Y0Db4yqNyGm03vLq/mzHzcS4= github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= +github.com/opencontainers/selinux v1.8.5/go.mod h1:HTvjPFoGMbpQsG886e3lQwnsRWtE4TC1OF3OUvG9FAo= +github.com/opencontainers/selinux v1.9.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/openshift/api v0.0.0-20200326160804-ecb9283fe820/go.mod h1:RKMJ5CBnljLfnej+BJ/xnOWc3kZDvJUaIAEq2oKSPtE= github.com/openshift/api v0.0.0-20210915110300-3cd8091317c4/go.mod h1:RsQCVJu4qhUawxxDP7pGlwU3IA4F01wYm3qKEu29Su8= github.com/openshift/api v0.0.0-20210924154557-a4f696157341 h1:UUFuSm+bNyMr0Bf8CTY1eDbEmB2DiO8zENK850DgAMU= @@ -829,18 +1621,41 @@ github.com/openshift/build-machinery-go v0.0.0-20200211121458-5e3d6e570160/go.mo github.com/openshift/build-machinery-go v0.0.0-20210712174854-1bb7fd1518d3/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= github.com/openshift/build-machinery-go v0.0.0-20210806203541-4ea9b6da3a37/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= github.com/openshift/client-go v0.0.0-20210916133943-9acee1a0fb83/go.mod h1:iSeqKIqUKxVec3gV1kNvwS1tjDpzpdP134RimkLc3BE= +github.com/openshift/imagebuilder v1.2.4-0.20220711175835-4151e43600df/go.mod h1:TRYHe4CH9U6nkDjxjBNM5klrLbJBrRbpJE5SaRwUBsQ= github.com/openshift/library-go v0.0.0-20210930103404-8911cacccb05/go.mod h1:b1cKE6TuNqjl7wT0y3W4g0qREuab1mH6WOJm9pT8L/A= github.com/openshift/machine-config-operator v0.0.1-0.20211015230756-5353b8ec1122 h1:4Orf2qTY+HwvikU6WJTDW2DOG1X8yRudUKbpd91Izck= github.com/openshift/machine-config-operator v0.0.1-0.20211015230756-5353b8ec1122/go.mod h1:0yyajFwwgrR8hJWAMfQXlqqM3BSaQ1fLRyZyxTF6Jq0= github.com/openshift/runtime-utils v0.0.0-20210722191527-8b8348d80d1d/go.mod h1:H2kQ7bM4oYJk8G+N9ybDDlTg45V10G/+h2xL8zmjjHU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/ostreedev/ostree-go v0.0.0-20190702140239-759a8c1ac913/go.mod h1:J6OG6YJVEWopen4avK3VNQSnALmmjvniMmni/YFYAwc= +github.com/ostreedev/ostree-go v0.0.0-20210805093236-719684c64e4f/go.mod h1:J6OG6YJVEWopen4avK3VNQSnALmmjvniMmni/YFYAwc= +github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= +github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= +github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= +github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= +github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.1.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= +github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= +github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pin/tftp v2.1.0+incompatible/go.mod h1:xVpZOMCXTy+A5QMjEVN0Glwa1sUvaJhFXbr/aAxuxGY= +github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -848,17 +1663,23 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.3.0/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polyfloyd/go-errorlint v0.0.0-20210722154253-910bb7978349/go.mod h1:wi9BfjxjF/bwiZ701TzmfKu6UKC357IOAtNr0Td0Lvw= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= +github.com/poy/onpar v0.0.0-20190519213022-ee068f8ea4d1/go.mod h1:nSbFQvMj97ZyhFRSJYtut+msi4sOY6zJDGCdSc+/rZU= github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= github.com/pquerna/ffjson v0.0.0-20181028064349-e517b90714f7/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M= github.com/pquerna/ffjson v0.0.0-20190813045741-dac163c6c0a9/go.mod h1:YARuvh7BUWHNhzDq2OM5tzR2RiCcN2D7sapiKyCel/M= +github.com/proglottis/gpgme v0.1.3/go.mod h1:fPbW/EZ0LvwQtH8Hy7eixhp1eF3G39dtx7GUN+0Gmy0= github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= @@ -877,8 +1698,10 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE= github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= @@ -896,7 +1719,16 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/pseudomuto/protoc-gen-doc v1.3.2/go.mod h1:y5+P6n3iGrbKG+9O04V5ld71in3v/bX88wUwgt+U8EA= +github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= +github.com/quasilyte/go-ruleguard v0.3.1-0.20210203134552-1b5a410e1cc8/go.mod h1:KsAh3x0e7Fkpgs+Q9pNLS5XpFSvYCEVl5gP9Pp1xp30= +github.com/quasilyte/go-ruleguard v0.3.13/go.mod h1:Ul8wwdqR6kBVOCt2dipDBkE+T6vAV/iixkrKuRTN1oQ= +github.com/quasilyte/go-ruleguard/dsl v0.3.0/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/dsl v0.3.10/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= +github.com/quasilyte/go-ruleguard/rules v0.0.0-20210428214800-545e0d2e0bf7/go.mod h1:4cgAphtvu7Ftv7vOT2ZOYhC6CvBxZixcasr8qIOTA50= +github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= @@ -904,40 +1736,86 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.1-0.20210923151022-86f73c517451 h1:d1PiN4RxzIFXCJTvRkvSkKqwtRAl5ZV4lATKtQI0B7I= +github.com/rogpeppe/go-internal v1.8.1-0.20210923151022-86f73c517451/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rootless-containers/rootlesskit v1.0.1/go.mod h1:t2UAiYagxrJ+wmpFAUIZPcqsm4k2B7ve6g7lILKbloc= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= +github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryancurrah/gomodguard v1.2.3/go.mod h1:rYbA/4Tg5c54mV1sv4sQTP5WOPBcoLtnBZ7/TEhXAbg= +github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= +github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= +github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/sebdah/goldie/v2 v2.5.3/go.mod h1:oZ9fp0+se1eapSRjfYbsV/0Hqhbuu3bJVvKI/NNtssI= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= +github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/seccomp/libseccomp-golang v0.10.0/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/secure-systems-lab/go-securesystemslib v0.3.1/go.mod h1:o8hhjkbNl2gOamKUA/eNW3xUrntHT9L4W89W1nfj43U= +github.com/secure-systems-lab/go-securesystemslib v0.4.0/go.mod h1:FGBZgq2tXWICsxWQW1msNf49F0Pf2Op5Htayx335Qbs= github.com/securego/gosec v0.0.0-20191002120514-e680875ea14d/go.mod h1:w5+eXa0mYznDkHaMCXA4XYffjlH+cy1oyKbfzJXa2Do= +github.com/securego/gosec/v2 v2.9.1/go.mod h1:oDcDLcatOJxkCGaCaq8lua1jTnYf6Sou4wdiJ1n4iHc= +github.com/segmentio/ksuid v1.0.4/go.mod h1:/XUiZBD3kVx5SmUOl55voK5yeAbBNNIed+2O73XgrPE= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil/v3 v3.21.10/go.mod h1:t75NhzCZ/dYyPQjyQmrAYP6c8+LCdFANeBMdLPCNnew= github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= +github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sigstore/sigstore v1.3.1-0.20220629021053-b95fc0d626c1/go.mod h1:y83NePRM98MJpbGgBgi54UZduhG0aD7lYngAVCx+i/E= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sivchari/tenv v1.4.7/go.mod h1:5nF+bITvkebQVanjU6IuMbvIot/7ReNsUV7I5NbprB0= +github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa/go.mod h1:2RVY1rIf+2J2o/IM9+vPq9RzmHDSseB7FoXiSNIUsoU= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= +github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8/go.mod h1:P5HUIBuIWKbyjl083/loAegFkfbFNx5i2qEP4CNbm7E= +github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE= +github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= +github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.0/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= @@ -945,17 +1823,23 @@ github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTd github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.2/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -965,57 +1849,129 @@ github.com/spf13/viper v1.0.2/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7Sr github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4= +github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/sylabs/sif/v2 v2.7.1/go.mod h1:bBse2nEFd3yHkmq6KmAOFEWQg5LdFYiQUdVcgamxlc8= +github.com/sylvia7788/contextcheck v1.0.4/go.mod h1:vuPKJMQ7MQ91ZTqfdyreNKwZjyUg6KO+IebVyQDedZQ= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/tchap/go-patricia v2.3.0+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= +github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= +github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= +github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= +github.com/tetafro/godot v1.4.11/go.mod h1:LR3CJpxDVGlYOWn3ZZg1PgNZdTUvzsZWu8xaEohUpn8= +github.com/theupdateframework/go-tuf v0.3.0/go.mod h1:E5XP0wXitrFUHe4b8cUcAAdxBW4LbfnqF4WXXGLgWNo= +github.com/theupdateframework/go-tuf v0.3.1/go.mod h1:lhHZ3Vt2pdAh15h0Cc6gWdlI+Okn2ZznD3q/cNjd5jw= +github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/titanous/rocacheck v0.0.0-20171023193734-afe73141d399/go.mod h1:LdwHTNJT99C5fTAzDz0ud328OgXz+gierycbcIx2fRs= +github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= +github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcyE6boqnA8= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tomarrell/wrapcheck/v2 v2.4.0/go.mod h1:68bQ/eJg55BROaRTbMjC7vuhL2OgfoG8bLp9ZyoBfyY= +github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= +github.com/tommy-muehle/go-mnd/v2 v2.4.0/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= +github.com/u-root/uio v0.0.0-20210528114334-82958018845c/go.mod h1:LpEX5FO/cB+WF4TYGY1V5qktpaZLkKkSegbr0V4eYXA= +github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ultraware/funlen v0.0.1/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= +github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= +github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.19.1/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli/v2 v2.5.1/go.mod h1:oDzoM7pVwz6wHn5ogWgFUU1s4VJayeQS+aEZDqXIEJs= +github.com/uudashr/gocognit v1.0.5/go.mod h1:wgYz0mitoKOTysqxTDMOUXg+Jb5SvtihkfmugIZYpEA= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s= +github.com/valyala/fasthttp v1.30.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/valyala/quicktemplate v1.1.1/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4= +github.com/valyala/quicktemplate v1.7.0/go.mod h1:sqKJnoaOF88V07vkO+9FL8fb9uZg/VPSJnLYn+LmLk8= github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/vbatts/tar-split v0.11.1/go.mod h1:LEuURwDEiWjRjwu46yU3KVGuUdVv/dcnpcEPSzR8z6g= +github.com/vbatts/tar-split v0.11.2/go.mod h1:vV3ZuO2yWSVsz+pfFzDG/upWH1JhjOiEaWq6kXyQ3VI= github.com/vbauerster/mpb/v6 v6.0.3/go.mod h1:5luBx4rDLWxpA4t6I5sdeeQuZhqDxc+wr5Nqf35+tnM= github.com/vbauerster/mpb/v7 v7.0.3/go.mod h1:NXGsfPGx6G2JssqvEcULtDqUrxuuYs4llpv8W6ZUpzk= +github.com/vbauerster/mpb/v7 v7.4.2/go.mod h1:UmOiIUI8aPqWXIps0ciik3RKMdzx7+ooQpq+fBcXwBA= +github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= +github.com/viki-org/dnscache v0.0.0-20130720023526-c70c1f23c5d8/go.mod h1:dniwbG03GafCjFohMDmz6Zc6oCuiqgH6tGNyXTkHzXE= github.com/vincent-petithory/dataurl v0.0.0-20160330182126-9a301d65acbb/go.mod h1:FHafX5vmDzyP+1CQATJn7WFKc9CvnvxyvZy6I1MrG/U= github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50 h1:uxE3GYdXIOfhMv3unJKETJEhw78gvzuQqRX/rVirc2A= github.com/vincent-petithory/dataurl v0.0.0-20191104211930-d1553a71de50/go.mod h1:FHafX5vmDzyP+1CQATJn7WFKc9CvnvxyvZy6I1MrG/U= github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netlink v1.1.1-0.20220115184804-dd687eb2f2d4 h1:fB26rIBlWTVJyEB6ONHdoEvUbvwoudH0/cMEXHiD1RU= +github.com/vishvananda/netlink v1.1.1-0.20220115184804-dd687eb2f2d4/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmware/govmomi v0.29.0 h1:SHJQ7DUc4fltFZv16znJNGHR1/XhiDK5iKxm2OqwkuU= +github.com/vmware/govmomi v0.29.0/go.mod h1:F7adsVewLNHsW/IIm7ziFURaXDaHEwcc+ym4r3INMdY= github.com/vmware/vmw-guestinfo v0.0.0-20170707015358-25eff159a728/go.mod h1:x9oS4Wk2s2u4tS29nEaDLdzvuHdB19CvSGJjPgkZJNk= github.com/vmware/vmw-ovflib v0.0.0-20170608004843-1f217b9dc714/go.mod h1:jiPk45kn7klhByRvUq5i2vo1RtHKBHj+iWGFpxbXuuI= +github.com/weppos/publicsuffix-go v0.15.1-0.20210807195340-dc689ff0bb59/go.mod h1:HYux0V0Zi04bHNwOHy4cXJVz/TQjYonnF6aoYhj+3QE= +github.com/weppos/publicsuffix-go v0.15.1-0.20220329081811-9a40b608a236/go.mod h1:HYux0V0Zi04bHNwOHy4cXJVz/TQjYonnF6aoYhj+3QE= github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190809123943-df4f5c81cb3b/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -1025,31 +1981,67 @@ github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/handysort v0.0.0-20150421192137-fb3537ed64a1/go.mod h1:QcJo0QPSfTONNIgpN5RA8prR7fF8nkF6cTWTcNerRO8= github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= +github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yeya24/promlinter v0.1.0/go.mod h1:rs5vtZzeBHqqMwXqFScncpCF6u06lezhZepno9AB1Oc= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/ysmood/goob v0.4.0/go.mod h1:u6yx7ZhS4Exf2MwciFr6nIM8knHQIE22lFpWHnfql18= +github.com/ysmood/got v0.31.2/go.mod h1:pE1l4LOwOBhQg6A/8IAatkGp7uZjnalzrZolnlhhMgY= +github.com/ysmood/gotrace v0.6.0/go.mod h1:TzhIG7nHDry5//eYZDYcTzuJLYQIkykJzCRIo4/dzQM= +github.com/ysmood/gson v0.7.1/go.mod h1:3Kzs5zDl21g5F/BlLTNcuAGAYLKt2lV5G8D1zF3RNmg= +github.com/ysmood/leakless v0.7.0/go.mod h1:R8iAXPRaG97QJwqxs74RdwzcRHT1SWCGTNqY8q0JvMQ= +github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= +github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= +github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= +github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= +github.com/zmap/rc2 v0.0.0-20131011165748-24b9757f5521/go.mod h1:3YZ9o3WnatTIZhuOtot4IcUfzoKVjUHqu6WALIyI0nE= +github.com/zmap/zcertificate v0.0.0-20180516150559-0e3d58b1bac4/go.mod h1:5iU54tB79AMBcySS0R2XIyZBAVmeHranShAFELYx7is= +github.com/zmap/zcrypto v0.0.0-20210811211718-6f9bc4aff20f/go.mod h1:y/9hjFEub4DtQxTHp/pqticBgdYeCwL97vojV3lsvHY= +github.com/zmap/zlint/v3 v3.3.1-0.20211019173530-cb17369b4628/go.mod h1:O+4OXRfNLKqOyDl4eKZ1SBlYudKGUBGRFcv+m1KLr28= +gitlab.com/nvidia/cloud-native/go-nvlib v0.0.0-20220601114329-47893b162965/go.mod h1:TBB3sR7/jg4RCThC/cgT4fB8mAbbMO307TycfgeR59w= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/etcd v0.0.0-20200513171258-e048e166ab9c/go.mod h1:xCI7ZzBfRuGgBXyXO6yfWfDmlWd35khcWpUa4L0xI/k= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/api/v3 v3.5.4/go.mod h1:5GB2vv4A4AOn3yk7MftYGHkUfGtDHnEraIjym4dYz5A= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/pkg/v3 v3.5.4/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v2 v2.305.4/go.mod h1:Ud+VUwIi9/uQHOMA+4ekToJ12lTxlv0zB/+DHwTGEbU= go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/gq3kiY= go.etcd.io/etcd/pkg/v3 v3.5.4/go.mod h1:OI+TtO+Aa3nhQSppMbwE4ld3uF1/fqqwbpfndbbrEe0= go.etcd.io/etcd/raft/v3 v3.5.4/go.mod h1:SCuunjYvZFC0fBX0vxMSPjuZmpcSk+XaAcMrD6Do03w= go.etcd.io/etcd/server/v3 v3.5.4/go.mod h1:S5/YTU15KxymM5l3T6b09sNOHPXqGYIZStpuuGbb65c= +go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= +go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= +go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw= +go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= +go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= +go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= +go.mongodb.org/mongo-driver v1.11.2 h1:+1v2rDQUWNcGW7/7E0Jvdz51V38XXxJfhzbV17aNHCw= +go.mongodb.org/mongo-driver v1.11.2/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= +go.mozilla.org/mozlog v0.0.0-20170222151521-4bb13139d403/go.mod h1:jHoPAGnDrCy6kaI2tAze5Prf0Nr0w/oNkROt2lw3n3o= go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -1060,54 +2052,102 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/contrib/propagators v0.19.0/go.mod h1:4QOdZClXISU5S43xZxk5tYaWcpb+lehqfKtE6PK6msE= +go.opentelemetry.io/otel v0.19.0/go.mod h1:j9bF567N9EfomkSidSfmMwIwIBuP37AMAIzVW85OxSg= go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnfmS4cg= +go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= +go.opentelemetry.io/otel/exporters/jaeger v1.0.0/go.mod h1:q10N1AolE1JjqKrFJK2tYw0iZpmX+HBaXBtuCzRnBGQ= go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= +go.opentelemetry.io/otel/metric v0.19.0/go.mod h1:8f9fglJPRnXuskQmKpnad31lcLJ2VmNNqIsx/uIwBSc= go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.19.0/go.mod h1:tI4yxwh8U21v7JD6R3BcA/2+RBoTKFexE/PJ/nSO7IA= go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk v1.0.0/go.mod h1:PCrDHlSy5x1kjezSdL37PhbFUMjrsLRshJ2zCzeXwbM= +go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= +go.opentelemetry.io/otel/trace v0.19.0/go.mod h1:4IXiNextNOpPnRlI4ryK69mn5iC84bjBWZQA5DXz/qg= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs= +go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go4.org v0.0.0-20200104003542-c7e774b10ea0/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +goji.io/v3 v3.0.0/go.mod h1:c02FFnNiVNCDo+DpR2IhBQpM9r5G1BG/MkHNTPUJ13U= golang.org/x/arch v0.0.0-20180920145803-b19384d3c130/go.mod h1:cYlCBUl1MsqxdiKgmc4uh7TxZfWSFLOGSRR090WDxt8= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1118,6 +2158,7 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1143,15 +2184,18 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1161,7 +2205,9 @@ golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190228165749-92fc7df08ae7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190419010253-1f3472d942ba/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= @@ -1171,9 +2217,12 @@ golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -1181,7 +2230,9 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200505041828-1ed23360d12c/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= @@ -1189,8 +2240,10 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -1201,18 +2254,31 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220114011407-0dd24b26b47d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220524220425-1d687d428aca/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1224,17 +2290,24 @@ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b h1:clP8eMhB30EHdc0bd2Twtq6kgU7yl5ub2cQLSdrv1Dg= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220524215830-622c5d57e401/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2 h1:+jnHzr9VPj32ykQVai5DNahi9+NSp7yYuCsl5eAQtL0= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1242,6 +2315,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220513210516-0976fa681c29/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1258,27 +2333,38 @@ golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190418153312-f0ce4c0180be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606122018-79a91cf218c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191110163157-d32e6e3b99c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1300,9 +2386,11 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200610111108-226ff32320da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1310,13 +2398,17 @@ golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201101102859-da207088b7d1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1327,39 +2419,73 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210228012217-479acdf4ea46/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210331175145-43e1dd70ce54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210915083310-ed5796bab164/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1370,13 +2496,17 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1389,27 +2519,45 @@ golang.org/x/tools v0.0.0-20181117154741-2ddaf7f79a09/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190121143147-24cd39ecf745/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190909030654-5b82db07426d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190930201159-7c411dea38b0/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1417,10 +2565,12 @@ golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200115044656-831fdb1e1868/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1429,8 +2579,14 @@ golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200426102838-f3a5411a4c3b/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -1441,30 +2597,62 @@ golang.org/x/tools v0.0.0-20200606014950-c42cb6316fb6/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200610160956-3e83d1e96d0e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200630154851-b2d8b0336632/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200706234117-b22de6825cf7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200711155855-7342f9734a7d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201114224030-61ea331ec02b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201118003311-bd56c0adb394/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210101214203-2dba1e4ea05c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210104081019-d8d6ddbec6ee/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210112230658-8b4aab62c064/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= +golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.6/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= +golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= @@ -1472,6 +2660,7 @@ google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEt google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.10.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= @@ -1490,23 +2679,39 @@ google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34q google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.86.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= +google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1515,6 +2720,7 @@ google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dT google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= @@ -1535,10 +2741,13 @@ google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200603110839-e855014d5736/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200610104632-a5b850bcf112/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200626011028-ee7919e894b5/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200707001353-8e8330bf89df/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1553,6 +2762,7 @@ google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= @@ -1568,9 +2778,34 @@ google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f h1:hJ/Y5SqPXbarffmAsApliUlcvMU+wScNGfyop4bZm8o= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1583,6 +2818,7 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= @@ -1599,8 +2835,17 @@ google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1620,34 +2865,46 @@ google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175 google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/alexcesaro/statsd.v2 v2.0.0/go.mod h1:i0ubccKGzBVNBpdGV5MocxyA/XlLUJzA7SLonnE4drU= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= +gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ldap.v2 v2.5.1/go.mod h1:oI0cpe/D7HRtBQl8aTg+ZmzFUAvu4lsv3eLXMLGFxWk= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.3.0/go.mod h1:tm33zBoOwxjYHZIE+OV8bxTWFMJLrconzFMd38aARFk= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.6/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= @@ -1656,8 +2913,10 @@ gopkg.in/yaml.v3 v3.0.0-20190502103701-55513cacd4ae/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20191010095647-fc94e3f71652/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= @@ -1670,6 +2929,7 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY= k8s.io/api v0.25.1 h1:yL7du50yc93k17nH/Xe9jujAYrcDkI/i5DL1jPz4E3M= k8s.io/api v0.25.1/go.mod h1:hh4itDvrWSJsmeUc28rIFNri8MatNAAxJjKcQmhX6TU= k8s.io/apiextensions-apiserver v0.25.1 h1:HEIKlxj6oHaDwHgotEIX/Ld5K/RGuOFwN/TWMiQ5s5s= @@ -1688,6 +2948,9 @@ k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= +k8s.io/cri-api v0.23.1 h1:0DHL/hpTf4Fp+QkUXFefWcp1fhjXr9OlNdY9X99c+O8= +k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= +k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= @@ -1697,6 +2960,7 @@ k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.10.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/klog/v2 v2.70.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= @@ -1714,13 +2978,20 @@ k8s.io/metrics v0.25.1/go.mod h1:/t3eughLPd1sQNc47py2vTOY8e1E8bIxecA8rq/qQjM= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210707171843-4b05e18ac7d9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 h1:KTgPnR10d5zhztWptI952TNtt/4u5h3IzDXkdIMuo2Y= k8s.io/utils v0.0.0-20221128185143-99ec85e7a448/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +libvirt.org/go/libvirt v1.8002.0 h1:X8gz2Sa1ek4S5FznpDpeRz6JpNb7NdkfzTii5GMIwDY= +libvirt.org/go/libvirt v1.8002.0/go.mod h1:1WiFE8EjZfq+FCVog+rvr1yatKbKZ9FaFMZgEqxEJqQ= +libvirt.org/go/libvirtxml v1.8002.0 h1:ES5bU3/G/dykJ4WIO5NJ3cTvvr5xSCaqwjYeRxkTX40= +libvirt.org/go/libvirtxml v1.8002.0/go.mod h1:7Oq2BLDstLr/XtoQD8Fr3mfDNrzlI3utYKySXF2xkng= +mvdan.cc/gofumpt v0.1.1/go.mod h1:yXG1r1WqZVKWbVRtBWKWX9+CxGYfA51nSomhM0woR48= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY= +mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7/go.mod h1:hBpJkZE8H/sb+VRFvw2+rBpHNsTBcvSpk61hr8mzXZE= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= @@ -1738,6 +3009,7 @@ sigs.k8s.io/kustomize/cmd/config v0.10.9/go.mod h1:T0s850zPV3wKfBALA0dyeP/K74jlJ sigs.k8s.io/kustomize/kustomize/v4 v4.5.7/go.mod h1:VSNKEH9D9d9bLiWEGbS6Xbg/Ih0tgQalmPvntzRxZ/Q= sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= diff --git a/main.go b/main.go index fcf1d74a..d98e1c3f 100644 --- a/main.go +++ b/main.go @@ -21,7 +21,8 @@ import ( "flag" "os" - peerpodcontrollers "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/controllers" + peerpodcontrollers "github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl/controllers" + peerpodconfigcontrollers "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/controllers" secv1 "github.com/openshift/api/security/v1" mcfgapi "github.com/openshift/machine-config-operator/pkg/apis/machineconfiguration.openshift.io" "go.uber.org/zap/zapcore" @@ -46,6 +47,7 @@ import ( _ "sigs.k8s.io/controller-tools/pkg/genall/help/pretty" _ "sigs.k8s.io/controller-tools/pkg/loader" + peerpod "github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl/api/v1alpha1" peerpodconfig "github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl/api/v1alpha1" kataconfigurationv1 "github.com/openshift/sandboxed-containers-operator/api/v1" "github.com/openshift/sandboxed-containers-operator/controllers" @@ -73,6 +75,8 @@ func init() { utilruntime.Must(kataconfigurationv1.AddToScheme(scheme)) utilruntime.Must(peerpodconfig.AddToScheme(scheme)) + + utilruntime.Must(peerpod.AddToScheme(scheme)) // +kubebuilder:scaffold:scheme } @@ -136,7 +140,7 @@ func main() { os.Exit(1) } - if err = (&peerpodcontrollers.PeerPodConfigReconciler{ + if err = (&peerpodconfigcontrollers.PeerPodConfigReconciler{ Client: mgr.GetClient(), Log: ctrl.Log.WithName("controllers").WithName("RemotePodConfig"), Scheme: mgr.GetScheme(), @@ -144,6 +148,18 @@ func main() { setupLog.Error(err, "unable to create RemotePodConfig controller for OpenShift cluster", "controller", "RemotePodConfig") os.Exit(1) } + + if err = (&peerpodcontrollers.PeerPodReconciler{ + Client: mgr.GetClient(), + Scheme: mgr.GetScheme(), + // setting nil will delegate Provider creation to reconcile time, make sure RBAC permits: + //+kubebuilder:rbac:groups="",resourceNames=peer-pods-cm;peer-pods-secret,resources=configmaps;secrets,verbs=get + Provider: nil, + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create peerpod resources controller", "controller", "PeerPod") + os.Exit(1) + } + } if err = (&kataconfigurationv1.KataConfig{}).SetupWebhookWithManager(mgr); err != nil { From ca51a9431145a2f4e9f367abfabd3b2e3b63dda2 Mon Sep 17 00:00:00 2001 From: Snir Sheriber Date: Tue, 4 Apr 2023 12:34:53 +0300 Subject: [PATCH 44/63] controllers rbac manifests to support peerpod-ctrl: - peerpod-ctrl rbac (for manager itself) added using kubebuilder markers - peerpodconfig-ctrl rbac (for CAA DA) added using caa_rbac.yaml Signed-off-by: Snir Sheriber --- PROJECT | 8 +++ .../confidentialcontainers.org_peerpods.yaml | 53 +++++++++++++++++++ config/rbac/caa_rbac.yaml | 29 ++++++++++ config/rbac/kataconfig_editor_role.yaml | 4 ++ config/rbac/kataconfig_viewer_role.yaml | 4 ++ config/rbac/kustomization.yaml | 3 ++ controllers/openshift_controller.go | 3 ++ 7 files changed, 104 insertions(+) create mode 100644 config/manifests/extension-crds/confidentialcontainers.org_peerpods.yaml create mode 100644 config/rbac/caa_rbac.yaml diff --git a/PROJECT b/PROJECT index 7e6411f5..b633ba85 100644 --- a/PROJECT +++ b/PROJECT @@ -20,4 +20,12 @@ resources: webhooks: validation: true webhookVersion: v1 +- api: + crdVersion: v1 + namespaced: true + controller: true + domain: confidentialcontainers.org + kind: PeerPod + path: github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl/api/v1alpha1 + version: v1alpha1 version: "3" diff --git a/config/manifests/extension-crds/confidentialcontainers.org_peerpods.yaml b/config/manifests/extension-crds/confidentialcontainers.org_peerpods.yaml new file mode 100644 index 00000000..b6b37e25 --- /dev/null +++ b/config/manifests/extension-crds/confidentialcontainers.org_peerpods.yaml @@ -0,0 +1,53 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.10.0 + creationTimestamp: null + name: peerpods.confidentialcontainers.org +spec: + group: confidentialcontainers.org + names: + kind: PeerPod + listKind: PeerPodList + plural: peerpods + singular: peerpod + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: PeerPod is the Schema for the peerpods API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: PeerPodSpec defines the desired state of PeerPod + properties: + cloudProvider: + type: string + instanceID: + type: string + type: object + status: + description: PeerPodStatus defines the observed state of PeerPod + properties: + cleand: + type: boolean + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/config/rbac/caa_rbac.yaml b/config/rbac/caa_rbac.yaml new file mode 100644 index 00000000..0525a910 --- /dev/null +++ b/config/rbac/caa_rbac.yaml @@ -0,0 +1,29 @@ +# This file is based on https://github.com/confidential-containers/cloud-api-adaptor/blob/staging/install/rbac/peer-pod.yaml +# It adds the required rules to the default SA which is used by CAA DA +# when owner reference is both object must be on the same namespace, hence, +# caa should have cluster-wide permissions to support any pod namespace +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: caa-role +rules: +- apiGroups: [""] + resources: ["pods", "pods/finalizers"] + verbs: ["get","create", "patch", "update"] +- apiGroups: ["confidentialcontainers.org"] + resources: ["peerpods", "pods"] + verbs: ["create", "patch", "update"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: caa-rolebinding +subjects: +- kind: ServiceAccount + name: default + namespace: system +roleRef: + kind: ClusterRole + name: caa-role + apiGroup: rbac.authorization.k8s.io diff --git a/config/rbac/kataconfig_editor_role.yaml b/config/rbac/kataconfig_editor_role.yaml index f868784f..11484c2e 100644 --- a/config/rbac/kataconfig_editor_role.yaml +++ b/config/rbac/kataconfig_editor_role.yaml @@ -7,9 +7,11 @@ rules: - apiGroups: - kataconfiguration.openshift.io - peerpodconfiguration.confidentialcontainers.org + - confidentialcontainers.org resources: - kataconfigs - peerpodconfigs + - peerpods verbs: - create - delete @@ -21,8 +23,10 @@ rules: - apiGroups: - kataconfiguration.openshift.io - peerpodconfiguration.confidentialcontainers.org + - confidentialcontainers.org resources: - kataconfigs/status - peerpodconfigs/status + - peerpods/status verbs: - get diff --git a/config/rbac/kataconfig_viewer_role.yaml b/config/rbac/kataconfig_viewer_role.yaml index 411aebb1..b904904f 100644 --- a/config/rbac/kataconfig_viewer_role.yaml +++ b/config/rbac/kataconfig_viewer_role.yaml @@ -7,9 +7,11 @@ rules: - apiGroups: - kataconfiguration.openshift.io - peerpodconfiguration.confidentialcontainers.org + - confidentialcontainers.org resources: - kataconfigs - peerpodconfigs + - peerpods verbs: - get - list @@ -17,8 +19,10 @@ rules: - apiGroups: - peerpodconfiguration.confidentialcontainers.org - kataconfiguration.openshift.io + - confidentialcontainers.org resources: - kataconfigs/status - peerpodconfigs/status + - peerpods/status verbs: - get diff --git a/config/rbac/kustomization.yaml b/config/rbac/kustomization.yaml index d5b5cee3..9cac9197 100644 --- a/config/rbac/kustomization.yaml +++ b/config/rbac/kustomization.yaml @@ -12,3 +12,6 @@ resources: - auth_proxy_role.yaml - auth_proxy_role_binding.yaml - auth_proxy_client_clusterrole.yaml +# the following is custom rbac manifests required for +# cloud-api-adaptor when peerpod-ctrl is used +- caa_rbac.yaml diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index cb57c767..2b513ad3 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -95,6 +95,9 @@ const ( // +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs/status,verbs=get;update;patch // +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpodconfigs/finalizers,verbs=update +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpods,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpods/status,verbs=get;update;patch +// +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpods/finalizers,verbs=update func (r *KataConfigOpenShiftReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { _ = r.Log.WithValues("kataconfig", req.NamespacedName) From d44a4056a85b832ba736a48a610c731ce8faa8e3 Mon Sep 17 00:00:00 2001 From: Snir Sheriber Date: Wed, 3 May 2023 14:52:28 +0300 Subject: [PATCH 45/63] peerpodconfig-ctrl: update crd Signed-off-by: Snir Sheriber --- ...identialcontainers.org_peerpodconfigs.yaml | 58 +++---------------- 1 file changed, 7 insertions(+), 51 deletions(-) diff --git a/config/manifests/extension-crds/confidentialcontainers.org_peerpodconfigs.yaml b/config/manifests/extension-crds/confidentialcontainers.org_peerpodconfigs.yaml index ed4b2c3b..2e87766a 100644 --- a/config/manifests/extension-crds/confidentialcontainers.org_peerpodconfigs.yaml +++ b/config/manifests/extension-crds/confidentialcontainers.org_peerpodconfigs.yaml @@ -33,9 +33,6 @@ spec: metadata: type: object spec: - example: - type: string - x-kubernetes-preserve-unknown-fields: true description: PeerPodConfigSpec defines the desired state of PeerPodConfig properties: cloudSecretName: @@ -52,57 +49,16 @@ spec: description: InstanceType describes the name of the instance type of the chosen cloud provider type: string - labelSelector: - description: LabelSelector selects the nodes to which the caa pods, - the RuntimeClass and the MachineConfigs we use to deploy the full - peer pod solution. - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: A label selector requirement is a selector that - contains values, a key, and an operator that relates the key - and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: operator represents a key's relationship to - a set of values. Valid operators are In, NotIn, Exists - and DoesNotExist. - type: string - values: - description: values is an array of string values. If the - operator is In or NotIn, the values array must be non-empty. - If the operator is Exists or DoesNotExist, the values - array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: matchLabels is a map of {key,value} pairs. A single - {key,value} in the matchLabels map is equivalent to an element - of matchExpressions, whose key field is "key", the operator - is "In", and the values array contains only "value". The requirements - are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic limit: description: Limit is the max number of peer pods. This is exposed - as expended resource on nodes + as extended resource on nodes type: string + nodeSelector: + additionalProperties: + type: string + description: NodeSelector selects the nodes on which to run the cloud-api-adaptor + pods + type: object required: - cloudSecretName - configMapName From 68fc17591dc047d82280ff0e03b8bfc6564ad909 Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Mon, 8 May 2023 13:06:37 -0400 Subject: [PATCH 46/63] Ensure KataConfigPoolSelector is used for PeerPodConfig CRD The peerpods config enablement is split into two parts - one part deals with creation of MachineConfigs before "kata-oc" MCP creation and another part deals with creation of PeerPodConfig CRD, runtimeclass and other misc configs after "kata-oc" MCP has updated. The reason for this split is to ensure that MachineConfigs are created before "kata-oc" creation so as to optimise the number of reboots required when applying MachineConfigs. Further, the relevant node labels are only available when "kata-oc" MCP is updated, thereby making it available for the creation of PeerPodConfig CRD Signed-off-by: Pradipta Banerjee --- controllers/openshift_controller.go | 54 ++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 5f423955..e2ea8de6 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -971,9 +971,9 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. // peer pod enablement if r.kataConfig.Spec.EnablePeerPods { - err := r.enablePeerPods() + err := r.enablePeerPodsMc() if err != nil { - r.Log.Info("Enabling peerpods configuration failed", "err", err) + r.Log.Info("Enabling peerpods machineconfigs failed", "err", err) return ctrl.Result{}, err } } @@ -1120,6 +1120,17 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. return reconcile.Result{Requeue: true, RequeueAfter: 15 * time.Second}, err } + // create PeerPodConfig CRD and runtimeclass for peerpods + if r.kataConfig.Spec.EnablePeerPods { + err = r.enablePeerPodsMiscConfigs() + if err != nil { + r.Log.Info("Enabling peerpodconfig CR, runtimeclass etc", "err", err) + // Give sometime for the error to go away before reconciling again + return reconcile.Result{Requeue: true, RequeueAfter: 15 * time.Second}, err + + } + } + } else { // We don't requeue - we're waiting for an MCP to go // Updating->Updated which will trigger reconciliation @@ -1846,7 +1857,29 @@ func (r *KataConfigOpenShiftReconciler) createAuthJsonSecret() error { return err } -func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { +// Create the MachineConfigs for PeerPod +// We do it before kata-oc creation to optimise the reboots required for MC creation +func (r *KataConfigOpenShiftReconciler) enablePeerPodsMc() error { + + //Create MachineConfig for kata-remote hyp CRIO config + err := r.createMcFromFile(peerpodsCrioMachineConfigYaml) + if err != nil { + r.Log.Info("Error in creating CRIO MachineConfig", "err", err) + return err + } + + //Create MachineConfig for kata-remote hyp config toml + err = r.createMcFromFile(peerpodsKataRemoteMachineConfigYaml) + if err != nil { + r.Log.Info("Error in creating kata remote configuration.toml MachineConfig", "err", err) + return err + } + + return nil +} + +// Create the PeerPodConfig CRDs and misc configs required for peer-pods +func (r *KataConfigOpenShiftReconciler) enablePeerPodsMiscConfigs() error { peerPodConfig := v1alpha1.PeerPodConfig{ TypeMeta: metav1.TypeMeta{}, ObjectMeta: metav1.ObjectMeta{ @@ -1857,6 +1890,7 @@ func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { CloudSecretName: "peer-pods-secret", ConfigMapName: "peer-pods-cm", Limit: DEFAULT_PEER_PODS, + NodeSelector: r.getNodeSelectorAsMap(), }, } @@ -1873,20 +1907,6 @@ func (r *KataConfigOpenShiftReconciler) enablePeerPods() error { return err } - //Create MachineConfig for kata-remote hyp CRIO config - err = r.createMcFromFile(peerpodsCrioMachineConfigYaml) - if err != nil { - r.Log.Info("Error in creating CRIO MachineConfig", "err", err) - return err - } - - //Create MachineConfig for kata-remote hyp config toml - err = r.createMcFromFile(peerpodsKataRemoteMachineConfigYaml) - if err != nil { - r.Log.Info("Error in creating kata remote configuration.toml MachineConfig", "err", err) - return err - } - // Create runtimeClass config for peer-pods err = r.createRuntimeClass(peerpodsRuntimeClassName, peerpodsRuntimeClassCpuOverhead, peerpodsRuntimeClassMemOverhead) if err != nil { From bf7b47424a64809cdc782d467aae0fa6523f6f44 Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 26 Apr 2023 10:22:10 +0200 Subject: [PATCH 47/63] remove spurious MCP retrieval The return value ('foundMcp') was never used. The same retrieval happens again further down the function with an identical error handling which however also handles the success case. Signed-off-by: Pavel Mores --- controllers/openshift_controller.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index e2ea8de6..4fdd1fa9 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -784,12 +784,6 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R return reconcile.Result{Requeue: true, RequeueAfter: 15 * time.Second}, err } - foundMcp := &mcfgv1.MachineConfigPool{} - err = r.Client.Get(context.TODO(), types.NamespacedName{Name: machinePool}, foundMcp) - if err != nil { - return ctrl.Result{}, err - } - if contains(r.kataConfig.GetFinalizers(), kataConfigFinalizer) { // Get the list of pods that might be running using kata runtime err := r.listKataPods() From 0494ad419a1cca7e3a7792adda0987649c2625eb Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 26 Apr 2023 10:25:47 +0200 Subject: [PATCH 48/63] increase visibility of isMcpUpdating() The function will be useful in processKataConfigDeleteRequest() as well so we factor it out of processKataConfigInstallRequest(). Signed-off-by: Pavel Mores --- controllers/openshift_controller.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 4fdd1fa9..9fb6ce51 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -777,6 +777,16 @@ func (r *KataConfigOpenShiftReconciler) getNodeSelectorAsLabelSelector() *metav1 return &metav1.LabelSelector{MatchLabels: r.getNodeSelectorAsMap()} } +func (r *KataConfigOpenShiftReconciler) isMcpUpdating(mcpName string) bool { + mcp := &mcfgv1.MachineConfigPool{} + err := r.Client.Get(context.TODO(), types.NamespacedName{Name: mcpName}, mcp) + if err != nil { + r.Log.Info("Getting MachineConfigPool failed ", "machinePool", mcpName, "err", err) + return false + } + return mcfgv1.IsMachineConfigPoolConditionTrue(mcp.Status.Conditions, mcfgv1.MachineConfigPoolUpdating) +} + func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.Result, error) { r.Log.Info("KataConfig deletion in progress: ") machinePool, err := r.getMcpNameIfMcpExists() @@ -1041,24 +1051,14 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigInstallRequest() (ctrl. } } - isMcpUpdating := func(mcpName string) bool { - mcp := &mcfgv1.MachineConfigPool{} - err = r.Client.Get(context.TODO(), types.NamespacedName{Name: mcpName}, mcp) - if err != nil { - r.Log.Info("Getting MachineConfigPool failed ", "machinePool", mcpName, "err", err) - return false - } - return mcfgv1.IsMachineConfigPoolConditionTrue(mcp.Status.Conditions, mcfgv1.MachineConfigPoolUpdating) - } - - isKataMcpUpdating := isMcpUpdating(machinePool) + isKataMcpUpdating := r.isMcpUpdating(machinePool) r.Log.Info("MCP updating state", "MCP name", machinePool, "is updating", isKataMcpUpdating) if isKataMcpUpdating { r.kataConfig.Status.InstallationStatus.IsInProgress = corev1.ConditionTrue } isMcoUpdating := isKataMcpUpdating if !isConvergedCluster { - isWorkerUpdating := isMcpUpdating("worker") + isWorkerUpdating := r.isMcpUpdating("worker") r.Log.Info("MCP updating state", "MCP name", "worker", "is updating", isWorkerUpdating) if isWorkerUpdating { r.kataConfig.Status.InstallationStatus.IsInProgress = corev1.ConditionTrue From f9bcf2d2df171b48dff50b963690785d4d76c010 Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 26 Apr 2023 11:17:34 +0200 Subject: [PATCH 49/63] deploy the same flow in uninstallation as is used by installation This is the central commit of this series. It replaces several arbitrary 60 seconds waits and node-counting conditionals which have proved fragile in practice with a straightened-out flow that's identical to what installation uses: first, change MCO resources (here by unlabeling nodes and deleting the extension MC), then wait for the MCO to notice the changes and start processing them, then wait for the MCO to finish processing the changes, and finally finish up the OSC part of the operation by deleting the custom pool if applicable, the Daemonset and the Scc, and then KataConfig itself. Signed-off-by: Pavel Mores --- controllers/openshift_controller.go | 102 ++++++++++++++-------------- 1 file changed, 52 insertions(+), 50 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 9fb6ce51..c67517a8 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -789,7 +789,7 @@ func (r *KataConfigOpenShiftReconciler) isMcpUpdating(mcpName string) bool { func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.Result, error) { r.Log.Info("KataConfig deletion in progress: ") - machinePool, err := r.getMcpNameIfMcpExists() + machinePool, err := r.getMcpName() if err != nil { return reconcile.Result{Requeue: true, RequeueAfter: 15 * time.Second}, err } @@ -853,72 +853,74 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R r.Log.Error(err, "Error found deleting machine config. If the machine config exists after installation it can be safely deleted manually.", "mc", mc.Name) } - // Sleep for MCP to reflect the changes - r.Log.Info("Pausing for a minute to make sure mcp has started syncing up") - time.Sleep(60 * time.Second) + r.Log.Info("Starting to wait for MCO to start reconciliation") + r.kataConfig.Status.WaitingForMcoToStart = true + r.kataConfig.Status.UnInstallationStatus.InProgress.IsInProgress = corev1.ConditionTrue } - mcp := &mcfgv1.MachineConfigPool{} - err = r.Client.Get(context.TODO(), types.NamespacedName{Name: machinePool}, mcp) - if err != nil { - r.Log.Error(err, "Unable to get MachineConfigPool ", "machinePool", machinePool) - return ctrl.Result{}, err + isConvergedCluster, _ := r.checkConvergedCluster() + + // When nodes migrate from a source pool to a target pool the source + // pool is drained immediately and the nodes then slowly join the target + // pool. Thus the operation duration is dominated by the target pool + // part and the target pool is what we need to watch to find out when + // the operation is finished. When uninstalling kata on a regular + // cluster nodes leave "kata-oc" to rejoin "worker" so "worker" is our + // target pool. On a converged cluster, nodes leave "master" to rejoin + // it so "master" is both source and target in this case. + targetPool := "worker" + if isConvergedCluster { + targetPool = "master" } - r.Log.Info("Monitoring mcp", "mcp name", mcp.Name, "ready machines", mcp.Status.ReadyMachineCount, - "total machines", mcp.Status.MachineCount) - r.kataConfig.Status.UnInstallationStatus.InProgress.IsInProgress = corev1.ConditionTrue + isMcoUpdating := r.isMcpUpdating(targetPool) + + if !isMcoUpdating && r.kataConfig.Status.WaitingForMcoToStart { + r.Log.Info("Waiting for MCO to start updating.") + // We don't requeue, an MCP going Updated->Updating will + // trigger reconciliation by itself thanks to our watching MCPs. + return reconcile.Result{}, nil + } else { + r.Log.Info("No need to wait for MCO to start updating.", "isMcoUpdating", isMcoUpdating, "Status.WaitingForMcoToStart", r.kataConfig.Status.WaitingForMcoToStart) + r.kataConfig.Status.WaitingForMcoToStart = false + } + r.clearUninstallStatus() _, result, err2, done := r.updateStatus(machinePool) if !done { return result, err2 } + err = r.Client.Status().Update(context.TODO(), r.kataConfig) + if err != nil { + r.Log.Error(err, "Unable to update KataConfig status") + return ctrl.Result{}, err + } - if mcp.Status.ReadyMachineCount != mcp.Status.MachineCount { - return ctrl.Result{Requeue: true, RequeueAfter: 15 * time.Second}, nil + if isMcoUpdating { + r.Log.Info("Waiting for MachineConfigPool to be fully updated", "machinePool", targetPool) + return reconcile.Result{}, nil } - // Sleep for MCP to reflect the changes - r.Log.Info("Pausing for a minute to make sure mcp has started syncing up") - time.Sleep(60 * time.Second) + r.kataConfig.Status.UnInstallationStatus.InProgress.IsInProgress = corev1.ConditionFalse - //This is not applicable for converged cluster - isConvergedCluster, _ := r.checkConvergedCluster() if !isConvergedCluster { - //Get "worker" MCP - wMcp := &mcfgv1.MachineConfigPool{} - err = r.Client.Get(context.TODO(), types.NamespacedName{Name: "worker"}, wMcp) - if err != nil { - r.Log.Error(err, "Unable to get MachineConfigPool - worker") - return ctrl.Result{}, err - } - - // At this time the kata-oc MCP is updated. However the worker MCP might still be in Updating state - // We'll need to wait for the worker MCP to complete Updating before deletion - r.Log.Info("Wait till worker MCP has updated") - if (wMcp.Status.ReadyMachineCount != wMcp.Status.MachineCount) && - mcfgv1.IsMachineConfigPoolConditionTrue(wMcp.Status.Conditions, mcfgv1.MachineConfigPoolUpdating) { - return ctrl.Result{Requeue: true, RequeueAfter: 15 * time.Second}, nil - } - - err = r.Client.Delete(context.TODO(), mcp) - if err != nil { - r.Log.Error(err, "Unable to delete kata-oc MachineConfigPool") + r.Log.Info("Get()'ing MachineConfigPool to delete it", "machinePool", "kata-oc") + kataOcMcp := &mcfgv1.MachineConfigPool{} + err = r.Client.Get(context.TODO(), types.NamespacedName{Name: "kata-oc"}, kataOcMcp) + if err == nil { + r.Log.Info("Deleting MachineConfigPool ", "machinePool", "kata-oc") + err = r.Client.Delete(context.TODO(), kataOcMcp) + if err != nil { + r.Log.Error(err, "Unable to delete kata-oc MachineConfigPool") + return ctrl.Result{}, err + } + } else if k8serrors.IsNotFound(err) { + r.Log.Info("MachineConfigPool not found", "machinePool", "kata-oc") + } else { + r.Log.Error(err, "Unable to get MachineConfigPool ", "machinePool", "kata-oc") return ctrl.Result{}, err } } - r.kataConfig.Status.UnInstallationStatus.InProgress.IsInProgress = corev1.ConditionFalse - _, result, err2, done = r.updateStatus(machinePool) - r.clearInstallStatus() - if !done { - return result, err2 - } - err = r.Client.Status().Update(context.TODO(), r.kataConfig) - if err != nil { - r.Log.Error(err, "Unable to update KataConfig status") - return ctrl.Result{}, err - } - ds := r.processDaemonsetForMonitor() err = r.Client.Delete(context.TODO(), ds) if err != nil { From 7ee87dd222208c89069897ddb4f5a44f1bf9a108 Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 26 Apr 2023 18:27:52 +0200 Subject: [PATCH 50/63] include logLevel clean-up in uninstallation This fixes a long-standing omission. Signed-off-by: Pavel Mores --- controllers/openshift_controller.go | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index c67517a8..dc14e5ff 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -307,6 +307,31 @@ func (r *KataConfigOpenShiftReconciler) processLogLevel(desiredLogLevel string) return nil } +func (r *KataConfigOpenShiftReconciler) removeLogLevel() error { + + r.Log.Info("removing logLevel ContainerRuntimeConfig") + + ctrRuntimeCfg := &mcfgv1.ContainerRuntimeConfig{} + err := r.Client.Get(context.TODO(), types.NamespacedName{Name: container_runtime_config_name}, ctrRuntimeCfg) + if err != nil { + if k8serrors.IsNotFound(err) { + r.Log.Info("no logLevel ContainerRuntimeConfig found, nothing to do") + return nil + } else { + r.Log.Info("could not get ContainerRuntimeConfig", "err", err) + return err + } + } + + err = r.Client.Delete(context.TODO(), ctrRuntimeCfg) + if err != nil { + r.Log.Info("error deleting ContainerRuntimeConfig", "err", err) + return err + } + r.Log.Info("logLevel ContainerRuntimeConfig deleted successfully") + return nil +} + func (r *KataConfigOpenShiftReconciler) processDaemonsetForMonitor() *appsv1.DaemonSet { var ( runPrivileged = false @@ -950,6 +975,11 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R } } + err = r.removeLogLevel() + if err != nil { + return ctrl.Result{Requeue: true}, nil + } + r.Log.Info("Uninstallation completed. Proceeding with the KataConfig deletion") controllerutil.RemoveFinalizer(r.kataConfig, kataConfigFinalizer) From 6cb1f51dbbd73140b2c1d0baeb955867b3089ed6 Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 26 Apr 2023 20:20:34 +0200 Subject: [PATCH 51/63] factor KataConfig finalizer removal out to dedicated function All of the other resource removals at the bottom of processKataConfigDeleteRequest() are removed by separate functions. Also, the new function is a logical counterpart to the already existing addFinalizer(). Signed-off-by: Pavel Mores --- controllers/openshift_controller.go | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index dc14e5ff..b7b881a3 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -553,6 +553,18 @@ func (r *KataConfigOpenShiftReconciler) addFinalizer() error { return nil } +func (r *KataConfigOpenShiftReconciler) removeFinalizer() error { + r.Log.Info("Removing finalizer from the KataConfig") + controllerutil.RemoveFinalizer(r.kataConfig, kataConfigFinalizer) + + err := r.Client.Update(context.TODO(), r.kataConfig) + if err != nil { + r.Log.Error(err, "Unable to update KataConfig") + return err + } + return nil +} + func (r *KataConfigOpenShiftReconciler) listKataPods() error { podList := &corev1.PodList{} listOpts := []client.ListOption{ @@ -981,12 +993,8 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R } r.Log.Info("Uninstallation completed. Proceeding with the KataConfig deletion") - controllerutil.RemoveFinalizer(r.kataConfig, kataConfigFinalizer) - - err = r.Client.Update(context.TODO(), r.kataConfig) - if err != nil { - r.Log.Error(err, "Unable to update KataConfig") - return ctrl.Result{}, err + if err = r.removeFinalizer(); err != nil { + return ctrl.Result{Requeue: true}, nil } return ctrl.Result{}, nil From 18d45a324cd12b33663317607a1999cc2c53b6b8 Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 26 Apr 2023 20:36:32 +0200 Subject: [PATCH 52/63] streamline KataConfig.status updating during uninstallation 'r.Client.Status().Update()' was called right after updateStatus() call, basically duplicating the same catch-all call performed after processKataConfigDeleteRequest() return. The processKataConfigDeleteRequest() call site was modified to ensure that the status update is always performed, even if a deletion reconciliation ends in an error. This seems to make sense, no matter how reconciliation ends it might well have updated the status, and if not the update is just a no-op. Signed-off-by: Pavel Mores --- controllers/openshift_controller.go | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index b7b881a3..ebcd04b4 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -136,14 +136,12 @@ func (r *KataConfigOpenShiftReconciler) Reconcile(ctx context.Context, req ctrl. // indicated by the deletion timestamp being set. if r.kataConfig.GetDeletionTimestamp() != nil { res, err := r.processKataConfigDeleteRequest() - if err != nil { - return res, err - } + updateErr := r.Client.Status().Update(context.TODO(), r.kataConfig) if updateErr != nil { return ctrl.Result{}, updateErr } - return res, nil + return res, err } res, err := r.processKataConfigInstallRequest() @@ -926,11 +924,6 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R if !done { return result, err2 } - err = r.Client.Status().Update(context.TODO(), r.kataConfig) - if err != nil { - r.Log.Error(err, "Unable to update KataConfig status") - return ctrl.Result{}, err - } if isMcoUpdating { r.Log.Info("Waiting for MachineConfigPool to be fully updated", "machinePool", targetPool) From dfc34286cab179b73a2257d83fbef9748b4beec5 Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 26 Apr 2023 20:38:39 +0200 Subject: [PATCH 53/63] remove a confusing error logged after each KataConfig deletion The problem and the fix are described in more detail in a code comment, please see the diff. Signed-off-by: Pavel Mores --- controllers/openshift_controller.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index ebcd04b4..d90f7384 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -138,7 +138,14 @@ func (r *KataConfigOpenShiftReconciler) Reconcile(ctx context.Context, req ctrl. res, err := r.processKataConfigDeleteRequest() updateErr := r.Client.Status().Update(context.TODO(), r.kataConfig) - if updateErr != nil { + // The finalizer test is to get rid of the + // "Operation cannot be fulfilled [...] Precondition failed" + // error which happens when returning from a reconciliation that + // deleted our KataConfig by removing its finalizer. So if the + // finalizer is missing the actual KataConfig object is probably + // already gone from the cluster, hence the error. + if updateErr != nil && controllerutil.ContainsFinalizer(r.kataConfig, kataConfigFinalizer) { + r.Log.Info("Updating KataConfig failed", "err", updateErr) return ctrl.Result{}, updateErr } return res, err From 9471605d67569d295c13551d9d604ac6765aa9f1 Mon Sep 17 00:00:00 2001 From: Greg Kurz Date: Mon, 15 May 2023 10:52:21 +0200 Subject: [PATCH 54/63] Revert "Fix errors during envtest teardown" `make test` is leaking the kube-apiserver and etcd processes. When unoticed, this causes `make test` to fail with weird errors like failing to open a file because of rlimit. Investigation leads to commit 053f8664bf29d which was added to work around the very same problems at the time according to Pradipta. Reverting this commit fixes the issue. It seems that updates to the controller-runtime and deps might have changed something and we no longer need the workaround. Let's just revert 053f8664bf29d. Fixes https://issues.redhat.com/browse/KATA-2168 Signed-off-by: Greg Kurz --- controllers/suite_test.go | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/controllers/suite_test.go b/controllers/suite_test.go index c9077c7c..33d25173 100644 --- a/controllers/suite_test.go +++ b/controllers/suite_test.go @@ -20,11 +20,9 @@ import ( "os" "path/filepath" "testing" - "time" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "github.com/onsi/gomega/gexec" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes/scheme" @@ -113,15 +111,7 @@ var _ = BeforeSuite(func() { Expect(err).ToNot(HaveOccurred()) go func() { - defer GinkgoRecover() err = k8sManager.Start(ctrl.SetupSignalHandler()) - Expect(err).ToNot(HaveOccurred(), "failed to run manager") - gexec.KillAndWait(4 * time.Second) - - // Teardown the test environment once controller is fnished. - // Otherwise from Kubernetes 1.21+, teardon timeouts waiting on - // kube-apiserver to return - err := testEnv.Stop() Expect(err).ToNot(HaveOccurred()) }() @@ -131,4 +121,6 @@ var _ = BeforeSuite(func() { var _ = AfterSuite(func() { By("tearing down the test environment") + err := testEnv.Stop() + Expect(err).ToNot(HaveOccurred()) }) From c9e036f6a1d676fde8e1e7c2faf2ed5c5f7db5ab Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Mon, 15 May 2023 21:50:30 +0530 Subject: [PATCH 55/63] Bump up peerpod-ctrl and peerpodconfig-ctrl deps Fixes: #KATA-2165 Signed-off-by: Pradipta Banerjee --- go.mod | 5 ++--- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 64ad9cd8..9fe9161a 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module github.com/openshift/sandboxed-containers-operator go 1.19 require ( - github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230504095339-77bef7014153 - github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230504095339-77bef7014153 + github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230512144533-a9941bba4692 + github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230512144533-a9941bba4692 github.com/coreos/ignition/v2 v2.9.0 github.com/ghodss/yaml v1.0.0 github.com/go-logr/logr v1.2.3 @@ -154,7 +154,6 @@ require ( ) replace ( - //github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl => ../cloud-api-adaptor/peerpodconfig-ctrl k8s.io/api => k8s.io/api v0.25.1 k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.25.1 k8s.io/apimachinery => k8s.io/apimachinery v0.25.1 diff --git a/go.sum b/go.sum index 0be571d8..cafe5e09 100644 --- a/go.sum +++ b/go.sum @@ -338,10 +338,10 @@ github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u9 github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4= github.com/confidential-containers/cloud-api-adaptor v0.5.1-0.20230504043629-580abeb128aa h1:dRChI1GYwl5maTTkBszTmcPOx541mORE1S4Cxm1mbp0= github.com/confidential-containers/cloud-api-adaptor v0.5.1-0.20230504043629-580abeb128aa/go.mod h1:PgjQnT5SSuSMiVM2uVKj7Qq70lMc5nVhZOPYU0lyy+s= -github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230504095339-77bef7014153 h1:Fi+koFVy+nTa69XzsLo+6ktjalQH15om/RxfzW0GLPQ= -github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230504095339-77bef7014153/go.mod h1:MHjPSHrlD3SLbWqT6RteKSgZRc2fRRZahf5lfPYbHUM= -github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230504095339-77bef7014153 h1:5w9u2wIXGi0DGWyjP43m8yIRL4OPcm5GS3/jWZ/6SGA= -github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230504095339-77bef7014153/go.mod h1:LH9ur4GVe4uZM9MnQIGIeBr5CdCVMQ9AtUHGPs1WoD4= +github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230512144533-a9941bba4692 h1:c+/JR7+sxetQ+wI6XwGnrZAZA/ZgWhXQtXTbO2w0siA= +github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230512144533-a9941bba4692/go.mod h1:MHjPSHrlD3SLbWqT6RteKSgZRc2fRRZahf5lfPYbHUM= +github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230512144533-a9941bba4692 h1:Ym7kkFxPKcGEY1MadMD+BPxZOX4Migp1Sbq7kLkua2U= +github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230512144533-a9941bba4692/go.mod h1:LH9ur4GVe4uZM9MnQIGIeBr5CdCVMQ9AtUHGPs1WoD4= github.com/container-orchestrated-devices/container-device-interface v0.4.0/go.mod h1:E1zcucIkq9P3eyNmY+68dBQsTcsXJh9cgRo2IVNScKQ= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= From a980fbf44f73e762fb0186d86ae1def89c697a93 Mon Sep 17 00:00:00 2001 From: Snir Sheriber Date: Tue, 9 May 2023 15:13:20 +0300 Subject: [PATCH 56/63] add image creation jobs for aws and azure cloud providers Signed-off-by: Snir Sheriber --- hack/aws-image-job.yaml | 75 ++++++++++++++++++++++++++++++++ hack/azure-image-job.yaml | 91 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 hack/aws-image-job.yaml create mode 100644 hack/azure-image-job.yaml diff --git a/hack/aws-image-job.yaml b/hack/aws-image-job.yaml new file mode 100644 index 00000000..38f20923 --- /dev/null +++ b/hack/aws-image-job.yaml @@ -0,0 +1,75 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: aws-image-creation + namespace: openshift-sandboxed-containers-operator +spec: + parallelism: 1 + completions: 1 + backoffLimit: 1 + template: + metadata: + name: aws-image-creation + spec: + volumes: + - name: shared-data + emptyDir: {} + + #hostNetwork: true # needed for imds access + securityContext: + runAsUser: 0 # needed for container mode dnf access + + initContainers: + - name: payload + image: registry.redhat.io/openshift-sandboxed-containers/osc-podvm-payload:1.4.0 + imagePullPolicy: Always + volumeMounts: + - name: shared-data + mountPath: /payload + command: ["/bin/sh"] + args: ["-c", "cp /podvm-binaries.tar.gz /payload/"] + + containers: + - name: aws-image-creation + image: registry.access.redhat.com/ubi9/ubi:9.1 + volumeMounts: + - name: shared-data + mountPath: /payload + env: + - name: PODVM_DISTRO + value: rhel +# - name: INSTANCE_TYPE +# value: "t3.small" # default is t3.small, uncomment and modify if not available in your region + envFrom: + - secretRef: + name: peer-pods-secret + - configMapRef: + name: peer-pods-cm + optional: true + command: + - /bin/sh + - -c + - | + yum install -y yum-utils make git + yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo + yum -y install packer + PATH="/usr/bin:${PATH}" + packer plugins install github.com/hashicorp/amazon + git clone https://github.com/confidential-containers/cloud-api-adaptor.git + cd cloud-api-adaptor && git checkout fcbfb26bb567bfa5aa6dc934d4a43ef9c3b3e3bf && cd - + tar xvf /payload/podvm-binaries.tar.gz -C cloud-api-adaptor/podvm/files + mkdir cloud-api-adaptor/podvm/files/pause_bundle # workaround to avoid pause image requirement + [[ ! "${VPC_ID}" ]] && [[ "${AWS_VPC_ID}" ]] && export VPC_ID=${AWS_VPC_ID} + [[ ! "${SUBNET_ID}" ]] && [[ "${AWS_SUBNET_ID}" ]] && export SUBNET_ID=${AWS_SUBNET_ID} + export MAC=$(curl -m 30 -s --show-error http://169.254.169.254/latest/meta-data/mac) + [[ ! "${AWS_REGION}" ]] && export AWS_REGION=$(curl -m 30 -s --show-error http://169.254.169.254/latest/meta-data/placement/region) + [[ ! "${AWS_REGION}" ]] && echo "AWS_REGION is missing" && exit 1 + [[ ! "${VPC_ID}" ]] && export VPC_ID=$(curl -m 30 -s --show-error http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/vpc-id) + [[ ! "${VPC_ID}" ]] && echo "VPC_ID is missing" && exit 1 + [[ ! "${SUBNET_ID}" ]] && export SUBNET_ID=$(curl -m 30 -s --show-error http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/subnet-id) + [[ ! "${SUBNET_ID}" ]] && echo "SUBNET_ID is missing" && exit 1 + cd cloud-api-adaptor/aws/image + export IMAGE_NAME=${IMAGE_NAME:-peer-pod-ami} + LIBC=gnu make BINARIES= PAUSE_BUNDLE= image && \ + echo "Set the AMI_ID ^ in your Secret/peer-pods-secret or ConfigMap/peer-pods-cm object" + restartPolicy: Never diff --git a/hack/azure-image-job.yaml b/hack/azure-image-job.yaml new file mode 100644 index 00000000..d99edc5c --- /dev/null +++ b/hack/azure-image-job.yaml @@ -0,0 +1,91 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: azure-image-creation + namespace: openshift-sandboxed-containers-operator +spec: + parallelism: 1 + completions: 1 + backoffLimit: 1 + template: + metadata: + name: azure-image-creation + spec: + volumes: + - name: shared-data + emptyDir: {} + + securityContext: + runAsUser: 0 # needed for container mode dnf access + + initContainers: + - name: payload + image: registry.redhat.io/openshift-sandboxed-containers/osc-podvm-payload:1.4.0 + imagePullPolicy: Always + volumeMounts: + - name: shared-data + mountPath: /payload + command: ["/bin/sh"] + args: ["-c", "cp /podvm-binaries.tar.gz /payload/"] + + containers: + - name: azure-image-creation + image: registry.access.redhat.com/ubi9/ubi:9.1 + volumeMounts: + - name: shared-data + mountPath: /payload + env: +# - name: VM_SIZE +# value: "Standard_A2_v2" + - name: PODVM_DISTRO + value: rhel + - name: PUBLISHER + value: "RedHat" + - name: OFFER + value: "RHEL" + - name: SKU + value: "9-lvm" + envFrom: + - secretRef: + name: peer-pods-secret + - configMapRef: + name: peer-pods-cm + optional: true + command: + - /bin/sh + - -c + - | + yum install -y yum-utils make git + yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo + yum -y install packer + PATH="/usr/bin:${PATH}" + git clone https://github.com/confidential-containers/cloud-api-adaptor.git + cd cloud-api-adaptor && git checkout fcbfb26bb567bfa5aa6dc934d4a43ef9c3b3e3bf && cd - + tar xvf /payload/podvm-binaries.tar.gz -C cloud-api-adaptor/podvm/files + mkdir cloud-api-adaptor/podvm/files/pause_bundle # workaround to avoid pause image requirement + [[ ! "${AZURE_REGION}" ]] && echo "AZURE_REGION is missing" && exit 1 + [[ ! "${AZURE_TENANT_ID}" ]] && echo "AZURE_TENANT_ID is missing" && exit 1 + [[ ! "${AZURE_RESOURCE_GROUP}" ]] && echo "AZURE_RESOURCE_GROUP is missing" && exit 1 + [[ ! "${AZURE_SUBSCRIPTION_ID}" ]] && echo "AZURE_SUBSCRIPTION_ID is missing" && exit 1 + [[ ! "${AZURE_CLIENT_SECRET}" ]] && echo "AZURE_CLIENT_SECRET is missing" && exit 1 + [[ ! "${AZURE_CLIENT_ID}" ]] && echo "AZURE_CLIENT_ID is missing" && exit 1 + export PKR_VAR_client_id=${AZURE_CLIENT_ID} + export PKR_VAR_client_secret=${AZURE_CLIENT_SECRET} + export PKR_VAR_subscription_id=${AZURE_SUBSCRIPTION_ID} + export PKR_VAR_tenant_id=${AZURE_TENANT_ID} + export PKR_VAR_resource_group=${AZURE_RESOURCE_GROUP} + export PKR_VAR_location=${AZURE_LOCATION} + export PKR_VAR_az_image_name=${IMAGE_NAME:-peer-pod-vmimage} + export PKR_VAR_vm_size=${VM_SIZE:-Standard_A2_v2} + export PKR_VAR_ssh_username=${SSH_USERNAME:-peerpod} + export PKR_VAR_publisher=${PUBLISHER} + export PKR_VAR_offer=${OFFER} + export PKR_VAR_sku=${SKU} + export PKR_VAR_plan_name=${PLAN_NAME} + export PKR_VAR_plan_product=${PLAN_PRODUCT} + export PKR_VAR_plan_publisher=${PLAN_PUBLISHER} + cd cloud-api-adaptor/azure/image + packer init ${PODVM_DISTRO}/ + make BINARIES= PAUSE_BUNDLE= image && \ + echo "Set the image AZURE_IMAGE_ID^ in your Secret/peer-pods-secret or ConfigMap/peer-pods-cm object" + restartPolicy: Never From a604fedfcdf7c1f83c6def2f1db6a3880a1985df Mon Sep 17 00:00:00 2001 From: Greg Kurz Date: Mon, 15 May 2023 10:52:21 +0200 Subject: [PATCH 57/63] Revert "Fix errors during envtest teardown" `make test` is leaking the kube-apiserver and etcd processes. When unoticed, this causes `make test` to fail with weird errors like failing to open a file because of rlimit. Investigation leads to commit 053f8664bf29d which was added to work around the very same problems at the time according to Pradipta. Reverting this commit fixes the issue. It seems that updates to the controller-runtime and deps might have changed something and we no longer need the workaround. Let's just revert 053f8664bf29d. Fixes https://issues.redhat.com/browse/KATA-2168 Signed-off-by: Greg Kurz --- controllers/suite_test.go | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/controllers/suite_test.go b/controllers/suite_test.go index c9077c7c..33d25173 100644 --- a/controllers/suite_test.go +++ b/controllers/suite_test.go @@ -20,11 +20,9 @@ import ( "os" "path/filepath" "testing" - "time" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - "github.com/onsi/gomega/gexec" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes/scheme" @@ -113,15 +111,7 @@ var _ = BeforeSuite(func() { Expect(err).ToNot(HaveOccurred()) go func() { - defer GinkgoRecover() err = k8sManager.Start(ctrl.SetupSignalHandler()) - Expect(err).ToNot(HaveOccurred(), "failed to run manager") - gexec.KillAndWait(4 * time.Second) - - // Teardown the test environment once controller is fnished. - // Otherwise from Kubernetes 1.21+, teardon timeouts waiting on - // kube-apiserver to return - err := testEnv.Stop() Expect(err).ToNot(HaveOccurred()) }() @@ -131,4 +121,6 @@ var _ = BeforeSuite(func() { var _ = AfterSuite(func() { By("tearing down the test environment") + err := testEnv.Stop() + Expect(err).ToNot(HaveOccurred()) }) From 0ebeefe97433ced9bd4f41c83431e2d11296ca47 Mon Sep 17 00:00:00 2001 From: Pavel Mores Date: Wed, 17 May 2023 10:55:21 +0200 Subject: [PATCH 58/63] fix KataConfig deletion when there are no kata nodes This fixes an omission in PR #300 where the special case of KataConfig deletion while there are no kata nodes on a cluster wasn't handled properly and uninstallation got stuck. This happened because the uninstallation flow assumed incorrectly that it will always be necessary for the MCO to reconciliate which is not the case. Installation flow (PR #291) got this right and while the idea of PR #300 was basically to make uninstallation flow analogous to installation, this aspect was omitted by mistake. Signed-off-by: Pavel Mores --- controllers/openshift_controller.go | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index d90f7384..e2413f57 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -863,7 +863,7 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R r.Log.Info("Couldn't get node selector for unlabelling nodes", "err", err) return ctrl.Result{Requeue: true}, nil } - err = r.unlabelNodes(kataNodeSelector) + labelingChanged, err := r.unlabelNodes(kataNodeSelector) if err != nil { if k8serrors.IsConflict(err) { @@ -895,13 +895,23 @@ func (r *KataConfigOpenShiftReconciler) processKataConfigDeleteRequest() (ctrl.R r.Log.Error(err, "Error found deleting machine config. If the machine config exists after installation it can be safely deleted manually.", "mc", mc.Name) } + } + + isConvergedCluster, _ := r.checkConvergedCluster() + + // Conditions to detect whether we need to wait for the MCO to start + // reconciliation differ based on whether the cluster is converged. + // If so then it's the fact we've just deleted the extension MC, if not + // then it's the node-role labeling change (if there's none it means + // we're deleting a KataConfig on a cluster where no nodes matched the + // kataConfigPoolSelector and thus there will be no change for the MCO + // to reconciliate). + if (isConvergedCluster && !isMcDeleted) || (!isConvergedCluster && labelingChanged) { r.Log.Info("Starting to wait for MCO to start reconciliation") r.kataConfig.Status.WaitingForMcoToStart = true r.kataConfig.Status.UnInstallationStatus.InProgress.IsInProgress = corev1.ConditionTrue } - isConvergedCluster, _ := r.checkConvergedCluster() - // When nodes migrate from a source pool to a target pool the source // pool is drained immediately and the nodes then slowly join the target // pool. Thus the operation duration is dominated by the target pool @@ -1621,7 +1631,7 @@ func (r *KataConfigOpenShiftReconciler) updateNodeLabels() (labelingChanged bool return labelingChanged, nil } -func (r *KataConfigOpenShiftReconciler) unlabelNodes(nodeSelector labels.Selector) (err error) { +func (r *KataConfigOpenShiftReconciler) unlabelNodes(nodeSelector labels.Selector) (labelingChanged bool, err error) { nodeList := &corev1.NodeList{} listOpts := []client.ListOption{ client.MatchingLabelsSelector{Selector: nodeSelector}, @@ -1629,7 +1639,7 @@ func (r *KataConfigOpenShiftReconciler) unlabelNodes(nodeSelector labels.Selecto if err := r.Client.List(context.TODO(), nodeList, listOpts...); err != nil { r.Log.Error(err, "Getting list of nodes failed") - return err + return false, err } for _, node := range nodeList.Items { @@ -1638,11 +1648,12 @@ func (r *KataConfigOpenShiftReconciler) unlabelNodes(nodeSelector labels.Selecto err = r.Client.Update(context.TODO(), &node) if err != nil { r.Log.Error(err, "Error when removing labels from node", "node", node) - return err + return labelingChanged, err } + labelingChanged = true } } - return nil + return labelingChanged, nil } func (r *KataConfigOpenShiftReconciler) getConditionReason(conditions []mcfgv1.MachineConfigPoolCondition, conditionType mcfgv1.MachineConfigPoolConditionType) string { From 3b105a346cb013845fbcfd380a78174c53a24136 Mon Sep 17 00:00:00 2001 From: Greg Kurz Date: Wed, 17 May 2023 11:30:10 +0200 Subject: [PATCH 59/63] Fix envtest tearing down PR #307 was too optimistic. The original issue worked around by 053f8664bf29d still exists actually ; `make test` is now failing with : [FAILED] Unexpected error: : [ <*errors.errorString | 0xc0005ebf80>{ s: "timeout waiting for process kube-apiserver to stop", }, ] timeout waiting for process kube-apiserver to stop occurred This is caused by a missing cancellation of the certwatcher in the controller-runtime. The fix, as documented in [1], is to create a cancellable context, pass it to envtest and cancel it just before tearing down the test. [1] https://github.com/kubernetes-sigs/kubebuilder/pull/2379 Signed-off-by: Greg Kurz --- controllers/suite_test.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/controllers/suite_test.go b/controllers/suite_test.go index 33d25173..d6b404c3 100644 --- a/controllers/suite_test.go +++ b/controllers/suite_test.go @@ -17,6 +17,7 @@ limitations under the License. package controllers import ( + "context" "os" "path/filepath" "testing" @@ -42,10 +43,14 @@ import ( // These tests use Ginkgo (BDD-style Go testing framework). Refer to // http://onsi.github.io/ginkgo/ to learn more about Ginkgo. -var cfg *rest.Config -var k8sClient client.Client -var testEnv *envtest.Environment -var k8sManager ctrl.Manager +var ( + cfg *rest.Config + k8sClient client.Client + testEnv *envtest.Environment + k8sManager ctrl.Manager + ctx context.Context + cancel context.CancelFunc +) func TestAPIs(t *testing.T) { RegisterFailHandler(Fail) @@ -56,6 +61,8 @@ func TestAPIs(t *testing.T) { var _ = BeforeSuite(func() { logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true))) + ctx, cancel = context.WithCancel(context.TODO()) + By("bootstrapping test environment") webhookOptions := envtest.WebhookInstallOptions{ Paths: []string{filepath.Join("..", "config", "webhook")}, @@ -111,7 +118,7 @@ var _ = BeforeSuite(func() { Expect(err).ToNot(HaveOccurred()) go func() { - err = k8sManager.Start(ctrl.SetupSignalHandler()) + err = k8sManager.Start(ctx) Expect(err).ToNot(HaveOccurred()) }() @@ -121,6 +128,9 @@ var _ = BeforeSuite(func() { var _ = AfterSuite(func() { By("tearing down the test environment") + // Stop() will timeout if the context isn't cancelled beforehand. + // See https://github.com/kubernetes-sigs/kubebuilder/pull/2379 for details. + cancel() err := testEnv.Stop() Expect(err).ToNot(HaveOccurred()) }) From 633a2450faadee8a8b5f6d355c7bb3b0f112806d Mon Sep 17 00:00:00 2001 From: Snir Sheriber Date: Mon, 22 May 2023 11:16:09 +0300 Subject: [PATCH 60/63] hide peerpods and peerpodconfigs internal objects Signed-off-by: Snir Sheriber --- .../sandboxed-containers-operator.clusterserviceversion.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml b/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml index 866c44c2..cc5438b3 100644 --- a/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/sandboxed-containers-operator.clusterserviceversion.yaml @@ -16,10 +16,12 @@ metadata: olm.skipRange: '>=1.1.0 <1.4.0' operatorframework.io/suggested-namespace: openshift-sandboxed-containers-operator operators.openshift.io/infrastructure-features: '["disconnected", "fips"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", "OpenShift + Platform Plus"]' operators.operatorframework.io/builder: operator-sdk-v1.20.1+git + operators.operatorframework.io/internal-objects: '["peerpods.confidentialcontainers.org","peerpodconfigs.confidentialcontainers.org"]' operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 repository: https://github.com/openshift/sandboxed-containers-operator - operators.openshift.io/valid-subscription: '["OpenShift Container Platform", "OpenShift Platform Plus"]' labels: operatorframework.io/arch.amd64: supported operatorframework.io/os.linux: supported From 38f4cce6de897869de074b5c0a643d549467dc5c Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Tue, 16 May 2023 20:20:35 +0200 Subject: [PATCH 61/63] KATA-2159: add cloud-api-adaptor images as relatedImage Add the cloud-api-adaptor(-webhook) image as a relatedImage to the CSV. Fixes: rhjira#KATA-2159 Signed-off-by: Jens Freimann --- config/manager/manager.yaml | 4 +++- controllers/openshift_controller.go | 4 ++-- controllers/suite_test.go | 2 +- go.mod | 2 +- go.sum | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index a8c50079..e9ddc5c0 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -76,10 +76,12 @@ spec: env: - name: PEERPODS_NAMESPACE value: "openshift-sandboxed-containers-operator" - - name: KATA_MONITOR_IMAGE + - name: RELATED_IMAGE_KATA_MONITOR value: quay.io/openshift_sandboxed_containers/openshift-sandboxed-containers-monitor:latest - name: SANDBOXED_CONTAINERS_EXTENSION value: kata-containers + - name: RELATED_IMAGE_CAA + value: quay.io/confidential-containers/cloud-api-adaptor imagePullPolicy: Always resources: limits: diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index e2413f57..4452f871 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -344,7 +344,7 @@ func (r *KataConfigOpenShiftReconciler) processDaemonsetForMonitor() *appsv1.Dae runGroupID = int64(1001) ) - kataMonitorImage := os.Getenv("KATA_MONITOR_IMAGE") + kataMonitorImage := os.Getenv("RELATED_IMAGE_KATA_MONITOR") if len(kataMonitorImage) == 0 { // kata-monitor image URL is generally impossible to verify or sanitise, // with the empty value being pretty much the only exception where it's @@ -352,7 +352,7 @@ func (r *KataConfigOpenShiftReconciler) processDaemonsetForMonitor() *appsv1.Dae // out of an infinite number of bad values, we choose not to return an // error here (giving an impression that we can actually detect errors) // but just log this incident and plow ahead. - r.Log.Info("KATA_MONITOR_IMAGE env var is unset or empty, kata-monitor pods will not run") + r.Log.Info("RELATED_IMAGE_KATA_MONITOR env var is unset or empty, kata-monitor pods will not run") } r.Log.Info("Creating monitor DaemonSet with image file: \"" + kataMonitorImage + "\"") diff --git a/controllers/suite_test.go b/controllers/suite_test.go index d6b404c3..47a1b2e7 100644 --- a/controllers/suite_test.go +++ b/controllers/suite_test.go @@ -77,7 +77,7 @@ var _ = BeforeSuite(func() { WebhookInstallOptions: webhookOptions, } - Expect(os.Setenv("KATA_MONITOR_IMAGE", "quay.io/openshift_sandboxed_containers/openshift-sandboxed-containers-monitor:latest")).To(Succeed()) + Expect(os.Setenv("RELATED_IMAGE_KATA_MONITOR", "quay.io/openshift_sandboxed_containers/openshift-sandboxed-containers-monitor:latest")).To(Succeed()) var err error cfg, err = testEnv.Start() diff --git a/go.mod b/go.mod index 9fe9161a..e7549c13 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.19 require ( github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230512144533-a9941bba4692 - github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230512144533-a9941bba4692 + github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230523130359-41dd75cd4399 github.com/coreos/ignition/v2 v2.9.0 github.com/ghodss/yaml v1.0.0 github.com/go-logr/logr v1.2.3 diff --git a/go.sum b/go.sum index cafe5e09..f2973146 100644 --- a/go.sum +++ b/go.sum @@ -340,8 +340,8 @@ github.com/confidential-containers/cloud-api-adaptor v0.5.1-0.20230504043629-580 github.com/confidential-containers/cloud-api-adaptor v0.5.1-0.20230504043629-580abeb128aa/go.mod h1:PgjQnT5SSuSMiVM2uVKj7Qq70lMc5nVhZOPYU0lyy+s= github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230512144533-a9941bba4692 h1:c+/JR7+sxetQ+wI6XwGnrZAZA/ZgWhXQtXTbO2w0siA= github.com/confidential-containers/cloud-api-adaptor/peerpod-ctrl v0.0.0-20230512144533-a9941bba4692/go.mod h1:MHjPSHrlD3SLbWqT6RteKSgZRc2fRRZahf5lfPYbHUM= -github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230512144533-a9941bba4692 h1:Ym7kkFxPKcGEY1MadMD+BPxZOX4Migp1Sbq7kLkua2U= -github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230512144533-a9941bba4692/go.mod h1:LH9ur4GVe4uZM9MnQIGIeBr5CdCVMQ9AtUHGPs1WoD4= +github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230523130359-41dd75cd4399 h1:JUZZkfPXQtDtYtVZZP97daoC6cKdipEUazsOsbAv6JY= +github.com/confidential-containers/cloud-api-adaptor/peerpodconfig-ctrl v0.0.0-20230523130359-41dd75cd4399/go.mod h1:LH9ur4GVe4uZM9MnQIGIeBr5CdCVMQ9AtUHGPs1WoD4= github.com/container-orchestrated-devices/container-device-interface v0.4.0/go.mod h1:E1zcucIkq9P3eyNmY+68dBQsTcsXJh9cgRo2IVNScKQ= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= From 55df65ef3d9e67e764e858dc5ee0d2ed3e30130b Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Thu, 18 May 2023 12:34:08 -0400 Subject: [PATCH 62/63] Install peerpods mutating webhook Fixes: #KATA-2172 Signed-off-by: Pradipta Banerjee --- config/manager/manager.yaml | 2 + controllers/openshift_controller.go | 44 +++ controllers/ppwebhook.go | 469 ++++++++++++++++++++++++++++ 3 files changed, 515 insertions(+) create mode 100644 controllers/ppwebhook.go diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index e9ddc5c0..769d9e04 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -82,6 +82,8 @@ spec: value: kata-containers - name: RELATED_IMAGE_CAA value: quay.io/confidential-containers/cloud-api-adaptor + - name: RELATED_IMAGE_PEERPODS_WEBHOOK + value: "quay.io/confidential-containers/peer-pods-webhook:latest" imagePullPolicy: Always resources: limits: diff --git a/controllers/openshift_controller.go b/controllers/openshift_controller.go index 4452f871..9f0a94e0 100644 --- a/controllers/openshift_controller.go +++ b/controllers/openshift_controller.go @@ -98,6 +98,7 @@ const ( // +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpods,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpods/status,verbs=get;update;patch // +kubebuilder:rbac:groups=confidentialcontainers.org,resources=peerpods/finalizers,verbs=update +// +kubebuilder:rbac:groups=admissionregistration.k8s.io,resources=mutatingwebhookconfigurations,verbs=get;list;watch;create;update;delete func (r *KataConfigOpenShiftReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { _ = r.Log.WithValues("kataconfig", req.NamespacedName) @@ -1952,6 +1953,28 @@ func (r *KataConfigOpenShiftReconciler) enablePeerPodsMiscConfigs() error { return err } + // Create the mutating webhook deployment + err = r.createMutatingWebhookDeployment() + if err != nil { + r.Log.Info("Error in creating mutating webhook deployment for peerpods", "err", err) + return err + } + + // Create the mutating webhook service + err = r.createMutatingWebhookService() + if err != nil { + r.Log.Info("Error in creating mutating webhook service for peerpods", "err", err) + return err + } + + // Create the mutating webhook + + err = r.createMutatingWebhookConfig() + if err != nil { + r.Log.Info("Error in creating mutating webhook for peerpods", "err", err) + return err + } + // Create runtimeClass config for peer-pods err = r.createRuntimeClass(peerpodsRuntimeClassName, peerpodsRuntimeClassCpuOverhead, peerpodsRuntimeClassMemOverhead) if err != nil { @@ -2009,6 +2032,27 @@ func (r *KataConfigOpenShiftReconciler) disablePeerPods() error { "mc", mc.Name, "err", err) } + // Delete mutating webhook deployment + err = r.deleteMutatingWebhookDeployment() + if err != nil { + r.Log.Info("Error in deleting mutating webhook deployment for peerpods", "err", err) + return err + } + + // Delete mutating webhook service + err = r.deleteMutatingWebhookService() + if err != nil { + r.Log.Info("Error in deleting mutating webhook service for peerpods", "err", err) + return err + } + + // Delete the mutating webhook + err = r.deleteMutatingWebhookConfig() + if err != nil { + r.Log.Info("Error in deleting mutating webhook for peerpods", "err", err) + return err + } + return nil } diff --git a/controllers/ppwebhook.go b/controllers/ppwebhook.go new file mode 100644 index 00000000..c353722f --- /dev/null +++ b/controllers/ppwebhook.go @@ -0,0 +1,469 @@ +package controllers + +import ( + "context" + "os" + + corev1 "k8s.io/api/core/v1" + k8serrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/apimachinery/pkg/util/intstr" + + // import apps/v1 for Deployment + appsv1 "k8s.io/api/apps/v1" + // import metav1 for ObjectMeta + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + // import admissionregistration/v1 for MutatingWebhookConfiguration + admissionregistrationv1 "k8s.io/api/admissionregistration/v1" +) + +const ( + + // Define webhook name + webhookName = "mwebhook.peerpods.io" + + // Define webhook deployment name + webhookDeploymentName = "peer-pods-webhook" + + // Define webhook service name + webhookSvcName = "peer-pods-webhook-svc" + webhookSvcSecretName = "peer-pods-webhook-svc-secret" + webhookDefaultImage = "quay.io/confidential-containers/peer-pods-webhook:latest" + + // Define webhook mutating config name + webhookConfigName = "mutating-webhook-configuration" +) + +// Method to create the mutating webhook service +func (r *KataConfigOpenShiftReconciler) createMutatingWebhookService() error { + + // Define webhook service port + webhookServicePort := int32(443) + + // Define webhook service target port + webhookServiceTargetPort := intstr.FromInt(9443) + + // Define webhook service type + webhookServiceType := corev1.ServiceTypeClusterIP + + // Define webhook service selector + webhookServiceSelector := map[string]string{ + "app": "peer-pods-webhook", + } + + webhookSvcNamespace := os.Getenv("PEERPODS_NAMESPACE") + + // Define Annotation for webhook service + webhookServiceAnnotations := map[string]string{ + // annotation to the service to use the secret created by the operator + // to serve the webhook service over TLS + "service.beta.openshift.io/serving-cert-secret-name": webhookSvcSecretName, + } + + // Create webhook service + webhookService := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: webhookSvcName, + Namespace: webhookSvcNamespace, + // Add annotations to the service + Annotations: webhookServiceAnnotations, + }, + Spec: corev1.ServiceSpec{ + Ports: []corev1.ServicePort{ + { + Name: webhookSvcName, + Port: webhookServicePort, + TargetPort: webhookServiceTargetPort, + }, + }, + Selector: webhookServiceSelector, + ClusterIP: "", + Type: webhookServiceType, + }, + } + + // Create webhook service + if err := r.Client.Create(context.Background(), webhookService); err != nil { + // Check if the webhook service already exists + if !k8serrors.IsAlreadyExists(err) { + return err + } + } + r.Log.Info("created peerpods mutating webhook service") + return nil + +} + +// Method to create the mutating webhook deployment +func (r *KataConfigOpenShiftReconciler) createMutatingWebhookDeployment() error { + + // Define webhook deployment namespace + webhookDeploymentNamespace := os.Getenv("PEERPODS_NAMESPACE") + + // Define webhook deployment labels + webhookDeploymentLabels := map[string]string{ + "app": "peer-pods-webhook", + } + + // Define webhook deployment replicas + webhookDeploymentReplicas := int32(2) + + // Define webhook deployment strategy + webhookDeploymentStrategy := appsv1.DeploymentStrategy{ + Type: appsv1.RollingUpdateDeploymentStrategyType, + } + + // Define webhook deployment pod template labels + webhookDeploymentPodTemplateLabels := map[string]string{ + "app": "peer-pods-webhook", + } + + // Disable privilege escalation + allowPrivilegeEscalation := false + + // Run as non-root user + runAsNonRoot := true + + // Get the webhook image from environment variable. If environment variable is not set, use the default image + webhookImage := os.Getenv("RELATED_IMAGE_PEERPODS_WEBHOOK") + if webhookImage == "" { + webhookImage = webhookDefaultImage + } + + // Add volume default mode + defaultMode := int32(420) + + // Define webhook deployment pod template spec + webhookDeploymentPodTemplateSpec := corev1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: webhookDeploymentPodTemplateLabels, + }, + Spec: corev1.PodSpec{ + // Add TLS secret volumes + Volumes: []corev1.Volume{ + { + Name: "webhook-cert", + VolumeSource: corev1.VolumeSource{ + Secret: &corev1.SecretVolumeSource{ + SecretName: webhookSvcSecretName, + DefaultMode: &defaultMode, + // Add items + Items: []corev1.KeyToPath{ + { + Key: "tls.crt", + Path: "tls.crt", + }, + { + Key: "tls.key", + Path: "tls.key", + }, + }, + }, + }, + }, + }, + + // Define security context + SecurityContext: &corev1.PodSecurityContext{ + // Run as nonroot user + RunAsNonRoot: &runAsNonRoot, + }, + Containers: []corev1.Container{ + { + Name: webhookDeploymentName, + // Define security context + SecurityContext: &corev1.SecurityContext{ + // Disable privilege escalation + AllowPrivilegeEscalation: &allowPrivilegeEscalation, + }, + Image: webhookImage, + ImagePullPolicy: corev1.PullAlways, + // Define Command + Command: []string{ + "/manager", + }, + // Define args + Args: []string{ + " --leader-elect", + }, + // Define 3 env variables + Env: []corev1.EnvVar{ + { + Name: "PEERPODS_NAMESPACE", + Value: webhookDeploymentNamespace, + }, + { + Name: "TARGET_RUNTIMECLASS", + Value: peerpodsRuntimeClassName, + }, + { + Name: "POD_VM_EXTENDED_RESOURCE", + Value: "kata.peerpods.io/vm", + }, + }, + // Define resources + Resources: corev1.ResourceRequirements{ + Requests: corev1.ResourceList{ + "cpu": resource.MustParse("10m"), + "memory": resource.MustParse("64Mi"), + }, + Limits: corev1.ResourceList{ + "cpu": resource.MustParse("500m"), + "memory": resource.MustParse("128Mi"), + }, + }, + // Add volume mounts + VolumeMounts: []corev1.VolumeMount{ + { + Name: "webhook-cert", + // This is the default path for webhook servers created using + // controller-runtime + MountPath: "/tmp/k8s-webhook-server/serving-certs", + ReadOnly: true, + }, + }, + }, + }, + }, + } + + // Define webhook deployment + webhookDeployment := &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{ + Name: webhookDeploymentName, + Namespace: webhookDeploymentNamespace, + Labels: webhookDeploymentLabels, + }, + Spec: appsv1.DeploymentSpec{ + Replicas: &webhookDeploymentReplicas, + Selector: &metav1.LabelSelector{ + MatchLabels: webhookDeploymentLabels, + }, + Strategy: webhookDeploymentStrategy, + Template: webhookDeploymentPodTemplateSpec, + }, + } + + // Create webhook deployment + if err := r.Client.Create(context.Background(), webhookDeployment); err != nil { + // Check if the webhook deployment already exists + if !k8serrors.IsAlreadyExists(err) { + return err + } + } + r.Log.Info("created peerpods mutating webhook deployment") + return nil +} + +// Method to create the mutating webhook config +func (r *KataConfigOpenShiftReconciler) createMutatingWebhookConfig() error { + + // Define webhook path + webhookPath := "/mutate-v1-pod" + + // Add failure policy + failurePolicy := admissionregistrationv1.Fail + + // Add side effect + sideEffect := admissionregistrationv1.SideEffectClassNone + + // Add list of namespaces to exclude + namespacesToExclude := []string{ + "peer-pods-webhook-system", + "openshift-sandboxed-containers-operator", + "openshift", + "openshift-apiserver", + "openshift-apiserver-operator", + "openshift-authentication", + "openshift-authentication-operator", + "openshift-cloud-controller-manager", + "openshift-cloud-controller-manager-operator", + "openshift-cloud-credential-operator", + "openshift-cloud-network-config-controller", + "openshift-cluster-csi-drivers", + "openshift-cluster-machine-approver", + "openshift-cluster-node-tuning-operator", + "openshift-cluster-samples-operator", + "openshift-cluster-storage-operator", + "openshift-cluster-version", + "openshift-config", + "openshift-config-managed", + "openshift-config-operator", + "openshift-console", + "openshift-console-operator", + "openshift-console-user-settings", + "openshift-controller-manager", + "openshift-controller-manager-operator", + "openshift-dns", + "openshift-dns-operator", + "openshift-etcd", + "openshift-etcd-operator", + "openshift-host-network", + "openshift-image-registry", + "openshift-infra", + "openshift-ingress", + "openshift-ingress-canary", + "openshift-ingress-operator", + "openshift-insights", + "openshift-kni-infra", + "openshift-kube-apiserver", + "openshift-kube-apiserver-operator", + "openshift-kube-controller-manager", + "openshift-kube-scheduler", + "openshift-kube-scheduler-operator", + "openshift-kube-storage-version-migrator", + "openshift-kube-storage-version-migrator-operator", + "openshift-machine-api", + "openshift-machine-config-operator", + "openshift-marketplace", + "openshift-monitoring", + "openshift-multus", + "openshift-network-diagnostics", + "openshift-network-operator", + "openshift-node", + "openshift-nutanix-infra", + "openshift-oauth-apiserver", + "openshift-openstack-infra", + "openshift-operator-lifecycle-manager", + "openshift-operators", + "openshift-ovirt-infra", + "openshift-ovn-kubernetes", + "openshift-route-controller-manager", + "openshift-service-ca", + "openshift-service-ca-operator", + "openshift-user-workload-monitoring", + "openshift-vsphere-infra", + "kube-system", + "kube-node-lease", + } + + webhookSvcNamespace := os.Getenv("PEERPODS_NAMESPACE") + + // Add annotations to inject ca bundle into the webhook config + annotations := map[string]string{ + "service.beta.openshift.io/inject-cabundle": "true", + } + + // Add mutating webhook configuration + mutatingWebhookConfig := &admissionregistrationv1.MutatingWebhookConfiguration{ + ObjectMeta: metav1.ObjectMeta{ + Name: webhookConfigName, + // Add annotations + Annotations: annotations, + }, + Webhooks: []admissionregistrationv1.MutatingWebhook{ + { + Name: webhookName, + ClientConfig: admissionregistrationv1.WebhookClientConfig{ + Service: &admissionregistrationv1.ServiceReference{ + Name: webhookSvcName, + Namespace: webhookSvcNamespace, + Path: &webhookPath, + }, + }, + // Add rules + Rules: []admissionregistrationv1.RuleWithOperations{ + { + Operations: []admissionregistrationv1.OperationType{ + admissionregistrationv1.Create, + admissionregistrationv1.Update, + }, + Rule: admissionregistrationv1.Rule{ + APIGroups: []string{""}, + APIVersions: []string{"v1"}, + Resources: []string{"pods"}, + }, + }, + }, + // Add failure policy + FailurePolicy: &failurePolicy, + // Add side effects + SideEffects: &sideEffect, + // Add admission review versions + AdmissionReviewVersions: []string{"v1"}, + // Add namespace selector using matchExpressions + NamespaceSelector: &metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: "kubernetes.io/metadata.name", + Operator: metav1.LabelSelectorOpNotIn, + // Take values from a predefined list + Values: namespacesToExclude, + }, + }, + }, + }, + }, + } + + // Create MutatingWebhookConfiguration object + if err := r.Client.Create(context.Background(), mutatingWebhookConfig); err != nil { + if !k8serrors.IsAlreadyExists(err) { + return err + } + } + r.Log.Info("created peerpods mutating webhook configuration") + return nil +} + +// Method to delete the Mutating Webhook Deployment +func (r *KataConfigOpenShiftReconciler) deleteMutatingWebhookDeployment() error { + + webhookDeploymentNamespace := os.Getenv("PEERPODS_NAMESPACE") + + deployment := &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{ + Name: webhookDeploymentName, + Namespace: webhookDeploymentNamespace, + }, + } + // Delete the deployment + err := r.Client.Delete(context.Background(), deployment) + if err != nil { + if !k8serrors.IsNotFound(err) { + return err + } + } + r.Log.Info("deleted peerpods mutating webhook deployment") + return nil +} + +// Method to delete the Mutating Webhook Service +func (r *KataConfigOpenShiftReconciler) deleteMutatingWebhookService() error { + + webhookSvcNamespace := os.Getenv("PEERPODS_NAMESPACE") + + service := &corev1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: webhookSvcName, + Namespace: webhookSvcNamespace, + }, + } + // Delete the service + err := r.Client.Delete(context.Background(), service) + if err != nil { + if !k8serrors.IsNotFound(err) { + return err + } + } + r.Log.Info("deleted peerpods mutating webhook service") + return nil +} + +// Method to delete the Mutating Webhook Configuration +func (r *KataConfigOpenShiftReconciler) deleteMutatingWebhookConfig() error { + mutatingWebhookConfig := &admissionregistrationv1.MutatingWebhookConfiguration{ + ObjectMeta: metav1.ObjectMeta{ + Name: webhookConfigName, + }, + } + // Delete the mutating webhook configuration + err := r.Client.Delete(context.Background(), mutatingWebhookConfig) + if err != nil { + if !k8serrors.IsNotFound(err) { + return err + } + } + r.Log.Info("deleted peerpods mutating webhook configuration") + return nil +} From 48942c64ca35bc279e98a560f2a39df22f6dc0d5 Mon Sep 17 00:00:00 2001 From: Greg Kurz Date: Thu, 25 May 2023 12:32:15 +0200 Subject: [PATCH 63/63] Allow to skip `go test` `make test` has been broken since #300 was merged and fixing it is going to take time (see #310 for details). It is a problem for local development since the `test` target is a prequisite for `docker-build` in the makefile. Add a variable to control whether `go test` should run when the `test` target is invoked. $ make test SKIP_TESTS= # Run `go test` when unset $ make test SKIP_TESTS=1 # Don't run `go test` when set Default is unset. Signed-off-by: Greg Kurz --- Makefile | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Makefile b/Makefile index 2114b1b1..b5bb8fed 100644 --- a/Makefile +++ b/Makefile @@ -76,6 +76,12 @@ space := $() $() comma := , GOFLAGS := -tags=$(subst $(space),$(comma),$(strip $(BUILTIN_CLOUD_PROVIDERS))) +# +# If SKIP_TESTS is set, the test target will *not* run `go test`. +# This is to be able to temporarily work around test failures when doing +# local development. +SKIP_TESTS = + .PHONY: all all: build @@ -116,9 +122,13 @@ vet: ## Run go vet against code. .PHONY: test test: manifests generate fmt vet envtest ## Run tests. +ifneq (, $(SKIP_TESTS)) + @echo Skipping tests. Unset SKIP_TESTS to actually run them. +else KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test $(GOFLAGS) ./... -coverprofile cover.out # set write flag on created folder, so that we can clean it up chmod +w $(LOCALBIN)/k8s/$(ENVTEST_K8S_VERSION)* +endif ##@ Build