consul/agent/structs/deep-copy.sh
Nathan Coleman 5e9f02d4be
[NET-8091] Add file-system-certificate config entry for API gateway (#20873)
* Define file-system-certificate config entry

* Collect file-system-certificate(s) referenced by api-gateway onto snapshot

* Add file-system-certificate to config entry kind allow lists

* Remove inapplicable validation

This validation makes sense for inline certificates since Consul server is holding the certificate; however, for file system certificates, Consul server never actually sees the certificate.

* Support file-system-certificate as source for listener TLS certificate

* Add more required mappings for the new config entry type

* Construct proper TLS context based on certificate kind

* Add support or SDS in xdscommon

* Remove unused param

* Adds back verification of certs for inline-certificates

* Undo tangential changes to TLS config consumption

* Remove stray curly braces

* Undo some more tangential changes

* Improve function name for generating API gateway secrets

* Add changelog entry

* Update .changelog/20873.txt

Co-authored-by: Jared Kirschner <85913323+jkirschner-hashicorp@users.noreply.github.com>

* Add some nil-checking, remove outdated TODO

* Update test assertions to include file-system-certificate

* Add documentation for file-system-certificate config entry

Add new doc to nav

* Fix grammar mistake

* Rename watchmaps, remove outdated TODO

---------

Co-authored-by: Melisa Griffin <melisa.griffin@hashicorp.com>
Co-authored-by: Jared Kirschner <85913323+jkirschner-hashicorp@users.noreply.github.com>
2024-04-15 16:45:05 -04:00

61 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
readonly PACKAGE_DIR="$(dirname "${BASH_SOURCE[0]}")"
cd $PACKAGE_DIR
# Uses: https://github.com/globusdigital/deep-copy
deep-copy \
-pointer-receiver \
-o ./structs.deepcopy.go \
-type APIGatewayListener \
-type BoundAPIGatewayListener \
-type CARoot \
-type CheckServiceNode \
-type CheckType \
-type CompiledDiscoveryChain \
-type ConnectProxyConfig \
-type DiscoveryFailover \
-type DiscoveryGraphNode \
-type DiscoveryResolver \
-type DiscoveryRoute \
-type DiscoverySplit \
-type ExposeConfig \
-type ExportedServicesConfigEntry \
-type FileSystemCertificateConfigEntry \
-type GatewayService \
-type GatewayServiceTLSConfig \
-type HTTPHeaderModifiers \
-type HTTPRouteConfigEntry \
-type HashPolicy \
-type HealthCheck \
-type IndexedCARoots \
-type IngressListener \
-type InlineCertificateConfigEntry \
-type Intention \
-type IntentionPermission \
-type LoadBalancer \
-type MeshConfigEntry \
-type MeshDirectionalTLSConfig \
-type MeshTLSConfig \
-type Node \
-type NodeService \
-type PeeringServiceMeta \
-type ServiceConfigEntry \
-type ServiceConfigResponse \
-type ServiceConnect \
-type ServiceDefinition \
-type ServiceResolverConfigEntry \
-type ServiceResolverFailover \
-type ServiceRoute \
-type ServiceRouteDestination \
-type ServiceRouteMatch \
-type TCPRouteConfigEntry \
-type Upstream \
-type UpstreamConfiguration \
-type Status \
-type BoundAPIGatewayConfigEntry \
./