Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge UDMIF into faucetsdn UDMI #296

Merged
merged 376 commits into from
Apr 21, 2022
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
376 commits
Select commit Hold shift + click to select a range
0458ffc
Making sure we filter out the operational field from the contains filter
slevertbiot Mar 9, 2022
94535a8
Adding file to gitignore
slevertbiot Mar 9, 2022
8cb427e
Adding script and instructions to populate a local monogdb with devic…
slevertbiot Mar 9, 2022
0f585aa
Adding Notes in Readme regarding Jest and Mongo testing
slevertbiot Mar 9, 2022
47b09ce
Update udmi-sites.tf.template
nkotibiot Mar 9, 2022
3e856fc
Merge pull request #30 from Buildings-IOT/gcp_terraform
nkotibiot Mar 9, 2022
580821c
changed items to be objects
Mar 9, 2022
6345ba9
Create build.yml
nkotibiot Mar 9, 2022
4a4f33f
Update .gitlab-ci.yml
nkotibiot Mar 9, 2022
c915558
Update .gitlab-ci.yml
nkotibiot Mar 9, 2022
aaa5a9a
Merge pull request #31 from Buildings-IOT/gcp_terraform
nkotibiot Mar 9, 2022
b75c371
Adding sort capabilities, fixing open handle error
slevertbiot Mar 9, 2022
243394e
added contains ability to pass adhoc text to the api
Mar 9, 2022
818e358
Adding sort tests
slevertbiot Mar 9, 2022
8bb3986
Merge pull request #29 from Buildings-IOT/support-contains-query
slevertbiot Mar 9, 2022
9ff1086
Update README.md
slevertbiot Mar 9, 2022
1b1be2c
added and fixed tests
Mar 9, 2022
a0054e1
Merge pull request #32 from Buildings-IOT/AddingContainsFilter
mspratt-biot Mar 9, 2022
856069c
Corrected env variable
nkotibiot Mar 9, 2022
76dcaed
Merge pull request #33 from Buildings-IOT/terraform
nkotibiot Mar 10, 2022
ad1c5fa
Adding sub total and sorting capabilities
slevertbiot Mar 10, 2022
5343a86
fixing docs and removing commented out code
slevertbiot Mar 10, 2022
7559a8f
re-enabling restore functionality
slevertbiot Mar 10, 2022
c544554
Merge pull request #34 from Buildings-IOT/sorting-and-sub-total
slevertbiot Mar 10, 2022
72baf71
Using multi filter in same field
slevertbiot Mar 10, 2022
9cffce6
Update build.yml
nkotibiot Mar 10, 2022
180043e
Update build.yml
nkotibiot Mar 10, 2022
028f468
Update build.yml
nkotibiot Mar 10, 2022
cfd5258
Merge pull request #36 from Buildings-IOT/env_variables
nkotibiot Mar 10, 2022
a44f12e
updated tf attribute
nkotibiot Mar 11, 2022
364675a
Merge pull request #37 from Buildings-IOT/gcp_deploy
nkotibiot Mar 11, 2022
e7d3d52
Cleanup
nkotibiot Mar 11, 2022
e9eee25
Merge pull request #38 from Buildings-IOT/gcp_before_deploy
nkotibiot Mar 11, 2022
777b21c
Moving search option validation logic up and fixing tests
slevertbiot Mar 11, 2022
501f7e3
Fixing docs
slevertbiot Mar 11, 2022
7683a23
fixing build script
slevertbiot Mar 11, 2022
c7aa37a
Update README.md
slevertbiot Mar 11, 2022
0c3782c
Merge pull request #39 from Buildings-IOT/handle-multi-filter-on-same…
slevertbiot Mar 11, 2022
d88321c
setup child route for veiwing device
Mar 10, 2022
6471b1b
added button click to table to link to device
Mar 11, 2022
a8a69b9
added total filtered count
Mar 11, 2022
fcd3624
added tests
Mar 11, 2022
da4d9e8
Fixing sorting and changing filter to an OR for consistency and simpl…
slevertbiot Mar 11, 2022
8ccb274
Merge pull request #40 from Buildings-IOT/SetupViewDeviceRoute
mspratt-biot Mar 12, 2022
9e6df93
Merge pull request #41 from Buildings-IOT/fix-sorting
slevertbiot Mar 14, 2022
ba95915
Fixing sorting and unit tests
slevertbiot Mar 14, 2022
dd7f424
Merge pull request #42 from Buildings-IOT/fix-sorting
slevertbiot Mar 14, 2022
ae72db2
added breadcrumbs
Mar 14, 2022
f4659ac
adjusted tests
Mar 14, 2022
9b473e4
adding logic to get device by id
slevertbiot Mar 14, 2022
bf9ae02
Merge pull request #43 from Buildings-IOT/Breadcrumbs
mspratt-biot Mar 14, 2022
14d535e
Adding data file and updating migration script
slevertbiot Mar 15, 2022
c9d18e0
Merge pull request #44 from Buildings-IOT/get-device-by-id
slevertbiot Mar 15, 2022
bf816aa
Adding firmware and serial number
slevertbiot Mar 15, 2022
0a3ccfd
Fixing test
slevertbiot Mar 15, 2022
8848512
Updatingg data script
slevertbiot Mar 15, 2022
c6aef47
Merge pull request #45 from Buildings-IOT/get-device-by-id
slevertbiot Mar 15, 2022
d69732a
Created gks.tf and vpc.tf
nkotibiot Mar 15, 2022
0284a90
Merge pull request #46 from Buildings-IOT/gcp_gke
nkotibiot Mar 15, 2022
03810f1
Updated variable
nkotibiot Mar 15, 2022
2c4de3e
Merge pull request #47 from Buildings-IOT/gcp_gke
nkotibiot Mar 15, 2022
7a8f866
updated cluster
nkotibiot Mar 15, 2022
e4d50ed
Attached subnet to gke cluster
nkotibiot Mar 15, 2022
c3c1b70
Merge pull request #48 from Buildings-IOT/vpc_gcp
nkotibiot Mar 15, 2022
8cea2be
added setup for device summary
Mar 15, 2022
21951bc
added query to get device by id
Mar 15, 2022
9d6e1e3
adjusted service tests
Mar 15, 2022
adc42f3
Update gks.tf
nkotibiot Mar 16, 2022
ea97f91
Merge pull request #50 from Buildings-IOT/gke_location
nkotibiot Mar 16, 2022
88ebf3b
Adding points to devices
slevertbiot Mar 16, 2022
35fce1f
Merge pull request #49 from Buildings-IOT/DeviceSummary
mspratt-biot Mar 16, 2022
3ccea84
setup routing for points
Mar 16, 2022
1bd892b
added missing module for test
Mar 16, 2022
831a856
Merge pull request #51 from Buildings-IOT/add-points-to-device
slevertbiot Mar 16, 2022
b273d9d
Merge pull request #52 from Buildings-IOT/SetupRoutingForPoints
mspratt-biot Mar 16, 2022
58ed4fc
added points service
Mar 16, 2022
33f2aa6
added tests
Mar 16, 2022
de1c6eb
Adding points query
slevertbiot Mar 16, 2022
5ea2512
Using consistent variable name
slevertbiot Mar 16, 2022
c6dc142
Merge pull request #53 from Buildings-IOT/DisplayPoints
mspratt-biot Mar 16, 2022
a4927a5
Merge pull request #54 from Buildings-IOT/add_points_query
slevertbiot Mar 16, 2022
689ebeb
changed to use get point api
Mar 16, 2022
6250fcd
list points
Mar 16, 2022
b0c253d
fixed test
Mar 16, 2022
d0ecbda
Adding new sample devices
slevertbiot Mar 17, 2022
cabe285
Merge pull request #55 from Buildings-IOT/ListPoints
mspratt-biot Mar 17, 2022
e74e15a
Adding a new event handler project
slevertbiot Mar 17, 2022
68383f1
added 404 page
Mar 17, 2022
73d93f4
Merge branch 'master' into add-udmi-event-handler
slevertbiot Mar 17, 2022
bd3e493
Updating with code from GCP
slevertbiot Mar 17, 2022
4d587b7
configured vaiables
nkotibiot Mar 17, 2022
9776add
Merge pull request #57 from Buildings-IOT/add-udmi-event-handler
slevertbiot Mar 17, 2022
0ee22a5
added lab env
nkotibiot Mar 17, 2022
70f82e1
added lab env
nkotibiot Mar 17, 2022
9d00d8a
Merge pull request #58 from Buildings-IOT/helm_web_api
nkotibiot Mar 17, 2022
5e15a4a
Merge pull request #56 from Buildings-IOT/404Page
mspratt-biot Mar 17, 2022
0dd3b29
setup tfvars
nkotibiot Mar 17, 2022
f27a351
Merge pull request #59 from Buildings-IOT/helm_web_api
nkotibiot Mar 17, 2022
df704c4
Moving google cloud framework package to a dev dependency
slevertbiot Mar 18, 2022
efb751f
added env slug
nkotibiot Mar 18, 2022
26540b8
Added udmisites
nkotibiot Mar 18, 2022
a347eda
Merge pull request #61 from Buildings-IOT/helm_web_api
nkotibiot Mar 18, 2022
790535f
update state for lab
nkotibiot Mar 21, 2022
23db64f
changed udmisites
nkotibiot Mar 21, 2022
4367e15
Merge pull request #62 from Buildings-IOT/helm_web_api
nkotibiot Mar 21, 2022
0a6d016
enabled prevent destroy
nkotibiot Mar 22, 2022
822316a
Merge pull request #63 from Buildings-IOT/helm_web_api
nkotibiot Mar 22, 2022
47cdcad
fixed lab name issue
nkotibiot Mar 22, 2022
55a0375
Merge pull request #65 from Buildings-IOT/helm_web_api
nkotibiot Mar 22, 2022
fc339ac
testing functions
naveenlakshmi Mar 22, 2022
de1a405
added env variables in function
naveenlakshmi Mar 22, 2022
9eb3e0a
Publish docker
nkotibiot Mar 23, 2022
b72ba15
Merge pull request #66 from Buildings-IOT/udmi_helm
nkotibiot Mar 23, 2022
9f3489e
fuvariable to tfvars
naveenlakshmi Mar 23, 2022
9a599af
Merge pull request #68 from Buildings-IOT/function-udmi
naveenlakshmi Mar 23, 2022
e59e52d
source path to tfvars
naveenlakshmi Mar 23, 2022
a336778
Merge pull request #69 from Buildings-IOT/function-udmi
naveenlakshmi Mar 23, 2022
7a72a9d
Created docker file for web
nkotibiot Mar 23, 2022
c0853be
created nginx file
nkotibiot Mar 23, 2022
c31ec11
removed lines
nkotibiot Mar 23, 2022
066b216
updated dockerfile
nkotibiot Mar 23, 2022
f19ada5
Merge pull request #70 from Buildings-IOT/udmi_helm
nkotibiot Mar 23, 2022
3d917b2
created a function object
naveenlakshmi Mar 24, 2022
a6bdbfe
creating function
naveenlakshmi Mar 24, 2022
322b5bf
Merge pull request #71 from Buildings-IOT/function-udmi
naveenlakshmi Mar 24, 2022
8c97fae
testing functions
naveenlakshmi Mar 24, 2022
72c8d43
Merge pull request #72 from Buildings-IOT/function-udmi
naveenlakshmi Mar 24, 2022
f6ffeea
testing functions
naveenlakshmi Mar 24, 2022
1321122
Merge pull request #73 from Buildings-IOT/function-udmi
naveenlakshmi Mar 24, 2022
ddab9d1
Added build node
nkotibiot Mar 24, 2022
ccd6a84
testing functions
naveenlakshmi Mar 24, 2022
418702f
testing functions
naveenlakshmi Mar 24, 2022
d32c9bb
Added build node
nkotibiot Mar 24, 2022
82bf5ed
Merge pull request #74 from Buildings-IOT/udmi_helm
nkotibiot Mar 24, 2022
54c495d
Merge pull request #75 from Buildings-IOT/function-udmi
naveenlakshmi Mar 24, 2022
85ff24a
updated build.yml
nkotibiot Mar 24, 2022
a0caf8a
creating functions
naveenlakshmi Mar 24, 2022
3e609dd
updated build and docker file
nkotibiot Mar 24, 2022
e4d4b1b
Merge pull request #76 from Buildings-IOT/udmi_helm
nkotibiot Mar 24, 2022
da85e21
Merge pull request #78 from Buildings-IOT/function-udmi
naveenlakshmi Mar 24, 2022
d2f9327
fixed build issue
nkotibiot Mar 24, 2022
6061d90
fixed issue
nkotibiot Mar 24, 2022
3cea649
Merge pull request #80 from Buildings-IOT/udmi_helm
nkotibiot Mar 24, 2022
f7b8f9a
set nginx path
nkotibiot Mar 24, 2022
cb6784a
Merge pull request #81 from Buildings-IOT/udmi_helm
nkotibiot Mar 24, 2022
9baf6d3
testing function
naveenlakshmi Mar 24, 2022
b6cedb5
Merge pull request #82 from Buildings-IOT/function-udmi
naveenlakshmi Mar 24, 2022
1d91301
testing function
naveenlakshmi Mar 25, 2022
a2fd8b5
Merge pull request #83 from Buildings-IOT/function-udmi
naveenlakshmi Mar 25, 2022
c024b15
testing function
naveenlakshmi Mar 25, 2022
3292af1
Merge pull request #84 from Buildings-IOT/function-udmi
naveenlakshmi Mar 25, 2022
9df5397
Dockerfile for api
nkotibiot Mar 25, 2022
2f9758a
upgraded node version
nkotibiot Mar 25, 2022
4629af1
Merge pull request #86 from Buildings-IOT/udmi_helm
nkotibiot Mar 25, 2022
a159059
image path
nkotibiot Mar 25, 2022
2b8955d
Merge pull request #87 from Buildings-IOT/udmi_helm
nkotibiot Mar 25, 2022
6ab1fb6
testing function
naveenlakshmi Mar 25, 2022
1da15b6
udmd path
nkotibiot Mar 25, 2022
3df3a05
Merge pull request #89 from Buildings-IOT/udmi_helm
nkotibiot Mar 25, 2022
b2e1d9f
Merge pull request #88 from Buildings-IOT/function-udmi
naveenlakshmi Mar 25, 2022
3339a6a
testing function
naveenlakshmi Mar 25, 2022
a809ba1
Merge pull request #90 from Buildings-IOT/function-udmi
naveenlakshmi Mar 25, 2022
eb04fb3
testing function
naveenlakshmi Mar 25, 2022
19f13df
testing functions
naveenlakshmi Mar 25, 2022
bb9f5c1
Merge pull request #91 from Buildings-IOT/function-udmi
naveenlakshmi Mar 28, 2022
2a52807
testing functions
naveenlakshmi Mar 28, 2022
9ca2f09
Merge pull request #92 from Buildings-IOT/function-udmi
naveenlakshmi Mar 28, 2022
66b15db
testing function
naveenlakshmi Mar 28, 2022
47dd0b7
testing function
naveenlakshmi Mar 28, 2022
75f23e9
I am configuration to members
naveenlakshmi Mar 28, 2022
7a8a059
testing functions
naveenlakshmi Mar 28, 2022
92507e3
testing functions
naveenlakshmi Mar 28, 2022
a8056ce
Merge pull request #93 from Buildings-IOT/function-udmi
naveenlakshmi Mar 28, 2022
9fa1a07
testing functions
naveenlakshmi Mar 29, 2022
4b4760d
Merge pull request #94 from Buildings-IOT/function-udmi
naveenlakshmi Mar 29, 2022
a6c9f20
created helm charts
nkotibiot Mar 29, 2022
a5caab6
resloved conflicts
nkotibiot Mar 29, 2022
932ebaf
Merge pull request #95 from Buildings-IOT/udmi_helm
nkotibiot Mar 29, 2022
395086a
testing function
naveenlakshmi Mar 29, 2022
8bedab2
Merge pull request #96 from Buildings-IOT/function-udmi
naveenlakshmi Mar 29, 2022
e10b330
reverted docker secret code
nkotibiot Mar 29, 2022
30a5ced
Merge pull request #97 from Buildings-IOT/udmi_helm
nkotibiot Mar 29, 2022
b9211fd
Merge pull request #60 from Buildings-IOT/add-udmi-event-handler
slevertbiot Mar 29, 2022
7e98550
fixed typo in nginx file
Mar 29, 2022
71eaf46
Merge pull request #98 from Buildings-IOT/NginxFix
mspratt-biot Mar 29, 2022
40bf867
Created helm deployment
nkotibiot Mar 30, 2022
ed243fb
Merge pull request #99 from Buildings-IOT/udmi_helm
nkotibiot Mar 30, 2022
0c4ce4c
Added env in deploy stage
nkotibiot Mar 30, 2022
a5abefb
testing function
naveenlakshmi Mar 30, 2022
f5ca5be
Merge pull request #100 from Buildings-IOT/udmi_helm
nkotibiot Mar 30, 2022
205e178
testing function
naveenlakshmi Mar 30, 2022
8c65e71
Merge pull request #102 from Buildings-IOT/function-udmi
naveenlakshmi Mar 30, 2022
ee71643
testing functions
naveenlakshmi Mar 30, 2022
043bbee
Merge pull request #103 from Buildings-IOT/function-udmi
naveenlakshmi Mar 30, 2022
8702d73
update namespace
nkotibiot Mar 31, 2022
870b117
Merge pull request #104 from Buildings-IOT/udmi_helm
nkotibiot Mar 31, 2022
a0983f0
helm deploy
nkotibiot Apr 1, 2022
b599ffe
Merge pull request #105 from Buildings-IOT/udmi_helm
nkotibiot Apr 1, 2022
21b8218
updated helm charts
nkotibiot Apr 1, 2022
5021d82
updated helm
nkotibiot Apr 1, 2022
8879465
setup conditions
nkotibiot Apr 1, 2022
8fe74d7
Merge pull request #106 from Buildings-IOT/udmi_helm
nkotibiot Apr 1, 2022
7a52ad7
Added flag
nkotibiot Apr 1, 2022
3e4af6d
removed manual
nkotibiot Apr 1, 2022
458f229
Merge pull request #107 from Buildings-IOT/udmi_helm
nkotibiot Apr 1, 2022
7022aab
enabled ingress
nkotibiot Apr 1, 2022
9908cd7
Merge pull request #108 from Buildings-IOT/udmi_helm
nkotibiot Apr 1, 2022
8265dd7
configured cloud DNS
nkotibiot Apr 4, 2022
9bf91a5
fixed issue
nkotibiot Apr 4, 2022
b393986
Merge pull request #109 from Buildings-IOT/udmi_helm
nkotibiot Apr 4, 2022
3a90f59
added ssl
nkotibiot Apr 4, 2022
70956fe
Merge pull request #110 from Buildings-IOT/udmi_helm
nkotibiot Apr 4, 2022
be6bf29
fixed issue
nkotibiot Apr 4, 2022
0441852
Merge pull request #111 from Buildings-IOT/udmi_helm
nkotibiot Apr 4, 2022
9cefebc
Created loadblancer & ssl
nkotibiot Apr 5, 2022
d61be2d
Merge pull request #112 from Buildings-IOT/udmi_helm
nkotibiot Apr 5, 2022
5ac1294
configured lab and staging
nkotibiot Apr 7, 2022
540b0db
Merge pull request #113 from Buildings-IOT/udmi_helm
nkotibiot Apr 7, 2022
1f66249
fixed ssl project id issue
nkotibiot Apr 7, 2022
4739d3b
Merge pull request #114 from Buildings-IOT/udmi_helm
nkotibiot Apr 7, 2022
ce076d2
ingress enbled for lab
nkotibiot Apr 7, 2022
7d1fbc5
Merge pull request #115 from Buildings-IOT/udmi_helm
nkotibiot Apr 7, 2022
53f7fc7
fixed ingress issue in lab
nkotibiot Apr 7, 2022
a9fc328
ingress for lab
nkotibiot Apr 7, 2022
a8c40d8
Merge pull request #116 from Buildings-IOT/udmi_helm
nkotibiot Apr 7, 2022
7997714
created mongodb
naveenlakshmi Apr 8, 2022
fce0c32
moved to .tfvars
naveenlakshmi Apr 8, 2022
6c6ab0d
Merge pull request #117 from Buildings-IOT/udmi_atlas
naveenlakshmi Apr 8, 2022
7531968
added auto scaling min&max
naveenlakshmi Apr 8, 2022
bebfa24
Merge pull request #118 from Buildings-IOT/udmi_atlas
naveenlakshmi Apr 8, 2022
94a0a1f
created project fro gcp
naveenlakshmi Apr 11, 2022
c455f21
edited atlasorgid to atlas-org_id
naveenlakshmi Apr 11, 2022
368938f
Merge pull request #119 from Buildings-IOT/udmi_atlas
naveenlakshmi Apr 11, 2022
c478676
Update mongodb.tf
naveenlakshmi Apr 11, 2022
a0b1663
Merge pull request #120 from Buildings-IOT/udmi_atlas
naveenlakshmi Apr 11, 2022
9f79f17
created db user
naveenlakshmi Apr 12, 2022
c5b5949
Merge pull request #121 from Buildings-IOT/udmi_atlas
naveenlakshmi Apr 12, 2022
40b537c
Renaming folder
slevertbiot Apr 13, 2022
b62903c
Update .gitignore
slevertbiot Apr 13, 2022
90dad2e
Update .gitlab-ci.yml
naveenlakshmi Apr 13, 2022
0af764d
changed udmi to udmif
naveenlakshmi Apr 13, 2022
dcf07d2
changed udmi to udmif
naveenlakshmi Apr 13, 2022
943e87e
Merge pull request #122 from Buildings-IOT/rename-folder
slevertbiot Apr 13, 2022
8f56c25
Update .gitignore
slevertbiot Apr 13, 2022
e0eadde
merging faucetsdn into our master
slevertbiot Apr 13, 2022
028237e
Merge pull request #123 from Buildings-IOT/rename-ci
naveenlakshmi Apr 13, 2022
bb87749
removing uneeded files
slevertbiot Apr 13, 2022
4576a46
Removing tmp data file
slevertbiot Apr 14, 2022
3cbb486
Removing zip file
slevertbiot Apr 21, 2022
c11700b
Removing redundant cloud/gcp/src for now
slevertbiot Apr 21, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ udmi_site_model/
gcp_reflect_key.pkcs8
workspace.xml
codegen/
.DS_Store
tmp/
check_links.out
.gradle/
Expand All @@ -25,6 +26,8 @@ firebase-debug.log
.pubber.pid
__pycache__/

