fix: the fields in UpstreamPassiveHealthCheckUnhealthy should be timeouts (#687)

diff --git a/pkg/apisix/schema.go b/pkg/apisix/schema.go
index 3f30525..34ce2ce 100644
--- a/pkg/apisix/schema.go
+++ b/pkg/apisix/schema.go
@@ -17,6 +17,7 @@
 
 import (
 	"context"
+
 	"go.uber.org/zap"
 
 	"github.com/apache/apisix-ingress-controller/pkg/apisix/cache"
diff --git a/pkg/kube/apisix/apis/config/v1/types.go b/pkg/kube/apisix/apis/config/v1/types.go
index 3eea11a..61d9f3f 100644
--- a/pkg/kube/apisix/apis/config/v1/types.go
+++ b/pkg/kube/apisix/apis/config/v1/types.go
@@ -217,10 +217,10 @@
 // PassiveHealthCheckUnhealthy defines the conditions to judge whether
 // an upstream node is unhealthy with the passive manager.
 type PassiveHealthCheckUnhealthy struct {
-	HTTPCodes    []int         `json:"httpCodes,omitempty" yaml:"httpCodes,omitempty"`
-	HTTPFailures int           `json:"httpFailures,omitempty" yaml:"http_failures,omitempty"`
-	TCPFailures  int           `json:"tcpFailures,omitempty" yaml:"tcpFailures,omitempty"`
-	Timeout      time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
+	HTTPCodes    []int `json:"httpCodes,omitempty" yaml:"httpCodes,omitempty"`
+	HTTPFailures int   `json:"httpFailures,omitempty" yaml:"http_failures,omitempty"`
+	TCPFailures  int   `json:"tcpFailures,omitempty" yaml:"tcpFailures,omitempty"`
+	Timeouts     int   `json:"timeout,omitempty" yaml:"timeout,omitempty"`
 }
 
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
diff --git a/pkg/kube/translation/apisix_upstream.go b/pkg/kube/translation/apisix_upstream.go
index f9ce843..40fd598 100644
--- a/pkg/kube/translation/apisix_upstream.go
+++ b/pkg/kube/translation/apisix_upstream.go
@@ -226,7 +226,7 @@
 			}
 		}
 		active.Unhealthy.TCPFailures = config.Unhealthy.TCPFailures
-		active.Unhealthy.Timeouts = config.Unhealthy.Timeout.Seconds()
+		active.Unhealthy.Timeouts = config.Unhealthy.Timeouts
 
 		if config.Unhealthy.HTTPCodes != nil && len(config.Unhealthy.HTTPCodes) < 1 {
 			return nil, &translateError{
@@ -295,7 +295,7 @@
 			}
 		}
 		passive.Unhealthy.TCPFailures = config.Unhealthy.TCPFailures
-		passive.Unhealthy.Timeouts = config.Unhealthy.Timeout.Seconds()
+		passive.Unhealthy.Timeouts = config.Unhealthy.Timeouts
 
 		if config.Unhealthy.HTTPCodes != nil && len(config.Unhealthy.HTTPCodes) < 1 {
 			return nil, &translateError{
diff --git a/pkg/types/apisix/v1/types.go b/pkg/types/apisix/v1/types.go
index 297f915..5838028 100644
--- a/pkg/types/apisix/v1/types.go
+++ b/pkg/types/apisix/v1/types.go
@@ -288,10 +288,10 @@
 // an upstream node is unhealthy with the passive manager.
 // +k8s:deepcopy-gen=true
 type UpstreamPassiveHealthCheckUnhealthy struct {
-	HTTPStatuses []int   `json:"http_statuses,omitempty" yaml:"http_statuses,omitempty"`
-	HTTPFailures int     `json:"http_failures,omitempty" yaml:"http_failures,omitempty"`
-	TCPFailures  int     `json:"tcp_failures,omitempty" yaml:"tcp_failures,omitempty"`
-	Timeouts     float64 `json:"timeouts,omitempty" yaml:"timeouts,omitempty"`
+	HTTPStatuses []int `json:"http_statuses,omitempty" yaml:"http_statuses,omitempty"`
+	HTTPFailures int   `json:"http_failures,omitempty" yaml:"http_failures,omitempty"`
+	TCPFailures  int   `json:"tcp_failures,omitempty" yaml:"tcp_failures,omitempty"`
+	Timeouts     int   `json:"timeouts,omitempty" yaml:"timeouts,omitempty"`
 }
 
 // Ssl apisix ssl object
diff --git a/samples/deploy/crd/v1beta1/ApisixUpstream.yaml b/samples/deploy/crd/v1beta1/ApisixUpstream.yaml
index aebb4e1..3bf9349 100644
--- a/samples/deploy/crd/v1beta1/ApisixUpstream.yaml
+++ b/samples/deploy/crd/v1beta1/ApisixUpstream.yaml
@@ -168,8 +168,9 @@
                           type: integer
                           minimum: 1
                           maximum: 254
-                        timeout:
-                          type: string
+                        timeouts:
+                          type: integer
+                          minimum: 0
                 passive:
                   type: object
                   properties:
@@ -211,8 +212,9 @@
                           type: integer
                           minimum: 1
                           maximum: 254
-                        timeout:
-                          type: string
+                        timeouts:
+                          type: integer
+                          minimum: 0
             portLevelSettings:
               type: array
               items: