@@ -2159,22 +2159,27 @@ type persistedService struct {
21592159 // to exclude it from API output, but we need it to properly deregister
21602160 // persisted sidecars.
21612161 LocallyRegisteredAsSidecar bool `json:",omitempty"`
2162+ // we need it tracks whether default sidecar checks (TCP + alias) were
2163+ // disabled at registration time. Persisted to maintain consistent check configuration
2164+ // across agent restarts/reloads. Excluded from API responses but required for state restoration.
2165+ DisableSidecarDefaultChecks bool `json:",omitempty"`
21622166}
21632167
21642168func (a * Agent ) makeServiceFilePath (svcID structs.ServiceID ) string {
21652169 return filepath .Join (a .config .DataDir , servicesDir , svcID .StringHashSHA256 ())
21662170}
21672171
21682172// persistService saves a service definition to a JSON file in the data dir
2169- func (a * Agent ) persistService (service * structs.NodeService , source configSource ) error {
2173+ func (a * Agent ) persistService (service * structs.NodeService , source configSource , disableSidecarDefaultChecks bool ) error {
21702174 svcID := service .CompoundServiceID ()
21712175 svcPath := a .makeServiceFilePath (svcID )
21722176
21732177 wrapped := persistedService {
2174- Token : a .State .ServiceToken (service .CompoundServiceID ()),
2175- Service : service ,
2176- Source : source .String (),
2177- LocallyRegisteredAsSidecar : service .LocallyRegisteredAsSidecar ,
2178+ Token : a .State .ServiceToken (service .CompoundServiceID ()),
2179+ Service : service ,
2180+ Source : source .String (),
2181+ LocallyRegisteredAsSidecar : service .LocallyRegisteredAsSidecar ,
2182+ DisableSidecarDefaultChecks : disableSidecarDefaultChecks ,
21782183 }
21792184 encoded , err := json .Marshal (wrapped )
21802185 if err != nil {
@@ -2374,8 +2379,10 @@ func (a *Agent) addServiceLocked(req addServiceLockedRequest) error {
23742379 req .Service .Port = port
23752380 }
23762381 // Setup default check if none given.
2377- if len (req .chkTypes ) < 1 {
2382+ if len (req .chkTypes ) < 1 && ! req . disableSidecarDefaultChecks {
23782383 req .chkTypes = sidecarDefaultChecks (req .Service .ID , req .Service .Address , req .Service .Proxy .LocalServiceAddress , req .Service .Port )
2384+ } else {
2385+ req .disableSidecarDefaultChecks = true
23792386 }
23802387 }
23812388
@@ -2416,12 +2423,13 @@ type addServiceLockedRequest struct {
24162423// AddServiceRequest contains the fields used to register a service on the local
24172424// agent using Agent.AddService.
24182425type AddServiceRequest struct {
2419- Service * structs.NodeService
2420- chkTypes []* structs.CheckType
2421- persist bool
2422- token string
2423- replaceExistingChecks bool
2424- Source configSource
2426+ Service * structs.NodeService
2427+ chkTypes []* structs.CheckType
2428+ persist bool
2429+ token string
2430+ replaceExistingChecks bool
2431+ Source configSource
2432+ disableSidecarDefaultChecks bool
24252433}
24262434
24272435type addServiceInternalRequest struct {
@@ -2614,7 +2622,7 @@ func (a *Agent) addServiceInternal(req addServiceInternalRequest) error {
26142622 req .persistService = service
26152623 }
26162624
2617- if err := a .persistService (req .persistService , source ); err != nil {
2625+ if err := a .persistService (req .persistService , source , req . disableSidecarDefaultChecks ); err != nil {
26182626 a .cleanupRegistration (cleanupServices , cleanupChecks )
26192627 return err
26202628 }
@@ -3882,12 +3890,13 @@ func (a *Agent) loadServices(conf *config.RuntimeConfig, snap map[structs.CheckI
38823890 )
38833891 err = a .addServiceLocked (addServiceLockedRequest {
38843892 AddServiceRequest : AddServiceRequest {
3885- Service : p .Service ,
3886- chkTypes : nil ,
3887- persist : false , // don't rewrite the file with the same data we just read
3888- token : p .Token ,
3889- replaceExistingChecks : false , // do default behavior
3890- Source : source ,
3893+ Service : p .Service ,
3894+ chkTypes : nil ,
3895+ persist : false , // don't rewrite the file with the same data we just read
3896+ token : p .Token ,
3897+ replaceExistingChecks : false , // do default behavior
3898+ Source : source ,
3899+ disableSidecarDefaultChecks : p .DisableSidecarDefaultChecks ,
38913900 },
38923901 serviceDefaults : serviceDefaultsFromStruct (persistedServiceConfigs [serviceID ]),
38933902 persistServiceConfig : false , // don't rewrite the file with the same data we just read
0 commit comments