.vscode

cloud/gcp/terraform.tfvars
cloud/gcp/udmi-sites.tf
cloud/gcp/main.tf
Expand Down
Binary file added cloud/gcp/function.zip
Binary file not shown.
56 changes: 56 additions & 0 deletions cloud/gcp/functions.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
resource "google_storage_bucket" "function-bucket" {
name = "${var.gcp_project_name}-${var.function_name}"
project = var.gcp_project_id
force_destroy = true
storage_class = "STANDARD"
location = "US"
versioning {
enabled = true
}
}

data "archive_file" "source" {
type = "zip"
source_dir = "./src"
output_path = "./function.zip"
}
# Add the zipped file to the bucket.
resource "google_storage_bucket_object" "function-object" {
# We can avoid unnecessary redeployments by validating the code is unchanged, and forcing
# a redeployment when it has!
name = "index.zip"
bucket = google_storage_bucket.function-bucket.name
source = data.archive_file.source.output_path
lifecycle {
ignore_changes = [detect_md5hash]
}
}
# The cloud function resource.
resource "google_cloudfunctions_function" "enventHandlerFunction" {
available_memory_mb = var.function_memory
entry_point = var.function_entry_point
ingress_settings = "ALLOW_ALL"

name = var.function_name
project = var.gcp_project_id
region = var.gcp_region
runtime = var.function_runtime
event_trigger {
event_type = "providers/cloud.pubsub/eventTypes/topic.publish"
resource = "udmi_target"
}
environment_variables = var.function_environment_variables
source_archive_bucket = google_storage_bucket.function-bucket.name
source_archive_object = google_storage_bucket_object.function-object.name
}


