refactor(operator)!: Migrate project layout to kubebuilder go/v4 (#14447)

This commit is contained in:
Periklis Tsirakidis
2024-10-21 13:38:40 +02:00
committed by GitHub
parent d78b7ab964
commit dbb3b6edc9
108 changed files with 2145 additions and 1859 deletions
+3 -3
View File
@@ -77,11 +77,11 @@ $(KIND): $(BINGO_DIR)/kind.mod
@echo "(re)installing $(GOBIN)/kind-v0.23.0"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=kind.mod -o=$(GOBIN)/kind-v0.23.0 "sigs.k8s.io/kind"
KUSTOMIZE := $(GOBIN)/kustomize-v4.5.7
KUSTOMIZE := $(GOBIN)/kustomize-v5.4.3
$(KUSTOMIZE): $(BINGO_DIR)/kustomize.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/kustomize-v4.5.7"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=kustomize.mod -o=$(GOBIN)/kustomize-v4.5.7 "sigs.k8s.io/kustomize/kustomize/v4"
@echo "(re)installing $(GOBIN)/kustomize-v5.4.3"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=kustomize.mod -o=$(GOBIN)/kustomize-v5.4.3 "sigs.k8s.io/kustomize/kustomize/v5"
OPERATOR_SDK := $(GOBIN)/operator-sdk-v1.37.0
$(OPERATOR_SDK): $(BINGO_DIR)/operator-sdk.mod
+2 -6
View File
@@ -1,9 +1,5 @@
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.17
go 1.22.5
exclude sigs.k8s.io/kustomize/api v0.2.0
exclude sigs.k8s.io/kustomize/cmd/config v0.2.0
require sigs.k8s.io/kustomize/kustomize/v4 v4.5.7
require sigs.k8s.io/kustomize/kustomize/v5 v5.4.3
+58 -413
View File
@@ -1,453 +1,98 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/evanphx/json-patch v4.5.0+incompatible h1:ouOWdg56aJriqS0huScTkVXPC5IcNrDCXZ6OoTAWu7M=
github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs=
github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
github.com/go-openapi/analysis v0.19.5 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI=
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM=
github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg=
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
github.com/go-openapi/loads v0.19.4 h1:5I4CCSqoWzT+82bBkNIvmLc0UOsoKKQ4Fz+3VxOB7SY=
github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
github.com/go-openapi/runtime v0.19.4 h1:csnOgcgAiuGoM/Po7PEpKDoNulCcF3FGbSnbHfxgjMI=
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
github.com/go-openapi/spec v0.19.5 h1:Xm0Ao53uqnk9QE/LlYV5DEU09UAgpliA85QoT9LzqPw=
github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM=
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng=
github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
github.com/go-openapi/validate v0.19.8 h1:YFzsdWIDfVuLvIOF+ZmKjVg1MbPJ1QgY9PihMwei1ys=
github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/imdario/mergo v0.3.5 h1:JboBksRwiiAJWvIYJVo46AfV+IAIKZpfrSzVKj42R4Q=
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI=
github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54=
github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag=
github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/olekukonko/tablewriter v0.0.4 h1:vHD/YYe1Wolo78koG299f7V/VAS08c6IpCLn+Ejf/w8=
github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA=
github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8=
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=
github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE=
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk=
github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
go.mongodb.org/mongo-driver v1.1.2 h1:jxcFYjlkl8xaERsgLo+RNquI0epW6zuy/ZRQs6jnrFA=
go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc=
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk=
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc=
golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw=
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e h1:KLHHjkdQFomZy8+06csTWZ0m1343QqxZhR2LJ1OxCYM=
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw=
k8s.io/kube-openapi v0.0.0-20220401212409-b28bf2818661 h1:nqYOUleKLC/0P1zbU29F5q6aoezM6MOAVz+iyfQbZ5M=
k8s.io/kube-openapi v0.0.0-20220401212409-b28bf2818661/go.mod h1:daOouuuwd9JXpv1L7Y34iV3yf6nxzipkKMWWlqlvK9M=
k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 h1:HNSDgDCrr/6Ly3WEGKZftiE7IY19Vz2GdbOCyI4qqhc=
k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
sigs.k8s.io/kustomize/api v0.8.5 h1:bfCXGXDAbFbb/Jv5AhMj2BB8a5VAJuuQ5/KU69WtDjQ=
sigs.k8s.io/kustomize/api v0.8.5/go.mod h1:M377apnKT5ZHJS++6H4rQoCHmWtt6qTpp3mbe7p6OLY=
sigs.k8s.io/kustomize/api v0.8.11 h1:LzQzlq6Z023b+mBtc6v72N2mSHYmN8x7ssgbf/hv0H8=
sigs.k8s.io/kustomize/api v0.8.11/go.mod h1:a77Ls36JdfCWojpUqR6m60pdGY1AYFix4AH83nJtY1g=
sigs.k8s.io/kustomize/api v0.12.1 h1:7YM7gW3kYBwtKvoY216ZzY+8hM+lV53LUayghNRJ0vM=
sigs.k8s.io/kustomize/api v0.12.1/go.mod h1:y3JUhimkZkR6sbLNwfJHxvo1TCLwuwm14sCYnkH6S1s=
sigs.k8s.io/kustomize/cmd/config v0.9.7 h1:xxvL/np/zYHVuCH1tNFehlyEtSW5oXjoI6ycejiyOwQ=
sigs.k8s.io/kustomize/cmd/config v0.9.7/go.mod h1:MvXCpHs77cfyxRmCNUQjIqCmZyYsbn5PyQpWiq44nW0=
sigs.k8s.io/kustomize/cmd/config v0.9.13 h1:lqOf0QcFhNvgZkgrPINNRs7TxEO7IGVtLMyUJId3oRE=
sigs.k8s.io/kustomize/cmd/config v0.9.13/go.mod h1:7547FLF8W/lTaDf0BDqFTbZxM9zqwEJqCKN9sSR0xSs=
sigs.k8s.io/kustomize/cmd/config v0.10.9 h1:LV8AUwZPuvqhGfia50uNwsPwNg1xOy9koEf5hyBnYs4=
sigs.k8s.io/kustomize/cmd/config v0.10.9/go.mod h1:T0s850zPV3wKfBALA0dyeP/K74jlJcoP8Pr9ZWwE3MQ=
sigs.k8s.io/kustomize/kustomize/v4 v4.0.5 h1:0xQWp03aKWilF6UJrupcA2rCoCn3jejkJ+m/CCI/Fis=
sigs.k8s.io/kustomize/kustomize/v4 v4.0.5/go.mod h1:C7rYla7sI8EnxHE/xEhRBSHMNfcL91fx0uKmUlUhrBk=
sigs.k8s.io/kustomize/kustomize/v4 v4.2.0 h1:RKgbyHgzuHQZ35sBDzWcbnR3HBlJSYdSN0H+sx3tUkk=
sigs.k8s.io/kustomize/kustomize/v4 v4.2.0/go.mod h1:MOkR6fmhwG7hEDRXBYELTi5GSFcLwfqwzTRHW3kv5go=
sigs.k8s.io/kustomize/kustomize/v4 v4.5.7 h1:cDW6AVMl6t/SLuQaezMET8hgnadZGIAr8tUrxFVOrpg=
sigs.k8s.io/kustomize/kustomize/v4 v4.5.7/go.mod h1:VSNKEH9D9d9bLiWEGbS6Xbg/Ih0tgQalmPvntzRxZ/Q=
sigs.k8s.io/kustomize/kyaml v0.10.15 h1:dSLgG78KyaxN4HylPXdK+7zB3k7sW6q3IcCmcfKA+aI=
sigs.k8s.io/kustomize/kyaml v0.10.15/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg=
sigs.k8s.io/kustomize/kyaml v0.11.0 h1:9KhiCPKaVyuPcgOLJXkvytOvjMJLoxpjodiycb4gHsA=
sigs.k8s.io/kustomize/kyaml v0.11.0/go.mod h1:GNMwjim4Ypgp/MueD3zXHLRJEjz7RvtPae0AwlvEMFM=
sigs.k8s.io/kustomize/kyaml v0.13.9 h1:Qz53EAaFFANyNgyOEJbT/yoIHygK40/ZcvU3rgry2Tk=
sigs.k8s.io/kustomize/kyaml v0.13.9/go.mod h1:QsRbD0/KcU+wdk0/L0fIp2KLnohkVzs6fQ85/nOXac4=
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780=
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
sigs.k8s.io/kustomize/api v0.17.3 h1:6GCuHSsxq7fN5yhF2XrC+AAr8gxQwhexgHflOAD/JJU=
sigs.k8s.io/kustomize/api v0.17.3/go.mod h1:TuDH4mdx7jTfK61SQ/j1QZM/QWR+5rmEiNjvYlhzFhc=
sigs.k8s.io/kustomize/cmd/config v0.14.2 h1:YOCu0BnVPm2Iq6PR4fJgO6+rivg5LbR3+o/4ZUeXAvM=
sigs.k8s.io/kustomize/cmd/config v0.14.2/go.mod h1:w30rR4oCUm5wEi0tSuBCmuBMS9Z/Cq6oDdfg8fL/qls=
sigs.k8s.io/kustomize/kustomize/v5 v5.4.3 h1:SJMDq/0HYNTFPgmlBuxsGzdBB6furxhwHKHEfzBbvSw=
sigs.k8s.io/kustomize/kustomize/v5 v5.4.3/go.mod h1:vhSLBp3H7wx0oeh/hE7CMQVNft42plZxUqxhvVZxb8Q=
sigs.k8s.io/kustomize/kyaml v0.17.2 h1:+AzvoJUY0kq4QAhH/ydPHHMRLijtUKiyVyh7fOSshr0=
sigs.k8s.io/kustomize/kyaml v0.17.2/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
+1 -1
View File
@@ -1,5 +1,5 @@
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.22.8
go 1.22.5
require github.com/operator-framework/operator-sdk v1.37.0 // cmd/operator-sdk
+1 -1
View File
@@ -28,7 +28,7 @@ JSONNETFMT="${GOBIN}/jsonnetfmt-v0.20.0"
KIND="${GOBIN}/kind-v0.23.0"
KUSTOMIZE="${GOBIN}/kustomize-v4.5.7"
KUSTOMIZE="${GOBIN}/kustomize-v5.4.3"
OPERATOR_SDK="${GOBIN}/operator-sdk-v1.37.0"
+3 -4
View File
@@ -3,7 +3,7 @@ FROM golang:1.22.8 as builder
WORKDIR /workspace
# Copy the Go Modules manifests
COPY apis/ apis/
COPY api/ api/
COPY go.mod go.mod
COPY go.sum go.sum
# cache deps before building and copying source so that we don't need to re-download as much
@@ -11,12 +11,11 @@ COPY go.sum go.sum
RUN go mod download
# Copy the go source
COPY main.go main.go
COPY controllers/ controllers/
COPY cmd/loki-operator/main.go cmd/loki-operator/main.go
COPY internal/ internal/
# Build
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -mod=readonly -a -o manager main.go
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -mod=readonly -a -o manager cmd/loki-operator/main.go
# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
+3 -4
View File
@@ -8,7 +8,7 @@ FROM --platform=linux/amd64 $BUILD_IMAGE as builder
COPY --from=goenv /goarch /goarm /
WORKDIR /workspace
# Copy the Go Modules manifests
COPY apis/ apis/
COPY api/ api/
COPY go.mod go.mod
COPY go.sum go.sum
# cache deps before building and copying source so that we don't need to re-download as much
@@ -16,12 +16,11 @@ COPY go.sum go.sum
RUN go mod download
# Copy the go source
COPY main.go main.go
COPY controllers/ controllers/
COPY cmd/loki-operator/main.go cmd/loki-operator/main.go
COPY internal/ internal/
# Build
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on GOARCH=$(cat /goarch) GOARM=$(cat /goarm) go build -a -o manager main.go
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on GOARCH=$(cat /goarch) GOARM=$(cat /goarm) go build -a -o manager cmd/loki-operator/main.go
# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
+10 -10
View File
@@ -126,10 +126,10 @@ deps: go.mod go.sum
go mod verify
.PHONY: deps-api
deps-api: apis/loki/go.mod apis/loki/go.sum
@cd ./apis/loki/ && go mod tidy
@cd ./apis/loki/ && go mod download
@cd ./apis/loki/ && go mod verify
deps-api: api/loki/go.mod api/loki/go.sum
@cd ./api/loki/ && go mod tidy
@cd ./api/loki/ && go mod download
@cd ./api/loki/ && go mod verify
.PHONY: cli
cli: deps bin/loki-broker ## Build loki-broker CLI binary
@@ -138,7 +138,7 @@ bin/loki-broker: $(GO_FILES) | generate
.PHONY: manager
manager: deps generate ## Build manager binary
go build -o bin/manager main.go
go build -o bin/manager ./cmd/loki-operator/main.go
.PHONY: size-calculator
size-calculator: deps generate ## Build size-calculator binary
@@ -163,7 +163,7 @@ test: $(GO_FILES)
.PHONY: test-unit-api
test-unit-api: $(GO_FILES)
@cd ./apis/loki/ && go test ./... -coverprofile cover.out
@cd ./api/loki/ && go test ./... -coverprofile cover.out
.PHONY: test-unit-prometheus
test-unit-prometheus: $(PROMTOOL) ## Run prometheus unit tests
@@ -237,7 +237,7 @@ quickstart-cleanup: $(KIND) ## Cleanup for quickstart set up
.PHONY: run
run: generate manifests ## Run against the configured Kubernetes cluster in ~/.kube/config
go run ./main.go
go run ./cmd/loki-operator/main.go
.PHONY: install
install: manifests $(KUSTOMIZE) ## Install CRDs into a cluster
@@ -312,7 +312,7 @@ oci-push-calculator: ## Push the calculator image
$(OCI_RUNTIME) push $(CALCULATOR_IMG)
##@ Website
TYPES_TARGET := $(shell find apis/loki -type f -iname "*_types.go")
TYPES_TARGET := $(shell find api/loki -type f -iname "*_types.go")
docs/operator/api.md: $(TYPES_TARGET) $(GEN_CRD_API_REFERENCE_DOCS)
$(GEN_CRD_API_REFERENCE_DOCS) -api-dir "github.com/grafana/loki/operator/apis/loki/" -config "$(PWD)/config/docs/config.json" -template-dir "$(PWD)/config/docs/templates" -out-file "$(PWD)/$@"
sed -i 's/+docs:/ docs:/' $@
@@ -320,9 +320,9 @@ docs/operator/api.md: $(TYPES_TARGET) $(GEN_CRD_API_REFERENCE_DOCS)
sed -i 's/##/\n##/' $@
sed -i 's/+newline/\n/' $@
FEATURE_GATES_TARGET := $(shell find apis/config -type f -iname "*_types.go")
FEATURE_GATES_TARGET := $(shell find api/config -type f -iname "*_types.go")
docs/operator/feature-gates.md: $(FEATURE_GATES_TARGET) $(GEN_CRD_API_REFERENCE_DOCS)
$(GEN_CRD_API_REFERENCE_DOCS) -api-dir "github.com/grafana/loki/operator/apis/config/v1/" -config "$(PWD)/config/docs/config.json" -template-dir "$(PWD)/config/docs/templates" -out-file "$(PWD)/$@"
$(GEN_CRD_API_REFERENCE_DOCS) -api-dir "github.com/grafana/loki/operator/api/config/v1/" -config "$(PWD)/config/docs/config.json" -template-dir "$(PWD)/config/docs/templates" -out-file "$(PWD)/$@"
sed -i 's/title: "API"/title: "Feature Gates"/' $@
sed -i 's/+docs:/ docs:/' $@
sed -i 's/+parent:/ parent:/' $@
+9 -9
View File
@@ -1,7 +1,7 @@
componentConfig: true
domain: grafana.com
layout:
- go.kubebuilder.io/v3
- go.kubebuilder.io/v4
multigroup: true
plugins:
manifests.sdk.operatorframework.io/v2: {}
@@ -16,7 +16,7 @@ resources:
domain: grafana.com
group: loki
kind: LokiStack
path: github.com/grafana/loki/operator/apis/loki/v1beta1
path: github.com/grafana/loki/operator/api/loki/v1beta1
version: v1beta1
- api:
crdVersion: v1
@@ -25,7 +25,7 @@ resources:
domain: grafana.com
group: loki
kind: LokiStack
path: github.com/grafana/loki/operator/apis/loki/v1
path: github.com/grafana/loki/operator/api/loki/v1
version: v1
webhooks:
conversion: true
@@ -38,7 +38,7 @@ resources:
domain: grafana.com
group: loki
kind: AlertingRule
path: github.com/grafana/loki/operator/apis/loki/v1
path: github.com/grafana/loki/operator/api/loki/v1
version: v1
webhooks:
conversion: true
@@ -51,7 +51,7 @@ resources:
domain: grafana.com
group: loki
kind: AlertingRule
path: github.com/grafana/loki/operator/apis/loki/v1beta1
path: github.com/grafana/loki/operator/api/loki/v1beta1
version: v1beta1
webhooks:
validation: true
@@ -63,7 +63,7 @@ resources:
domain: grafana.com
group: loki
kind: RecordingRule
path: github.com/grafana/loki/operator/apis/loki/v1
path: github.com/grafana/loki/operator/api/loki/v1
version: v1
webhooks:
validation: true
@@ -76,7 +76,7 @@ resources:
domain: grafana.com
group: loki
kind: RecordingRule
path: github.com/grafana/loki/operator/apis/loki/v1beta1
path: github.com/grafana/loki/operator/api/loki/v1beta1
version: v1beta1
webhooks:
validation: true
@@ -88,7 +88,7 @@ resources:
domain: grafana.com
group: loki
kind: RulerConfig
path: github.com/grafana/loki/operator/apis/loki/v1
path: github.com/grafana/loki/operator/api/loki/v1
version: v1
- api:
crdVersion: v1
@@ -97,6 +97,6 @@ resources:
domain: grafana.com
group: loki
kind: RulerConfig
path: github.com/grafana/loki/operator/apis/loki/v1beta1
path: github.com/grafana/loki/operator/api/loki/v1beta1
version: v1beta1
version: "3"
@@ -9,7 +9,7 @@ LABEL operators.operatorframework.io.bundle.channels.v1=alpha
LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-unknown
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v4
# Labels for testing.
LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1
@@ -150,7 +150,7 @@ metadata:
categories: OpenShift Optional, Logging & Tracing
certified: "false"
containerImage: docker.io/grafana/loki-operator:0.6.2
createdAt: "2024-10-18T09:16:02Z"
createdAt: "2024-10-21T11:24:52Z"
description: The Community Loki Operator provides Kubernetes native deployment
and management of Loki and related logging components.
features.operators.openshift.io/disconnected: "true"
@@ -161,7 +161,7 @@ metadata:
features.operators.openshift.io/token-auth-azure: "true"
features.operators.openshift.io/token-auth-gcp: "false"
operators.operatorframework.io/builder: operator-sdk-unknown
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
repository: https://github.com/grafana/loki/tree/main/operator
support: Grafana Loki SIG Operator
labels:
@@ -185,8 +185,9 @@ spec:
- description: List of groups for alerting rules.
displayName: Groups
path: groups
- description: Interval defines the time interval between evaluation of the
given alerting rule.
- description: |-
Interval defines the time interval between evaluation of the given
alerting rule.
displayName: Evaluation Interval
path: groups[0].interval
- description: Limit defines the number of alerts an alerting rule can produce.
@@ -208,14 +209,15 @@ spec:
- description: Annotations to add to each alert.
displayName: Annotations
path: groups[0].rules[0].annotations
- description: The LogQL expression to evaluate. Every evaluation cycle this
is evaluated at the current time, and all resultant time series become pending/firing
alerts.
- description: |-
The LogQL expression to evaluate. Every evaluation cycle this is
evaluated at the current time, and all resultant time series become
pending/firing alerts.
displayName: LogQL Expression
path: groups[0].rules[0].expr
- description: Alerts are considered firing once they have been returned for
this long. Alerts which have not yet fired for long enough are considered
pending.
- description: |-
Alerts are considered firing once they have been returned for this long.
Alerts which have not yet fired for long enough are considered pending.
displayName: Firing Threshold
path: groups[0].rules[0].for
- description: Labels to add to each alert.
@@ -272,17 +274,21 @@ spec:
- description: MemberList configuration spec
displayName: Memberlist Config
path: hashRing.memberlist
- description: "EnableIPv6 enables IPv6 support for the memberlist based hash
ring. \n Currently this also forces the instanceAddrType to podIP to avoid
local address lookup for the memberlist."
- description: |-
EnableIPv6 enables IPv6 support for the memberlist based hash ring.
Currently this also forces the instanceAddrType to podIP to avoid local address lookup
for the memberlist.
displayName: Enable IPv6
path: hashRing.memberlist.enableIPv6
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: InstanceAddrType defines the type of address to use to advertise
to the ring. Defaults to the first address from any private network interfaces
of the current pod. Alternatively the public pod IP can be used in case
private networks (RFC 1918 and RFC 6598) are not available.
- description: |-
InstanceAddrType defines the type of address to use to advertise to the ring.
Defaults to the first address from any private network interfaces of the current pod.
Alternatively the public pod IP can be used in case private networks (RFC 1918 and RFC 6598)
are not available.
displayName: Instance Address
path: hashRing.memberlist.instanceAddrType
x-descriptors:
@@ -301,9 +307,10 @@ spec:
- description: Global defines the limits applied globally across the cluster.
displayName: Global Limits
path: limits.global
- description: IngestionBurstSize defines the local rate-limited sample size
per distributor replica. It should be set to the set at least to the maximum
logs size expected in a single push request.
- description: |-
IngestionBurstSize defines the local rate-limited sample size per
distributor replica. It should be set to the set at least to the
maximum logs size expected in a single push request.
displayName: Ingestion Burst Size (in MB)
path: limits.global.ingestion.ingestionBurstSize
x-descriptors:
@@ -313,26 +320,30 @@ spec:
path: limits.global.ingestion.ingestionRate
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxGlobalStreamsPerTenant defines the maximum number of active
streams per tenant, across the cluster.
- description: |-
MaxGlobalStreamsPerTenant defines the maximum number of active streams
per tenant, across the cluster.
displayName: Max Global Streams per Tenant
path: limits.global.ingestion.maxGlobalStreamsPerTenant
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNameLength defines the maximum number of characters allowed
- description: |-
MaxLabelNameLength defines the maximum number of characters allowed
for label keys in log streams.
displayName: Max Label Name Length
path: limits.global.ingestion.maxLabelNameLength
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNamesPerSeries defines the maximum number of label names
per series in each log stream.
- description: |-
MaxLabelNamesPerSeries defines the maximum number of label names per series
in each log stream.
displayName: Max Labels Names per Series
path: limits.global.ingestion.maxLabelNamesPerSeries
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelValueLength defines the maximum number of characters
allowed for label values in log streams.
- description: |-
MaxLabelValueLength defines the maximum number of characters allowed
for label values in log streams.
displayName: Max Label Value Length
path: limits.global.ingestion.maxLabelValueLength
x-descriptors:
@@ -343,8 +354,9 @@ spec:
path: limits.global.ingestion.maxLineSize
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: PerStreamDesiredRate defines the desired ingestion rate per second
that LokiStack should target applying automatic stream sharding. Units MB.
- description: |-
PerStreamDesiredRate defines the desired ingestion rate per second that LokiStack should
target applying automatic stream sharding. Units MB.
displayName: Per Stream Desired Rate (in MB)
path: limits.global.ingestion.perStreamDesiredRate
x-descriptors:
@@ -361,16 +373,19 @@ spec:
path: limits.global.ingestion.perStreamRateLimitBurst
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: IndexedResourceAttributes contains the global configuration for
resource attributes to store them as index labels.
- description: |-
IndexedResourceAttributes contains the global configuration for resource attributes
to store them as index labels.
displayName: Indexed Resource Attributes
path: limits.global.otlp.indexedResourceAttributes
- description: LogAttributes contains the configuration for log attributes to
store them as structured metadata or drop them altogether.
- description: |-
LogAttributes contains the configuration for log attributes
to store them as structured metadata or drop them altogether.
displayName: Log Attributes
path: limits.global.otlp.logAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.logAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -379,39 +394,47 @@ spec:
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.global.otlp.logAttributes[0].regex
- description: ResourceAttributes contains the configuration for resource attributes
- description: |-
ResourceAttributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Resource Attributes
path: limits.global.otlp.resourceAttributes
- description: Attributes contains the configuration for resource attributes
- description: |-
Attributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Attributes
path: limits.global.otlp.resourceAttributes.attributes
- description: Action defines the indexing action for the selected resoure attributes.
They can be either indexed as labels, added to structured metadata or drop
altogether.
- description: |-
Action defines the indexing action for the selected resoure attributes. They
can be either indexed as labels, added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.resourceAttributes.attributes[0].action
- description: Attributes is the list of attributes to configure indexing or
drop them altogether.
- description: |-
Attributes is the list of attributes to configure indexing or drop them
altogether.
displayName: Attribute Names
path: limits.global.otlp.resourceAttributes.attributes[0].attributes
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.global.otlp.resourceAttributes.attributes[0].regex
- description: "IgnoreDefaults controls whether to ignore the global configuration
for resource attributes indexed as labels. \n If IgnoreDefaults is true,
then this spec needs to contain at least one mapping to a index label."
- description: |-
IgnoreDefaults controls whether to ignore the global configuration for resource attributes
indexed as labels.
If IgnoreDefaults is true, then this spec needs to contain at least one mapping to a index label.
displayName: Ignore Global Defaults
path: limits.global.otlp.resourceAttributes.ignoreDefaults
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: ScopeAttributes contains the configuration for scope attributes
- description: |-
ScopeAttributes contains the configuration for scope attributes
to store them as structured metadata or drop them altogether.
displayName: Scope Attributes
path: limits.global.otlp.scopeAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.scopeAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -425,20 +448,23 @@ spec:
path: limits.global.queries.cardinalityLimit
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxChunksPerQuery defines the maximum number of chunks that can
be fetched by a single query.
- description: |-
MaxChunksPerQuery defines the maximum number of chunks
that can be fetched by a single query.
displayName: Max Chunk per Query
path: limits.global.queries.maxChunksPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxEntriesLimitsPerQuery defines the maximum number of log entries
- description: |-
MaxEntriesLimitsPerQuery defines the maximum number of log entries
that will be returned for a query.
displayName: Max Entries Limit per Query
path: limits.global.queries.maxEntriesLimitPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxQuerySeries defines the maximum of unique series that is returned
by a metric query.
- description: |-
MaxQuerySeries defines the maximum of unique series
that is returned by a metric query.
displayName: Max Query Series
path: limits.global.queries.maxQuerySeries
x-descriptors:
@@ -456,9 +482,10 @@ spec:
- description: Tenants defines the limits applied per tenant.
displayName: Limits per Tenant
path: limits.tenants
- description: IngestionBurstSize defines the local rate-limited sample size
per distributor replica. It should be set to the set at least to the maximum
logs size expected in a single push request.
- description: |-
IngestionBurstSize defines the local rate-limited sample size per
distributor replica. It should be set to the set at least to the
maximum logs size expected in a single push request.
displayName: Ingestion Burst Size (in MB)
path: limits.tenants.ingestion.ingestionBurstSize
x-descriptors:
@@ -468,26 +495,30 @@ spec:
path: limits.tenants.ingestion.ingestionRate
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxGlobalStreamsPerTenant defines the maximum number of active
streams per tenant, across the cluster.
- description: |-
MaxGlobalStreamsPerTenant defines the maximum number of active streams
per tenant, across the cluster.
displayName: Max Global Streams per Tenant
path: limits.tenants.ingestion.maxGlobalStreamsPerTenant
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNameLength defines the maximum number of characters allowed
- description: |-
MaxLabelNameLength defines the maximum number of characters allowed
for label keys in log streams.
displayName: Max Label Name Length
path: limits.tenants.ingestion.maxLabelNameLength
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNamesPerSeries defines the maximum number of label names
per series in each log stream.
- description: |-
MaxLabelNamesPerSeries defines the maximum number of label names per series
in each log stream.
displayName: Max Labels Names per Series
path: limits.tenants.ingestion.maxLabelNamesPerSeries
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelValueLength defines the maximum number of characters
allowed for label values in log streams.
- description: |-
MaxLabelValueLength defines the maximum number of characters allowed
for label values in log streams.
displayName: Max Label Value Length
path: limits.tenants.ingestion.maxLabelValueLength
x-descriptors:
@@ -498,8 +529,9 @@ spec:
path: limits.tenants.ingestion.maxLineSize
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: PerStreamDesiredRate defines the desired ingestion rate per second
that LokiStack should target applying automatic stream sharding. Units MB.
- description: |-
PerStreamDesiredRate defines the desired ingestion rate per second that LokiStack should
target applying automatic stream sharding. Units MB.
displayName: Per Stream Desired Rate (in MB)
path: limits.tenants.ingestion.perStreamDesiredRate
x-descriptors:
@@ -516,12 +548,14 @@ spec:
path: limits.tenants.ingestion.perStreamRateLimitBurst
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: LogAttributes contains the configuration for log attributes to
store them as structured metadata or drop them altogether.
- description: |-
LogAttributes contains the configuration for log attributes
to store them as structured metadata or drop them altogether.
displayName: Log Attributes
path: limits.tenants.otlp.logAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.logAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -530,39 +564,47 @@ spec:
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.tenants.otlp.logAttributes[0].regex
- description: ResourceAttributes contains the configuration for resource attributes
- description: |-
ResourceAttributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Resource Attributes
path: limits.tenants.otlp.resourceAttributes
- description: Attributes contains the configuration for resource attributes
- description: |-
Attributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Attributes
path: limits.tenants.otlp.resourceAttributes.attributes
- description: Action defines the indexing action for the selected resoure attributes.
They can be either indexed as labels, added to structured metadata or drop
altogether.
- description: |-
Action defines the indexing action for the selected resoure attributes. They
can be either indexed as labels, added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.resourceAttributes.attributes[0].action
- description: Attributes is the list of attributes to configure indexing or
drop them altogether.
- description: |-
Attributes is the list of attributes to configure indexing or drop them
altogether.
displayName: Attribute Names
path: limits.tenants.otlp.resourceAttributes.attributes[0].attributes
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.tenants.otlp.resourceAttributes.attributes[0].regex
- description: "IgnoreDefaults controls whether to ignore the global configuration
for resource attributes indexed as labels. \n If IgnoreDefaults is true,
then this spec needs to contain at least one mapping to a index label."
- description: |-
IgnoreDefaults controls whether to ignore the global configuration for resource attributes
indexed as labels.
If IgnoreDefaults is true, then this spec needs to contain at least one mapping to a index label.
displayName: Ignore Global Defaults
path: limits.tenants.otlp.resourceAttributes.ignoreDefaults
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: ScopeAttributes contains the configuration for scope attributes
- description: |-
ScopeAttributes contains the configuration for scope attributes
to store them as structured metadata or drop them altogether.
displayName: Scope Attributes
path: limits.tenants.otlp.scopeAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.scopeAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -597,20 +639,23 @@ spec:
path: limits.tenants.queries.cardinalityLimit
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxChunksPerQuery defines the maximum number of chunks that can
be fetched by a single query.
- description: |-
MaxChunksPerQuery defines the maximum number of chunks
that can be fetched by a single query.
displayName: Max Chunk per Query
path: limits.tenants.queries.maxChunksPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxEntriesLimitsPerQuery defines the maximum number of log entries
- description: |-
MaxEntriesLimitsPerQuery defines the maximum number of log entries
that will be returned for a query.
displayName: Max Entries Limit per Query
path: limits.tenants.queries.maxEntriesLimitPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxQuerySeries defines the maximum of unique series that is returned
by a metric query.
- description: |-
MaxQuerySeries defines the maximum of unique series
that is returned by a metric query.
displayName: Max Query Series
path: limits.tenants.queries.maxQuerySeries
x-descriptors:
@@ -625,8 +670,9 @@ spec:
of a query request.
displayName: Query Timeout
path: limits.tenants.queries.queryTimeout
- description: ManagementState defines if the CR should be managed by the operator
or not. Default is managed.
- description: |-
ManagementState defines if the CR should be managed by the operator or not.
Default is managed.
displayName: Management State
path: managementState
x-descriptors:
@@ -653,9 +699,9 @@ spec:
path: replication.factor
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: 'Zones defines an array of ZoneSpec that the scheduler will try
to satisfy. IMPORTANT: Make sure that the replication factor defined is
less than or equal to the number of available zones.'
- description: |-
Zones defines an array of ZoneSpec that the scheduler will try to satisfy.
IMPORTANT: Make sure that the replication factor defined is less than or equal to the number of available zones.
displayName: Zones Spec
path: replication.zones
- description: MaxSkew describes the maximum degree to which Pods can be unevenly
@@ -668,9 +714,9 @@ spec:
labels.
displayName: Topology Key
path: replication.zones[0].topologyKey
- description: 'Deprecated: Please use replication.factor instead. This field
will be removed in future versions of this CRD. ReplicationFactor defines
the policy for log stream replication.'
- description: |-
Deprecated: Please use replication.factor instead. This field will be removed in future versions of this CRD.
ReplicationFactor defines the policy for log stream replication.
displayName: Replication Factor
path: replicationFactor
x-descriptors:
@@ -685,11 +731,13 @@ spec:
path: rules.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: Namespaces to be selected for PrometheusRules discovery. If unspecified,
only the same namespace as the LokiStack object is in is used.
- description: |-
Namespaces to be selected for PrometheusRules discovery. If unspecified, only
the same namespace as the LokiStack object is in is used.
displayName: Namespace Selector
path: rules.namespaceSelector
- description: A selector to select which LokiRules to mount for loading alerting/recording
- description: |-
A selector to select which LokiRules to mount for loading alerting/recording
rules from.
displayName: Selector
path: rules.selector
@@ -729,13 +777,15 @@ spec:
- description: TLS configuration for reaching the object storage endpoint.
displayName: TLS Config
path: storage.tls
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: storage.tls.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: storage.tls.caName
x-descriptors:
@@ -755,8 +805,9 @@ spec:
- description: Compactor defines the compaction component spec.
displayName: Compactor pods
path: template.compactor
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.compactor.podAntiAffinity
x-descriptors:
@@ -769,8 +820,9 @@ spec:
- description: Distributor defines the distributor component spec.
displayName: Distributor pods
path: template.distributor
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.distributor.podAntiAffinity
x-descriptors:
@@ -783,8 +835,9 @@ spec:
- description: Gateway defines the lokistack gateway component spec.
displayName: Gateway pods
path: template.gateway
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.gateway.podAntiAffinity
x-descriptors:
@@ -797,8 +850,9 @@ spec:
- description: IndexGateway defines the index gateway component spec.
displayName: Index Gateway pods
path: template.indexGateway
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.indexGateway.podAntiAffinity
x-descriptors:
@@ -811,8 +865,9 @@ spec:
- description: Ingester defines the ingester component spec.
displayName: Ingester pods
path: template.ingester
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.ingester.podAntiAffinity
x-descriptors:
@@ -825,8 +880,9 @@ spec:
- description: Querier defines the querier component spec.
displayName: Querier pods
path: template.querier
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.querier.podAntiAffinity
x-descriptors:
@@ -839,8 +895,9 @@ spec:
- description: QueryFrontend defines the query frontend component spec.
displayName: Query Frontend pods
path: template.queryFrontend
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.queryFrontend.podAntiAffinity
x-descriptors:
@@ -853,8 +910,9 @@ spec:
- description: Ruler defines the ruler component spec.
displayName: Ruler pods
path: template.ruler
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.ruler.podAntiAffinity
x-descriptors:
@@ -878,13 +936,15 @@ spec:
- description: CA defines the spec for the custom CA for tenant's authentication.
displayName: CA ConfigMap
path: tenants.authentication[0].mTLS.ca
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: tenants.authentication[0].mTLS.ca.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: tenants.authentication[0].mTLS.ca.caName
x-descriptors:
@@ -895,13 +955,15 @@ spec:
- description: IssuerCA defines the spec for the issuer CA for tenant's authentication.
displayName: IssuerCA ConfigMap
path: tenants.authentication[0].oidc.issuerCA
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: tenants.authentication[0].oidc.issuerCA.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: tenants.authentication[0].oidc.issuerCA.caName
x-descriptors:
@@ -957,10 +1019,15 @@ spec:
- description: Openshift defines the configuration specific to Openshift modes.
displayName: Openshift
path: tenants.openshift
- description: "AdminGroups defines a list of groups, whose members are considered
to have admin-privileges by the Loki Operator. Setting this to an empty
array disables admin groups. \n By default the following groups are considered
admin-groups: - system:cluster-admins - cluster-admin - dedicated-admin"
- description: |-
AdminGroups defines a list of groups, whose members are considered to have admin-privileges by the Loki Operator.
Setting this to an empty array disables admin groups.
By default the following groups are considered admin-groups:
- system:cluster-admins
- cluster-admin
- dedicated-admin
displayName: Admin Groups
path: tenants.openshift.adminGroups
statusDescriptors:
@@ -1026,8 +1093,9 @@ spec:
- description: List of groups for recording rules.
displayName: Groups
path: groups
- description: Interval defines the time interval between evaluation of the
given recoding rule.
- description: |-
Interval defines the time interval between evaluation of the given
recoding rule.
displayName: Evaluation Interval
path: groups[0].interval
- description: Limit defines the number of series a recording rule can produce.
@@ -1043,9 +1111,10 @@ spec:
- description: Rules defines a list of recording rules
displayName: Rules
path: groups[0].rules
- description: The LogQL expression to evaluate. Every evaluation cycle this
is evaluated at the current time, and all resultant time series become pending/firing
alerts.
- description: |-
The LogQL expression to evaluate. Every evaluation cycle this is
evaluated at the current time, and all resultant time series become
pending/firing alerts.
displayName: LogQL Expression
path: groups[0].rules[0].expr
- description: Labels to add to each recording rule.
@@ -1148,9 +1217,10 @@ spec:
path: alertmanager.enableV2
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: List of AlertManager URLs to send notifications to. Each Alertmanager
URL is treated as a separate group in the configuration. Multiple Alertmanagers
in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery).
- description: |-
List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as
a separate group in the configuration. Multiple Alertmanagers in HA per group can be
supported by using DNS resolution (See EnableDNSDiscovery).
displayName: AlertManager Endpoints
path: alertmanager.endpoints
- description: Additional labels to add to all alerts.
@@ -1170,9 +1240,9 @@ spec:
path: alertmanager.notificationQueue.capacity
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: Minimum duration between alert and restored "for" state. This
is maintained only for alerts with configured "for" time greater than the
grace period.
- description: |-
Minimum duration between alert and restored "for" state. This is maintained
only for alerts with configured "for" time greater than the grace period.
displayName: Firing Grace Period
path: alertmanager.notificationQueue.forGracePeriod
- description: Max time to tolerate outage for restoring "for" state of alert.
@@ -1205,21 +1275,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: alertmanager.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: alertmanager.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: alertmanager.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: alertmanager.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: alertmanager.relabelConfigs[0].targetLabel
@@ -1300,9 +1372,10 @@ spec:
path: overrides.alertmanager.enableV2
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: List of AlertManager URLs to send notifications to. Each Alertmanager
URL is treated as a separate group in the configuration. Multiple Alertmanagers
in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery).
- description: |-
List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as
a separate group in the configuration. Multiple Alertmanagers in HA per group can be
supported by using DNS resolution (See EnableDNSDiscovery).
displayName: AlertManager Endpoints
path: overrides.alertmanager.endpoints
- description: Additional labels to add to all alerts.
@@ -1322,9 +1395,9 @@ spec:
path: overrides.alertmanager.notificationQueue.capacity
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: Minimum duration between alert and restored "for" state. This
is maintained only for alerts with configured "for" time greater than the
grace period.
- description: |-
Minimum duration between alert and restored "for" state. This is maintained
only for alerts with configured "for" time greater than the grace period.
displayName: Firing Grace Period
path: overrides.alertmanager.notificationQueue.forGracePeriod
- description: Max time to tolerate outage for restoring "for" state of alert.
@@ -1357,21 +1430,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: overrides.alertmanager.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: overrides.alertmanager.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: overrides.alertmanager.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: overrides.alertmanager.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: overrides.alertmanager.relabelConfigs[0].targetLabel
@@ -1433,21 +1508,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: remoteWrite.client.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: remoteWrite.client.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: remoteWrite.client.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: remoteWrite.client.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: remoteWrite.client.relabelConfigs[0].targetLabel
@@ -8,7 +8,7 @@ annotations:
operators.operatorframework.io.bundle.channel.default.v1: alpha
operators.operatorframework.io.metrics.builder: operator-sdk-unknown
operators.operatorframework.io.metrics.mediatype.v1: metrics+v1
operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3
operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4
# Annotations for testing.
operators.operatorframework.io.test.mediatype.v1: scorecard+v1
+1 -1
View File
@@ -9,7 +9,7 @@ LABEL operators.operatorframework.io.bundle.channels.v1=alpha
LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-unknown
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v4
# Labels for testing.
LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1
@@ -150,11 +150,11 @@ metadata:
categories: OpenShift Optional, Logging & Tracing
certified: "false"
containerImage: docker.io/grafana/loki-operator:0.6.2
createdAt: "2024-10-18T09:16:01Z"
createdAt: "2024-10-21T11:24:51Z"
description: The Community Loki Operator provides Kubernetes native deployment
and management of Loki and related logging components.
operators.operatorframework.io/builder: operator-sdk-unknown
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
repository: https://github.com/grafana/loki/tree/main/operator
support: Grafana Loki SIG Operator
labels:
@@ -178,8 +178,9 @@ spec:
- description: List of groups for alerting rules.
displayName: Groups
path: groups
- description: Interval defines the time interval between evaluation of the
given alerting rule.
- description: |-
Interval defines the time interval between evaluation of the given
alerting rule.
displayName: Evaluation Interval
path: groups[0].interval
- description: Limit defines the number of alerts an alerting rule can produce.
@@ -201,14 +202,15 @@ spec:
- description: Annotations to add to each alert.
displayName: Annotations
path: groups[0].rules[0].annotations
- description: The LogQL expression to evaluate. Every evaluation cycle this
is evaluated at the current time, and all resultant time series become pending/firing
alerts.
- description: |-
The LogQL expression to evaluate. Every evaluation cycle this is
evaluated at the current time, and all resultant time series become
pending/firing alerts.
displayName: LogQL Expression
path: groups[0].rules[0].expr
- description: Alerts are considered firing once they have been returned for
this long. Alerts which have not yet fired for long enough are considered
pending.
- description: |-
Alerts are considered firing once they have been returned for this long.
Alerts which have not yet fired for long enough are considered pending.
displayName: Firing Threshold
path: groups[0].rules[0].for
- description: Labels to add to each alert.
@@ -265,17 +267,21 @@ spec:
- description: MemberList configuration spec
displayName: Memberlist Config
path: hashRing.memberlist
- description: "EnableIPv6 enables IPv6 support for the memberlist based hash
ring. \n Currently this also forces the instanceAddrType to podIP to avoid
local address lookup for the memberlist."
- description: |-
EnableIPv6 enables IPv6 support for the memberlist based hash ring.
Currently this also forces the instanceAddrType to podIP to avoid local address lookup
for the memberlist.
displayName: Enable IPv6
path: hashRing.memberlist.enableIPv6
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: InstanceAddrType defines the type of address to use to advertise
to the ring. Defaults to the first address from any private network interfaces
of the current pod. Alternatively the public pod IP can be used in case
private networks (RFC 1918 and RFC 6598) are not available.
- description: |-
InstanceAddrType defines the type of address to use to advertise to the ring.
Defaults to the first address from any private network interfaces of the current pod.
Alternatively the public pod IP can be used in case private networks (RFC 1918 and RFC 6598)
are not available.
displayName: Instance Address
path: hashRing.memberlist.instanceAddrType
x-descriptors:
@@ -294,9 +300,10 @@ spec:
- description: Global defines the limits applied globally across the cluster.
displayName: Global Limits
path: limits.global
- description: IngestionBurstSize defines the local rate-limited sample size
per distributor replica. It should be set to the set at least to the maximum
logs size expected in a single push request.
- description: |-
IngestionBurstSize defines the local rate-limited sample size per
distributor replica. It should be set to the set at least to the
maximum logs size expected in a single push request.
displayName: Ingestion Burst Size (in MB)
path: limits.global.ingestion.ingestionBurstSize
x-descriptors:
@@ -306,26 +313,30 @@ spec:
path: limits.global.ingestion.ingestionRate
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxGlobalStreamsPerTenant defines the maximum number of active
streams per tenant, across the cluster.
- description: |-
MaxGlobalStreamsPerTenant defines the maximum number of active streams
per tenant, across the cluster.
displayName: Max Global Streams per Tenant
path: limits.global.ingestion.maxGlobalStreamsPerTenant
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNameLength defines the maximum number of characters allowed
- description: |-
MaxLabelNameLength defines the maximum number of characters allowed
for label keys in log streams.
displayName: Max Label Name Length
path: limits.global.ingestion.maxLabelNameLength
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNamesPerSeries defines the maximum number of label names
per series in each log stream.
- description: |-
MaxLabelNamesPerSeries defines the maximum number of label names per series
in each log stream.
displayName: Max Labels Names per Series
path: limits.global.ingestion.maxLabelNamesPerSeries
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelValueLength defines the maximum number of characters
allowed for label values in log streams.
- description: |-
MaxLabelValueLength defines the maximum number of characters allowed
for label values in log streams.
displayName: Max Label Value Length
path: limits.global.ingestion.maxLabelValueLength
x-descriptors:
@@ -336,8 +347,9 @@ spec:
path: limits.global.ingestion.maxLineSize
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: PerStreamDesiredRate defines the desired ingestion rate per second
that LokiStack should target applying automatic stream sharding. Units MB.
- description: |-
PerStreamDesiredRate defines the desired ingestion rate per second that LokiStack should
target applying automatic stream sharding. Units MB.
displayName: Per Stream Desired Rate (in MB)
path: limits.global.ingestion.perStreamDesiredRate
x-descriptors:
@@ -354,16 +366,19 @@ spec:
path: limits.global.ingestion.perStreamRateLimitBurst
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: IndexedResourceAttributes contains the global configuration for
resource attributes to store them as index labels.
- description: |-
IndexedResourceAttributes contains the global configuration for resource attributes
to store them as index labels.
displayName: Indexed Resource Attributes
path: limits.global.otlp.indexedResourceAttributes
- description: LogAttributes contains the configuration for log attributes to
store them as structured metadata or drop them altogether.
- description: |-
LogAttributes contains the configuration for log attributes
to store them as structured metadata or drop them altogether.
displayName: Log Attributes
path: limits.global.otlp.logAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.logAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -372,39 +387,47 @@ spec:
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.global.otlp.logAttributes[0].regex
- description: ResourceAttributes contains the configuration for resource attributes
- description: |-
ResourceAttributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Resource Attributes
path: limits.global.otlp.resourceAttributes
- description: Attributes contains the configuration for resource attributes
- description: |-
Attributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Attributes
path: limits.global.otlp.resourceAttributes.attributes
- description: Action defines the indexing action for the selected resoure attributes.
They can be either indexed as labels, added to structured metadata or drop
altogether.
- description: |-
Action defines the indexing action for the selected resoure attributes. They
can be either indexed as labels, added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.resourceAttributes.attributes[0].action
- description: Attributes is the list of attributes to configure indexing or
drop them altogether.
- description: |-
Attributes is the list of attributes to configure indexing or drop them
altogether.
displayName: Attribute Names
path: limits.global.otlp.resourceAttributes.attributes[0].attributes
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.global.otlp.resourceAttributes.attributes[0].regex
- description: "IgnoreDefaults controls whether to ignore the global configuration
for resource attributes indexed as labels. \n If IgnoreDefaults is true,
then this spec needs to contain at least one mapping to a index label."
- description: |-
IgnoreDefaults controls whether to ignore the global configuration for resource attributes
indexed as labels.
If IgnoreDefaults is true, then this spec needs to contain at least one mapping to a index label.
displayName: Ignore Global Defaults
path: limits.global.otlp.resourceAttributes.ignoreDefaults
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: ScopeAttributes contains the configuration for scope attributes
- description: |-
ScopeAttributes contains the configuration for scope attributes
to store them as structured metadata or drop them altogether.
displayName: Scope Attributes
path: limits.global.otlp.scopeAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.scopeAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -418,20 +441,23 @@ spec:
path: limits.global.queries.cardinalityLimit
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxChunksPerQuery defines the maximum number of chunks that can
be fetched by a single query.
- description: |-
MaxChunksPerQuery defines the maximum number of chunks
that can be fetched by a single query.
displayName: Max Chunk per Query
path: limits.global.queries.maxChunksPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxEntriesLimitsPerQuery defines the maximum number of log entries
- description: |-
MaxEntriesLimitsPerQuery defines the maximum number of log entries
that will be returned for a query.
displayName: Max Entries Limit per Query
path: limits.global.queries.maxEntriesLimitPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxQuerySeries defines the maximum of unique series that is returned
by a metric query.
- description: |-
MaxQuerySeries defines the maximum of unique series
that is returned by a metric query.
displayName: Max Query Series
path: limits.global.queries.maxQuerySeries
x-descriptors:
@@ -449,9 +475,10 @@ spec:
- description: Tenants defines the limits applied per tenant.
displayName: Limits per Tenant
path: limits.tenants
- description: IngestionBurstSize defines the local rate-limited sample size
per distributor replica. It should be set to the set at least to the maximum
logs size expected in a single push request.
- description: |-
IngestionBurstSize defines the local rate-limited sample size per
distributor replica. It should be set to the set at least to the
maximum logs size expected in a single push request.
displayName: Ingestion Burst Size (in MB)
path: limits.tenants.ingestion.ingestionBurstSize
x-descriptors:
@@ -461,26 +488,30 @@ spec:
path: limits.tenants.ingestion.ingestionRate
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxGlobalStreamsPerTenant defines the maximum number of active
streams per tenant, across the cluster.
- description: |-
MaxGlobalStreamsPerTenant defines the maximum number of active streams
per tenant, across the cluster.
displayName: Max Global Streams per Tenant
path: limits.tenants.ingestion.maxGlobalStreamsPerTenant
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNameLength defines the maximum number of characters allowed
- description: |-
MaxLabelNameLength defines the maximum number of characters allowed
for label keys in log streams.
displayName: Max Label Name Length
path: limits.tenants.ingestion.maxLabelNameLength
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNamesPerSeries defines the maximum number of label names
per series in each log stream.
- description: |-
MaxLabelNamesPerSeries defines the maximum number of label names per series
in each log stream.
displayName: Max Labels Names per Series
path: limits.tenants.ingestion.maxLabelNamesPerSeries
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelValueLength defines the maximum number of characters
allowed for label values in log streams.
- description: |-
MaxLabelValueLength defines the maximum number of characters allowed
for label values in log streams.
displayName: Max Label Value Length
path: limits.tenants.ingestion.maxLabelValueLength
x-descriptors:
@@ -491,8 +522,9 @@ spec:
path: limits.tenants.ingestion.maxLineSize
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: PerStreamDesiredRate defines the desired ingestion rate per second
that LokiStack should target applying automatic stream sharding. Units MB.
- description: |-
PerStreamDesiredRate defines the desired ingestion rate per second that LokiStack should
target applying automatic stream sharding. Units MB.
displayName: Per Stream Desired Rate (in MB)
path: limits.tenants.ingestion.perStreamDesiredRate
x-descriptors:
@@ -509,12 +541,14 @@ spec:
path: limits.tenants.ingestion.perStreamRateLimitBurst
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: LogAttributes contains the configuration for log attributes to
store them as structured metadata or drop them altogether.
- description: |-
LogAttributes contains the configuration for log attributes
to store them as structured metadata or drop them altogether.
displayName: Log Attributes
path: limits.tenants.otlp.logAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.logAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -523,39 +557,47 @@ spec:
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.tenants.otlp.logAttributes[0].regex
- description: ResourceAttributes contains the configuration for resource attributes
- description: |-
ResourceAttributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Resource Attributes
path: limits.tenants.otlp.resourceAttributes
- description: Attributes contains the configuration for resource attributes
- description: |-
Attributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Attributes
path: limits.tenants.otlp.resourceAttributes.attributes
- description: Action defines the indexing action for the selected resoure attributes.
They can be either indexed as labels, added to structured metadata or drop
altogether.
- description: |-
Action defines the indexing action for the selected resoure attributes. They
can be either indexed as labels, added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.resourceAttributes.attributes[0].action
- description: Attributes is the list of attributes to configure indexing or
drop them altogether.
- description: |-
Attributes is the list of attributes to configure indexing or drop them
altogether.
displayName: Attribute Names
path: limits.tenants.otlp.resourceAttributes.attributes[0].attributes
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.tenants.otlp.resourceAttributes.attributes[0].regex
- description: "IgnoreDefaults controls whether to ignore the global configuration
for resource attributes indexed as labels. \n If IgnoreDefaults is true,
then this spec needs to contain at least one mapping to a index label."
- description: |-
IgnoreDefaults controls whether to ignore the global configuration for resource attributes
indexed as labels.
If IgnoreDefaults is true, then this spec needs to contain at least one mapping to a index label.
displayName: Ignore Global Defaults
path: limits.tenants.otlp.resourceAttributes.ignoreDefaults
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: ScopeAttributes contains the configuration for scope attributes
- description: |-
ScopeAttributes contains the configuration for scope attributes
to store them as structured metadata or drop them altogether.
displayName: Scope Attributes
path: limits.tenants.otlp.scopeAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.scopeAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -590,20 +632,23 @@ spec:
path: limits.tenants.queries.cardinalityLimit
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxChunksPerQuery defines the maximum number of chunks that can
be fetched by a single query.
- description: |-
MaxChunksPerQuery defines the maximum number of chunks
that can be fetched by a single query.
displayName: Max Chunk per Query
path: limits.tenants.queries.maxChunksPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxEntriesLimitsPerQuery defines the maximum number of log entries
- description: |-
MaxEntriesLimitsPerQuery defines the maximum number of log entries
that will be returned for a query.
displayName: Max Entries Limit per Query
path: limits.tenants.queries.maxEntriesLimitPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxQuerySeries defines the maximum of unique series that is returned
by a metric query.
- description: |-
MaxQuerySeries defines the maximum of unique series
that is returned by a metric query.
displayName: Max Query Series
path: limits.tenants.queries.maxQuerySeries
x-descriptors:
@@ -618,8 +663,9 @@ spec:
of a query request.
displayName: Query Timeout
path: limits.tenants.queries.queryTimeout
- description: ManagementState defines if the CR should be managed by the operator
or not. Default is managed.
- description: |-
ManagementState defines if the CR should be managed by the operator or not.
Default is managed.
displayName: Management State
path: managementState
x-descriptors:
@@ -646,9 +692,9 @@ spec:
path: replication.factor
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: 'Zones defines an array of ZoneSpec that the scheduler will try
to satisfy. IMPORTANT: Make sure that the replication factor defined is
less than or equal to the number of available zones.'
- description: |-
Zones defines an array of ZoneSpec that the scheduler will try to satisfy.
IMPORTANT: Make sure that the replication factor defined is less than or equal to the number of available zones.
displayName: Zones Spec
path: replication.zones
- description: MaxSkew describes the maximum degree to which Pods can be unevenly
@@ -661,9 +707,9 @@ spec:
labels.
displayName: Topology Key
path: replication.zones[0].topologyKey
- description: 'Deprecated: Please use replication.factor instead. This field
will be removed in future versions of this CRD. ReplicationFactor defines
the policy for log stream replication.'
- description: |-
Deprecated: Please use replication.factor instead. This field will be removed in future versions of this CRD.
ReplicationFactor defines the policy for log stream replication.
displayName: Replication Factor
path: replicationFactor
x-descriptors:
@@ -678,11 +724,13 @@ spec:
path: rules.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: Namespaces to be selected for PrometheusRules discovery. If unspecified,
only the same namespace as the LokiStack object is in is used.
- description: |-
Namespaces to be selected for PrometheusRules discovery. If unspecified, only
the same namespace as the LokiStack object is in is used.
displayName: Namespace Selector
path: rules.namespaceSelector
- description: A selector to select which LokiRules to mount for loading alerting/recording
- description: |-
A selector to select which LokiRules to mount for loading alerting/recording
rules from.
displayName: Selector
path: rules.selector
@@ -722,13 +770,15 @@ spec:
- description: TLS configuration for reaching the object storage endpoint.
displayName: TLS Config
path: storage.tls
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: storage.tls.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: storage.tls.caName
x-descriptors:
@@ -748,8 +798,9 @@ spec:
- description: Compactor defines the compaction component spec.
displayName: Compactor pods
path: template.compactor
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.compactor.podAntiAffinity
x-descriptors:
@@ -762,8 +813,9 @@ spec:
- description: Distributor defines the distributor component spec.
displayName: Distributor pods
path: template.distributor
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.distributor.podAntiAffinity
x-descriptors:
@@ -776,8 +828,9 @@ spec:
- description: Gateway defines the lokistack gateway component spec.
displayName: Gateway pods
path: template.gateway
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.gateway.podAntiAffinity
x-descriptors:
@@ -790,8 +843,9 @@ spec:
- description: IndexGateway defines the index gateway component spec.
displayName: Index Gateway pods
path: template.indexGateway
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.indexGateway.podAntiAffinity
x-descriptors:
@@ -804,8 +858,9 @@ spec:
- description: Ingester defines the ingester component spec.
displayName: Ingester pods
path: template.ingester
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.ingester.podAntiAffinity
x-descriptors:
@@ -818,8 +873,9 @@ spec:
- description: Querier defines the querier component spec.
displayName: Querier pods
path: template.querier
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.querier.podAntiAffinity
x-descriptors:
@@ -832,8 +888,9 @@ spec:
- description: QueryFrontend defines the query frontend component spec.
displayName: Query Frontend pods
path: template.queryFrontend
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.queryFrontend.podAntiAffinity
x-descriptors:
@@ -846,8 +903,9 @@ spec:
- description: Ruler defines the ruler component spec.
displayName: Ruler pods
path: template.ruler
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.ruler.podAntiAffinity
x-descriptors:
@@ -871,13 +929,15 @@ spec:
- description: CA defines the spec for the custom CA for tenant's authentication.
displayName: CA ConfigMap
path: tenants.authentication[0].mTLS.ca
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: tenants.authentication[0].mTLS.ca.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: tenants.authentication[0].mTLS.ca.caName
x-descriptors:
@@ -888,13 +948,15 @@ spec:
- description: IssuerCA defines the spec for the issuer CA for tenant's authentication.
displayName: IssuerCA ConfigMap
path: tenants.authentication[0].oidc.issuerCA
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: tenants.authentication[0].oidc.issuerCA.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: tenants.authentication[0].oidc.issuerCA.caName
x-descriptors:
@@ -950,10 +1012,15 @@ spec:
- description: Openshift defines the configuration specific to Openshift modes.
displayName: Openshift
path: tenants.openshift
- description: "AdminGroups defines a list of groups, whose members are considered
to have admin-privileges by the Loki Operator. Setting this to an empty
array disables admin groups. \n By default the following groups are considered
admin-groups: - system:cluster-admins - cluster-admin - dedicated-admin"
- description: |-
AdminGroups defines a list of groups, whose members are considered to have admin-privileges by the Loki Operator.
Setting this to an empty array disables admin groups.
By default the following groups are considered admin-groups:
- system:cluster-admins
- cluster-admin
- dedicated-admin
displayName: Admin Groups
path: tenants.openshift.adminGroups
statusDescriptors:
@@ -1019,8 +1086,9 @@ spec:
- description: List of groups for recording rules.
displayName: Groups
path: groups
- description: Interval defines the time interval between evaluation of the
given recoding rule.
- description: |-
Interval defines the time interval between evaluation of the given
recoding rule.
displayName: Evaluation Interval
path: groups[0].interval
- description: Limit defines the number of series a recording rule can produce.
@@ -1036,9 +1104,10 @@ spec:
- description: Rules defines a list of recording rules
displayName: Rules
path: groups[0].rules
- description: The LogQL expression to evaluate. Every evaluation cycle this
is evaluated at the current time, and all resultant time series become pending/firing
alerts.
- description: |-
The LogQL expression to evaluate. Every evaluation cycle this is
evaluated at the current time, and all resultant time series become
pending/firing alerts.
displayName: LogQL Expression
path: groups[0].rules[0].expr
- description: Labels to add to each recording rule.
@@ -1141,9 +1210,10 @@ spec:
path: alertmanager.enableV2
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: List of AlertManager URLs to send notifications to. Each Alertmanager
URL is treated as a separate group in the configuration. Multiple Alertmanagers
in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery).
- description: |-
List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as
a separate group in the configuration. Multiple Alertmanagers in HA per group can be
supported by using DNS resolution (See EnableDNSDiscovery).
displayName: AlertManager Endpoints
path: alertmanager.endpoints
- description: Additional labels to add to all alerts.
@@ -1163,9 +1233,9 @@ spec:
path: alertmanager.notificationQueue.capacity
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: Minimum duration between alert and restored "for" state. This
is maintained only for alerts with configured "for" time greater than the
grace period.
- description: |-
Minimum duration between alert and restored "for" state. This is maintained
only for alerts with configured "for" time greater than the grace period.
displayName: Firing Grace Period
path: alertmanager.notificationQueue.forGracePeriod
- description: Max time to tolerate outage for restoring "for" state of alert.
@@ -1198,21 +1268,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: alertmanager.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: alertmanager.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: alertmanager.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: alertmanager.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: alertmanager.relabelConfigs[0].targetLabel
@@ -1293,9 +1365,10 @@ spec:
path: overrides.alertmanager.enableV2
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: List of AlertManager URLs to send notifications to. Each Alertmanager
URL is treated as a separate group in the configuration. Multiple Alertmanagers
in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery).
- description: |-
List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as
a separate group in the configuration. Multiple Alertmanagers in HA per group can be
supported by using DNS resolution (See EnableDNSDiscovery).
displayName: AlertManager Endpoints
path: overrides.alertmanager.endpoints
- description: Additional labels to add to all alerts.
@@ -1315,9 +1388,9 @@ spec:
path: overrides.alertmanager.notificationQueue.capacity
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: Minimum duration between alert and restored "for" state. This
is maintained only for alerts with configured "for" time greater than the
grace period.
- description: |-
Minimum duration between alert and restored "for" state. This is maintained
only for alerts with configured "for" time greater than the grace period.
displayName: Firing Grace Period
path: overrides.alertmanager.notificationQueue.forGracePeriod
- description: Max time to tolerate outage for restoring "for" state of alert.
@@ -1350,21 +1423,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: overrides.alertmanager.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: overrides.alertmanager.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: overrides.alertmanager.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: overrides.alertmanager.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: overrides.alertmanager.relabelConfigs[0].targetLabel
@@ -1426,21 +1501,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: remoteWrite.client.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: remoteWrite.client.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: remoteWrite.client.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: remoteWrite.client.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: remoteWrite.client.relabelConfigs[0].targetLabel
@@ -2,6 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
cert-manager.io/inject-ca-from: loki-operator/loki-operator-serving-cert
controller-gen.kubebuilder.io/version: v0.16.3
creationTimestamp: null
labels:
@@ -2,6 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
cert-manager.io/inject-ca-from: loki-operator/loki-operator-serving-cert
controller-gen.kubebuilder.io/version: v0.16.3
creationTimestamp: null
labels:
@@ -2,6 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
cert-manager.io/inject-ca-from: loki-operator/loki-operator-serving-cert
controller-gen.kubebuilder.io/version: v0.16.3
creationTimestamp: null
labels:
@@ -2,6 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
cert-manager.io/inject-ca-from: loki-operator/loki-operator-serving-cert
controller-gen.kubebuilder.io/version: v0.16.3
creationTimestamp: null
labels:
@@ -8,7 +8,7 @@ annotations:
operators.operatorframework.io.bundle.channel.default.v1: alpha
operators.operatorframework.io.metrics.builder: operator-sdk-unknown
operators.operatorframework.io.metrics.mediatype.v1: metrics+v1
operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3
operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4
# Annotations for testing.
operators.operatorframework.io.test.mediatype.v1: scorecard+v1
+1 -1
View File
@@ -9,7 +9,7 @@ LABEL operators.operatorframework.io.bundle.channels.v1=stable
LABEL operators.operatorframework.io.bundle.channel.default.v1=stable
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-unknown
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v3
LABEL operators.operatorframework.io.metrics.project_layout=go.kubebuilder.io/v4
# Labels for testing.
LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1
@@ -150,7 +150,7 @@ metadata:
categories: OpenShift Optional, Logging & Tracing
certified: "false"
containerImage: quay.io/openshift-logging/loki-operator:0.1.0
createdAt: "2024-10-18T09:16:03Z"
createdAt: "2024-10-21T11:24:54Z"
description: |
The Loki Operator for OCP provides a means for configuring and managing a Loki stack for cluster logging.
## Prerequisites and Requirements
@@ -173,7 +173,7 @@ metadata:
operators.openshift.io/valid-subscription: '["OpenShift Container Platform", "OpenShift
Platform Plus"]'
operators.operatorframework.io/builder: operator-sdk-unknown
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
operators.operatorframework.io/project_layout: go.kubebuilder.io/v4
support: AOS Cluster Logging
labels:
operatorframework.io/arch.amd64: supported
@@ -198,8 +198,9 @@ spec:
- description: List of groups for alerting rules.
displayName: Groups
path: groups
- description: Interval defines the time interval between evaluation of the
given alerting rule.
- description: |-
Interval defines the time interval between evaluation of the given
alerting rule.
displayName: Evaluation Interval
path: groups[0].interval
- description: Limit defines the number of alerts an alerting rule can produce.
@@ -221,14 +222,15 @@ spec:
- description: Annotations to add to each alert.
displayName: Annotations
path: groups[0].rules[0].annotations
- description: The LogQL expression to evaluate. Every evaluation cycle this
is evaluated at the current time, and all resultant time series become pending/firing
alerts.
- description: |-
The LogQL expression to evaluate. Every evaluation cycle this is
evaluated at the current time, and all resultant time series become
pending/firing alerts.
displayName: LogQL Expression
path: groups[0].rules[0].expr
- description: Alerts are considered firing once they have been returned for
this long. Alerts which have not yet fired for long enough are considered
pending.
- description: |-
Alerts are considered firing once they have been returned for this long.
Alerts which have not yet fired for long enough are considered pending.
displayName: Firing Threshold
path: groups[0].rules[0].for
- description: Labels to add to each alert.
@@ -285,17 +287,21 @@ spec:
- description: MemberList configuration spec
displayName: Memberlist Config
path: hashRing.memberlist
- description: "EnableIPv6 enables IPv6 support for the memberlist based hash
ring. \n Currently this also forces the instanceAddrType to podIP to avoid
local address lookup for the memberlist."
- description: |-
EnableIPv6 enables IPv6 support for the memberlist based hash ring.
Currently this also forces the instanceAddrType to podIP to avoid local address lookup
for the memberlist.
displayName: Enable IPv6
path: hashRing.memberlist.enableIPv6
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: InstanceAddrType defines the type of address to use to advertise
to the ring. Defaults to the first address from any private network interfaces
of the current pod. Alternatively the public pod IP can be used in case
private networks (RFC 1918 and RFC 6598) are not available.
- description: |-
InstanceAddrType defines the type of address to use to advertise to the ring.
Defaults to the first address from any private network interfaces of the current pod.
Alternatively the public pod IP can be used in case private networks (RFC 1918 and RFC 6598)
are not available.
displayName: Instance Address
path: hashRing.memberlist.instanceAddrType
x-descriptors:
@@ -314,9 +320,10 @@ spec:
- description: Global defines the limits applied globally across the cluster.
displayName: Global Limits
path: limits.global
- description: IngestionBurstSize defines the local rate-limited sample size
per distributor replica. It should be set to the set at least to the maximum
logs size expected in a single push request.
- description: |-
IngestionBurstSize defines the local rate-limited sample size per
distributor replica. It should be set to the set at least to the
maximum logs size expected in a single push request.
displayName: Ingestion Burst Size (in MB)
path: limits.global.ingestion.ingestionBurstSize
x-descriptors:
@@ -326,26 +333,30 @@ spec:
path: limits.global.ingestion.ingestionRate
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxGlobalStreamsPerTenant defines the maximum number of active
streams per tenant, across the cluster.
- description: |-
MaxGlobalStreamsPerTenant defines the maximum number of active streams
per tenant, across the cluster.
displayName: Max Global Streams per Tenant
path: limits.global.ingestion.maxGlobalStreamsPerTenant
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNameLength defines the maximum number of characters allowed
- description: |-
MaxLabelNameLength defines the maximum number of characters allowed
for label keys in log streams.
displayName: Max Label Name Length
path: limits.global.ingestion.maxLabelNameLength
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNamesPerSeries defines the maximum number of label names
per series in each log stream.
- description: |-
MaxLabelNamesPerSeries defines the maximum number of label names per series
in each log stream.
displayName: Max Labels Names per Series
path: limits.global.ingestion.maxLabelNamesPerSeries
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelValueLength defines the maximum number of characters
allowed for label values in log streams.
- description: |-
MaxLabelValueLength defines the maximum number of characters allowed
for label values in log streams.
displayName: Max Label Value Length
path: limits.global.ingestion.maxLabelValueLength
x-descriptors:
@@ -356,8 +367,9 @@ spec:
path: limits.global.ingestion.maxLineSize
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: PerStreamDesiredRate defines the desired ingestion rate per second
that LokiStack should target applying automatic stream sharding. Units MB.
- description: |-
PerStreamDesiredRate defines the desired ingestion rate per second that LokiStack should
target applying automatic stream sharding. Units MB.
displayName: Per Stream Desired Rate (in MB)
path: limits.global.ingestion.perStreamDesiredRate
x-descriptors:
@@ -374,16 +386,19 @@ spec:
path: limits.global.ingestion.perStreamRateLimitBurst
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: IndexedResourceAttributes contains the global configuration for
resource attributes to store them as index labels.
- description: |-
IndexedResourceAttributes contains the global configuration for resource attributes
to store them as index labels.
displayName: Indexed Resource Attributes
path: limits.global.otlp.indexedResourceAttributes
- description: LogAttributes contains the configuration for log attributes to
store them as structured metadata or drop them altogether.
- description: |-
LogAttributes contains the configuration for log attributes
to store them as structured metadata or drop them altogether.
displayName: Log Attributes
path: limits.global.otlp.logAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.logAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -392,39 +407,47 @@ spec:
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.global.otlp.logAttributes[0].regex
- description: ResourceAttributes contains the configuration for resource attributes
- description: |-
ResourceAttributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Resource Attributes
path: limits.global.otlp.resourceAttributes
- description: Attributes contains the configuration for resource attributes
- description: |-
Attributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Attributes
path: limits.global.otlp.resourceAttributes.attributes
- description: Action defines the indexing action for the selected resoure attributes.
They can be either indexed as labels, added to structured metadata or drop
altogether.
- description: |-
Action defines the indexing action for the selected resoure attributes. They
can be either indexed as labels, added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.resourceAttributes.attributes[0].action
- description: Attributes is the list of attributes to configure indexing or
drop them altogether.
- description: |-
Attributes is the list of attributes to configure indexing or drop them
altogether.
displayName: Attribute Names
path: limits.global.otlp.resourceAttributes.attributes[0].attributes
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.global.otlp.resourceAttributes.attributes[0].regex
- description: "IgnoreDefaults controls whether to ignore the global configuration
for resource attributes indexed as labels. \n If IgnoreDefaults is true,
then this spec needs to contain at least one mapping to a index label."
- description: |-
IgnoreDefaults controls whether to ignore the global configuration for resource attributes
indexed as labels.
If IgnoreDefaults is true, then this spec needs to contain at least one mapping to a index label.
displayName: Ignore Global Defaults
path: limits.global.otlp.resourceAttributes.ignoreDefaults
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: ScopeAttributes contains the configuration for scope attributes
- description: |-
ScopeAttributes contains the configuration for scope attributes
to store them as structured metadata or drop them altogether.
displayName: Scope Attributes
path: limits.global.otlp.scopeAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.global.otlp.scopeAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -438,20 +461,23 @@ spec:
path: limits.global.queries.cardinalityLimit
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxChunksPerQuery defines the maximum number of chunks that can
be fetched by a single query.
- description: |-
MaxChunksPerQuery defines the maximum number of chunks
that can be fetched by a single query.
displayName: Max Chunk per Query
path: limits.global.queries.maxChunksPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxEntriesLimitsPerQuery defines the maximum number of log entries
- description: |-
MaxEntriesLimitsPerQuery defines the maximum number of log entries
that will be returned for a query.
displayName: Max Entries Limit per Query
path: limits.global.queries.maxEntriesLimitPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxQuerySeries defines the maximum of unique series that is returned
by a metric query.
- description: |-
MaxQuerySeries defines the maximum of unique series
that is returned by a metric query.
displayName: Max Query Series
path: limits.global.queries.maxQuerySeries
x-descriptors:
@@ -469,9 +495,10 @@ spec:
- description: Tenants defines the limits applied per tenant.
displayName: Limits per Tenant
path: limits.tenants
- description: IngestionBurstSize defines the local rate-limited sample size
per distributor replica. It should be set to the set at least to the maximum
logs size expected in a single push request.
- description: |-
IngestionBurstSize defines the local rate-limited sample size per
distributor replica. It should be set to the set at least to the
maximum logs size expected in a single push request.
displayName: Ingestion Burst Size (in MB)
path: limits.tenants.ingestion.ingestionBurstSize
x-descriptors:
@@ -481,26 +508,30 @@ spec:
path: limits.tenants.ingestion.ingestionRate
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxGlobalStreamsPerTenant defines the maximum number of active
streams per tenant, across the cluster.
- description: |-
MaxGlobalStreamsPerTenant defines the maximum number of active streams
per tenant, across the cluster.
displayName: Max Global Streams per Tenant
path: limits.tenants.ingestion.maxGlobalStreamsPerTenant
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNameLength defines the maximum number of characters allowed
- description: |-
MaxLabelNameLength defines the maximum number of characters allowed
for label keys in log streams.
displayName: Max Label Name Length
path: limits.tenants.ingestion.maxLabelNameLength
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelNamesPerSeries defines the maximum number of label names
per series in each log stream.
- description: |-
MaxLabelNamesPerSeries defines the maximum number of label names per series
in each log stream.
displayName: Max Labels Names per Series
path: limits.tenants.ingestion.maxLabelNamesPerSeries
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxLabelValueLength defines the maximum number of characters
allowed for label values in log streams.
- description: |-
MaxLabelValueLength defines the maximum number of characters allowed
for label values in log streams.
displayName: Max Label Value Length
path: limits.tenants.ingestion.maxLabelValueLength
x-descriptors:
@@ -511,8 +542,9 @@ spec:
path: limits.tenants.ingestion.maxLineSize
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: PerStreamDesiredRate defines the desired ingestion rate per second
that LokiStack should target applying automatic stream sharding. Units MB.
- description: |-
PerStreamDesiredRate defines the desired ingestion rate per second that LokiStack should
target applying automatic stream sharding. Units MB.
displayName: Per Stream Desired Rate (in MB)
path: limits.tenants.ingestion.perStreamDesiredRate
x-descriptors:
@@ -529,12 +561,14 @@ spec:
path: limits.tenants.ingestion.perStreamRateLimitBurst
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: LogAttributes contains the configuration for log attributes to
store them as structured metadata or drop them altogether.
- description: |-
LogAttributes contains the configuration for log attributes
to store them as structured metadata or drop them altogether.
displayName: Log Attributes
path: limits.tenants.otlp.logAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.logAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -543,39 +577,47 @@ spec:
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.tenants.otlp.logAttributes[0].regex
- description: ResourceAttributes contains the configuration for resource attributes
- description: |-
ResourceAttributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Resource Attributes
path: limits.tenants.otlp.resourceAttributes
- description: Attributes contains the configuration for resource attributes
- description: |-
Attributes contains the configuration for resource attributes
to store them as index labels or structured metadata or drop them altogether.
displayName: Attributes
path: limits.tenants.otlp.resourceAttributes.attributes
- description: Action defines the indexing action for the selected resoure attributes.
They can be either indexed as labels, added to structured metadata or drop
altogether.
- description: |-
Action defines the indexing action for the selected resoure attributes. They
can be either indexed as labels, added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.resourceAttributes.attributes[0].action
- description: Attributes is the list of attributes to configure indexing or
drop them altogether.
- description: |-
Attributes is the list of attributes to configure indexing or drop them
altogether.
displayName: Attribute Names
path: limits.tenants.otlp.resourceAttributes.attributes[0].attributes
- description: Regex allows choosing the attributes by matching a regular expression.
displayName: Regular Expression
path: limits.tenants.otlp.resourceAttributes.attributes[0].regex
- description: "IgnoreDefaults controls whether to ignore the global configuration
for resource attributes indexed as labels. \n If IgnoreDefaults is true,
then this spec needs to contain at least one mapping to a index label."
- description: |-
IgnoreDefaults controls whether to ignore the global configuration for resource attributes
indexed as labels.
If IgnoreDefaults is true, then this spec needs to contain at least one mapping to a index label.
displayName: Ignore Global Defaults
path: limits.tenants.otlp.resourceAttributes.ignoreDefaults
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: ScopeAttributes contains the configuration for scope attributes
- description: |-
ScopeAttributes contains the configuration for scope attributes
to store them as structured metadata or drop them altogether.
displayName: Scope Attributes
path: limits.tenants.otlp.scopeAttributes
- description: Action defines the indexing action for the selected attributes.
They can be either added to structured metadata or drop altogether.
- description: |-
Action defines the indexing action for the selected attributes. They
can be either added to structured metadata or drop altogether.
displayName: Action
path: limits.tenants.otlp.scopeAttributes[0].action
- description: Attributes allows choosing the attributes by listing their names.
@@ -610,20 +652,23 @@ spec:
path: limits.tenants.queries.cardinalityLimit
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxChunksPerQuery defines the maximum number of chunks that can
be fetched by a single query.
- description: |-
MaxChunksPerQuery defines the maximum number of chunks
that can be fetched by a single query.
displayName: Max Chunk per Query
path: limits.tenants.queries.maxChunksPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxEntriesLimitsPerQuery defines the maximum number of log entries
- description: |-
MaxEntriesLimitsPerQuery defines the maximum number of log entries
that will be returned for a query.
displayName: Max Entries Limit per Query
path: limits.tenants.queries.maxEntriesLimitPerQuery
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: MaxQuerySeries defines the maximum of unique series that is returned
by a metric query.
- description: |-
MaxQuerySeries defines the maximum of unique series
that is returned by a metric query.
displayName: Max Query Series
path: limits.tenants.queries.maxQuerySeries
x-descriptors:
@@ -638,8 +683,9 @@ spec:
of a query request.
displayName: Query Timeout
path: limits.tenants.queries.queryTimeout
- description: ManagementState defines if the CR should be managed by the operator
or not. Default is managed.
- description: |-
ManagementState defines if the CR should be managed by the operator or not.
Default is managed.
displayName: Management State
path: managementState
x-descriptors:
@@ -666,9 +712,9 @@ spec:
path: replication.factor
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: 'Zones defines an array of ZoneSpec that the scheduler will try
to satisfy. IMPORTANT: Make sure that the replication factor defined is
less than or equal to the number of available zones.'
- description: |-
Zones defines an array of ZoneSpec that the scheduler will try to satisfy.
IMPORTANT: Make sure that the replication factor defined is less than or equal to the number of available zones.
displayName: Zones Spec
path: replication.zones
- description: MaxSkew describes the maximum degree to which Pods can be unevenly
@@ -681,9 +727,9 @@ spec:
labels.
displayName: Topology Key
path: replication.zones[0].topologyKey
- description: 'Deprecated: Please use replication.factor instead. This field
will be removed in future versions of this CRD. ReplicationFactor defines
the policy for log stream replication.'
- description: |-
Deprecated: Please use replication.factor instead. This field will be removed in future versions of this CRD.
ReplicationFactor defines the policy for log stream replication.
displayName: Replication Factor
path: replicationFactor
x-descriptors:
@@ -698,11 +744,13 @@ spec:
path: rules.enabled
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: Namespaces to be selected for PrometheusRules discovery. If unspecified,
only the same namespace as the LokiStack object is in is used.
- description: |-
Namespaces to be selected for PrometheusRules discovery. If unspecified, only
the same namespace as the LokiStack object is in is used.
displayName: Namespace Selector
path: rules.namespaceSelector
- description: A selector to select which LokiRules to mount for loading alerting/recording
- description: |-
A selector to select which LokiRules to mount for loading alerting/recording
rules from.
displayName: Selector
path: rules.selector
@@ -742,13 +790,15 @@ spec:
- description: TLS configuration for reaching the object storage endpoint.
displayName: TLS Config
path: storage.tls
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: storage.tls.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: storage.tls.caName
x-descriptors:
@@ -768,8 +818,9 @@ spec:
- description: Compactor defines the compaction component spec.
displayName: Compactor pods
path: template.compactor
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.compactor.podAntiAffinity
x-descriptors:
@@ -782,8 +833,9 @@ spec:
- description: Distributor defines the distributor component spec.
displayName: Distributor pods
path: template.distributor
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.distributor.podAntiAffinity
x-descriptors:
@@ -796,8 +848,9 @@ spec:
- description: Gateway defines the lokistack gateway component spec.
displayName: Gateway pods
path: template.gateway
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.gateway.podAntiAffinity
x-descriptors:
@@ -810,8 +863,9 @@ spec:
- description: IndexGateway defines the index gateway component spec.
displayName: Index Gateway pods
path: template.indexGateway
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.indexGateway.podAntiAffinity
x-descriptors:
@@ -824,8 +878,9 @@ spec:
- description: Ingester defines the ingester component spec.
displayName: Ingester pods
path: template.ingester
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.ingester.podAntiAffinity
x-descriptors:
@@ -838,8 +893,9 @@ spec:
- description: Querier defines the querier component spec.
displayName: Querier pods
path: template.querier
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.querier.podAntiAffinity
x-descriptors:
@@ -852,8 +908,9 @@ spec:
- description: QueryFrontend defines the query frontend component spec.
displayName: Query Frontend pods
path: template.queryFrontend
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.queryFrontend.podAntiAffinity
x-descriptors:
@@ -866,8 +923,9 @@ spec:
- description: Ruler defines the ruler component spec.
displayName: Ruler pods
path: template.ruler
- description: PodAntiAffinity defines the pod anti affinity scheduling rules
to schedule pods of a component.
- description: |-
PodAntiAffinity defines the pod anti affinity scheduling rules to schedule pods
of a component.
displayName: PodAntiAffinity
path: template.ruler.podAntiAffinity
x-descriptors:
@@ -891,13 +949,15 @@ spec:
- description: CA defines the spec for the custom CA for tenant's authentication.
displayName: CA ConfigMap
path: tenants.authentication[0].mTLS.ca
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: tenants.authentication[0].mTLS.ca.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: tenants.authentication[0].mTLS.ca.caName
x-descriptors:
@@ -908,13 +968,15 @@ spec:
- description: IssuerCA defines the spec for the issuer CA for tenant's authentication.
displayName: IssuerCA ConfigMap
path: tenants.authentication[0].oidc.issuerCA
- description: Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource. If
empty, it defaults to "service-ca.crt".
- description: |-
Key is the data key of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
If empty, it defaults to "service-ca.crt".
displayName: CA ConfigMap Key
path: tenants.authentication[0].oidc.issuerCA.caKey
- description: CA is the name of a ConfigMap containing a CA certificate. It
needs to be in the same namespace as the LokiStack custom resource.
- description: |-
CA is the name of a ConfigMap containing a CA certificate.
It needs to be in the same namespace as the LokiStack custom resource.
displayName: CA ConfigMap Name
path: tenants.authentication[0].oidc.issuerCA.caName
x-descriptors:
@@ -970,10 +1032,15 @@ spec:
- description: Openshift defines the configuration specific to Openshift modes.
displayName: Openshift
path: tenants.openshift
- description: "AdminGroups defines a list of groups, whose members are considered
to have admin-privileges by the Loki Operator. Setting this to an empty
array disables admin groups. \n By default the following groups are considered
admin-groups: - system:cluster-admins - cluster-admin - dedicated-admin"
- description: |-
AdminGroups defines a list of groups, whose members are considered to have admin-privileges by the Loki Operator.
Setting this to an empty array disables admin groups.
By default the following groups are considered admin-groups:
- system:cluster-admins
- cluster-admin
- dedicated-admin
displayName: Admin Groups
path: tenants.openshift.adminGroups
statusDescriptors:
@@ -1039,8 +1106,9 @@ spec:
- description: List of groups for recording rules.
displayName: Groups
path: groups
- description: Interval defines the time interval between evaluation of the
given recoding rule.
- description: |-
Interval defines the time interval between evaluation of the given
recoding rule.
displayName: Evaluation Interval
path: groups[0].interval
- description: Limit defines the number of series a recording rule can produce.
@@ -1056,9 +1124,10 @@ spec:
- description: Rules defines a list of recording rules
displayName: Rules
path: groups[0].rules
- description: The LogQL expression to evaluate. Every evaluation cycle this
is evaluated at the current time, and all resultant time series become pending/firing
alerts.
- description: |-
The LogQL expression to evaluate. Every evaluation cycle this is
evaluated at the current time, and all resultant time series become
pending/firing alerts.
displayName: LogQL Expression
path: groups[0].rules[0].expr
- description: Labels to add to each recording rule.
@@ -1161,9 +1230,10 @@ spec:
path: alertmanager.enableV2
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: List of AlertManager URLs to send notifications to. Each Alertmanager
URL is treated as a separate group in the configuration. Multiple Alertmanagers
in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery).
- description: |-
List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as
a separate group in the configuration. Multiple Alertmanagers in HA per group can be
supported by using DNS resolution (See EnableDNSDiscovery).
displayName: AlertManager Endpoints
path: alertmanager.endpoints
- description: Additional labels to add to all alerts.
@@ -1183,9 +1253,9 @@ spec:
path: alertmanager.notificationQueue.capacity
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: Minimum duration between alert and restored "for" state. This
is maintained only for alerts with configured "for" time greater than the
grace period.
- description: |-
Minimum duration between alert and restored "for" state. This is maintained
only for alerts with configured "for" time greater than the grace period.
displayName: Firing Grace Period
path: alertmanager.notificationQueue.forGracePeriod
- description: Max time to tolerate outage for restoring "for" state of alert.
@@ -1218,21 +1288,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: alertmanager.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: alertmanager.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: alertmanager.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: alertmanager.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: alertmanager.relabelConfigs[0].targetLabel
@@ -1313,9 +1385,10 @@ spec:
path: overrides.alertmanager.enableV2
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:booleanSwitch
- description: List of AlertManager URLs to send notifications to. Each Alertmanager
URL is treated as a separate group in the configuration. Multiple Alertmanagers
in HA per group can be supported by using DNS resolution (See EnableDNSDiscovery).
- description: |-
List of AlertManager URLs to send notifications to. Each Alertmanager URL is treated as
a separate group in the configuration. Multiple Alertmanagers in HA per group can be
supported by using DNS resolution (See EnableDNSDiscovery).
displayName: AlertManager Endpoints
path: overrides.alertmanager.endpoints
- description: Additional labels to add to all alerts.
@@ -1335,9 +1408,9 @@ spec:
path: overrides.alertmanager.notificationQueue.capacity
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:number
- description: Minimum duration between alert and restored "for" state. This
is maintained only for alerts with configured "for" time greater than the
grace period.
- description: |-
Minimum duration between alert and restored "for" state. This is maintained
only for alerts with configured "for" time greater than the grace period.
displayName: Firing Grace Period
path: overrides.alertmanager.notificationQueue.forGracePeriod
- description: Max time to tolerate outage for restoring "for" state of alert.
@@ -1370,21 +1443,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: overrides.alertmanager.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: overrides.alertmanager.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: overrides.alertmanager.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: overrides.alertmanager.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: overrides.alertmanager.relabelConfigs[0].targetLabel
@@ -1446,21 +1521,23 @@ spec:
Default is '(.*)'
displayName: Regex
path: remoteWrite.client.relabelConfigs[0].regex
- description: Replacement value against which a regex replace is performed
if the regular expression matches. Regex capture groups are available. Default
is '$1'
- description: |-
Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1'
displayName: Replacement
path: remoteWrite.client.relabelConfigs[0].replacement
- description: Separator placed between concatenated source label values. default
is ';'.
displayName: Separator
path: remoteWrite.client.relabelConfigs[0].separator
- description: The source labels select values from existing labels. Their content
is concatenated using the configured separator and matched against the configured
regular expression for the replace, keep, and drop actions.
- description: |-
The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions.
displayName: Source Labels
path: remoteWrite.client.relabelConfigs[0].sourceLabels
- description: Label to which the resulting value is written in a replace action.
- description: |-
Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available.
displayName: Target Label
path: remoteWrite.client.relabelConfigs[0].targetLabel
@@ -8,7 +8,7 @@ annotations:
operators.operatorframework.io.bundle.channel.default.v1: stable
operators.operatorframework.io.metrics.builder: operator-sdk-unknown
operators.operatorframework.io.metrics.mediatype.v1: metrics+v1
operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3
operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v4
# Annotations for testing.
operators.operatorframework.io.test.mediatype.v1: scorecard+v1
+1 -1
View File
@@ -12,7 +12,7 @@ import (
openshiftv1 "github.com/openshift/api/config/v1"
"sigs.k8s.io/yaml"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/manifests"
"github.com/grafana/loki/operator/internal/manifests/storage"
@@ -17,11 +17,11 @@ import (
"sigs.k8s.io/controller-runtime/pkg/healthz"
runtimemetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
ctrlconfigv1 "github.com/grafana/loki/operator/apis/config/v1"
ctrlconfigv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
lokiv1beta1 "github.com/grafana/loki/operator/apis/loki/v1beta1"
lokictrl "github.com/grafana/loki/operator/controllers/loki"
"github.com/grafana/loki/operator/internal/config"
lokictrl "github.com/grafana/loki/operator/internal/controller/loki"
"github.com/grafana/loki/operator/internal/metrics"
"github.com/grafana/loki/operator/internal/operator"
"github.com/grafana/loki/operator/internal/validation"
+3 -3
View File
@@ -15,10 +15,10 @@ metadata:
name: serving-cert # this name should match the one appeared in kustomizeconfig.yaml
namespace: system
spec:
# $(SERVICE_NAME) and $(SERVICE_NAMESPACE) will be substituted by kustomize
# SERVICE_NAME_PLACEHOLDER and SERVICE_NAMESPACE_PLACEHOLDER will be substituted by kustomize
dnsNames:
- $(SERVICE_NAME).$(SERVICE_NAMESPACE).svc
- $(SERVICE_NAME).$(SERVICE_NAMESPACE).svc.cluster.local
- SERVICE_NAME_PLACEHOLDER.SERVICE_NAMESPACE_PLACEHOLDER.svc
- SERVICE_NAME_PLACEHOLDER.SERVICE_NAMESPACE_PLACEHOLDER.svc.cluster.local
issuerRef:
kind: Issuer
name: selfsigned-issuer
+9 -5
View File
@@ -1,3 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
# This kustomization.yaml is not intended to be run by itself,
# since it depends on service name and namespace that are out of this kustomize package.
# It should be run by config/default
@@ -8,13 +11,8 @@ resources:
- bases/loki.grafana.com_rulerconfigs.yaml
# +kubebuilder:scaffold:crdkustomizeresource
patchesStrategicMerge:
# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix.
# patches here are for enabling the conversion webhook for each CRD
- patches/webhook_in_lokistacks.yaml
- patches/webhook_in_alertingrules.yaml
- patches/webhook_in_recordingrules.yaml
- patches/webhook_in_rulerconfigs.yaml
# +kubebuilder:scaffold:crdkustomizewebhookpatch
# [CERTMANAGER] To enable webhook, uncomment all the sections with [CERTMANAGER] prefix.
@@ -28,3 +26,9 @@ patchesStrategicMerge:
# the following config is for teaching kustomize how to do kustomization for CRDs.
configurations:
- kustomizeconfig.yaml
patches:
- path: patches/webhook_in_lokistacks.yaml
- path: patches/webhook_in_alertingrules.yaml
- path: patches/webhook_in_recordingrules.yaml
- path: patches/webhook_in_rulerconfigs.yaml
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,3 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./../openshift
@@ -5,26 +8,27 @@ resources:
namespace: kubernetes-operators
labels:
- pairs:
- includeSelectors: true
pairs:
app.kubernetes.io/managed-by: operator-lifecycle-manager
app.kubernetes.io/name: loki-operator
app.kubernetes.io/part-of: loki-operator
app.kubernetes.io/managed-by: operator-lifecycle-manager
includeSelectors: true
- pairs:
app.kubernetes.io/instance: loki-operator-v0.6.2
app.kubernetes.io/version: "0.6.2"
app.kubernetes.io/version: 0.6.2
configMapGenerator:
- files:
- behavior: replace
files:
- controller_manager_config.yaml
name: manager-config
behavior: replace
patchesStrategicMerge:
- manager_related_image_patch.yaml
- prometheus_service_monitor_patch.yaml
images:
- name: controller
newName: docker.io/grafana/loki-operator
newTag: 0.6.2
patches:
- path: manager_related_image_patch.yaml
- path: prometheus_service_monitor_patch.yaml
@@ -1,3 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../crd
- ../../rbac
@@ -16,14 +19,14 @@ namespace: loki-operator
namePrefix: loki-operator-
labels:
- pairs:
- includeSelectors: true
pairs:
app.kubernetes.io/managed-by: operator-lifecycle-manager
app.kubernetes.io/name: loki-operator
app.kubernetes.io/part-of: loki-operator
app.kubernetes.io/managed-by: operator-lifecycle-manager
includeSelectors: true
- pairs:
app.kubernetes.io/instance: loki-operator-v0.6.2
app.kubernetes.io/version: "0.6.2"
app.kubernetes.io/version: 0.6.2
generatorOptions:
disableNameSuffixHash: true
@@ -33,12 +36,6 @@ configMapGenerator:
- controller_manager_config.yaml
name: manager-config
patchesStrategicMerge:
- manager_auth_proxy_patch.yaml
- manager_related_image_patch.yaml
- manager_run_flags_patch.yaml
- manager_webhook_patch.yaml
- webhookcainjection_patch.yaml
images:
- name: controller
@@ -46,31 +43,109 @@ images:
newTag: 0.6.2
# the following config is for teaching kustomize how to do var substitution
vars:
# [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER' prefix.
- name: CERTIFICATE_NAMESPACE # namespace of the certificate CR
objref:
kind: Certificate
group: cert-manager.io
version: v1
name: serving-cert # this name should match the one in certificate.yaml
fieldref:
fieldpath: metadata.namespace
- name: CERTIFICATE_NAME
objref:
kind: Certificate
group: cert-manager.io
version: v1
name: serving-cert # this name should match the one in certificate.yaml
- name: SERVICE_NAMESPACE # namespace of the service
objref:
kind: Service
version: v1
name: webhook-service
fieldref:
fieldpath: metadata.namespace
- name: SERVICE_NAME
objref:
kind: Service
version: v1
name: webhook-service
patches:
- path: manager_auth_proxy_patch.yaml
- path: manager_related_image_patch.yaml
- path: manager_run_flags_patch.yaml
- path: manager_webhook_patch.yaml
- path: webhookcainjection_patch.yaml
# [CERTMANAGER] To enable cert-manager, uncomment all sections with 'CERTMANAGER' prefix.
# Uncomment the following replacements to add the cert-manager CA injection annotations
replacements:
- source: # Add cert-manager annotation to ValidatingWebhookConfiguration, MutatingWebhookConfiguration and CRDs
kind: Certificate
group: cert-manager.io
version: v1
name: serving-cert # this name should match the one in certificate.yaml
fieldPath: .metadata.namespace # namespace of the certificate CR
targets:
- select:
kind: ValidatingWebhookConfiguration
fieldPaths:
- .metadata.annotations.[cert-manager.io/inject-ca-from]
options:
delimiter: '/'
index: 0
create: true
- select:
kind: MutatingWebhookConfiguration
fieldPaths:
- .metadata.annotations.[cert-manager.io/inject-ca-from]
options:
delimiter: '/'
index: 0
create: true
- select:
kind: CustomResourceDefinition
fieldPaths:
- .metadata.annotations.[cert-manager.io/inject-ca-from]
options:
delimiter: '/'
index: 0
create: true
- source:
kind: Certificate
group: cert-manager.io
version: v1
name: serving-cert # this name should match the one in certificate.yaml
fieldPath: .metadata.name
targets:
- select:
kind: ValidatingWebhookConfiguration
fieldPaths:
- .metadata.annotations.[cert-manager.io/inject-ca-from]
options:
delimiter: '/'
index: 1
create: true
- select:
kind: MutatingWebhookConfiguration
fieldPaths:
- .metadata.annotations.[cert-manager.io/inject-ca-from]
options:
delimiter: '/'
index: 1
create: true
- select:
kind: CustomResourceDefinition
fieldPaths:
- .metadata.annotations.[cert-manager.io/inject-ca-from]
options:
delimiter: '/'
index: 1
create: true
- source: # Add cert-manager annotation to the webhook Service
kind: Service
version: v1
name: webhook-service
fieldPath: .metadata.name # namespace of the service
targets:
- select:
kind: Certificate
group: cert-manager.io
version: v1
fieldPaths:
- .spec.dnsNames.0
- .spec.dnsNames.1
options:
delimiter: '.'
index: 0
create: true
- source:
kind: Service
version: v1
name: webhook-service
fieldPath: .metadata.namespace # namespace of the service
targets:
- select:
kind: Certificate
group: cert-manager.io
version: v1
fieldPaths:
- .spec.dnsNames.0
- .spec.dnsNames.1
options:
delimiter: '.'
index: 1
create: true
@@ -1,5 +1,5 @@
# This patch add annotation to admission webhook config and
# the variables $(CERTIFICATE_NAMESPACE) and $(CERTIFICATE_NAME) will be substituted by kustomize.
# the variables CERTIFICATE_NAMESPACE_PLACEHOLDER and CERTIFICATE_NAME_PLACEHOLDER will be substituted by kustomize.
#
# [WEBHOOK] To enable mutating webhook hook, uncomment the following section
#
@@ -8,11 +8,11 @@
# metadata:
# name: mutating-webhook-configuration
# annotations:
# cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME)
# cert-manager.io/inject-ca-from: CERTIFICATE_NAMESPACE_PLACEHOLDER/CERTIFICATE_NAME_PLACEHOLDER
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: validating-webhook-configuration
annotations:
cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME)
cert-manager.io/inject-ca-from: CERTIFICATE_NAMESPACE_PLACEHOLDER/CERTIFICATE_NAME_PLACEHOLDER
@@ -3,5 +3,4 @@ kind: Service
metadata:
annotations:
service.beta.openshift.io/serving-cert-secret-name: loki-operator-metrics
labels:
name: controller-manager-metrics-service
@@ -1,3 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../crd
- ../../rbac
@@ -17,14 +20,14 @@ namespace: openshift-operators-redhat
namePrefix: loki-operator-
labels:
- pairs:
- includeSelectors: true
pairs:
app.kubernetes.io/managed-by: operator-lifecycle-manager
app.kubernetes.io/name: loki-operator
app.kubernetes.io/part-of: cluster-logging
app.kubernetes.io/managed-by: operator-lifecycle-manager
includeSelectors: true
- pairs:
app.kubernetes.io/instance: loki-operator-0.1.0
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/version: 0.1.0
generatorOptions:
disableNameSuffixHash: true
@@ -34,16 +37,17 @@ configMapGenerator:
- controller_manager_config.yaml
name: manager-config
patchesStrategicMerge:
- auth_proxy_service_annotations_patch.yaml
- manager_auth_proxy_patch.yaml
- manager_related_image_patch.yaml
- manager_run_flags_patch.yaml
- manager_security_context_patch.yaml
- manager_webhook_patch.yaml
- prometheus_service_monitor_patch.yaml
images:
- name: controller
newName: quay.io/openshift-logging/loki-operator
newTag: 0.1.0
patches:
- path: auth_proxy_service_annotations_patch.yaml
- path: manager_auth_proxy_patch.yaml
- path: manager_related_image_patch.yaml
- path: manager_run_flags_patch.yaml
- path: manager_security_context_patch.yaml
- path: manager_webhook_patch.yaml
- path: prometheus_service_monitor_patch.yaml
+7 -4
View File
@@ -1,16 +1,19 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- bases/config.yaml
patchesJson6902:
patches:
- path: patches/basic.config.yaml
target:
group: scorecard.operatorframework.io
version: v1alpha3
kind: Configuration
name: config
version: v1alpha3
- path: patches/olm.config.yaml
target:
group: scorecard.operatorframework.io
version: v1alpha3
kind: Configuration
name: config
# +kubebuilder:scaffold:patchesJson6902
version: v1alpha3
@@ -20,6 +20,3 @@ namespace:
group: admissionregistration.k8s.io
path: webhooks/clientConfig/service/namespace
create: true
varReference:
- path: metadata/annotations
+1 -1
View File
@@ -162,7 +162,7 @@ require (
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
)
replace github.com/grafana/loki/operator/apis/loki => ./apis/loki
replace github.com/grafana/loki/operator/apis/loki => ./api/loki
// Replace v2.4.0+incompatible indirect refs with v5.1.1 for compatibility with google.golang.org/grpc >=v1.56.3
replace github.com/sercand/kuberesolver => github.com/sercand/kuberesolver/v5 v5.1.1
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"k8s.io/apiserver/pkg/authentication/user"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
)
var defaultUserInfo = &user.DefaultInfo{Name: "system:lokistacks", Groups: []string{"system:logging"}}
+1 -1
View File
@@ -10,7 +10,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/sets"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
)
func TestBuildAll(t *testing.T) {
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"github.com/openshift/library-go/pkg/crypto"
corev1 "k8s.io/api/core/v1"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
)
// ComponentCertificates is a map of lokistack component names to TLS certificates
@@ -10,7 +10,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/util/cert"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
)
func TestCertificatesExpired(t *testing.T) {
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
)
var errConfigFileLoading = errors.New("could not read file at path")
+1 -1
View File
@@ -12,7 +12,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/manager"
"sigs.k8s.io/controller-runtime/pkg/webhook"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
)
// LoadConfig initializes the controller configuration, optionally overriding the defaults
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"context"
@@ -12,7 +12,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/handler"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/controllers/loki/internal/lokistack"
"github.com/grafana/loki/operator/internal/controller/loki/internal/lokistack"
)
// AlertingRuleReconciler reconciles a AlertingRule object
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"context"
@@ -11,11 +11,11 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/controllers/loki/internal/lokistack"
"github.com/grafana/loki/operator/controllers/loki/internal/management/state"
"github.com/grafana/loki/operator/internal/certrotation"
"github.com/grafana/loki/operator/internal/controller/loki/internal/lokistack"
"github.com/grafana/loki/operator/internal/controller/loki/internal/management/state"
"github.com/grafana/loki/operator/internal/external/k8s"
"github.com/grafana/loki/operator/internal/handlers"
)
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"testing"
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"context"
@@ -1,4 +1,4 @@
package state_test
package state
import (
"context"
@@ -14,7 +14,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/controllers/loki/internal/management/state"
"github.com/grafana/loki/operator/internal/external/k8s/k8sfakes"
)
@@ -73,7 +72,7 @@ func TestIsManaged(t *testing.T) {
k.SetClientObject(object, &tst.stack)
return nil
}
ok, err := state.IsManaged(context.TODO(), r, k)
ok, err := IsManaged(context.TODO(), r, k)
require.NoError(t, err)
require.Equal(t, ok, tst.wantOk)
})
@@ -109,7 +108,7 @@ func TestIsManaged_WhenError_ReturnNotManagedWithError(t *testing.T) {
for _, tst := range table {
t.Run(tst.name, func(t *testing.T) {
k.GetReturns(tst.apierror)
ok, err := state.IsManaged(context.TODO(), r, k)
ok, err := IsManaged(context.TODO(), r, k)
require.Equal(t, tst.wantErr, err)
require.False(t, ok)
})
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"context"
@@ -26,10 +26,10 @@ import (
"sigs.k8s.io/controller-runtime/pkg/predicate"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/controllers/loki/internal/management/state"
"github.com/grafana/loki/operator/internal/config"
"github.com/grafana/loki/operator/internal/controller/loki/internal/management/state"
"github.com/grafana/loki/operator/internal/external/k8s"
"github.com/grafana/loki/operator/internal/handlers"
manifestsocp "github.com/grafana/loki/operator/internal/manifests/openshift"
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"flag"
@@ -22,7 +22,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/builder"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/external/k8s/k8sfakes"
)
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"context"
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"context"
@@ -12,7 +12,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/handler"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/controllers/loki/internal/lokistack"
"github.com/grafana/loki/operator/internal/controller/loki/internal/lokistack"
)
// RecordingRuleReconciler reconciles a RecordingRule object
@@ -1,4 +1,4 @@
package controllers
package loki
import (
"context"
@@ -9,7 +9,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/controllers/loki/internal/lokistack"
"github.com/grafana/loki/operator/internal/controller/loki/internal/lokistack"
)
// RulerConfigReconciler reconciles a RulerConfig object
@@ -6,7 +6,7 @@ import (
"github.com/go-logr/logr"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/external/k8s"
"github.com/grafana/loki/operator/internal/handlers/internal/openshift"
@@ -15,7 +15,7 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/external/k8s/k8sfakes"
"github.com/grafana/loki/operator/internal/status"
@@ -17,7 +17,7 @@ import (
apierrors "k8s.io/apimachinery/pkg/api/errors"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/external/k8s"
"github.com/grafana/loki/operator/internal/manifests/storage"
@@ -7,7 +7,7 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/manifests/storage"
)
@@ -5,7 +5,7 @@ import (
"fmt"
"time"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/external/k8s"
"github.com/grafana/loki/operator/internal/manifests/storage"
@@ -15,7 +15,7 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/external/k8s/k8sfakes"
"github.com/grafana/loki/operator/internal/status"
@@ -7,7 +7,7 @@ import (
openshiftconfigv1 "github.com/openshift/api/config/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
"github.com/grafana/loki/operator/internal/external/k8s"
)
@@ -12,7 +12,7 @@ import (
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
"github.com/grafana/loki/operator/internal/external/k8s/k8sfakes"
"github.com/grafana/loki/operator/internal/handlers/internal/tlsprofile"
)
@@ -8,7 +8,7 @@ import (
apierrors "k8s.io/apimachinery/pkg/api/errors"
ctrl "sigs.k8s.io/controller-runtime"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/certrotation"
"github.com/grafana/loki/operator/internal/external/k8s"
@@ -15,7 +15,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
ctrlutil "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/external/k8s"
"github.com/grafana/loki/operator/internal/handlers/internal/gateway"
@@ -25,7 +25,7 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/external/k8s/k8sfakes"
"github.com/grafana/loki/operator/internal/status"
@@ -12,7 +12,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
ctrlutil "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/certrotation"
"github.com/grafana/loki/operator/internal/external/k8s"
+1 -1
View File
@@ -11,7 +11,7 @@ import (
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/manifests/internal"
)
@@ -12,7 +12,7 @@ import (
networkingv1 "k8s.io/api/networking/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/manifests/internal/config"
"github.com/grafana/loki/operator/internal/manifests/openshift"
@@ -12,7 +12,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
configv1 "github.com/grafana/loki/operator/apis/config/v1"
configv1 "github.com/grafana/loki/operator/api/config/v1"
lokiv1 "github.com/grafana/loki/operator/apis/loki/v1"
"github.com/grafana/loki/operator/internal/manifests/openshift"
)

Some files were not shown because too many files have changed in this diff Show More