Skip to content

Latest commit

 

History

History
484 lines (370 loc) · 19.9 KB

CHANGELOG.md

File metadata and controls

484 lines (370 loc) · 19.9 KB

Changelog

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.

Feature

  • 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

Security

  • Change docker base image to fix vulnerabilities that were in the previous one

Dependency

  • 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 Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.9.5

Bugfix

  • Fix bug where namespaces filtering was not respected by jq parser

Docker Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.5.1

Bugfix

  • Fix bug where repositories were being attached unnecessarily, resulting in error logs

Docker Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.4.3

Bugfix

  • 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

Feature

  • Log the ServiceUpdateInput sent to the API before service updates
  • Log the diff between services before and after updates

Dependency

  • Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in /src

Docker Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.3.18

Docs

  • 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 Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.3.4

Docker Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.2.26

Feature

  • add --short flag to version command
  • add opslevel app metadata to version command
  • Add schema version 1.3.0 that supports assigning properties

Bugfix

  • 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 /

Dependency

  • 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

  • Removed remaining references to Collect in docs (the collect feature was removed in a previous release)

Docker Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.2.23

Feature

  • Show more descriptive error messages when reading config files
  • Add support for clean exit on SIGINT/SIGTERM

Bugfix

  • 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

Removed

  • Remove 'collect' subcommand that sends custom check events to an integration URL

Docs

  • Add local testing instructions under docs/

Docker Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2024.1.27

Feature

  • 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

Bugfix

  • 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 Image

  • 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.

Feature

  • update go version to 1.21
  • Upgraded all dependencies
  • Add ability to assign a system to the discovered service

Deprecated

  • Remove the 'account' commands as they have been deprecated

Refactor

  • do not obscure api error responses when doing client validation
  • fix an infinite CPU usage bug with the logic in the k8s controller

October 19, 2022

Feature

  • 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

Refactor

  • 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

Docs

  • Fix sample config to show how tools entries can set environment

Docker Image

  • docker pull public.ecr.aws/opslevel/kubectl-opslevel:v2022.10.19

v2022.8.5 - 2022-08-05

Bugfix

  • fix where tools and repositories JQ processing that returns null but still registers an empty structure

v2022.02.25 - 2022-02-25

Refactor

  • Updating version command output format

v2022.02.08 - 2022-02-08

Bugfix

  • remove ldflags override from goreleaser.yml to fix output of version command

v2022.01.27 - 2022-01-27

Feature

  • set opslevel client timeout to 40s and allow configuration via OPSLEVEL_API_TIMEOUT or corresponding cli flag

Refactor

  • If all tags in a service tag assign API already exist on the service then skip sending an API request

Bugfix

  • 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

Refactor

  • Do not send a ServiceUpdate mutation if nothing changed about the data

v0.6.6 - 2021-12-17

Bugfix

  • add curl back to pickup certificates

v0.6.5 - 2021-12-17

Refactor

  • upgrade jq to 1.6

v0.6.4 - 2021-12-14

Feature

  • 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

Refactor

  • use new opslevel-go cache by alias and remove similar code from this library

v0.6.3 - 2021-10-31

Bugfix

  • fix issue with reconciling services that would create duplicate services during service reconcile with latest k8s version

v0.6.2 - 2021-10-31

Bugfix

  • 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

Bugfix

  • skipover duplicate keys in tags.assign when merging service data due to overlapping aliases

v0.5.1 - 2021-10-04

Bugfix

  • 0.5.0 docker image didn't run after refactor

v0.5.0 - 2021-10-04

Bugfix

  • fix docker image build to have latest jq binary installed

Docs

  • fix documentation of workers environment variable
  • update layout of readme based on enduser feedback

Refactor

  • 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

Bugfix

  • 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

Feature

  • 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

Refactor

  • only include auto alias k8s:<name>-<namespace> if no alias results were found

v0.4.8 - 2021-09-20

Bugfix

  • skip over aliases that are empty strings as they are not valid to register

v0.4.7 - 2021-09-09

Docs

  • improve readme and add a troubleshooting section

Feature

  • 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

Refactor

  • convert prefered environment variable prefix from OL_ to OPSLEVEL_ but still support old prefix

v0.4.6 - 2021-08-08

Bugfix

  • JSON-Schema has incorrect case on fields because of missing JSON struct tags

Feature

  • 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

Bugfix

  • bubble up k8s client errors

Feature

  • 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

Refactor

  • change release process to use goreleaser for docker images too

v0.4.4 - 2021-07-22

Bugfix

  • 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

Bugfix

  • properly handle jq expressions that return ‘empty’ rather then null now that we batch expression operations

Feature

  • upgrade jq from 1.4 to 1.6 (#58)

v0.4.2 - 2021-07-14

Docs

  • simplify install instructions to use homebrew

Feature

  • 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

Refactor

  • switch to goreleaser for publishing

Reverts

  • Revert "Extract Documentation to OpsLevel Website"
  • Extract Documentation to OpsLevel Website

v0.4.0 - 2021-06-25

Docs

  • 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

Feature

  • 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

Refactor

  • bump config version to support query any resource kind in the cluster

v0.3.1-beta.1 - 2021-06-13

Bugfix

  • 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 in tags.create
  • adjust golang binary inside docker container to have same version as when built outside the container

Docs

  • add install instructions for using docker container

Feature

  • 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

Bugfix

  • support all auth methods for kubeconfig by importing the auth package
  • load kubeconfig using client-go ConfigLoadingRules to support multi file KUBECONFIG settings

Docs

  • 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

Feature

  • 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

Refactor

  • 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

Bugfix

  • flag —api-token did not work but the environment variable did

Chore

  • upgrade to opslevel-go 0.2.0
  • add badges to readme
  • set MIT license

Docs

  • added "beta" status callout in readme
  • add terminalizer demo file and gif
  • add quick description to beginning of readme after badges

Feature

  • 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

Refactor

  • 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

Chore

  • update opslevel-go to 0.1.3

Docs

  • add quickstart to readme
  • remove docker install instructions from the readme

Feature

  • 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

Refactor

  • 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

Chore

  • Init Changelog

Docs

  • Update readme TOC
  • Write a more robust readme to help with getting started

Feature

  • 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

v0.1.1 - 2021-04-22

v0.1.0 - 2021-04-22

v0.0.1 - 2021-03-25