# IAM Configuration. This allows to provied access to the function.
resource "google_cloudfunctions_function_iam_member" "invoker" {
project = google_cloudfunctions_function.enventHandlerFunction.project
region = google_cloudfunctions_function.enventHandlerFunction.region
cloud_function = google_cloudfunctions_function.enventHandlerFunction.name

role = "roles/cloudfunctions.invoker"
member = var.gcp_access_group
}
61 changes: 61 additions & 0 deletions cloud/gcp/gks.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#GKE CLUSTER
resource "google_container_cluster" "udmi" {
name = var.gke_cluster_name
location = var.gke_cluster_location
node_locations = var.gke_node_locations

# We can't create a cluster with no node pool defined, but we want to only use
# separately managed node pools. So we create the smallest possible default
# node pool and immediately delete it.

initial_node_count = var.gke_initial_node_count

network = var.create_vpc ? google_compute_network.vpc[0].name : null
subnetwork = var.create_vpc ? google_compute_subnetwork.subnet[0].name : null
}

# Separately Managed Node Pool
resource "google_container_node_pool" "node_pool" {
name = var.gke_node_pool_name
location = var.gke_cluster_location
cluster = google_container_cluster.udmi.name
node_count = var.gke_num_nodes

node_config {

# preemptible = true
machine_type = var.gke_machine_type
metadata = {
disable-legacy-endpoints = "true"
}
}
}

