knative / serving

Kubernetes-based, scale-to-zero, request-driven compute
https://knative.dev/docs/serving/
Apache License 2.0
5.55k stars 1.16k forks source link

Use a different namespace other than knative-serving for all integration and upgrade tests #7283

Closed houshengbo closed 4 years ago

houshengbo commented 4 years ago

What version of Knative?

0.9.x 0.10.x 0.11.x Output of git describe --dirty

Expected Behavior

Knative supports any namespace to run all the namespaced resources. knative-serving happens to be the default one, and all tests in prow jobs are using this NS. To further test the capabilities of knative serving, shall we change the namespace for tests from knative-serving to something else?

Actual Behavior

knative-serving is used as NS everywhere. We need to verify knative serving in non-default NS. I suggest we use knative-tests for all prow jobs in knative.

Steps to Reproduce the Problem

houshengbo commented 4 years ago

The issue I have is that how to overwrite the namespace in existing yamls.

When I run

kubectl apply -n knative-tests -f https://github.com/knative/serving/releases/download/v0.13.0/serving.yaml

I got:

the namespace from the provided object "knative-serving" does not match the namespace "knative-tests". You must pass '--namespace=knative-serving' to perform this operation.
houshengbo commented 4 years ago

Install Serving 0.13.0 locally in NS knative-serving:

Git clone the source code and switch to the branch release-0.13.

  1. Open a terminal and go the HOME directory of the serving repo.

  2. Download the serving.yaml and install serving.

    wget https://github.com/knative/serving/releases/download/v0.13.0/serving.yaml 
    kubectl apply -f serving.yaml
  3. Install the test resources

    ko apply -f test/config/
  4. Upload the test images:

    ./test/upload-test-images.sh
  5. Run the preupgrade tests:

    go test -v  -race -count=1 -tags=preupgrade -timeout=20m ./test/upgrade --resolvabledomain=false --https

All the tests passed.

Then, switch to use another NS knative-tests.

Create the new namespace.

kubectl create namespace knative-tests

Delete the old knative serving.

kubectl delete -f serving.yaml

Replace the old namespace with the new namespace of MACOS.

sed  "s/namespace: knative-serving/namespace: knative-tests/g" serving.yaml >> serving-test-ns.yaml

Install serving again in new ns

kubectl apply -f serving-test-ns.yaml

Run the preupgrade tests:

go test -v  -race -count=1 -tags=preupgrade -timeout=20m ./test/upgrade --resolvabledomain=false --https

Then, failed.

=== RUN   TestRunLatestServicePreUpgrade
=== PAUSE TestRunLatestServicePreUpgrade
=== RUN   TestRunLatestServicePreUpgradeAndScaleToZero
=== PAUSE TestRunLatestServicePreUpgradeAndScaleToZero
=== RUN   TestBYORevisionPreUpgrade
=== PAUSE TestBYORevisionPreUpgrade
=== CONT  TestRunLatestServicePreUpgrade
=== CONT  TestBYORevisionPreUpgrade
=== CONT  TestRunLatestServicePreUpgradeAndScaleToZero
--- FAIL: TestRunLatestServicePreUpgradeAndScaleToZero (600.13s)
    service.go:194: Creating a new Service. service scale-to-zero-upgrade-service
    crd.go:35:  resource {<nil> <nil> <*>{&TypeMeta{Kind:,APIVersion:,} &ObjectMeta{Name:scale-to-zero-upgrade-service,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},} {0 <*>{{0 <nil> <*>&ObjectMeta{Name:,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{autoscaling.knative.dev/window: 6s,},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},} <nil>}} <nil> <nil> <nil> {0 <nil> <nil> <nil>} {0 <nil>}} {{0 <nil>} {<nil>   <nil> <nil>} { }}} <nil>}
    service.go:209: Waiting for Service to transition to Ready. service scale-to-zero-upgrade-service
    service_preupgrade_test.go:68: Failed to create Service: service "scale-to-zero-upgrade-service" is not in desired state, got: &{TypeMeta:{Kind: APIVersion:} ObjectMeta:{Name:scale-to-zero-upgrade-service GenerateName: Namespace:serving-tests SelfLink:/apis/serving.knative.dev/v1alpha1/namespaces/serving-tests/services/scale-to-zero-upgrade-service UID:d3ee68e7-4e4b-4a57-8515-54024500e0d3 ResourceVersion:4823 Generation:1 CreationTimestamp:2020-03-18 10:49:52 -0400 EDT DeletionTimestamp:<nil> DeletionGracePeriodSeconds:<nil> Labels:map[] Annotations:map[serving.knative.dev/creator:docker-for-desktop serving.knative.dev/lastModifier:docker-for-desktop] OwnerReferences:[] Finalizers:[] ClusterName: ManagedFields:[]} Spec:{DeprecatedGeneration:0 DeprecatedRunLatest:<nil> DeprecatedPinned:<nil> DeprecatedManual:<nil> DeprecatedRelease:<nil> ConfigurationSpec:{DeprecatedGeneration:0 DeprecatedBuild:nil DeprecatedRevisionTemplate:<nil> Template:&ObjectMeta{Name:,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{autoscaling.knative.dev/window: 6s,},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},}} RouteSpec:{DeprecatedGeneration:0 Traffic:[{DeprecatedName: TrafficTarget:{Tag: RevisionName: ConfigurationName: LatestRevision:0xc0007bba08 Percent:0xc0007bba10 URL:}}]}} Status:{Status:{ObservedGeneration:0 Conditions:[{Type:ConfigurationsReady Status:True Severity: LastTransitionTime:{Inner:2020-03-18 10:49:57 -0400 EDT} Reason: Message:} {Type:Ready Status:Unknown Severity: LastTransitionTime:{Inner:2020-03-18 10:49:53 -0400 EDT} Reason: Message:} {Type:RoutesReady Status:Unknown Severity: LastTransitionTime:{Inner:2020-03-18 10:49:52 -0400 EDT} Reason: Message:}]} RouteStatusFields:{URL: DeprecatedDomain: DeprecatedDomainInternal: Address:<nil> Traffic:[]} ConfigurationStatusFields:{LatestReadyRevisionName:scale-to-zero-upgrade-service-2tmlk LatestCreatedRevisionName:scale-to-zero-upgrade-service-2tmlk}}}: timed out waiting for the condition
--- FAIL: TestRunLatestServicePreUpgrade (600.19s)
    service.go:194: Creating a new Service. service pizzaplanet-upgrade-service
    crd.go:35:  resource {<nil> <nil> <*>{&TypeMeta{Kind:,APIVersion:,} &ObjectMeta{Name:pizzaplanet-upgrade-service,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},} {0 <*>{{0 <nil> <*>&ObjectMeta{Name:,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{autoscaling.knative.dev/minScale: 1,},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},} <nil>}} <nil> <nil> <nil> {0 <nil> <nil> <nil>} {0 <nil>}} {{0 <nil>} {<nil>   <nil> <nil>} { }}} <nil>}
    service.go:209: Waiting for Service to transition to Ready. service pizzaplanet-upgrade-service
    service_preupgrade_test.go:48: Failed to create Service: service "pizzaplanet-upgrade-service" is not in desired state, got: &{TypeMeta:{Kind: APIVersion:} ObjectMeta:{Name:pizzaplanet-upgrade-service GenerateName: Namespace:serving-tests SelfLink:/apis/serving.knative.dev/v1alpha1/namespaces/serving-tests/services/pizzaplanet-upgrade-service UID:ac9b4efb-7609-4d6e-be23-8d66cce2b2a7 ResourceVersion:4855 Generation:1 CreationTimestamp:2020-03-18 10:49:52 -0400 EDT DeletionTimestamp:<nil> DeletionGracePeriodSeconds:<nil> Labels:map[] Annotations:map[serving.knative.dev/creator:docker-for-desktop serving.knative.dev/lastModifier:docker-for-desktop] OwnerReferences:[] Finalizers:[] ClusterName: ManagedFields:[]} Spec:{DeprecatedGeneration:0 DeprecatedRunLatest:<nil> DeprecatedPinned:<nil> DeprecatedManual:<nil> DeprecatedRelease:<nil> ConfigurationSpec:{DeprecatedGeneration:0 DeprecatedBuild:nil DeprecatedRevisionTemplate:<nil> Template:&ObjectMeta{Name:,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{autoscaling.knative.dev/minScale: 1,},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},}} RouteSpec:{DeprecatedGeneration:0 Traffic:[{DeprecatedName: TrafficTarget:{Tag: RevisionName: ConfigurationName: LatestRevision:0xc0007bbf68 Percent:0xc0007bbf70 URL:}}]}} Status:{Status:{ObservedGeneration:0 Conditions:[{Type:ConfigurationsReady Status:True Severity: LastTransitionTime:{Inner:2020-03-18 10:49:58 -0400 EDT} Reason: Message:} {Type:Ready Status:Unknown Severity: LastTransitionTime:{Inner:2020-03-18 10:49:53 -0400 EDT} Reason: Message:} {Type:RoutesReady Status:Unknown Severity: LastTransitionTime:{Inner:2020-03-18 10:49:52 -0400 EDT} Reason: Message:}]} RouteStatusFields:{URL: DeprecatedDomain: DeprecatedDomainInternal: Address:<nil> Traffic:[]} ConfigurationStatusFields:{LatestReadyRevisionName:pizzaplanet-upgrade-service-rnzcq LatestCreatedRevisionName:pizzaplanet-upgrade-service-rnzcq}}}: timed out waiting for the condition
