* Added support for claiming nodes as part of installation.
This adds four new options to the `netdata-installer.sh` script:
* `--claim-token`
* `--claim-rooms`
* `--claim-uri`
* `--claim-proxy`
These directly correspond to the `-token`, `-rooms`, `-uri`, and `-proxy`
options for the `netdata-claim.sh` script. They have the following
associated logic:
* If any are specified and the `--disable-cloud` option is also
specified, we bail and tell the user to either enable the cloud or
remove the claiming options.
* If only some but not all of the token, rooms, and uri options are
specified, we bail and tell the user that they must pass all three.
* If all three of the token, rooms, and uri are specified, we invoke the
`netdata-claim.sh` script for the install itself as one of the last
steps in the installation process, using the values passed to these
options.
This allows users to directly claim the agent as part of the install,
which is useful for automated installation scenarios.
* Add missing space as suggested by @knatsakis
* Properly handle installs in /.
* Properly handle unprefixed installs.
* Fix another spelling error in an option name.
* Properly fix option naming.
* Move claiming into kickstart script instead of netdata-installer.
This makes us more future-proof.
The required changes also fix some buggy behavior in the option parsing
code in the kickstart scripts.
* Fix checksums.
* Sanely handle the daemon not running during the claiming process.
* Silence incorrect shellcheck warning.
* Simplify condition as suggested by @vkalintiris.
* Clean up old changes that should not be here anymore.
These are leftovers from an earlier revision, they are not actually
needed.
* Add ID generation logic to the claiming script.
This lets it reliably claim nodes which have not yet had the daemon run.
Also fixes a consistency issue in the claiming logic in the Docker
entrypoint.
* Changed Docker image tagging to use semver tags for releases.
This allows users to use image names like `netdata/netdata:1` or
`netdata/netdata@1.29` and track the most up-to-date release that
matches that version prefix.
Such usage is a common practice for projects using semantic versioning
like we are.
This has a side effect, however, of remivng the `v` from the start of
our version tags. Not having it is also more consistent with how a vast
majority of other projects handle version tags, but users will need to
be notified about the change.
* Proper backwards compatability.
* Add documentation about Docker image tags.
* Update packaging/docker/README.md
Co-authored-by: Joel Hans <joel.g.hans@gmail.com>
Co-authored-by: Joel Hans <joel.g.hans@gmail.com>
* Switch to using GitHub Actions for publishing Docker images.
This simplifies handling of multiarch images and publishing to multiple
registries, and unifies testing with the code actually being used to
build and publish the images.
This also removes a handful of scripts that are no longer needed due to
this change, and switches our Dockerfile to not needing an architecture
to be specified in a build argument, instead relying on proper multiarch
docker image support.
* Fix YAML syntax.
* Add separate tagging for nightly and stable builds.
* Correct YAML syntax errors.
* Initial cleanup of Docker entrypoint script.
* Add linting for our Docker files.
* Fix warnings reported by hadolint.
* Add support for automatic claiming on startup.
* Optimize Docker image structure.
This shuffles some things around in the Docker image to cut down on the
total number of layers and make the image more caching friendly, which
will cut down on overall time required to both initially pull the image
and time spent pulling updated versions of the image.
It also shrinks the image size by about 2MB.
Because it clashes with a kubernetes defined NETDATA_PORT variable: Our Helm
chart creates a service called netdata which in turn makes kubernetes export a
NETDATA_PORT environment variable with a value like tcp://<ip>:19999 which is
not parsable by the netdata agent as a value to the `-p` argument.
* Remove runtime support for Polymorphic Linux from our Docker containers.
This removes our runtime support for Polyverse's Polymorphic Linux from
our Docker containers. The actual support is currently broken due to
upstream changes, but we have decided to just remove it instead of
fixing it due to it providing limited practical benefit to our users and
not being supported across all of our supported platforms.
We had previously removed build-time usage of this functionality for the
same reasons to reduce the final image size for our 64-bit x86 Docker
images.
* Remove docs for Polyverse support.
* Add a `ping` command to netdatacli to check if agent is alive.
This provides a way to trivially check if the agent itself appears to be
running (namely, the command parser for netdatacli in the agent itself
is working and responding), allowing users to check this without having
to rely on us continuing to have `help` be a command sent to the agent
instead of executing locally.
* Add a basic health check to our docke rimages.
This adds a relatively basic health checker script to our Docker images.
By default it verifies that the `/api/v1/info` endpoint returns a 200
status code.
It also supports checking different endpoints or using `netdatacli ping`
to check that Netdata is running, all controlled by a new Docker
environment variable: `NETDATA_HEALTH_CHECK`.
* Avoid unnessecary `chmod` in Dockerfile.
Suggested by @prologic.
* Fix typo in docs.
* Update environment variable name to be more clear.
Also add `-L` to `curl` command in health check to follow redirects.
* Update docs contributing
* Remove other instances of docs.netdata.cloud
* Rebase and add a few more updates
* Cleanup, descriptions, grammar check
* Fix link
* Add text about Cloud docs, links, fixes for Zack
* Removeed Polyverse Polymorphic Linux from Docker images.
It ends up using roughly 140MB of extra space, only works for 64-bit x86,
and the benefits for a majority of our users range from questionale to
completely non-existent.
* Update docs and add runtime support for Polyverse.
This PR merges the feature-branch to make the cloud live. It contains the following work:
Co-authored-by: Andrew Moss <1043609+amoss@users.noreply.github.com(opens in new tab)>
Co-authored-by: Jacek Kolasa <jacek.kolasa@gmail.com(opens in new tab)>
Co-authored-by: Austin S. Hemmelgarn <austin@netdata.cloud(opens in new tab)>
Co-authored-by: James Mills <prologic@shortcircuit.net.au(opens in new tab)>
Co-authored-by: Markos Fountoulakis <44345837+mfundul@users.noreply.github.com(opens in new tab)>
Co-authored-by: Timotej S <6674623+underhood@users.noreply.github.com(opens in new tab)>
Co-authored-by: Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com(opens in new tab)>
* dashboard with new navbars, v1.0-alpha.9: PR #8478
* dashboard v1.0.11: netdata/dashboard#76
Co-authored-by: Jacek Kolasa <jacek.kolasa@gmail.com(opens in new tab)>
* Added installer code to bundle JSON-c if it's not present. PR #8836
Co-authored-by: James Mills <prologic@shortcircuit.net.au(opens in new tab)>
* Fix claiming config PR #8843
* Adds JSON-c as hard dep. for ACLK PR #8838
* Fix SSL renegotiation errors in old versions of openssl. PR #8840. Also - we have a transient problem with opensuse CI so this PR disables them with a commit from @prologic.
Co-authored-by: James Mills <prologic@shortcircuit.net.au(opens in new tab)>
* Fix claiming error handling PR #8850
* Added CI to verify JSON-C bundling code in installer PR #8853
* Make cloud-enabled flag in web/api/v1/info be independent of ACLK build success PR #8866
* Reduce ACLK_STABLE_TIMEOUT from 10 to 3 seconds PR #8871
* remove old-cloud related UI from old dashboard (accessible now via /old suffix) PR #8858
* dashboard v1.0.13 PR #8870
* dashboard v1.0.14 PR #8904
* Provide feedback on proxy setting changes PR #8895
* Change the name of the connect message to update during an ongoing session PR #8927
* Fetch active alarms from alarm_log PR #8944
* packaging/docker/publish.sh: Wait for tag to be really published
* Fix typo
* .travis/utils.sh: Export defined functions too
* packaging/docker/publish.sh: Keep shellcheck happy
* packaging/docker/publish.sh: Fix typo
* Trying out some absolute-ish links
* Try one out on installer
* Testing logic
* Trying out some more links
* Fixing links
* Fix links in python collectors
* Changed a bunch more links
* Fix build errors
* Another push of links
* Fix build error and add more links
* Complete first pass
* Fix final broken links
* Fix links to files
* Fix for Netlify
* Two more fixes
The default cloud url has been updated to app.netdata.cloud ready for the release. The claiming process now checks the current user executing claiming and refuses to perform the claim for the wrong user. If the current UID is 0 then claiming proceeds but the file ownership is adjusted to be the correct netdata user. The default expected user is `netdata` unless the script can identify the user from the current configuration. After the claiming script is executed the CLI is used to reload the claiming state.
This adds a build argument to the main Dockerfile to allow passing extra
options to the netdata-installer script during the build process.
The value specified in the `EXTRA_INSTALL_OPTS` argument wil be added
verbatm to the netdata-installer.sh script. The arguments
`--dont-start-it` and `--dont-wait` are still implicitly passed to the
script as those are required to get a correctly functioning Docker
image.
* Added support for opting out of telemtry via the DO_NOT_TRACK environment variable
* Added support for DO_NOT_TRACK=1 in anonymous-statistics.sh and minor cleanup in Dockerfile and run.sh entrypoint
* Allow DO_NOT_TRACK to be either non-zero or non-empty
* Update md5sum of kickstart-static64.sh in docs
* Fixed a bug in netdata-installer.sh
* Revert changes to daemon/main.c (testing onyl)
* Update docs/anonymous-statistics.md
Co-Authored-By: Mansour Behabadi <57921115+ncmans@users.noreply.github.com>
Co-authored-by: Mansour Behabadi <57921115+ncmans@users.noreply.github.com>
Improve the metadata detection for containers. The system_info structure has been updated to hold separate copies of OS_NAME, OS_ID, OS_ID_LIKE, OS_VERSION, OS_VERSION_ID and OS_DETECTION for both the container environment and the host. This new information is communicated through the /api/v1/info endpoint. For the streaming interface a partial copy of the info is carried until the stream protocol is upgraded. The anonymous_statistics script has been updated to carry the new data to Google Analytics. Some minor improvements have been made to OS-X / FreeBSD detection, and the detection of virtualization. The docs have been updated to explain how to pass the host environment to the docker container running Netdata.
* Added anon stats to installer page
* Added notes to other pages
* Tweaks to main README and docs homepage
* Path fix
* Tweak and add to Docker page
* Fixing issues from Mansour & Timo
* Linter fixes
* Show notice of anonymous data collection
* Add DO_NOT_TRACK env var to docker run script
* Add disable-telemetry option to kickstart-static64
* Check if DO_NOT_TRACK is set
Docker requires that tags be all lowercase. This has not previously been
an issue, but causes build failures for people with Netdata forks who
have upercase characters in their GitHub username.