resource "google_compute_global_address" "udmi_global_address"{
name = "udmi-global-address"
project = var.gcp_project_id
}

resource "google_dns_managed_zone" "udmi_dns_zone" {
name = var.gcp_project_name
dns_name = var.dns_name
project = var.gcp_project_id
}

resource "google_dns_record_set" "dns_record" {
project = var.gcp_project_id
managed_zone = var.gcp_project_name
name = "*.${var.dns_name}"
type = "A"
ttl = 300
rrdatas = ["${google_compute_global_address.udmi_global_address.address}"]
}

resource "google_compute_managed_ssl_certificate" "udmi_ssl_certs" {
name = "udmi-ssl"
project = var.gcp_project_id
managed {
domains = var.ssl_domains
}
}

4 changes: 4 additions & 0 deletions cloud/gcp/main.tf.template
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ terraform {
source = "hashicorp/google"
version = "~> 3.0"
}
mongodbatlas = {
source = "mongodb/mongodbatlas"
version = "~> 1.3.1"
}
}
backend "gcs" {
bucket = "@GCP_PROJECT_ID@-terraform"
Expand Down
40 changes: 40 additions & 0 deletions cloud/gcp/mongodb.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
resource "mongodbatlas_project" "udmi" {
name = var.project_name
org_id = var.atlas_org_id
}
## mongodbatlas cluster
resource "mongodbatlas_cluster" "udmi" {
project_id = mongodbatlas_project.udmi.id
name = var.cluster_name
mongo_db_major_version = var.mongodb_version
cluster_type = "REPLICASET"
replication_specs {
num_shards = 1
regions_config {
region_name = var.cluster_region
electable_nodes = 3
priority = 7
read_only_nodes = 0
}
}
# Provider Settings "block"
provider_name = var.provider_name
disk_size_gb = var.disk_size_gb
provider_instance_size_name = var.instance_size_name
auto_scaling_disk_gb_enabled = true
provider_auto_scaling_compute_max_instance_size = var.auto_scaling_max_instance_size
provider_auto_scaling_compute_min_instance_size = var.auto_scaling_min_instance_size
}

# DATABASE USER
resource "mongodbatlas_database_user" "user" {
username = var.db_username
password = var.db_password
project_id = mongodbatlas_project.udmi.id
auth_database_name = "admin"

roles {
role_name = var.db_role
database_name = var.database_name
}
}
8 changes: 7 additions & 1 deletion cloud/gcp/provider.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,10 @@ provider "google" {
credentials = file(var.gcp_auth_file)
project = var.gcp_project_name
region = var.gcp_region
}
}

provider "mongodbatlas" {
public_key = var.public_key
private_key = var.private_key
}

52 changes: 52 additions & 0 deletions cloud/gcp/src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
const mongodb = require('mongodb');

let client;

/**
* Triggered from a message on a Cloud Pub/Sub topic.
*
* @param {!Object} event Event payload.
* @param {!Object} context Metadata for the event.
*/
exports.handleUDMIEvent = async (event, context) => {

const eventObject = getEventObject(event);

if (event.attributes.subFolder === "pointset" || event.attributes.subFolder === "system") {
console.log(eventObject);
console.log(JSON.stringify(prepareDeviceDocument(eventObject)));
// await initMongoClient();
if (client) {
// const deviceDocument = await client.db(process.env.MONGO_DB).collection('device').findOne({ name: 'cis-20', site: 'CA-US-M1' });
}
}
};

async function initMongoClient() {
try {
if (client) {
return;
}

console.log(`Initializing a new Mongo Client: ${process.env.MONGO_PROTOCOL}://<user>:<pwd>@${process.env.MONGO_HOST}`);

// setup connection details
const uri = `${process.env.MONGO_PROTOCOL}://${process.env.MONGO_USER}:${process.env.MONGO_PWD}@${process.env.MONGO_HOST}`;
client = await mongodb.MongoClient.connect(uri, { useNewUrlParser: true });
} catch (e) {
console.error('Failed to create and connect client', e);
}
}