--- FAIL: TestBYORevisionPreUpgrade (600.38s)
    service.go:98: Creating a new Service service byo-revision-name-upgrade-test
    crd.go:35:  resource {<nil> <nil> <*>{&TypeMeta{Kind:,APIVersion:,} &ObjectMeta{Name:byo-revision-name-upgrade-test,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},} {{&ObjectMeta{Name:byo-revision-name-upgrade-test-rev1,GenerateName:,Namespace:,SelfLink:,UID:,ResourceVersion:,Generation:0,CreationTimestamp:0001-01-01 00:00:00 +0000 UTC,DeletionTimestamp:<nil>,DeletionGracePeriodSeconds:nil,Labels:map[string]string{},Annotations:map[string]string{},OwnerReferences:[]OwnerReference{},Finalizers:[],ClusterName:,ManagedFields:[]ManagedFieldsEntry{},}} {<nil>}} {{0 <nil>} { } {<nil> <nil> <nil>}}} <nil>}
    service.go:113: Waiting for Service to transition to Ready. service byo-revision-name-upgrade-test
    service_preupgrade_test.go:93: Failed to create Service: service "byo-revision-name-upgrade-test" is not in desired state, got: &{TypeMeta:{Kind: APIVersion:} ObjectMeta:{Name:byo-revision-name-upgrade-test GenerateName: Namespace:serving-tests SelfLink:/apis/serving.knative.dev/v1/namespaces/serving-tests/services/byo-revision-name-upgrade-test UID:045a17db-b3fd-4c93-bcfc-35db6d2b7099 ResourceVersion:4842 Generation:1 CreationTimestamp:2020-03-18 10:49:52 -0400 EDT DeletionTimestamp:<nil> DeletionGracePeriodSeconds:<nil> Labels:map[] Annotations:map[serving.knative.dev/creator:docker-for-desktop serving.knative.dev/lastModifier:docker-for-desktop] OwnerReferences:[] Finalizers:[] ClusterName: ManagedFields:[]} Spec:{ConfigurationSpec:{Template:{ObjectMeta:{Name:byo-revision-name-upgrade-test-rev1 GenerateName: Namespace: SelfLink: UID: ResourceVersion: Generation:0 CreationTimestamp:0001-01-01 00:00:00 +0000 UTC DeletionTimestamp:<nil> DeletionGracePeriodSeconds:<nil> Labels:map[] Annotations:map[] OwnerReferences:[] Finalizers:[] ClusterName: ManagedFields:[]} Spec:{PodSpec:{Volumes:[] InitContainers:[] Containers:[{Name:user-container Image:docker.io/houshengbo/pizzaplanetv1:latest Command:[] Args:[] WorkingDir: Ports:[] EnvFrom:[] Env:[] Resources:{Limits:map[] Requests:map[]} VolumeMounts:[] VolumeDevices:[] LivenessProbe:nil ReadinessProbe:&Probe{Handler:Handler{Exec:nil,HTTPGet:nil,TCPSocket:&TCPSocketAction{Port:{0 0 },Host:,},},InitialDelaySeconds:0,TimeoutSeconds:0,PeriodSeconds:0,SuccessThreshold:1,FailureThreshold:0,} StartupProbe:nil Lifecycle:nil TerminationMessagePath: TerminationMessagePolicy: ImagePullPolicy: SecurityContext:nil Stdin:false StdinOnce:false TTY:false}] EphemeralContainers:[] RestartPolicy: TerminationGracePeriodSeconds:<nil> ActiveDeadlineSeconds:<nil> DNSPolicy: NodeSelector:map[] ServiceAccountName: DeprecatedServiceAccount: AutomountServiceAccountToken:<nil> NodeName: HostNetwork:false HostPID:false HostIPC:false ShareProcessNamespace:<nil> SecurityContext:nil ImagePullSecrets:[] Hostname: Subdomain: Affinity:nil SchedulerName: Tolerations:[] HostAliases:[] PriorityClassName: Priority:<nil> DNSConfig:nil ReadinessGates:[] RuntimeClassName:<nil> EnableServiceLinks:<nil> PreemptionPolicy:<nil> Overhead:map[] TopologySpreadConstraints:[]} ContainerConcurrency:0xc0005e4238 TimeoutSeconds:0xc0005e4310}}} RouteSpec:{Traffic:[{Tag: RevisionName: ConfigurationName: LatestRevision:0xc0005e4318 Percent:0xc0005e43c0 URL:}]}} Status:{Status:{ObservedGeneration:0 Conditions:[{Type:ConfigurationsReady Status:True Severity: LastTransitionTime:{Inner:2020-03-18 10:49:58 -0400 EDT} Reason: Message:} {Type:Ready Status:Unknown Severity: LastTransitionTime:{Inner:2020-03-18 10:49:53 -0400 EDT} Reason: Message:} {Type:RoutesReady Status:Unknown Severity: LastTransitionTime:{Inner:2020-03-18 10:49:52 -0400 EDT} Reason: Message:}]} ConfigurationStatusFields:{LatestReadyRevisionName:byo-revision-name-upgrade-test-rev1 LatestCreatedRevisionName:byo-revision-name-upgrade-test-rev1} RouteStatusFields:{URL: Address:<nil> Traffic:[]}}}: timed out waiting for the condition
FAIL
FAIL    knative.dev/serving/test/upgrade    601.126s
FAIL