diff --git a/apps/inbandtelemetry/int-gui2-lib/BUILD b/apps/inbandtelemetry/int-gui2-lib/BUILD
new file mode 100644
index 0000000..b41d497
--- /dev/null
+++ b/apps/inbandtelemetry/int-gui2-lib/BUILD
@@ -0,0 +1,294 @@
+"""
+ Copyright 2020-present Open Networking Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+"""
+
+"""
+    Rules to build the In-band Telemetry (INT) GUI app for GUI 2
+
+
+"""
+
+load("//tools/build/bazel:jdk_genrule.bzl", genrule = "jdk_genrule")
+
+COMPILE_DEPS = CORE_DEPS + JACKSON + KRYO + [
+    "@javax_ws_rs_api//jar",
+    "@servlet_api//jar",
+    "@jetty_websocket//jar",
+    "@jetty_util//jar",
+    "@jersey_media_multipart//jar",
+    "@jersey_server//jar",
+    "//utils/rest:onlab-rest",
+    "//core/store/serializers:onos-core-serializers",
+]
+
+TEST_DEPS = TEST + [
+    "//core/api:onos-api-tests",
+    "//drivers/default:onos-drivers-default",
+]
+
+"""
+    Files that get put at the top level of the tar ball
+"""
+
+filegroup(
+    name = "_root_level_files",
+    srcs =
+        [
+            ":angular.json",
+            ":package.json",
+            ":package-lock.json",
+            ":tsconfig.json",
+            ":tslint.json",
+        ],
+)
+
+filegroup(
+    name = "_e2e_test_files",
+    srcs = [
+        ":e2e/protractor.conf.js",
+        ":e2e/src/app.e2e-spec.ts",
+        ":e2e/src/app.po.ts",
+        ":e2e/tsconfig.e2e.json",
+    ],
+)
+
+"""
+    Run ng build to create INT GUI 2 library in production mode
+    The output file int-gui2-lib-ver.tgz is in the form that can be uploaded directly to https://www.npmjs.com/
+    See bazel-genfiles/apps/inbandtelemetry/int-gui2-lib/int-gui2-lib.log for details of the Angular CLI output
+"""
+
+genrule(
+    name = "int-gui2-lib-build",
+    srcs = [
+        "@nodejs//:bin/npm",
+        "@nodejs//:bin/node",
+        "@nodejs//:bin/nodejs/bin/node",
+        "@nodejs//:bin/nodejs/bin/npm",
+        "//web/gui2-fw-lib:onos-gui2-fw-npm-install",
+        "//web/gui2-fw-lib:onos-gui2-fw-ng-build",
+        "//web/gui2-fw-lib:gui2_fw_lib_ext_css",
+        ":_root_level_files",
+        ":_int_gui2_lib_src",
+        ":_int-gui2_app_files",
+    ],
+    outs = [
+        "int-gui2-lib.log",
+        "int-gui2-lib-ver.tgz",
+    ],
+    cmd = "ROOT=`pwd` &&" +
+          " export HOME=. &&" +
+          " export XDG_CONFIG_HOME=$(@D)/config &&" +
+          " NODE=$(location @nodejs//:bin/node) &&" +
+          " INSTALL_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-npm-install)) &&" +  # An array of filenames - sorted by time created
+          " FWLIB_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-ng-build)) &&" +  # An array of filenames - sorted by time created
+          " mkdir -p apps/inbandtelemetry/int-gui2-lib &&" +
+          " cd apps/inbandtelemetry/int-gui2-lib &&" +
+          " jar xf $$ROOT/$${INSTALL_FILES[0]} &&" +
+          " tar xf $$ROOT/$${FWLIB_FILES[0]} &&" +
+          " mv package/ node_modules/gui2-fw-lib/ &&" +
+          " mkdir -p projects/int-gui2-lib/fw &&" +
+          " (cd projects/int-gui2-lib/fw &&" +
+          "  jar xf $$ROOT/$(location //web/gui2-fw-lib:gui2_fw_lib_ext_css)) &&" +
+          " chmod +x node_modules/@angular/cli/bin/ng &&" +
+          " export PATH=$$ROOT/$$(dirname $${NODE}):$$ROOT/apps/inbandtelemetry/int-gui2-lib/node_modules/@angular/cli/bin:$$PATH &&" +
+          " ng build --prod int-gui2-lib >> $$ROOT/$(location int-gui2-lib.log) 2>&1 ||" +
+          " if [ $$? -eq 0 ]; then echo 'Successfully ran build';" +
+          " else " +
+          "   echo 'Error running \'ng build int-gui2-lib\' on \'//apps/inbandtelemetry/int-gui2-lib:int-gui2-lib-build\'. \\\n" +
+          "     See bazel-genfiles/apps/inbandtelemetry/int-gui2-lib/int-gui2-lib.log for more details' >&2;" +
+          #"   tail -n 100 ../../$(location onos-gui2-ng-test.log) >&2;" +
+          "   exit 1;" +
+          " fi;" +
+          " cd dist/int-gui2-lib && " +
+          " npm pack >> $$ROOT/$(location int-gui2-lib.log) 2>&1 &&" +
+          " mv int-gui2-lib-*.tgz $$ROOT/$(location int-gui2-lib-ver.tgz) &&" +
+          " touch $$ROOT/$(location int-gui2-lib.log)",  # to get the log always as the 2nd file,
+    message = "Angular INT GUI2 build",
+    visibility = ["//visibility:public"],
+)
+
+"""
+    Run 'ng test' to run Angular test and 'ng lint' for checkstyle
+    See bazel-genfiles/apps/inbandtelemetry/int-gui2-lib/int-gui2-lib-lint.log or
+    bazel-genfiles/apps/inbandtelemetry/int-gui2-lib/int-gui2-lib-test.log for details of the Angular CLI output
+"""
+
+genrule(
+    name = "_int-gui2-lib-test-genrule",
+    srcs = [
+        "@nodejs//:bin/npm",
+        "@nodejs//:bin/node",
+        "@nodejs//:bin/nodejs/bin/node",
+        "@nodejs//:bin/nodejs/bin/npm",
+        "//web/gui2-fw-lib:onos-gui2-fw-npm-install",
+        "//web/gui2-fw-lib:onos-gui2-fw-ng-build",
+        "//web/gui2-fw-lib:gui2_fw_lib_ext_css",
+        ":_root_level_files",
+        ":_int_gui2_lib_src",
+        ":_int_gui2_lib_src_tests",
+    ],
+    outs = [
+        "int-gui2-lib-ver.log",
+        "int-gui2-lib-lint.log",
+        "int-gui2-lib-test.log",
+    ],
+    cmd = " ROOT=`pwd` &&" +
+          " export HOME=. &&" +
+          " export XDG_CONFIG_HOME=$(@D)/config &&" +
+          " NODE=$(location @nodejs//:bin/node) &&" +
+          " INSTALL_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-npm-install)) &&" +  # An array of filenames - sorted by time created
+          " FWLIB_FILES=($(locations //web/gui2-fw-lib:onos-gui2-fw-ng-build)) &&" +  # An array of filenames - sorted by time created
+          " mkdir -p apps/inbandtelemetry/int-gui2-lib &&" +
+          " cd apps/inbandtelemetry/int-gui2-lib &&" +
+          " jar xf ../../../$(location :_int_gui2_lib_src_tests) &&" +
+          " jar xf $$ROOT/$${INSTALL_FILES[0]} &&" +
+          " tar xf $$ROOT/$${FWLIB_FILES[0]} &&" +
+          " mv package/ node_modules/gui2-fw-lib/ &&" +
+          " mkdir -p projects/int-gui2-lib/fw &&" +
+          " (cd projects/int-gui2-lib/fw &&" +
+          "  jar xf $$ROOT/$(location //web/gui2-fw-lib:gui2_fw_lib_ext_css)) &&" +
+          " chmod +x $$ROOT/apps/inbandtelemetry/int-gui2-lib/node_modules/@angular/cli/bin/ng &&" +
+          " export PATH=$$ROOT/$$(dirname $${NODE}):node_modules/@angular/cli/bin:$$PATH &&" +
+          " node -v > ../../../$(location int-gui2-lib-ver.log) &&" +
+          " npm -v >> ../../../$(location int-gui2-lib-ver.log) &&" +
+          " ng -v >> ../../../$(location int-gui2-lib-ver.log) &&" +
+          " echo Lint not run > ../../../$(location int-gui2-lib-lint.log) &&" +
+          " echo Test not run > ../../../$(location int-gui2-lib-test.log) &&" +
+          " exit 0;",
+    #          " ng lint int-gui2-lib > ../../../$(location int-gui2-lib-lint.log);" +
+    #          " if [ -f /usr/bin/chromium-browser ]; then " +  # Add to this for Mac and Chrome
+    #          "   export CHROME_BIN=/usr/bin/chromium-browser; " +
+    #          " elif [ -f /opt/google/chrome/chrome ]; then " +
+    #          "   export CHROME_BIN=/opt/google/chrome/chrome; " +
+    #          " else " +
+    #          "   MSG='Warning: Step int-gui2-lib-tests skipped because \\n" +
+    #          "   no binary for ChromeHeadless browser was found at /usr/bin/chromium-browser. \\n" +
+    #          "   Install Google Chrome or Chromium Browser to allow this step to run.';" +
+    #          "   echo -e $$MSG >&2;" +
+    #          "   echo -e $$MSG > ../../../$(location int-gui2-lib-test.log);" +
+    #          "   exit 0;" +
+    #          " fi;" +
+    #          " ng test int-gui2-lib --preserve-symlinks --code-coverage --browsers=ChromeHeadless" +
+    #          "     --watch=false > ../../../$(location int-gui2-lib-test.log) 2>&1 ||" +
+    #          " if [ $$? -eq 0 ]; then echo 'Successfully ran tests';" +
+    #          " else " +
+    #          "   echo 'Error running \'ng test int-gui2-lib\' on \'//apps/inbandtelemetry/int-gui2-lib:_int-gui2-lib-test-genrule\'. \\\n" +
+    #          "     See bazel-genfiles/apps/inbandtelemetry/int-gui2-lib/int-gui2-lib-test.log for more details' >&2;" +
+    #          "   exit 1;" +
+    #          " fi;",
+    message = "Angular INT GUI2 Lib lint and test",
+)
+
+"""
+    Make a group of all the webapp files.
+"""
+
+filegroup(
+    name = "_int_gui2_lib_src",
+    srcs = glob(
+        [
+            "projects/int-gui2-lib/**/*",
+        ],
+        exclude = [
+            "projects/int-gui2-lib/**/*.spec.*",  # Don't track tests here
+            "projects/int-gui2-lib/karma.conf.js",
+            "projects/int-gui2-lib/src/test.ts",
+            "projects/int-gui2-lib/fw/**/*",
+        ],
+    ),
+)
+
+"""
+    Make a group of all the webapp qpp files.
+"""
+
+filegroup(
+    name = "_int-gui2_app_files",
+    srcs = glob(
+        [
+            "src/**/*",
+        ],
+    ),
+)
+
+"""
+    Make a jar file of all the webapp test (*.spec.ts) files.
+"""
+
+genrule(
+    name = "_int_gui2_lib_src_tests",
+    srcs = glob(
+        [
+            "projects/int-gui2-lib/karma.conf.js",
+            "projects/int-gui2-lib/src/test.ts",
+            "projects/int-gui2-lib/tsconfig.spec.json",
+            "projects/int-gui2-lib/**/*.spec.ts",
+        ],
+        exclude = [
+            "projects/int-gui2-lib/ng-package.json",
+            "projects/int-gui2-lib/ng-package.prod.json",
+            "projects/int-gui2-lib/package.json",
+            "projects/int-gui2-lib/tsconfig.lib.json",
+            "projects/int-gui2-lib/tslint.json",
+            "projects/int-gui2-lib/src/public_api.ts",
+        ],
+    ),
+    outs = ["int_gui2_lib_src_tests.jar"],
+    cmd = "cd apps/inbandtelemetry/int-gui2-lib &&" +
+          " jar Mcf ../../../$@ .",
+)
+
+"""
+    Make a jar file of all the webapp test (*.spec.ts) files.
+"""
+
+genrule(
+    name = "_int_gui2_lib_tests",
+    srcs = glob(
+        [
+            "projects/int-gui2-lib/**/*.spec.ts",
+            "projects/int-gui2-lib/**/*.spec.json",
+        ],
+        exclude = [
+            "src/main/webapp/tests/**",
+            "src/main/webapp/node_modules/**",
+            "src/main/webapp/dist/**",
+            "src/main/webapp/doc/**",
+        ],
+    ),
+    outs = ["int_gui2_lib_tests.jar"],
+    cmd = "cd apps/inbandtelemetry/int-gui2-lib &&" +
+          " find projects/int-gui2-lib/src/lib -type f -exec touch -t 201808280000 {} \; &&" +
+          " jar Mcf ../../../$@ projects/int-gui2-lib/src/lib",
+)
+
+"""
+    Wrap the genrule for testing in a test
+"""
+
+sh_test(
+    name = "int-gui2-lib-tests",
+    size = "small",
+    srcs = [
+        ":ng-test.sh",
+    ],
+    data = [
+        ":_int-gui2-lib-test-genrule",
+    ],
+    deps = [
+        "@bazel_tools//tools/bash/runfiles",
+    ],
+)
