edgex

package module
v1.3.1-dev.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2020 License: Apache-2.0 Imports: 0 Imported by: 2

README

EdgeX Foundry Services

Go Report Card license

EdgeX Foundry is a vendor-neutral open source project hosted by The Linux Foundation building a common open framework for IoT edge computing. At the heart of the project is an interoperability framework hosted within a full hardware- and OS-agnostic reference software platform to enable an ecosystem of plug-and-play components that unifies the marketplace and accelerates the deployment of IoT solutions. This repository contains the Go implementation of EdgeX Foundry microservices. It also includes files for building the services, containerizing the services, and initializing (bootstrapping) the services.

Get Started

EdgeX provides docker images in our organization's DockerHub page. They can be launched easily with docker-compose.

The simplest way to get started is to fetch the latest docker-compose.yml and start the EdgeX containers:

wget -O docker-compose.yml \
https://raw.githubusercontent.com/edgexfoundry/developer-scripts/master/releases/nightly-build/compose-files/docker-compose-nexus-redis.yml
docker-compose up -d

You can check the status of your running EdgeX services by going to http://localhost:8500/

Now that you have EdgeX up and running, you can follow our API Walkthrough to learn how the different services work together to connect IoT devices to cloud services.

Running EdgeX with security components

Starting with the Fuji release, EdgeX includes enhanced security features that are enabled by default. There are 3 major components that are responsible for security features:

  • Security-secrets-setup
  • Security-secretstore-setup
  • Security-proxy-setup

When security features are enabled, additional steps are required to access the resources of EdgeX.

  1. The user needs to create an access token and associate every REST request with the access token.
  2. The exported external ports (such as 48080, 48081 etc.) will be inaccessible for security purposes. Instead, all REST requests need to go through the proxy. The proxy will redirect the request to the individual microservices on behalf of the user.

Sample steps to create an access token and use the token to access EdgeX resources can be found here: Security Components

Other installation and deployment options

Snap Package

EdgeX Foundry is also available as a snap package, for more details on the snap, including how to install it, please refer to EdgeX snap

Native binaries
Prerequisites
Go
  • The current targeted version of the Go language runtime for release artifacts is v1.15.x
  • The minimum supported version of the Go language runtime is v1.15.x
pkg-config

go get github.com/rjeczalik/pkgconfig/cmd/pkg-config

ZeroMQ

Several EdgeX Foundry services depend on ZeroMQ for communications by default.

The easiest way to get and install ZeroMQ on Linux is to use this setup script.

For macOS, use brew:

brew install zeromq

For directions installing ZeroMQ on Windows, please see the Windows documentation.

pkg-config

The necessary file will need to be added to the PKG_CONFIG_PATH environment variable.

On Linux, add this line to your local profile:

export PKG_CONFIG_PATH=/usr/local/Cellar/zeromq/4.2.5/lib/pkgconfig/

For macOS, install the package with brew:

brew install pkg-config
Installation and Execution

EdgeX is organized as Go Modules; there is no requirement to set the GOPATH or GO111MODULE envrionment variables nor is there a requirement to root all the components under ~/go (or $GOPATH) and use the go get command. In other words,

git clone git@github.com:edgexfoundry/edgex-go.git
cd edgex-go
make build

If you do want to root everthing under $GOPATH, you're free to use that pattern as well

GO111MODULE=on && export GO111MODULE
go get github.com/edgexfoundry/edgex-go
cd $GOPATH/src/github.com/edgexfoundry/edgex-go
make build

To start EdgeX

make run

or

cd bin
./edge-launch.sh

Note You must have a database (Mongo or Redis) running before the services will operate correctly. If you don't want to install a database locally, you can host one via Docker. You may also need to change the configuration.toml files for one or more of the services.

Build your own Docker Containers

In addition to running the services directly, Docker and Docker Compose can be used.

Prerequisites

See the install instructions to learn how to obtain and install Docker.

Installation and Execution

Follow the "Installation and Execution" steps above for obtaining and building the code, then

make docker run_docker

Note The default behavior is to use Redis for the database, use the command make EDGEX_DB=mongo run_docker to start EdgeX with Mongo.

Community

License

Apache-2.0

Versioning

Please refer to the EdgeX Foundry versioning policy for information on how EdgeX services are released and how EdgeX services are compatible with one another. Specifically, device services (and the associated SDK), application services (and the associated app functions SDK), and client tools (like the EdgeX CLI and UI) can have independent minor releases, but these services must be compatible with the latest major release of EdgeX.

Long Term Support

Please refer to the EdgeX Foundry LTS policy for information on support of EdgeX releases. The EdgeX community does not offer support on any non-LTS release outside of the latest release.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Version string = "1.3.0"