function getEventObject(event) {
const stringData = Buffer.from(event.data, 'base64').toString();
event.data = JSON.parse(stringData);
return event;
}

function prepareDeviceDocument(event) {
const deviceDocument = {};
deviceDocument.name = event.attributes.deviceId;
deviceDocument.site = event.attributes.deviceRegistryId;
return deviceDocument;
}
22 changes: 22 additions & 0 deletions cloud/gcp/src/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "udmi-device-cf",
"version": "1.0.0",
"description": "Cloud Function that Receives Events and Writes Device Documents to MongoDB",
"main": "index.js",
"author": "",
"license": "ISC",
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0",
"mongodb": "^4.4.1"
},
"watch": {
"start": "*.js"
},
"devDependencies": {
"npm-watch": "^0.6.0"
},
"scripts": {
"watch": "npm-watch start",
"start": "functions-framework --target=handleUDMIEvent --signature-type=event"
}
}
2 changes: 1 addition & 1 deletion cloud/gcp/storage.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Create a GCS Bucket
resource "google_storage_bucket" "tf-bucket" {
project = var.gcp_project_name
project = var.gcp_project_id
name = var.tf-state-bucket-name
force_destroy = true
storage_class = var.tf-state-storage-class
Expand Down
2 changes: 1 addition & 1 deletion cloud/gcp/udmi-sites.tf.template
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module "ZZ-TRI-FECTA" {
source = "./modules/terraform-google-udmi-site"
gcp_project = var.gcp_project_name
gcp_project = var.gcp_region
gcp_region = var.gcp_region
site_name = "@UDMI_SITE_NAME@"
site_region = "@UDMI_SITE_REGION@"
site_group = "group:@UDMI_SITE_GROUP@"
Expand Down
Loading