All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and is generated by Changie.
- Add flag on
service reconcile
to disable service name updates which can in certain cases cause unwanted alias generation - BREAKING CHANGE: Set the default for the tool to not update service names
- When the tool loads if it doesn't find a valid configuration file it will fallback to the default printed out by the
config sample
command
- Change docker base image to fix vulnerabilities that were in the previous one
- Bump goreleaser/goreleaser-action from 5.0.0 to 5.1.0
- Bump github.com/rs/zerolog from 1.32.0 to 1.33.0 in /src
- Bump github.com/spf13/cobra from 1.8.0 to 1.8.1 in /src
- Bump github.com/hashicorp/go-retryablehttp from 0.7.5 to 0.7.7 in /src
- Bump github.com/creasty/defaults from 1.7.0 to 1.8.0 in /src
- Bump opslevel/report-deploy-github-action from 0.7.0 to 0.10.0
- bump opslevel-go to v2024.9.3, opslevel-jq-parser to v2024.9.3, opslevel-k8s-controller to v2024.9.3
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.9.5
- Fix bug where
namespaces
filtering was not respected by jq parser
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.5.1
- Fix bug where repositories were being attached unnecessarily, resulting in error logs
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.4.3
- Fix bug where service fields are being set to "null" if they are not defined in Kubernetes or in the user's config
- Fix bug where not all system aliases were being checked during service updates
- Log the
ServiceUpdateInput
sent to the API before service updates - Log the diff between services before and after updates
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /src
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.3.18
- Replaced local dev docs with more brief instructions and a real deployment.yaml for sample config
- Fixed various errors in readme.md, updated sample config
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.3.4
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.2.26
- add --short flag to version command
- add opslevel app metadata to version command
- Add schema version 1.3.0 that supports assigning properties
- Catch more instances that cause nil pointer exceptions
- Fix bug where logging repositories creates would cause a nil pointer exception
- Fix bug where service repos were never renamed if base dir was /
- Bump codecov/codecov-action from 3 to 4
- Bump github.com/rs/zerolog from 1.31.0 to 1.32.0 in /src
- Bump arduino/setup-task from 1 to 2
- Removed remaining references to Collect in docs (the collect feature was removed in a previous release)
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.2.23
- Show more descriptive error messages when reading config files
- Add support for clean exit on SIGINT/SIGTERM
- Fix bug where the same tool would be created multiple times in a single run
- Fix bug where service commands could sometimes cause a nil pointer crash
- Fix bug where running service preview/import would always return a single service even if there were more
- Fix bug where optional parameter SAMPLES_COUNT for service preview was not being used
- Fix bug where service reconcile only ran once at the start of the program regardless of selected resync interval
- Fix bug where logging tools would cause nil pointer exceptions
- Remove 'collect' subcommand that sends custom check events to an integration URL
- Add local testing instructions under docs/
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.1.27
- Add option to disable automatic Service creation by passing --disable-service-create OR setting OL_DISABLE_SERVICE_CREATE=1
- Bump github.com/go-resty/resty/v2 from 2.10.0 to 2.11.0 in /src
- Fix bug with loading the ./opslevel-k8s.yaml file that prevented the tool from working
- Fix bug where user could not generate config unless they had one already
- '--config .' will now correctly read from ./opslevel-k8s.yaml and '--config -' will read from stdin
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.1.13
MASSIVE REFACTOR: The entire codebase hasn't been released for over 1 year prior to this release, and thus we went through a major refactor to ship this release. That said we intend this release to be functionality similar to the previous release and test coverage of the pieces has been increased significantly. If you do find any breaking changes please let us know and we will work to fix them.
- update go version to 1.21
- Upgraded all dependencies
- Add ability to assign a system to the discovered service
- Remove the 'account' commands as they have been deprecated
- do not obscure api error responses when doing client validation
- fix an infinite CPU usage bug with the logic in the k8s controller
- upgrade go to 1.17
- Upgrade opslevel-go to v2022.7.15
- update to go 1.18
- Add command
collect
to send k8s payloads to custom even checks - update opslevel-go to v2022.8.25
- BREAKING CHANGE:
--api-url
no longer needs/graphql
on the end - this keeps this field in sync with our other tools. A full example of usage is--api-url=https://self-hosted.prod.example.com
- Fix sample config to show how tools entries can set environment
docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2022.10.19
v2022.8.5 - 2022-08-05
- fix where
tools
andrepositories
JQ processing that returns null but still registers an empty structure
v2022.02.25 - 2022-02-25
- Updating version command output format
v2022.02.08 - 2022-02-08
- remove ldflags override from goreleaser.yml to fix output of version command
v2022.01.27 - 2022-01-27
- set opslevel client timeout to 40s and allow configuration via OPSLEVEL_API_TIMEOUT or corresponding cli flag
- If all tags in a service tag assign API already exist on the service then skip sending an API request
- remove duplicate values from the tag assigns array before sending to the API to reduce memory pressure
- fix a bug where API failures during service lookup causes new service creation
v2022.01.19 - 2022-01-19
Switch to CalVer
- Do not send a ServiceUpdate mutation if nothing changed about the data
v0.6.6 - 2021-12-17
- add curl back to pickup certificates
v0.6.5 - 2021-12-17
- upgrade jq to 1.6
v0.6.4 - 2021-12-14
- add ability to restrict
service preview
to json output to pipe to jq for debugging - add log statements when unable to find Tier, Lifecycle or Team by alias
- upgrade opslevel-go to 0.4.2
- use new opslevel-go cache by alias and remove similar code from this library
v0.6.3 - 2021-10-31
- fix issue with reconciling services that would create duplicate services during
service reconcile
with latest k8s version
v0.6.2 - 2021-10-31
- only subscribe to the OnUpdate of the Informer so we don't run into parallel processing issues with
service reconcile
v0.6.1 - 2021-10-26
- skipover duplicate keys in tags.assign when merging service data due to overlapping aliases
v0.5.1 - 2021-10-04
- 0.5.0 docker image didn't run after refactor
v0.5.0 - 2021-10-04
- fix docker image build to have latest jq binary installed
- fix documentation of workers environment variable
- update layout of readme based on enduser feedback
- upgrade opslevel-go to 0.4.0 and set new graphql custom user agent
- remove functionality of
account
commands and direct user to our official CLI
v0.4.9 - 2021-09-29
- bubble up JQ errors are warning logs to help diagnose problems
- tag mutations for a service were being run in parallel but should have been serial
- Deprecated selector "labels" but used incorrect spelling of labels in the json tags
- improve client side service deduplication which prevents a class of bugs with parallel API calls - also makes
service preview
output more representative of actual results
- only include auto alias
k8s:<name>-<namespace>
if no alias results were found
v0.4.8 - 2021-09-20
- skip over aliases that are empty strings as they are not valid to register
v0.4.7 - 2021-09-09
- improve readme and add a troubleshooting section
- add ability to specify a list of namespaces so the tool does not need permissions to list namespaces
- add ability to override OpsLevel API URL
- adds support for reading api tokens from the filesystem using the argument
--api-token-path
- convert prefered environment variable prefix from
OL_
toOPSLEVEL_
but still support old prefix
v0.4.6 - 2021-08-08
- JSON-Schema has incorrect case on fields because of missing JSON struct tags
- improve performance of
service import
by using goroutines for all followon API calls (assign tags, assign tools, etc) after service create/update - improve performance of
service import
by switching TagAssign to use the batch call rather then 1 by 1 - improve
service import
performance by applying concurrency to processing service data into API calls
v0.4.5 - 2021-08-01
v0.4.5-rc.1 - 2021-08-01
- bubble up k8s client errors
- add command to generate shell completion scripts for [bash|zsh|fish|powershell]
- add command
config schema
for generating the jsonschema for the configuration file - allow specifying a sample count on
service preview
to limit the amount of data returned
- change release process to use goreleaser for docker images too
v0.4.4 - 2021-07-22
- fix index lookup error when a service field is not configured in a selector resulting in a empty lookup array
- fix logic around aggregating services so that multiple import selectors work
v0.4.3 - 2021-07-21
- properly handle jq expressions that return ‘empty’ rather then null now that we batch expression operations
- upgrade jq from 1.4 to 1.6 (#58)
v0.4.2 - 2021-07-14
- simplify install instructions to use homebrew
- switch exclude filters to use JQ multiParser to increase performance on filtering resources
- use new multiParse JQ processing when processing the service fields to increase performance when working with 100’s of resources in Kubernetes
- implement ability to run JQ statements on arrays of resources to speed up processing when retrieving 100’s of resources from Kubernetes
v0.4.1 - 2021-07-10
- switch to goreleaser for publishing
- Revert "Extract Documentation to OpsLevel Website"
- Extract Documentation to OpsLevel Website
v0.4.0 - 2021-06-25
- update readme to use new opslevel AWS ECR alias
- update sample configuration file in readme to reflect config version 1.1.0
- switch demo to asciinema
- move readme documentation to OpsLevel website
- add ability to filter resources based on jq expressions that return truthy
- add config validation messages for new selector excludes format
- add config selector validation to help user upgrade from 1.0.0 -> 1.1.0 with helpful messages
- support targeting ANY k8s resource in the cluster
- bump config version to support query any resource kind in the cluster
v0.3.1-beta.1 - 2021-06-13
- protect against empty alias value
- protect against empty key or value in tag assign and create lists
- remove overlapped keys that exist in parsed
tags.assign
if key name also exists intags.create
- adjust golang binary inside docker container to have same version as when built outside the container
- add install instructions for using docker container
- add ability to reconcile linked service repository display name
- add ability to assign repositories to services
- add kubernetes deploy instructions that link to the helm chart
v0.3.0.beta1 - 2021-05-29
- support all auth methods for kubeconfig by importing the auth package
- load kubeconfig using client-go ConfigLoadingRules to support multi file KUBECONFIG settings
- remove 'include_prereleases' from the release badge
- fix badge link to go.mod
- add a reminder to install the tool first in the quickstart section
- rework the readme to have a better flow for new users
- support tags that are updated and tags that are append only
- Provide a way to exclude a namespace(s) via the selector
- add publishing of docker image to AWS public OpsLevel ECR
- support printing out comments as part of the config sample command to help explain aspects about the configuration file
- support a version field in the configuration file to allow for making backwards incompatible changes
- improve the
service import
output to include an indentation character for better readability - improve the output that surrounds the
service preview
data to better instruct the user what to do next
- switch final docker image to use ubuntu instead of golang
- k8sutils resource type handler functions use []byte to reduce code duplication
- cleanup folder structure to improve docker build caching
- change version command to just print out the version rather then using a log statement
v0.2.0 - 2021-05-22
- flag
—api-token
did not work but the environment variable did
- upgrade to opslevel-go 0.2.0
- add badges to readme
- set MIT license
- added "beta" status callout in readme
- add terminalizer demo file and gif
- add quick description to beginning of readme after badges
- add ability to list aliases for tool categories
account tools
- add a more simple sample configuration using the command with an additional flag
config sample —simple
- enrich output during client validation when 401 unauthorized
- move opslevel client creation to a common function to always validate for an API key
- move HasTool check to opslevel-go and validate existance with environment not url to allow for updating the url of a tool
v0.1.3 - 2021-05-16
- update opslevel-go to 0.1.3
- add quickstart to readme
- remove docker install instructions from the readme
- validate jq is installed and on the path - if not log a message
- add a log statement when finished importing data for a given service
- skip over aliases and tags that already exist on the service
- Simple reconcile of existing service entries
- set a more opinionated aliases configuration with a default
- bump the log statement for skipping a tool down to debug level
- find services via the aliases list rather then using name
- improve error output when unable to cache tiers, lifecycle, teams
- change default log format to be more human readable
- Improve service import log output to explain what steps were success or failed (#6)
- extract opslevel api client library to opslevel-go (#8)
v0.1.2 - 2021-05-08
- Init Changelog
- Update readme TOC
- Write a more robust readme to help with getting started
- Support attaching Lifecycle, Tier and Owner on newly created service entries
- Implement listing Team aliases available in your account
- Implement listing Tier aliases available in your account
- Implement listing Lifecycle aliases available in your account
- Implement Account command for viewing data about your OpsLevel account
- Support creating tags on newly created service entries
- Support creating tools on newly created service entries