Global version for edgex-go

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
cmd
core-data
****************************************************************************** * Copyright 2017 Dell Inc.
****************************************************************************** * Copyright 2017 Dell Inc.
core-metadata
****************************************************************************** * Copyright 2018 Dell Inc.
****************************************************************************** * Copyright 2018 Dell Inc.
security-proxy-setup
****************************************************************************** * Copyright 2019 Dell Inc.
****************************************************************************** * Copyright 2019 Dell Inc.
support-notifications
main is the central entry point for the application and calls all the startup logic.
main is the central entry point for the application and calls all the startup logic.
sys-mgmt-agent
****************************************************************************** * Copyright 2017 Dell Inc.
****************************************************************************** * Copyright 2017 Dell Inc.
sys-mgmt-executor
****************************************************************************** * Copyright 2019 Dell Inc.
****************************************************************************** * Copyright 2019 Dell Inc.
****************************************************************************** * Copyright 2018 Dell Inc.
****************************************************************************** * Copyright 2018 Dell Inc.
core/data
****************************************************************************** * Copyright 2019 VMware Inc.
****************************************************************************** * Copyright 2019 VMware Inc.
core/data/config
******************************************************************************* * Copyright 2019 Dell Inc.
******************************************************************************* * Copyright 2019 Dell Inc.
core/data/errors
****************************************************************************** * Copyright 2018 Dell Inc.
****************************************************************************** * Copyright 2018 Dell Inc.
core/data/interfaces
****************************************************************************** * Copyright 2017 Dell Inc.
****************************************************************************** * Copyright 2017 Dell Inc.
core/metadata
****************************************************************************** * Copyright 2017 Dell Inc.
****************************************************************************** * Copyright 2017 Dell Inc.
core/metadata/interfaces
****************************************************************************** * Copyright 2017 Dell Inc.
****************************************************************************** * Copyright 2017 Dell Inc.
core/metadata/operators/addressable
****************************************************************************** * Copyright 2019 Dell Inc.
****************************************************************************** * Copyright 2019 Dell Inc.
pkg
****************************************************************************** * Copyright 2019 VMware Inc.
****************************************************************************** * Copyright 2019 VMware Inc.
pkg/db/mongo
Package mongo provides an implementation of DBClient which uses MongoDB as the underlying data-store.
Package mongo provides an implementation of DBClient which uses MongoDB as the underlying data-store.
pkg/db/mongo/models
Package models provides an internal representation of data structures that can be used when interacting with MongoDB.
Package models provides an internal representation of data structures that can be used when interacting with MongoDB.
pkg/db/redis
****************************************************************************** * Copyright 2018 Redis Labs Inc.
****************************************************************************** * Copyright 2018 Redis Labs Inc.
security/kdf
Package kdf implements the key deriviation function (KDF) for creation of encryption keys to protect the Vault key shares
Package kdf implements the key deriviation function (KDF) for creation of encryption keys to protect the Vault key shares
security/proxy
****************************************************************************** * Copyright 2019 Dell Inc.
****************************************************************************** * Copyright 2019 Dell Inc.
security/redis/config
****************************************************************************** * Copyright 2020 Redis Labs * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License.
****************************************************************************** * Copyright 2020 Redis Labs * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License.
security/secretstoreclient
****************************************************************************** * Copyright 2019 Dell Inc.
****************************************************************************** * Copyright 2019 Dell Inc.
support/logging/config
****************************************************************************** * Copyright 2018 Dell Inc.
****************************************************************************** * Copyright 2018 Dell Inc.
support/notifications
****************************************************************************** * Copyright 2017 Dell Inc.
****************************************************************************** * Copyright 2017 Dell Inc.
support/notifications/enums
****************************************************************************** * Copyright 2018 Dell Technologies Inc.
****************************************************************************** * Copyright 2018 Dell Technologies Inc.
support/scheduler
****************************************************************************** * Copyright 2017 Dell Inc.
****************************************************************************** * Copyright 2017 Dell Inc.
support/scheduler/errors
****************************************************************************** * Copyright 2018 Dell Inc.
****************************************************************************** * Copyright 2018 Dell Inc.
support/scheduler/interfaces
****************************************************************************** * Copyright 2018 Dell Inc.
****************************************************************************** * Copyright 2018 Dell Inc.
support/scheduler/operators/interval
****************************************************************************** * Copyright 2019 VMware Inc.
****************************************************************************** * Copyright 2019 VMware Inc.
support/scheduler/operators/intervalaction
****************************************************************************** * Copyright 2019 VMware Inc.
****************************************************************************** * Copyright 2019 VMware Inc.
snap

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL