[perf] Start adding config options for Flutter instance.

Bug: skia:9789
Change-Id: I28a49498d5229136462805e78c98984bf24bc534
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/264683
Reviewed-by: Ravi Mistry <rmistry@google.com>
diff --git a/perf/create-ingestion-flutter-pubsub-topics.sh b/perf/create-ingestion-flutter-pubsub-topics.sh
new file mode 100755
index 0000000..90c4cae
--- /dev/null
+++ b/perf/create-ingestion-flutter-pubsub-topics.sh
@@ -0,0 +1,11 @@
+#/bin/bash
+# Creates the PubSub topic for Android Perf files and then ties it to GCS
+# notifications.
+
+set -e -x
+
+PROJECT_ID=skia-public
+TOPIC=perf-ingestion-flutter
+
+perf-tool config create-pubsub-topics --big_table_config=flutter
+gsutil notification create -f json -e OBJECT_FINALIZE -t projects/${PROJECT_ID}/topics/${TOPIC} -p flutter-engine gs://flutter-skia-perf
diff --git a/perf/go/config/config.go b/perf/go/config/config.go
index b2e6b4a..b9ed011e 100644
--- a/perf/go/config/config.go
+++ b/perf/go/config/config.go
@@ -46,6 +46,7 @@
 	ANDROID_PROD = "android-prod"
 	CT_PROD      = "ct-prod"
 	ANDROID_X    = "android-x"
+	FLUTTER      = "flutter"
 )
 
 var (
@@ -98,5 +99,17 @@
 			Branches:               []string{"aosp-androidx-master-dev"},
 			FileIngestionTopicName: "",
 		},
+		FLUTTER: {
+			TileSize:               256,
+			Project:                "skia-public",
+			Instance:               "production",
+			Table:                  "perf-flutter",
+			Topic:                  "perf-ingestion-flutter",
+			GitUrl:                 "https://github.com/flutter/engine",
+			Shards:                 8,
+			Sources:                []string{"gs://flutter-skia-perf/flutter-engine"},
+			Branches:               []string{},
+			FileIngestionTopicName: "",
+		},
 	}
 )
diff --git a/perf/go/perf-tool/main.go b/perf/go/perf-tool/main.go
index 33f1765..02a9880 100644
--- a/perf/go/perf-tool/main.go
+++ b/perf/go/perf-tool/main.go
@@ -350,8 +350,10 @@
 	if err := createPubSubTopic(ctx, client, cfg.Topic, name); err != nil {
 		return err
 	}
-	if err := createPubSubTopic(ctx, client, cfg.FileIngestionTopicName, name); err != nil {
-		return err
+	if cfg.FileIngestionTopicName != "" {
+		if err := createPubSubTopic(ctx, client, cfg.FileIngestionTopicName, name); err != nil {
+			return err
+		}
 	}
 
 	return nil
diff --git a/perf/create-email-secrets.sh b/perf/secrets/create-email-secrets.sh
similarity index 100%
rename from perf/create-email-secrets.sh
rename to perf/secrets/create-email-secrets.sh
diff --git a/perf/secrets/create-flutter-perf-service-account.sh b/perf/secrets/create-flutter-perf-service-account.sh
new file mode 100755
index 0000000..dd3a5b0
--- /dev/null
+++ b/perf/secrets/create-flutter-perf-service-account.sh
@@ -0,0 +1,11 @@
+#/bin/bash
+
+# Creates the service account for flutter perf.
+../../kube/secrets/add-service-account.sh \
+  skia-public \
+  skia-public \
+  flutter-perf-service-account \
+  "The flutter perf service account." \
+  roles/pubsub.editor \
+  roles/bigtable.user \
+  roles/cloudtrace.agent
\ No newline at end of file
diff --git a/perf/create-perf-ingest-sa.sh b/perf/secrets/create-perf-ingest-sa.sh
similarity index 100%
rename from perf/create-perf-ingest-sa.sh
rename to perf/secrets/create-perf-ingest-sa.sh
diff --git a/perf/create-perf-sa.sh b/perf/secrets/create-perf-sa.sh
similarity index 100%
rename from perf/create-perf-sa.sh
rename to perf/secrets/create-perf-sa.sh