Copy disabled (too large)
Download .txt
Showing preview only (18,633K chars total). Download the full file to get everything.
Repository: kubesphere/kubesphere
Branch: master
Commit: 870816047fbc
Files: 11805
Total size: 113.9 MB
Directory structure:
gitextract_j06rle4r/
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── feature_request.md
│ │ └── installation_failure.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── release-drafter.yml
│ ├── stale.yml
│ └── workflows/
│ ├── build-multiarch.yaml
│ ├── e2e-test.yml
│ ├── issue_comment_webhook.yml
│ ├── kind/
│ │ └── kind.yaml
│ ├── nightly-builds.yml
│ ├── release-drafter.yml
│ └── sync-helm-chart.yaml
├── .gitignore
├── .go-version
├── .licenserc.yaml
├── CHANGELOG/
│ ├── CHANGELOG-3.3.1.md
│ ├── CHANGELOG-3.3.2.md
│ ├── CHANGELOG-3.3.md
│ ├── CHANGELOG-3.4.0.md
│ ├── CHANGELOG-3.4.1.md
│ └── CHANGELOG-4.1.1.md
├── CONTRIBUTING.md
├── LICENSE
├── LICENSES/
│ ├── LICENSE
│ └── vendor/
│ ├── cel.dev/
│ │ └── expr/
│ │ └── LICENSE
│ ├── code.cloudfoundry.org/
│ │ └── bytefmt/
│ │ └── LICENSE
│ ├── dario.cat/
│ │ └── mergo/
│ │ └── LICENSE
│ ├── github.com/
│ │ ├── AdaLogics/
│ │ │ └── go-fuzz-headers/
│ │ │ └── LICENSE
│ │ ├── Azure/
│ │ │ ├── go-ansiterm/
│ │ │ │ └── LICENSE
│ │ │ └── go-ntlmssp/
│ │ │ └── LICENSE
│ │ ├── BurntSushi/
│ │ │ └── toml/
│ │ │ └── LICENSE
│ │ ├── MakeNowJust/
│ │ │ └── heredoc/
│ │ │ └── LICENSE
│ │ ├── Masterminds/
│ │ │ ├── goutils/
│ │ │ │ └── LICENSE
│ │ │ ├── semver/
│ │ │ │ └── v3/
│ │ │ │ └── LICENSE
│ │ │ ├── sprig/
│ │ │ │ └── v3/
│ │ │ │ └── LICENSE
│ │ │ └── squirrel/
│ │ │ └── LICENSE
│ │ ├── Microsoft/
│ │ │ └── go-winio/
│ │ │ └── LICENSE
│ │ ├── NYTimes/
│ │ │ └── gziphandler/
│ │ │ └── LICENSE
│ │ ├── ProtonMail/
│ │ │ └── go-crypto/
│ │ │ └── LICENSE
│ │ ├── agnivade/
│ │ │ └── levenshtein/
│ │ │ └── LICENSE
│ │ ├── antlr4-go/
│ │ │ └── antlr/
│ │ │ └── v4/
│ │ │ └── LICENSE
│ │ ├── asaskevich/
│ │ │ └── govalidator/
│ │ │ └── LICENSE
│ │ ├── aws/
│ │ │ └── aws-sdk-go/
│ │ │ └── LICENSE
│ │ ├── beorn7/
│ │ │ └── perks/
│ │ │ └── LICENSE
│ │ ├── blang/
│ │ │ └── semver/
│ │ │ └── v4/
│ │ │ └── LICENSE
│ │ ├── cenkalti/
│ │ │ └── backoff/
│ │ │ └── v5/
│ │ │ └── LICENSE
│ │ ├── cespare/
│ │ │ └── xxhash/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── chai2010/
│ │ │ └── gettext-go/
│ │ │ └── LICENSE
│ │ ├── cloudflare/
│ │ │ └── circl/
│ │ │ └── LICENSE
│ │ ├── containerd/
│ │ │ ├── containerd/
│ │ │ │ └── LICENSE
│ │ │ ├── errdefs/
│ │ │ │ ├── LICENSE
│ │ │ │ └── pkg/
│ │ │ │ └── LICENSE
│ │ │ ├── log/
│ │ │ │ └── LICENSE
│ │ │ ├── platforms/
│ │ │ │ └── LICENSE
│ │ │ └── stargz-snapshotter/
│ │ │ └── estargz/
│ │ │ └── LICENSE
│ │ ├── coreos/
│ │ │ ├── go-oidc/
│ │ │ │ └── v3/
│ │ │ │ └── LICENSE
│ │ │ ├── go-semver/
│ │ │ │ └── LICENSE
│ │ │ └── go-systemd/
│ │ │ └── v22/
│ │ │ └── LICENSE
│ │ ├── cyphar/
│ │ │ └── filepath-securejoin/
│ │ │ └── LICENSE
│ │ ├── davecgh/
│ │ │ └── go-spew/
│ │ │ └── LICENSE
│ │ ├── distribution/
│ │ │ └── reference/
│ │ │ └── LICENSE
│ │ ├── docker/
│ │ │ ├── cli/
│ │ │ │ └── LICENSE
│ │ │ ├── distribution/
│ │ │ │ └── LICENSE
│ │ │ ├── docker/
│ │ │ │ └── LICENSE
│ │ │ ├── docker-credential-helpers/
│ │ │ │ └── LICENSE
│ │ │ ├── go-connections/
│ │ │ │ └── LICENSE
│ │ │ ├── go-metrics/
│ │ │ │ └── LICENSE
│ │ │ └── go-units/
│ │ │ └── LICENSE
│ │ ├── emicklei/
│ │ │ ├── go-restful/
│ │ │ │ └── v3/
│ │ │ │ └── LICENSE
│ │ │ └── go-restful-openapi/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── emirpasic/
│ │ │ └── gods/
│ │ │ └── LICENSE
│ │ ├── evanphx/
│ │ │ └── json-patch/
│ │ │ ├── LICENSE
│ │ │ └── v5/
│ │ │ └── LICENSE
│ │ ├── exponent-io/
│ │ │ └── jsonpath/
│ │ │ └── LICENSE
│ │ ├── fatih/
│ │ │ └── color/
│ │ │ └── LICENSE
│ │ ├── felixge/
│ │ │ └── httpsnoop/
│ │ │ └── LICENSE
│ │ ├── fsnotify/
│ │ │ └── fsnotify/
│ │ │ └── LICENSE
│ │ ├── fxamacker/
│ │ │ └── cbor/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── go-asn1-ber/
│ │ │ └── asn1-ber/
│ │ │ └── LICENSE
│ │ ├── go-errors/
│ │ │ └── errors/
│ │ │ └── LICENSE
│ │ ├── go-git/
│ │ │ ├── gcfg/
│ │ │ │ └── LICENSE
│ │ │ ├── go-billy/
│ │ │ │ └── v5/
│ │ │ │ └── LICENSE
│ │ │ └── go-git/
│ │ │ └── v5/
│ │ │ └── LICENSE
│ │ ├── go-gorp/
│ │ │ └── gorp/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ ├── go-ini/
│ │ │ └── ini/
│ │ │ └── LICENSE
│ │ ├── go-jose/
│ │ │ └── go-jose/
│ │ │ └── v4/
│ │ │ └── LICENSE
│ │ ├── go-ldap/
│ │ │ └── ldap/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ ├── go-logr/
│ │ │ ├── logr/
│ │ │ │ └── LICENSE
│ │ │ └── stdr/
│ │ │ └── LICENSE
│ │ ├── go-openapi/
│ │ │ ├── analysis/
│ │ │ │ └── LICENSE
│ │ │ ├── errors/
│ │ │ │ └── LICENSE
│ │ │ ├── jsonpointer/
│ │ │ │ └── LICENSE
│ │ │ ├── jsonreference/
│ │ │ │ └── LICENSE
│ │ │ ├── loads/
│ │ │ │ └── LICENSE
│ │ │ ├── spec/
│ │ │ │ └── LICENSE
│ │ │ ├── strfmt/
│ │ │ │ └── LICENSE
│ │ │ ├── swag/
│ │ │ │ └── LICENSE
│ │ │ └── validate/
│ │ │ └── LICENSE
│ │ ├── go-redis/
│ │ │ └── redis/
│ │ │ └── LICENSE
│ │ ├── go-task/
│ │ │ └── slim-sprig/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ ├── go-viper/
│ │ │ └── mapstructure/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── gobuffalo/
│ │ │ └── flect/
│ │ │ └── LICENSE
│ │ ├── gobwas/
│ │ │ └── glob/
│ │ │ └── LICENSE
│ │ ├── gogo/
│ │ │ └── protobuf/
│ │ │ └── LICENSE
│ │ ├── golang/
│ │ │ ├── example/
│ │ │ │ └── LICENSE
│ │ │ ├── glog/
│ │ │ │ └── LICENSE
│ │ │ ├── groupcache/
│ │ │ │ └── LICENSE
│ │ │ └── protobuf/
│ │ │ └── LICENSE
│ │ ├── golang-jwt/
│ │ │ └── jwt/
│ │ │ └── v4/
│ │ │ └── LICENSE
│ │ ├── google/
│ │ │ ├── btree/
│ │ │ │ └── LICENSE
│ │ │ ├── cel-go/
│ │ │ │ └── LICENSE
│ │ │ ├── gnostic-models/
│ │ │ │ └── LICENSE
│ │ │ ├── go-cmp/
│ │ │ │ └── LICENSE
│ │ │ ├── go-containerregistry/
│ │ │ │ └── LICENSE
│ │ │ ├── gofuzz/
│ │ │ │ └── LICENSE
│ │ │ ├── gops/
│ │ │ │ └── LICENSE
│ │ │ ├── pprof/
│ │ │ │ └── LICENSE
│ │ │ ├── shlex/
│ │ │ │ └── LICENSE
│ │ │ └── uuid/
│ │ │ └── LICENSE
│ │ ├── gorilla/
│ │ │ ├── mux/
│ │ │ │ └── LICENSE
│ │ │ └── websocket/
│ │ │ └── LICENSE
│ │ ├── gosuri/
│ │ │ └── uitable/
│ │ │ └── LICENSE
│ │ ├── gregjones/
│ │ │ └── httpcache/
│ │ │ └── LICENSE
│ │ ├── grpc-ecosystem/
│ │ │ ├── go-grpc-prometheus/
│ │ │ │ └── LICENSE
│ │ │ └── grpc-gateway/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── hashicorp/
│ │ │ ├── errwrap/
│ │ │ │ └── LICENSE
│ │ │ └── go-multierror/
│ │ │ └── LICENSE
│ │ ├── huandu/
│ │ │ └── xstrings/
│ │ │ └── LICENSE
│ │ ├── inconshreveable/
│ │ │ └── mousetrap/
│ │ │ └── LICENSE
│ │ ├── jbenet/
│ │ │ └── go-context/
│ │ │ └── LICENSE
│ │ ├── jmespath/
│ │ │ └── go-jmespath/
│ │ │ └── LICENSE
│ │ ├── jmoiron/
│ │ │ └── sqlx/
│ │ │ └── LICENSE
│ │ ├── josharian/
│ │ │ └── intern/
│ │ │ └── LICENSE
│ │ ├── json-iterator/
│ │ │ └── go/
│ │ │ └── LICENSE
│ │ ├── kevinburke/
│ │ │ └── ssh_config/
│ │ │ └── LICENSE
│ │ ├── klauspost/
│ │ │ └── compress/
│ │ │ └── LICENSE
│ │ ├── kylelemons/
│ │ │ └── godebug/
│ │ │ └── LICENSE
│ │ ├── lann/
│ │ │ ├── builder/
│ │ │ │ └── LICENSE
│ │ │ └── ps/
│ │ │ └── LICENSE
│ │ ├── lib/
│ │ │ └── pq/
│ │ │ └── LICENSE
│ │ ├── liggitt/
│ │ │ └── tabwriter/
│ │ │ └── LICENSE
│ │ ├── mailru/
│ │ │ └── easyjson/
│ │ │ └── LICENSE
│ │ ├── mattn/
│ │ │ ├── go-colorable/
│ │ │ │ └── LICENSE
│ │ │ ├── go-isatty/
│ │ │ │ └── LICENSE
│ │ │ └── go-runewidth/
│ │ │ └── LICENSE
│ │ ├── mitchellh/
│ │ │ ├── copystructure/
│ │ │ │ └── LICENSE
│ │ │ ├── go-homedir/
│ │ │ │ └── LICENSE
│ │ │ ├── go-wordwrap/
│ │ │ │ └── LICENSE
│ │ │ ├── mapstructure/
│ │ │ │ └── LICENSE
│ │ │ └── reflectwalk/
│ │ │ └── LICENSE
│ │ ├── moby/
│ │ │ ├── docker-image-spec/
│ │ │ │ └── LICENSE
│ │ │ ├── locker/
│ │ │ │ └── LICENSE
│ │ │ ├── spdystream/
│ │ │ │ └── LICENSE
│ │ │ └── term/
│ │ │ └── LICENSE
│ │ ├── modern-go/
│ │ │ ├── concurrent/
│ │ │ │ └── LICENSE
│ │ │ └── reflect2/
│ │ │ └── LICENSE
│ │ ├── monochromegane/
│ │ │ └── go-gitignore/
│ │ │ └── LICENSE
│ │ ├── munnerz/
│ │ │ └── goautoneg/
│ │ │ └── LICENSE
│ │ ├── mxk/
│ │ │ └── go-flowrate/
│ │ │ └── LICENSE
│ │ ├── oklog/
│ │ │ └── ulid/
│ │ │ └── LICENSE
│ │ ├── oliveagle/
│ │ │ └── jsonpath/
│ │ │ └── LICENSE
│ │ ├── onsi/
│ │ │ ├── ginkgo/
│ │ │ │ └── v2/
│ │ │ │ └── LICENSE
│ │ │ └── gomega/
│ │ │ └── LICENSE
│ │ ├── open-policy-agent/
│ │ │ └── opa/
│ │ │ └── LICENSE
│ │ ├── opencontainers/
│ │ │ ├── go-digest/
│ │ │ │ └── LICENSE
│ │ │ └── image-spec/
│ │ │ └── LICENSE
│ │ ├── pelletier/
│ │ │ └── go-toml/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── peterbourgon/
│ │ │ └── diskv/
│ │ │ └── LICENSE
│ │ ├── pjbgf/
│ │ │ └── sha1cd/
│ │ │ └── LICENSE
│ │ ├── pkg/
│ │ │ └── errors/
│ │ │ └── LICENSE
│ │ ├── pmezard/
│ │ │ └── go-difflib/
│ │ │ └── LICENSE
│ │ ├── prometheus/
│ │ │ ├── client_golang/
│ │ │ │ └── LICENSE
│ │ │ ├── client_model/
│ │ │ │ └── LICENSE
│ │ │ ├── common/
│ │ │ │ └── LICENSE
│ │ │ └── procfs/
│ │ │ └── LICENSE
│ │ ├── rcrowley/
│ │ │ └── go-metrics/
│ │ │ └── LICENSE
│ │ ├── rivo/
│ │ │ └── uniseg/
│ │ │ └── LICENSE
│ │ ├── robfig/
│ │ │ └── cron/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ ├── rubenv/
│ │ │ └── sql-migrate/
│ │ │ └── LICENSE
│ │ ├── russross/
│ │ │ └── blackfriday/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── sagikazarmark/
│ │ │ └── locafero/
│ │ │ └── LICENSE
│ │ ├── sergi/
│ │ │ └── go-diff/
│ │ │ └── LICENSE
│ │ ├── shopspring/
│ │ │ └── decimal/
│ │ │ └── LICENSE
│ │ ├── sirupsen/
│ │ │ └── logrus/
│ │ │ └── LICENSE
│ │ ├── skeema/
│ │ │ └── knownhosts/
│ │ │ └── LICENSE
│ │ ├── sony/
│ │ │ └── sonyflake/
│ │ │ └── LICENSE
│ │ ├── sourcegraph/
│ │ │ └── conc/
│ │ │ └── LICENSE
│ │ ├── speps/
│ │ │ └── go-hashids/
│ │ │ └── LICENSE
│ │ ├── spf13/
│ │ │ ├── afero/
│ │ │ │ └── LICENSE
│ │ │ ├── cast/
│ │ │ │ └── LICENSE
│ │ │ ├── cobra/
│ │ │ │ └── LICENSE
│ │ │ ├── pflag/
│ │ │ │ └── LICENSE
│ │ │ └── viper/
│ │ │ └── LICENSE
│ │ ├── stoewer/
│ │ │ └── go-strcase/
│ │ │ └── LICENSE
│ │ ├── stretchr/
│ │ │ └── testify/
│ │ │ └── LICENSE
│ │ ├── subosito/
│ │ │ └── gotenv/
│ │ │ └── LICENSE
│ │ ├── tchap/
│ │ │ └── go-patricia/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── vbatts/
│ │ │ └── tar-split/
│ │ │ └── LICENSE
│ │ ├── x448/
│ │ │ └── float16/
│ │ │ └── LICENSE
│ │ ├── xanzy/
│ │ │ └── ssh-agent/
│ │ │ └── LICENSE
│ │ ├── xeipuuv/
│ │ │ ├── gojsonpointer/
│ │ │ │ └── LICENSE
│ │ │ ├── gojsonreference/
│ │ │ │ └── LICENSE
│ │ │ └── gojsonschema/
│ │ │ └── LICENSE
│ │ ├── xlab/
│ │ │ └── treeprint/
│ │ │ └── LICENSE
│ │ └── yashtewari/
│ │ └── glob-intersection/
│ │ └── LICENSE
│ ├── go.etcd.io/
│ │ └── etcd/
│ │ ├── api/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ └── client/
│ │ ├── pkg/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ └── v3/
│ │ └── LICENSE
│ ├── go.mongodb.org/
│ │ └── mongo-driver/
│ │ └── LICENSE
│ ├── go.opentelemetry.io/
│ │ ├── auto/
│ │ │ └── sdk/
│ │ │ └── LICENSE
│ │ ├── contrib/
│ │ │ └── instrumentation/
│ │ │ ├── google.golang.org/
│ │ │ │ └── grpc/
│ │ │ │ └── otelgrpc/
│ │ │ │ └── LICENSE
│ │ │ └── net/
│ │ │ └── http/
│ │ │ └── otelhttp/
│ │ │ └── LICENSE
│ │ ├── otel/
│ │ │ ├── LICENSE
│ │ │ ├── exporters/
│ │ │ │ └── otlp/
│ │ │ │ └── otlptrace/
│ │ │ │ ├── LICENSE
│ │ │ │ └── otlptracegrpc/
│ │ │ │ └── LICENSE
│ │ │ ├── metric/
│ │ │ │ └── LICENSE
│ │ │ ├── sdk/
│ │ │ │ └── LICENSE
│ │ │ └── trace/
│ │ │ └── LICENSE
│ │ └── proto/
│ │ └── otlp/
│ │ └── LICENSE
│ ├── go.uber.org/
│ │ ├── automaxprocs/
│ │ │ └── LICENSE
│ │ ├── multierr/
│ │ │ └── LICENSE
│ │ └── zap/
│ │ └── LICENSE
│ ├── golang.org/
│ │ └── x/
│ │ ├── crypto/
│ │ │ └── LICENSE
│ │ ├── exp/
│ │ │ └── LICENSE
│ │ ├── mod/
│ │ │ └── LICENSE
│ │ ├── net/
│ │ │ └── LICENSE
│ │ ├── oauth2/
│ │ │ └── LICENSE
│ │ ├── sync/
│ │ │ └── LICENSE
│ │ ├── sys/
│ │ │ └── LICENSE
│ │ ├── term/
│ │ │ └── LICENSE
│ │ ├── text/
│ │ │ └── LICENSE
│ │ ├── time/
│ │ │ └── LICENSE
│ │ └── tools/
│ │ └── LICENSE
│ ├── gomodules.xyz/
│ │ └── jsonpatch/
│ │ └── v2/
│ │ └── LICENSE
│ ├── google.golang.org/
│ │ ├── genproto/
│ │ │ └── googleapis/
│ │ │ ├── api/
│ │ │ │ └── LICENSE
│ │ │ └── rpc/
│ │ │ └── LICENSE
│ │ ├── grpc/
│ │ │ └── LICENSE
│ │ └── protobuf/
│ │ └── LICENSE
│ ├── gopkg.in/
│ │ ├── cas.v2/
│ │ │ └── LICENSE
│ │ ├── evanphx/
│ │ │ └── json-patch.v4/
│ │ │ └── LICENSE
│ │ ├── inf.v0/
│ │ │ └── LICENSE
│ │ ├── natefinch/
│ │ │ └── lumberjack.v2/
│ │ │ └── LICENSE
│ │ ├── warnings.v0/
│ │ │ └── LICENSE
│ │ ├── yaml.v2/
│ │ │ └── LICENSE
│ │ └── yaml.v3/
│ │ └── LICENSE
│ ├── helm.sh/
│ │ └── helm/
│ │ └── v3/
│ │ └── LICENSE
│ ├── k8s.io/
│ │ ├── api/
│ │ │ └── LICENSE
│ │ ├── apiextensions-apiserver/
│ │ │ └── LICENSE
│ │ ├── apimachinery/
│ │ │ ├── LICENSE
│ │ │ └── third_party/
│ │ │ └── forked/
│ │ │ └── golang/
│ │ │ └── LICENSE
│ │ ├── apiserver/
│ │ │ └── LICENSE
│ │ ├── cli-runtime/
│ │ │ └── LICENSE
│ │ ├── client-go/
│ │ │ ├── LICENSE
│ │ │ └── third_party/
│ │ │ └── forked/
│ │ │ └── golang/
│ │ │ └── LICENSE
│ │ ├── code-generator/
│ │ │ └── LICENSE
│ │ ├── component-base/
│ │ │ └── LICENSE
│ │ ├── gengo/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── klog/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── kms/
│ │ │ └── LICENSE
│ │ ├── kube-openapi/
│ │ │ ├── LICENSE
│ │ │ └── pkg/
│ │ │ └── internal/
│ │ │ └── third_party/
│ │ │ ├── go-json-experiment/
│ │ │ │ └── json/
│ │ │ │ └── LICENSE
│ │ │ └── govalidator/
│ │ │ └── LICENSE
│ │ ├── kubectl/
│ │ │ └── LICENSE
│ │ └── utils/
│ │ ├── LICENSE
│ │ └── internal/
│ │ └── third_party/
│ │ └── forked/
│ │ └── golang/
│ │ └── LICENSE
│ ├── oras.land/
│ │ └── oras-go/
│ │ ├── LICENSE
│ │ └── v2/
│ │ └── LICENSE
│ └── sigs.k8s.io/
│ ├── apiserver-network-proxy/
│ │ └── konnectivity-client/
│ │ └── LICENSE
│ ├── application/
│ │ └── LICENSE
│ ├── controller-runtime/
│ │ └── LICENSE
│ ├── controller-tools/
│ │ └── LICENSE
│ ├── json/
│ │ └── LICENSE
│ ├── kustomize/
│ │ ├── api/
│ │ │ └── LICENSE
│ │ └── kyaml/
│ │ └── LICENSE
│ ├── randfill/
│ │ └── LICENSE
│ ├── structured-merge-diff/
│ │ └── v4/
│ │ └── LICENSE
│ └── yaml/
│ └── LICENSE
├── Makefile
├── OWNERS
├── README.md
├── README_zh.md
├── SECURITY.md
├── api/
│ ├── api-rules/
│ │ └── violation_exceptions.list
│ ├── ks-openapi-spec/
│ │ └── swagger.json
│ └── openapi-spec/
│ └── swagger.json
├── build/
│ ├── ks-apiserver/
│ │ └── Dockerfile
│ └── ks-controller-manager/
│ └── Dockerfile
├── cmd/
│ ├── ks-apiserver/
│ │ ├── apiserver.go
│ │ └── app/
│ │ ├── options/
│ │ │ ├── options.go
│ │ │ └── validation.go
│ │ └── server.go
│ └── ks-controller-manager/
│ ├── app/
│ │ ├── options/
│ │ │ ├── options.go
│ │ │ └── options_test.go
│ │ └── server.go
│ └── controller-manager.go
├── config/
│ └── ks-core/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── charts/
│ │ ├── ks-crds/
│ │ │ ├── .helmignore
│ │ │ ├── Chart.yaml
│ │ │ ├── crds/
│ │ │ │ ├── app.k8s.io_applications.yaml
│ │ │ │ ├── application.kubesphere.io_applicationreleases.yaml
│ │ │ │ ├── application.kubesphere.io_applications.yaml
│ │ │ │ ├── application.kubesphere.io_applicationversions.yaml
│ │ │ │ ├── application.kubesphere.io_categories.yaml
│ │ │ │ ├── application.kubesphere.io_repos.yaml
│ │ │ │ ├── cluster.kubesphere.io_clusters.yaml
│ │ │ │ ├── cluster.kubesphere.io_labels.yaml
│ │ │ │ ├── extensions.kubesphere.io_apiservices.yaml
│ │ │ │ ├── extensions.kubesphere.io_extensionentries.yaml
│ │ │ │ ├── extensions.kubesphere.io_jsbundles.yaml
│ │ │ │ ├── extensions.kubesphere.io_reverseproxies.yaml
│ │ │ │ ├── gateway.kubesphere.io_ingressclassscopes.yaml
│ │ │ │ ├── iam.kubesphere.io_builtinroles.yaml
│ │ │ │ ├── iam.kubesphere.io_categories.yaml
│ │ │ │ ├── iam.kubesphere.io_clusterrolebindings.yaml
│ │ │ │ ├── iam.kubesphere.io_clusterroles.yaml
│ │ │ │ ├── iam.kubesphere.io_globalrolebindings.yaml
│ │ │ │ ├── iam.kubesphere.io_globalroles.yaml
│ │ │ │ ├── iam.kubesphere.io_groupbindings.yaml
│ │ │ │ ├── iam.kubesphere.io_groups.yaml
│ │ │ │ ├── iam.kubesphere.io_loginrecords.yaml
│ │ │ │ ├── iam.kubesphere.io_rolebindings.yaml
│ │ │ │ ├── iam.kubesphere.io_roles.yaml
│ │ │ │ ├── iam.kubesphere.io_roletemplates.yaml
│ │ │ │ ├── iam.kubesphere.io_users.yaml
│ │ │ │ ├── iam.kubesphere.io_workspacerolebindings.yaml
│ │ │ │ ├── iam.kubesphere.io_workspaceroles.yaml
│ │ │ │ ├── kubesphere.io_categories.yaml
│ │ │ │ ├── kubesphere.io_extensions.yaml
│ │ │ │ ├── kubesphere.io_extensionversions.yaml
│ │ │ │ ├── kubesphere.io_installplans.yaml
│ │ │ │ ├── kubesphere.io_repositories.yaml
│ │ │ │ ├── kubesphere.io_serviceaccounts.yaml
│ │ │ │ ├── quota.kubesphere.io_resourcequotas.yaml
│ │ │ │ ├── storage.kubesphere.io_provisionercapabilities.yaml
│ │ │ │ ├── storage.kubesphere.io_storageclasscapabilities.yaml
│ │ │ │ ├── tenant.kubesphere.io_workspaces.yaml
│ │ │ │ └── tenant.kubesphere.io_workspacetemplates.yaml
│ │ │ ├── scripts/
│ │ │ │ ├── install.sh
│ │ │ │ └── post-delete.sh
│ │ │ ├── templates/
│ │ │ │ ├── post-delete-crd-job.yaml
│ │ │ │ └── pre-upgrade-crd-job.yaml
│ │ │ └── values.yaml
│ │ └── redis-ha/
│ │ ├── Chart.yaml
│ │ ├── README.md
│ │ ├── ci/
│ │ │ └── haproxy-enabled-values.yaml
│ │ ├── templates/
│ │ │ ├── NOTES.txt
│ │ │ ├── _configs.tpl
│ │ │ ├── _helpers.tpl
│ │ │ ├── _images.tpl
│ │ │ ├── redis-auth-secret.yaml
│ │ │ ├── redis-ha-announce-service.yaml
│ │ │ ├── redis-ha-configmap.yaml
│ │ │ ├── redis-ha-exporter-script-configmap.yaml
│ │ │ ├── redis-ha-health-configmap.yaml
│ │ │ ├── redis-ha-network-policy.yaml
│ │ │ ├── redis-ha-pdb.yaml
│ │ │ ├── redis-ha-prometheus-rule.yaml
│ │ │ ├── redis-ha-role.yaml
│ │ │ ├── redis-ha-rolebinding.yaml
│ │ │ ├── redis-ha-secret.yaml
│ │ │ ├── redis-ha-service.yaml
│ │ │ ├── redis-ha-serviceaccount.yaml
│ │ │ ├── redis-ha-servicemonitor.yaml
│ │ │ ├── redis-ha-statefulset.yaml
│ │ │ ├── redis-haproxy-deployment.yaml
│ │ │ ├── redis-haproxy-network-policy.yaml
│ │ │ ├── redis-haproxy-pdb.yaml
│ │ │ ├── redis-haproxy-role.yaml
│ │ │ ├── redis-haproxy-rolebinding.yaml
│ │ │ ├── redis-haproxy-service.yaml
│ │ │ ├── redis-haproxy-serviceaccount.yaml
│ │ │ ├── redis-haproxy-servicemonitor.yaml
│ │ │ ├── redis-tls-secret.yaml
│ │ │ ├── sentinel-auth-secret.yaml
│ │ │ └── tests/
│ │ │ ├── test-redis-ha-configmap.yaml
│ │ │ └── test-redis-ha-pod.yaml
│ │ └── values.yaml
│ ├── files/
│ │ └── extensions.customresourcefilters.rego
│ ├── scripts/
│ │ └── post-delete.sh
│ ├── templates/
│ │ ├── NOTES.txt
│ │ ├── _helpers.tpl
│ │ ├── _images.tpl
│ │ ├── _tplvalues.tpl
│ │ ├── builtinroles.yaml
│ │ ├── cert-manager.yaml
│ │ ├── clusterroles.yaml
│ │ ├── customresourcefilters.yaml
│ │ ├── dynamic-upgrade-job.yaml
│ │ ├── extension-categories.yaml
│ │ ├── extension-museum.yaml
│ │ ├── globalrolebindings.yaml
│ │ ├── globalroles.yaml
│ │ ├── ingress.yaml
│ │ ├── ks-agent.yaml
│ │ ├── ks-apiserver.yaml
│ │ ├── ks-console-config.yaml
│ │ ├── ks-console.yaml
│ │ ├── ks-controller-manager.yaml
│ │ ├── kubesphere-config.yaml
│ │ ├── oauthclient-config.yaml
│ │ ├── platformconfig-telemetry.yaml
│ │ ├── post-delete-job.yaml
│ │ ├── post-patch-system-ns-job.yaml
│ │ ├── post-patch-user-job.yaml
│ │ ├── post-upgrade-job.yaml
│ │ ├── pre-upgrade-job.yaml
│ │ ├── prepare-upgrade-job.yaml
│ │ ├── redis.yaml
│ │ ├── roletemplate-categories.yaml
│ │ ├── roletemplates.yaml
│ │ ├── serviceaccount.yaml
│ │ ├── services.yaml
│ │ ├── tls-secrets.yaml
│ │ ├── traefik.yaml
│ │ ├── user.yaml
│ │ ├── webhook.yaml
│ │ └── workspace.yaml
│ └── values.yaml
├── docs/
│ ├── build-multiarch-images.md
│ ├── powered-by-kubesphere.md
│ └── roadmap.md
├── go.mod
├── go.sum
├── go.work
├── go.work.sum
├── hack/
│ ├── .spelling_failures
│ ├── boilerplate.go.txt
│ ├── build-scripts/
│ │ ├── get-etcd.sh
│ │ ├── get-helm.sh
│ │ ├── get-kubernetes.sh
│ │ └── get-kustomize.sh
│ ├── build_e2e.sh
│ ├── cherry_pick_pull.sh
│ ├── custom-boilerplate.go.txt
│ ├── deploy-kubesphere.sh
│ ├── docker_build.sh
│ ├── docker_build_multiarch.sh
│ ├── generate_certs.sh
│ ├── generate_group.sh
│ ├── generate_manifests.sh
│ ├── gobuild.sh
│ ├── init_env.sh
│ ├── kind_e2e.sh
│ ├── lib/
│ │ ├── golang.sh
│ │ ├── init.sh
│ │ ├── logging.sh
│ │ ├── util.sh
│ │ ├── verify-generated.sh
│ │ └── version.sh
│ ├── lint-dependencies.sh
│ ├── make-rules/
│ │ ├── build.sh
│ │ ├── clean.sh
│ │ ├── cross.sh
│ │ ├── make-help.sh
│ │ ├── update.sh
│ │ ├── verify.sh
│ │ └── vet.sh
│ ├── pin-dependency.sh
│ ├── setup-envtest.sh
│ ├── test-go.sh
│ ├── unwanted-dependencies.json
│ ├── update-gofmt.sh
│ ├── update-goimports.sh
│ ├── update-internal-modules.sh
│ ├── update-licenses.sh
│ ├── update-vendor-licenses.sh
│ ├── update-vendor.sh
│ ├── verify-all.sh
│ ├── verify-gofmt.sh
│ ├── verify-goimports.sh
│ ├── verify-golangci-lint.sh
│ ├── verify-licenses.sh
│ ├── verify-shellcheck.sh
│ ├── verify-spelling.sh
│ └── verify-vendor-licenses.sh
├── kube/
│ ├── pkg/
│ │ ├── apis/
│ │ │ └── core/
│ │ │ └── v1/
│ │ │ └── helper/
│ │ │ ├── helpers.go
│ │ │ └── qos/
│ │ │ └── qos.go
│ │ ├── features/
│ │ │ └── features.go
│ │ ├── openapi/
│ │ │ ├── apiservice.go
│ │ │ ├── downloader.go
│ │ │ ├── error.go
│ │ │ ├── merge/
│ │ │ │ ├── default_pruning.go
│ │ │ │ ├── merge.go
│ │ │ │ └── walker.go
│ │ │ ├── openapi.go
│ │ │ ├── v2/
│ │ │ │ ├── services.go
│ │ │ │ └── services_test.go
│ │ │ └── v3/
│ │ │ ├── services.go
│ │ │ └── services_test.go
│ │ └── quota/
│ │ └── v1/
│ │ ├── evaluator/
│ │ │ └── core/
│ │ │ ├── persistentvolumeclaims.go
│ │ │ ├── pods.go
│ │ │ ├── registry.go
│ │ │ └── services.go
│ │ ├── generic/
│ │ │ ├── configuration.go
│ │ │ ├── evaluator.go
│ │ │ └── registry.go
│ │ ├── install/
│ │ │ └── registry.go
│ │ ├── interfaces.go
│ │ └── resources.go
│ └── plugin/
│ └── pkg/
│ └── admission/
│ └── resourcequota/
│ ├── apis/
│ │ └── resourcequota/
│ │ └── types.go
│ ├── controller.go
│ └── resource_access.go
├── pkg/
│ ├── api/
│ │ ├── cluster/
│ │ │ └── v1alpha1/
│ │ │ └── types.go
│ │ ├── resource/
│ │ │ └── v1alpha2/
│ │ │ └── types.go
│ │ ├── types.go
│ │ └── utils.go
│ ├── apiserver/
│ │ ├── apiserver.go
│ │ ├── auditing/
│ │ │ ├── client.go
│ │ │ ├── event.go
│ │ │ ├── internal/
│ │ │ │ └── backend.go
│ │ │ ├── log/
│ │ │ │ └── backend.go
│ │ │ ├── options.go
│ │ │ └── webhook/
│ │ │ └── backend.go
│ │ ├── authentication/
│ │ │ ├── authenticators/
│ │ │ │ ├── basic/
│ │ │ │ │ └── basic.go
│ │ │ │ └── jwt/
│ │ │ │ └── jwt.go
│ │ │ ├── identityprovider/
│ │ │ │ ├── aliyunidaas/
│ │ │ │ │ ├── idaas.go
│ │ │ │ │ └── idaas_test.go
│ │ │ │ ├── cas/
│ │ │ │ │ └── cas.go
│ │ │ │ ├── configuration.go
│ │ │ │ ├── generic_provider.go
│ │ │ │ ├── github/
│ │ │ │ │ ├── github.go
│ │ │ │ │ └── github_test.go
│ │ │ │ ├── identity.go
│ │ │ │ ├── identity_provider_factory.go
│ │ │ │ ├── identityprovider.go
│ │ │ │ ├── ldap/
│ │ │ │ │ ├── ldap.go
│ │ │ │ │ └── ldap_test.go
│ │ │ │ ├── oauth_provider.go
│ │ │ │ └── oidc/
│ │ │ │ ├── oidc.go
│ │ │ │ └── oidc_test.go
│ │ │ ├── oauth/
│ │ │ │ ├── error.go
│ │ │ │ ├── oauth_client.go
│ │ │ │ ├── oauth_client_test.go
│ │ │ │ ├── oidc.go
│ │ │ │ ├── oidc_test.go
│ │ │ │ └── options.go
│ │ │ ├── options.go
│ │ │ ├── request/
│ │ │ │ ├── anonymous/
│ │ │ │ │ ├── anonymous.go
│ │ │ │ │ └── anonymous_test.go
│ │ │ │ ├── basictoken/
│ │ │ │ │ └── basic_token.go
│ │ │ │ └── bearertoken/
│ │ │ │ ├── bearertoken.go
│ │ │ │ └── bearertoken_test.go
│ │ │ └── token/
│ │ │ ├── issuer.go
│ │ │ └── issuer_test.go
│ │ ├── authorization/
│ │ │ ├── authorizer/
│ │ │ │ ├── interfaces.go
│ │ │ │ └── rule.go
│ │ │ ├── authorizerfactory/
│ │ │ │ ├── builtin.go
│ │ │ │ └── builtin_test.go
│ │ │ ├── options.go
│ │ │ ├── path/
│ │ │ │ ├── doc.go
│ │ │ │ ├── path.go
│ │ │ │ └── path_test.go
│ │ │ ├── rbac/
│ │ │ │ ├── evaluation_helpers.go
│ │ │ │ ├── rbac.go
│ │ │ │ └── rbac_test.go
│ │ │ └── union/
│ │ │ ├── union.go
│ │ │ └── union_test.go
│ │ ├── filters/
│ │ │ ├── apiservice.go
│ │ │ ├── auditing.go
│ │ │ ├── authentication.go
│ │ │ ├── authorization.go
│ │ │ ├── dynamicresource.go
│ │ │ ├── filters.go
│ │ │ ├── jsbundle.go
│ │ │ ├── kubeapiserver.go
│ │ │ ├── multicluster.go
│ │ │ ├── requestinfo.go
│ │ │ ├── responder.go
│ │ │ └── reverseproxy.go
│ │ ├── metrics/
│ │ │ └── metrics.go
│ │ ├── options/
│ │ │ └── options.go
│ │ ├── query/
│ │ │ ├── field.go
│ │ │ ├── types.go
│ │ │ └── types_test.go
│ │ ├── request/
│ │ │ ├── context.go
│ │ │ ├── context_test.go
│ │ │ ├── requestinfo.go
│ │ │ └── requestinfo_test.go
│ │ ├── rest/
│ │ │ └── interface.go
│ │ └── runtime/
│ │ └── runtime.go
│ ├── componenthelper/
│ │ └── auth/
│ │ └── rbac/
│ │ ├── clusterrole_interface.go
│ │ ├── globalrole_interfaces.go
│ │ ├── helper.go
│ │ ├── helper_test.go
│ │ ├── interface.go
│ │ ├── policy_comparator.go
│ │ ├── role_interfaces.go
│ │ └── workspacerole_interfaces.go
│ ├── config/
│ │ ├── config.go
│ │ ├── config_test.go
│ │ └── options.go
│ ├── constants/
│ │ └── constants.go
│ ├── controller/
│ │ ├── application/
│ │ │ ├── appcategory_controller.go
│ │ │ ├── apprelease_controller.go
│ │ │ ├── apprelease_webhook.go
│ │ │ ├── appversion_contrlller.go
│ │ │ ├── delete_predicate.go
│ │ │ ├── executor.go
│ │ │ ├── helm_repo_controller.go
│ │ │ └── predicate.go
│ │ ├── certificatesigningrequest/
│ │ │ └── certificatesigningrequest_controller.go
│ │ ├── cluster/
│ │ │ ├── cluster_controller.go
│ │ │ ├── cluster_controller_test.go
│ │ │ ├── cluster_webhook.go
│ │ │ ├── helper.go
│ │ │ ├── kubeconfig.go
│ │ │ ├── predicate/
│ │ │ │ └── predicate.go
│ │ │ └── utils/
│ │ │ └── utils.go
│ │ ├── clusterlabel/
│ │ │ └── clusterlabel_controller.go
│ │ ├── clusterrole/
│ │ │ └── clusterrole_controller.go
│ │ ├── clusterrolebinding/
│ │ │ └── clusterrolebinding_controller.go
│ │ ├── config/
│ │ │ ├── config_webhook.go
│ │ │ ├── identityprovider/
│ │ │ │ └── webhook.go
│ │ │ ├── oauthclient/
│ │ │ │ └── webhook.go
│ │ │ └── webhook_factory.go
│ │ ├── controllertest/
│ │ │ └── testing.go
│ │ ├── conversion/
│ │ │ └── conversion.go
│ │ ├── core/
│ │ │ ├── category_controller.go
│ │ │ ├── extension_controller.go
│ │ │ ├── extensionversion_controller.go
│ │ │ ├── installplan_controller.go
│ │ │ ├── installplan_webhook.go
│ │ │ ├── repository_controller.go
│ │ │ ├── util.go
│ │ │ └── util_test.go
│ │ ├── extension/
│ │ │ ├── apiservice_webhook.go
│ │ │ ├── extensionentry_webhook.go
│ │ │ ├── jsbundle_webhook.go
│ │ │ └── reverseproxy_webhook.go
│ │ ├── globalrole/
│ │ │ └── globalrole_controller.go
│ │ ├── globalrolebinding/
│ │ │ └── globalrolebinding_controller.go
│ │ ├── group/
│ │ │ └── group_controller.go
│ │ ├── groupbinding/
│ │ │ └── groupbinding_controller.go
│ │ ├── job/
│ │ │ ├── job_controller.go
│ │ │ ├── job_controller_test.go
│ │ │ └── types.go
│ │ ├── k8sapplication/
│ │ │ ├── condition.go
│ │ │ ├── k8sapplication_controller.go
│ │ │ ├── status.go
│ │ │ └── utils.go
│ │ ├── ksserviceaccount/
│ │ │ ├── pod_injector.go
│ │ │ └── serviceaccount_controller.go
│ │ ├── kubeconfig/
│ │ │ └── kubeconfig_controller.go
│ │ ├── kubectl/
│ │ │ ├── kubectl.go
│ │ │ └── lease/
│ │ │ └── lease.go
│ │ ├── loginrecord/
│ │ │ ├── loginrecord_controller.go
│ │ │ └── loginrecord_controller_test.go
│ │ ├── manager.go
│ │ ├── namespace/
│ │ │ ├── namespace_controller.go
│ │ │ ├── namespace_controller_suite_test.go
│ │ │ └── namespace_controller_test.go
│ │ ├── openapi/
│ │ │ ├── config.go
│ │ │ └── openapi_controller.go
│ │ ├── options/
│ │ │ └── options.go
│ │ ├── quota/
│ │ │ ├── accessor.go
│ │ │ ├── lockfactory.go
│ │ │ ├── resourcequota_controller.go
│ │ │ ├── resourcequota_webhook.go
│ │ │ └── util.go
│ │ ├── resourceprotection/
│ │ │ └── resource_protection_webhook.go
│ │ ├── role/
│ │ │ └── role_controller.go
│ │ ├── rolebinding/
│ │ │ └── rolebinding_controller.go
│ │ ├── roletemplate/
│ │ │ └── roletemplate_controller.go
│ │ ├── secret/
│ │ │ └── serviceaccount_secret_controller.go
│ │ ├── serviceaccount/
│ │ │ ├── serviceaccount_controller.go
│ │ │ └── serviceaccount_controller_test.go
│ │ ├── serviceaccounttoken/
│ │ │ └── serviceaccount_token_controller.go
│ │ ├── storageclass/
│ │ │ ├── storageclass_controller.go
│ │ │ └── storageclass_controller_test.go
│ │ ├── telemetry/
│ │ │ ├── options.go
│ │ │ ├── runnable.go
│ │ │ └── telemetry_controller.go
│ │ ├── user/
│ │ │ ├── user_controller.go
│ │ │ ├── user_controller_test.go
│ │ │ └── user_webhook.go
│ │ ├── workspace/
│ │ │ ├── metrics.go
│ │ │ ├── workspace_controller.go
│ │ │ ├── workspace_controller_suite_test.go
│ │ │ └── workspace_controller_test.go
│ │ ├── workspacerole/
│ │ │ ├── workspacerole_controller.go
│ │ │ ├── workspacerole_controller_suite_test.go
│ │ │ └── workspacerole_controller_test.go
│ │ ├── workspacerolebinding/
│ │ │ ├── workspacerolebinding_controller.go
│ │ │ ├── workspacerolebinding_controller_suite_test.go
│ │ │ └── workspacerolebinding_controller_test.go
│ │ └── workspacetemplate/
│ │ ├── predicate/
│ │ │ └── predicate.go
│ │ ├── utils/
│ │ │ └── helper.go
│ │ ├── workspacetemplate_controller.go
│ │ └── workspacetemplate_controller_test.go
│ ├── kapis/
│ │ ├── application/
│ │ │ └── v2/
│ │ │ ├── attachments.go
│ │ │ ├── crd2cr.go
│ │ │ ├── errors.go
│ │ │ ├── handler_app.go
│ │ │ ├── handler_apprls.go
│ │ │ ├── handler_appversion.go
│ │ │ ├── handler_category.go
│ │ │ ├── handler_repo.go
│ │ │ ├── operator.go
│ │ │ ├── register.go
│ │ │ └── utils.go
│ │ ├── cluster/
│ │ │ └── v1alpha1/
│ │ │ ├── handler.go
│ │ │ ├── handler_test.go
│ │ │ ├── label_handler.go
│ │ │ └── register.go
│ │ ├── config/
│ │ │ └── v1alpha2/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── gateway/
│ │ │ └── v1alpha2/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── generic/
│ │ │ ├── generic.go
│ │ │ └── generic_test.go
│ │ ├── iam/
│ │ │ └── v1beta1/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── oauth/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── operations/
│ │ │ └── v1alpha2/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── package/
│ │ │ └── v1alpha1/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── resources/
│ │ │ ├── group.go
│ │ │ ├── v1alpha2/
│ │ │ │ ├── handler.go
│ │ │ │ └── register.go
│ │ │ └── v1alpha3/
│ │ │ ├── handler.go
│ │ │ ├── handler_test.go
│ │ │ └── register.go
│ │ ├── static/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── tenant/
│ │ │ ├── v1alpha3/
│ │ │ │ ├── handler.go
│ │ │ │ └── register.go
│ │ │ └── v1beta1/
│ │ │ ├── handler.go
│ │ │ ├── register.go
│ │ │ └── resource_handler.go
│ │ ├── terminal/
│ │ │ └── v1alpha2/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── version/
│ │ │ └── register.go
│ │ └── workloadtemplate/
│ │ └── v1alpha1/
│ │ ├── handler.go
│ │ └── register.go
│ ├── models/
│ │ ├── auth/
│ │ │ ├── authenticator.go
│ │ │ ├── login_recoder.go
│ │ │ ├── mapper.go
│ │ │ ├── oauth.go
│ │ │ ├── oauth_test.go
│ │ │ ├── password.go
│ │ │ ├── password_test.go
│ │ │ └── token.go
│ │ ├── components/
│ │ │ ├── components.go
│ │ │ └── components_test.go
│ │ ├── composedapp/
│ │ │ └── options.go
│ │ ├── git/
│ │ │ ├── OWNERS
│ │ │ ├── git.go
│ │ │ └── git_test.go
│ │ ├── iam/
│ │ │ ├── am/
│ │ │ │ ├── am.go
│ │ │ │ └── rbac/
│ │ │ │ └── evaluation_helpers.go
│ │ │ ├── group/
│ │ │ │ └── group.go
│ │ │ └── im/
│ │ │ ├── im.go
│ │ │ └── im_test.go
│ │ ├── kubeconfig/
│ │ │ ├── kubeconfig.go
│ │ │ └── options.go
│ │ ├── quotas/
│ │ │ └── quotas.go
│ │ ├── registries/
│ │ │ ├── blob.go
│ │ │ ├── image.go
│ │ │ ├── image_test.go
│ │ │ ├── image_type.go
│ │ │ ├── imagesearch/
│ │ │ │ ├── configuration.go
│ │ │ │ ├── controller.go
│ │ │ │ ├── dockerhub/
│ │ │ │ │ └── provider.go
│ │ │ │ ├── harbor/
│ │ │ │ │ └── provider.go
│ │ │ │ └── registry_provider.go
│ │ │ ├── manifest.go
│ │ │ ├── manifest_test.go
│ │ │ ├── registries.go
│ │ │ ├── registry_client.go
│ │ │ ├── registry_client_test.go
│ │ │ ├── token.go
│ │ │ ├── token_test.go
│ │ │ └── v2/
│ │ │ ├── options.go
│ │ │ ├── registries.go
│ │ │ ├── registries_test.go
│ │ │ ├── registry_helper.go
│ │ │ ├── secret_authenticator.go
│ │ │ ├── secret_authenticator_test.go
│ │ │ └── types.go
│ │ ├── resources/
│ │ │ ├── v1alpha3/
│ │ │ │ ├── cluster/
│ │ │ │ │ └── clusters.go
│ │ │ │ ├── clusterrole/
│ │ │ │ │ ├── clusterroles.go
│ │ │ │ │ └── clusterroles_test.go
│ │ │ │ ├── clusterrolebinding/
│ │ │ │ │ ├── clusterrolebindings.go
│ │ │ │ │ └── clusterrolebindings_test.go
│ │ │ │ ├── configmap/
│ │ │ │ │ ├── configmaps.go
│ │ │ │ │ └── configmaps_test.go
│ │ │ │ ├── cronjob/
│ │ │ │ │ └── cronjobs.go
│ │ │ │ ├── customresourcedefinition/
│ │ │ │ │ └── customresourcedefinitions.go
│ │ │ │ ├── daemonset/
│ │ │ │ │ ├── daemonset.go
│ │ │ │ │ └── daemonset_test.go
│ │ │ │ ├── deployment/
│ │ │ │ │ ├── deployments.go
│ │ │ │ │ └── deployments_test.go
│ │ │ │ ├── globalrole/
│ │ │ │ │ └── globalroles.go
│ │ │ │ ├── globalrolebinding/
│ │ │ │ │ └── globalrolebindings.go
│ │ │ │ ├── group/
│ │ │ │ │ └── group.go
│ │ │ │ ├── groupbinding/
│ │ │ │ │ └── groupbinding.go
│ │ │ │ ├── hpa/
│ │ │ │ │ └── horizontalpodautoscalers.go
│ │ │ │ ├── ingress/
│ │ │ │ │ └── ingresses.go
│ │ │ │ ├── interface.go
│ │ │ │ ├── interface_test.go
│ │ │ │ ├── job/
│ │ │ │ │ └── jobs.go
│ │ │ │ ├── label/
│ │ │ │ │ └── label.go
│ │ │ │ ├── loginrecord/
│ │ │ │ │ └── loginrecords.go
│ │ │ │ ├── namespace/
│ │ │ │ │ └── namespaces.go
│ │ │ │ ├── node/
│ │ │ │ │ └── nodes.go
│ │ │ │ ├── persistentvolume/
│ │ │ │ │ └── persistentvolume.go
│ │ │ │ ├── persistentvolumeclaim/
│ │ │ │ │ └── persistentvolumeclaim.go
│ │ │ │ ├── pod/
│ │ │ │ │ └── pods.go
│ │ │ │ ├── resource/
│ │ │ │ │ ├── resource.go
│ │ │ │ │ └── resource_test.go
│ │ │ │ ├── role/
│ │ │ │ │ └── roles.go
│ │ │ │ ├── rolebinding/
│ │ │ │ │ └── rolebindings.go
│ │ │ │ ├── secret/
│ │ │ │ │ └── secrets.go
│ │ │ │ ├── service/
│ │ │ │ │ └── services.go
│ │ │ │ ├── serviceaccount/
│ │ │ │ │ └── serviceaccount.go
│ │ │ │ ├── statefulset/
│ │ │ │ │ └── statefulsets.go
│ │ │ │ ├── storageclass/
│ │ │ │ │ └── storageclasses.go
│ │ │ │ ├── user/
│ │ │ │ │ └── users.go
│ │ │ │ ├── workspace/
│ │ │ │ │ └── workspaces.go
│ │ │ │ ├── workspacerole/
│ │ │ │ │ └── workspaceroles.go
│ │ │ │ ├── workspacerolebinding/
│ │ │ │ │ └── workspacerolebindings.go
│ │ │ │ └── workspacetemplate/
│ │ │ │ └── workspacetemplates.go
│ │ │ └── v1beta1/
│ │ │ ├── interface.go
│ │ │ ├── resourcemanager.go
│ │ │ └── resourcemanager_test.go
│ │ ├── revisions/
│ │ │ └── revisions.go
│ │ ├── storage/
│ │ │ └── storage.go
│ │ ├── tenant/
│ │ │ ├── resourcequota.go
│ │ │ └── tenant.go
│ │ ├── terminal/
│ │ │ ├── options.go
│ │ │ └── terminal.go
│ │ ├── types.go
│ │ └── workloads/
│ │ └── jobs.go
│ ├── multicluster/
│ │ └── options.go
│ ├── scheme/
│ │ └── scheme.go
│ ├── server/
│ │ ├── errors/
│ │ │ └── errors.go
│ │ ├── healthz/
│ │ │ └── healthz.go
│ │ ├── options/
│ │ │ ├── dynamic_options.go
│ │ │ └── options.go
│ │ └── params/
│ │ ├── params.go
│ │ └── params_test.go
│ ├── simple/
│ │ └── client/
│ │ ├── application/
│ │ │ ├── helper.go
│ │ │ ├── oci.go
│ │ │ ├── oci_test.go
│ │ │ ├── store.go
│ │ │ └── yaml.go
│ │ ├── cache/
│ │ │ ├── cache.go
│ │ │ ├── factory.go
│ │ │ ├── inmemory_cache.go
│ │ │ ├── inmemory_cache_test.go
│ │ │ ├── options.go
│ │ │ └── redis.go
│ │ ├── k8s/
│ │ │ ├── kubernetes.go
│ │ │ ├── null_client.go
│ │ │ └── options.go
│ │ ├── oci/
│ │ │ ├── errors.go
│ │ │ ├── oci_test.go
│ │ │ ├── registry.go
│ │ │ ├── url.go
│ │ │ └── utils.go
│ │ └── overview/
│ │ ├── constants.go
│ │ └── metrics.go
│ ├── utils/
│ │ ├── clusterclient/
│ │ │ └── clusterclient.go
│ │ ├── directives/
│ │ │ ├── match.go
│ │ │ ├── match_test.go
│ │ │ ├── replace.go
│ │ │ ├── rewrite.go
│ │ │ └── rewrite_test.go
│ │ ├── hashutil/
│ │ │ └── hashutil.go
│ │ ├── idutils/
│ │ │ ├── id_utils.go
│ │ │ └── id_utils_test.go
│ │ ├── iputil/
│ │ │ └── iputils.go
│ │ ├── josnpatchutil/
│ │ │ └── jsonpatchutil.go
│ │ ├── jsonutil/
│ │ │ └── jsonutils.go
│ │ ├── k8sutil/
│ │ │ ├── k8sutil.go
│ │ │ ├── k8sutil_test.go
│ │ │ └── version.go
│ │ ├── net/
│ │ │ └── net.go
│ │ ├── pkiutil/
│ │ │ └── pkiutil.go
│ │ ├── rbac/
│ │ │ └── name.go
│ │ ├── readerutils/
│ │ │ └── MD5Reader.go
│ │ ├── reflectutils/
│ │ │ ├── deep.go
│ │ │ └── reflect.go
│ │ ├── resourceparse/
│ │ │ └── resource_parse.go
│ │ ├── serviceaccount/
│ │ │ └── serviceaccount_util.go
│ │ ├── signals/
│ │ │ ├── signal.go
│ │ │ ├── signal_posix.go
│ │ │ └── signal_windows.go
│ │ ├── sliceutil/
│ │ │ └── sliceutils.go
│ │ ├── stringutils/
│ │ │ └── string.go
│ │ └── term/
│ │ └── term.go
│ └── version/
│ └── version.go
├── staging/
│ ├── README.md
│ ├── publishing/
│ │ └── rules.yaml
│ └── src/
│ └── kubesphere.io/
│ ├── api/
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── OWNERS
│ │ ├── README.md
│ │ ├── application/
│ │ │ └── v2/
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── cluster/
│ │ │ └── v1alpha1/
│ │ │ ├── doc.go
│ │ │ ├── openapi_generated.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── constants/
│ │ │ └── constants.go
│ │ ├── core/
│ │ │ └── v1alpha1/
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── i18n.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── extensions/
│ │ │ └── v1alpha1/
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ ├── upstream.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── gateway/
│ │ │ └── v1alpha2/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── iam/
│ │ │ ├── v1alpha2/
│ │ │ │ ├── doc.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ └── v1beta1/
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── quota/
│ │ │ └── v1alpha2/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── storage/
│ │ │ └── v1alpha1/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ └── tenant/
│ │ ├── v1alpha1/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── v1alpha2/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ └── v1beta1/
│ │ ├── doc.go
│ │ ├── openapi_generated.go
│ │ ├── register.go
│ │ ├── types.go
│ │ └── zz_generated.deepcopy.go
│ ├── client-go/
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── OWNERS
│ │ ├── README.md
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── kubesphere/
│ │ │ └── scheme/
│ │ │ ├── doc.go
│ │ │ └── register.go
│ │ └── rest/
│ │ ├── client.go
│ │ ├── client_test.go
│ │ ├── config.go
│ │ ├── config_test.go
│ │ ├── fake/
│ │ │ └── fake.go
│ │ ├── request.go
│ │ ├── request_test.go
│ │ ├── transport.go
│ │ ├── transport_test.go
│ │ ├── url_utils.go
│ │ ├── url_utils_test.go
│ │ ├── urlbackoff.go
│ │ ├── urlbackoff_test.go
│ │ ├── warnings.go
│ │ ├── with_retry.go
│ │ └── with_retry_test.go
│ └── utils/
│ ├── LICENSE
│ ├── OWNERS
│ ├── README.md
│ ├── go.mod
│ ├── go.sum
│ ├── helm/
│ │ ├── build/
│ │ │ └── Dockerfile
│ │ ├── executor.go
│ │ ├── repo_index.go
│ │ ├── rest_client_getter.go
│ │ └── tls_util.go
│ └── s3/
│ └── s3.go
├── test/
│ ├── e2e/
│ │ ├── constant/
│ │ │ └── constants.go
│ │ ├── e2e.go
│ │ ├── e2e_test.go
│ │ ├── framework/
│ │ │ ├── expect.go
│ │ │ ├── framework.go
│ │ │ ├── ginkgowrapper/
│ │ │ │ └── wrapper.go
│ │ │ ├── log.go
│ │ │ └── test_context.go
│ │ ├── kind.yaml
│ │ ├── quick.go
│ │ └── users.go
│ ├── network/
│ │ ├── Dockerfile
│ │ ├── Jenkinsfile
│ │ ├── OWNERS
│ │ ├── manifests/
│ │ │ ├── sample1.yaml
│ │ │ └── test-job.yaml
│ │ └── test.sh
│ └── testdata/
│ └── certs/
│ ├── tls.crt
│ └── tls.key
├── third_party/
│ └── .gitkeep
├── tools/
│ ├── cmd/
│ │ ├── crd-doc-gen/
│ │ │ └── main.go
│ │ ├── dependencyverifier/
│ │ │ └── dependencyverifier.go
│ │ └── doc-gen/
│ │ └── main.go
│ ├── lib/
│ │ ├── render.go
│ │ └── storage.go
│ └── tools.go
└── vendor/
├── OWNERS
├── cel.dev/
│ └── expr/
│ ├── .bazelversion
│ ├── .gitattributes
│ ├── .gitignore
│ ├── BUILD.bazel
│ ├── CODE_OF_CONDUCT.md
│ ├── CONTRIBUTING.md
│ ├── GOVERNANCE.md
│ ├── LICENSE
│ ├── MAINTAINERS.md
│ ├── MODULE.bazel
│ ├── README.md
│ ├── WORKSPACE
│ ├── WORKSPACE.bzlmod
│ ├── checked.pb.go
│ ├── cloudbuild.yaml
│ ├── eval.pb.go
│ ├── explain.pb.go
│ ├── regen_go_proto.sh
│ ├── regen_go_proto_canonical_protos.sh
│ ├── syntax.pb.go
│ └── value.pb.go
├── code.cloudfoundry.org/
│ └── bytefmt/
│ ├── CODEOWNERS
│ ├── LICENSE
│ ├── NOTICE
│ ├── README.md
│ ├── bytes.go
│ ├── package.go
│ └── staticcheck.conf
├── dario.cat/
│ └── mergo/
│ ├── .deepsource.toml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CODE_OF_CONDUCT.md
│ ├── CONTRIBUTING.md
│ ├── FUNDING.json
│ ├── LICENSE
│ ├── README.md
│ ├── SECURITY.md
│ ├── doc.go
│ ├── map.go
│ ├── merge.go
│ └── mergo.go
├── github.com/
│ ├── AdaLogics/
│ │ └── go-fuzz-headers/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── consumer.go
│ │ ├── funcs.go
│ │ └── sql.go
│ ├── Azure/
│ │ ├── go-ansiterm/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── SECURITY.md
│ │ │ ├── constants.go
│ │ │ ├── context.go
│ │ │ ├── csi_entry_state.go
│ │ │ ├── csi_param_state.go
│ │ │ ├── escape_intermediate_state.go
│ │ │ ├── escape_state.go
│ │ │ ├── event_handler.go
│ │ │ ├── ground_state.go
│ │ │ ├── osc_string_state.go
│ │ │ ├── parser.go
│ │ │ ├── parser_action_helpers.go
│ │ │ ├── parser_actions.go
│ │ │ ├── states.go
│ │ │ ├── utilities.go
│ │ │ └── winterm/
│ │ │ ├── ansi.go
│ │ │ ├── api.go
│ │ │ ├── attr_translation.go
│ │ │ ├── cursor_helpers.go
│ │ │ ├── erase_helpers.go
│ │ │ ├── scroll_helper.go
│ │ │ ├── utilities.go
│ │ │ └── win_event_handler.go
│ │ └── go-ntlmssp/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── authenticate_message.go
│ │ ├── authheader.go
│ │ ├── avids.go
│ │ ├── challenge_message.go
│ │ ├── messageheader.go
│ │ ├── negotiate_flags.go
│ │ ├── negotiate_message.go
│ │ ├── negotiator.go
│ │ ├── nlmp.go
│ │ ├── unicode.go
│ │ ├── varfield.go
│ │ └── version.go
│ ├── BurntSushi/
│ │ └── toml/
│ │ ├── .gitignore
│ │ ├── COPYING
│ │ ├── README.md
│ │ ├── decode.go
│ │ ├── deprecated.go
│ │ ├── doc.go
│ │ ├── encode.go
│ │ ├── error.go
│ │ ├── internal/
│ │ │ └── tz.go
│ │ ├── lex.go
│ │ ├── meta.go
│ │ ├── parse.go
│ │ ├── type_fields.go
│ │ └── type_toml.go
│ ├── MakeNowJust/
│ │ └── heredoc/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── heredoc.go
│ ├── Masterminds/
│ │ ├── goutils/
│ │ │ ├── .travis.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── appveyor.yml
│ │ │ ├── cryptorandomstringutils.go
│ │ │ ├── randomstringutils.go
│ │ │ ├── stringutils.go
│ │ │ └── wordutils.go
│ │ ├── semver/
│ │ │ └── v3/
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE.txt
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── SECURITY.md
│ │ │ ├── collection.go
│ │ │ ├── constraints.go
│ │ │ ├── doc.go
│ │ │ └── version.go
│ │ └── squirrel/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── case.go
│ │ ├── delete.go
│ │ ├── delete_ctx.go
│ │ ├── expr.go
│ │ ├── insert.go
│ │ ├── insert_ctx.go
│ │ ├── part.go
│ │ ├── placeholder.go
│ │ ├── row.go
│ │ ├── select.go
│ │ ├── select_ctx.go
│ │ ├── squirrel.go
│ │ ├── squirrel_ctx.go
│ │ ├── statement.go
│ │ ├── stmtcacher.go
│ │ ├── stmtcacher_ctx.go
│ │ ├── stmtcacher_noctx.go
│ │ ├── update.go
│ │ ├── update_ctx.go
│ │ └── where.go
│ ├── Microsoft/
│ │ └── go-winio/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── CODEOWNERS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── backup.go
│ │ ├── doc.go
│ │ ├── ea.go
│ │ ├── file.go
│ │ ├── fileinfo.go
│ │ ├── hvsock.go
│ │ ├── internal/
│ │ │ ├── fs/
│ │ │ │ ├── doc.go
│ │ │ │ ├── fs.go
│ │ │ │ ├── security.go
│ │ │ │ └── zsyscall_windows.go
│ │ │ ├── socket/
│ │ │ │ ├── rawaddr.go
│ │ │ │ ├── socket.go
│ │ │ │ └── zsyscall_windows.go
│ │ │ └── stringbuffer/
│ │ │ └── wstring.go
│ │ ├── pipe.go
│ │ ├── pkg/
│ │ │ └── guid/
│ │ │ ├── guid.go
│ │ │ ├── guid_nonwindows.go
│ │ │ ├── guid_windows.go
│ │ │ └── variant_string.go
│ │ ├── privilege.go
│ │ ├── reparse.go
│ │ ├── sd.go
│ │ ├── syscall.go
│ │ └── zsyscall_windows.go
│ ├── NYTimes/
│ │ └── gziphandler/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── gzip.go
│ │ └── gzip_go18.go
│ ├── ProtonMail/
│ │ └── go-crypto/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── bitcurves/
│ │ │ └── bitcurve.go
│ │ ├── brainpool/
│ │ │ ├── brainpool.go
│ │ │ └── rcurve.go
│ │ ├── eax/
│ │ │ ├── eax.go
│ │ │ ├── eax_test_vectors.go
│ │ │ └── random_vectors.go
│ │ ├── internal/
│ │ │ └── byteutil/
│ │ │ └── byteutil.go
│ │ ├── ocb/
│ │ │ ├── ocb.go
│ │ │ ├── random_vectors.go
│ │ │ ├── rfc7253_test_vectors_suite_a.go
│ │ │ └── rfc7253_test_vectors_suite_b.go
│ │ └── openpgp/
│ │ ├── aes/
│ │ │ └── keywrap/
│ │ │ └── keywrap.go
│ │ ├── armor/
│ │ │ ├── armor.go
│ │ │ └── encode.go
│ │ ├── canonical_text.go
│ │ ├── ecdh/
│ │ │ └── ecdh.go
│ │ ├── ecdsa/
│ │ │ └── ecdsa.go
│ │ ├── ed25519/
│ │ │ └── ed25519.go
│ │ ├── ed448/
│ │ │ └── ed448.go
│ │ ├── eddsa/
│ │ │ └── eddsa.go
│ │ ├── elgamal/
│ │ │ └── elgamal.go
│ │ ├── errors/
│ │ │ └── errors.go
│ │ ├── hash.go
│ │ ├── internal/
│ │ │ ├── algorithm/
│ │ │ │ ├── aead.go
│ │ │ │ ├── cipher.go
│ │ │ │ └── hash.go
│ │ │ ├── ecc/
│ │ │ │ ├── curve25519.go
│ │ │ │ ├── curve_info.go
│ │ │ │ ├── curves.go
│ │ │ │ ├── ed25519.go
│ │ │ │ ├── ed448.go
│ │ │ │ ├── generic.go
│ │ │ │ └── x448.go
│ │ │ └── encoding/
│ │ │ ├── encoding.go
│ │ │ ├── mpi.go
│ │ │ └── oid.go
│ │ ├── key_generation.go
│ │ ├── keys.go
│ │ ├── keys_test_data.go
│ │ ├── packet/
│ │ │ ├── aead_config.go
│ │ │ ├── aead_crypter.go
│ │ │ ├── aead_encrypted.go
│ │ │ ├── compressed.go
│ │ │ ├── config.go
│ │ │ ├── config_v5.go
│ │ │ ├── encrypted_key.go
│ │ │ ├── literal.go
│ │ │ ├── marker.go
│ │ │ ├── notation.go
│ │ │ ├── ocfb.go
│ │ │ ├── one_pass_signature.go
│ │ │ ├── opaque.go
│ │ │ ├── packet.go
│ │ │ ├── packet_sequence.go
│ │ │ ├── packet_unsupported.go
│ │ │ ├── padding.go
│ │ │ ├── private_key.go
│ │ │ ├── private_key_test_data.go
│ │ │ ├── public_key.go
│ │ │ ├── public_key_test_data.go
│ │ │ ├── reader.go
│ │ │ ├── recipient.go
│ │ │ ├── signature.go
│ │ │ ├── symmetric_key_encrypted.go
│ │ │ ├── symmetrically_encrypted.go
│ │ │ ├── symmetrically_encrypted_aead.go
│ │ │ ├── symmetrically_encrypted_mdc.go
│ │ │ ├── userattribute.go
│ │ │ └── userid.go
│ │ ├── read.go
│ │ ├── read_write_test_data.go
│ │ ├── s2k/
│ │ │ ├── s2k.go
│ │ │ ├── s2k_cache.go
│ │ │ └── s2k_config.go
│ │ ├── write.go
│ │ ├── x25519/
│ │ │ └── x25519.go
│ │ └── x448/
│ │ └── x448.go
│ ├── agnivade/
│ │ └── levenshtein/
│ │ ├── .gitignore
│ │ ├── License.txt
│ │ ├── Makefile
│ │ ├── README.md
│ │ └── levenshtein.go
│ ├── antlr4-go/
│ │ └── antlr/
│ │ └── v4/
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── antlrdoc.go
│ │ ├── atn.go
│ │ ├── atn_config.go
│ │ ├── atn_config_set.go
│ │ ├── atn_deserialization_options.go
│ │ ├── atn_deserializer.go
│ │ ├── atn_simulator.go
│ │ ├── atn_state.go
│ │ ├── atn_type.go
│ │ ├── char_stream.go
│ │ ├── common_token_factory.go
│ │ ├── common_token_stream.go
│ │ ├── comparators.go
│ │ ├── configuration.go
│ │ ├── dfa.go
│ │ ├── dfa_serializer.go
│ │ ├── dfa_state.go
│ │ ├── diagnostic_error_listener.go
│ │ ├── error_listener.go
│ │ ├── error_strategy.go
│ │ ├── errors.go
│ │ ├── file_stream.go
│ │ ├── input_stream.go
│ │ ├── int_stream.go
│ │ ├── interval_set.go
│ │ ├── jcollect.go
│ │ ├── lexer.go
│ │ ├── lexer_action.go
│ │ ├── lexer_action_executor.go
│ │ ├── lexer_atn_simulator.go
│ │ ├── ll1_analyzer.go
│ │ ├── mutex.go
│ │ ├── mutex_nomutex.go
│ │ ├── nostatistics.go
│ │ ├── parser.go
│ │ ├── parser_atn_simulator.go
│ │ ├── parser_rule_context.go
│ │ ├── prediction_context.go
│ │ ├── prediction_context_cache.go
│ │ ├── prediction_mode.go
│ │ ├── recognizer.go
│ │ ├── rule_context.go
│ │ ├── semantic_context.go
│ │ ├── statistics.go
│ │ ├── stats_data.go
│ │ ├── token.go
│ │ ├── token_source.go
│ │ ├── token_stream.go
│ │ ├── tokenstream_rewriter.go
│ │ ├── trace_listener.go
│ │ ├── transition.go
│ │ ├── tree.go
│ │ ├── trees.go
│ │ └── utils.go
│ ├── asaskevich/
│ │ └── govalidator/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── arrays.go
│ │ ├── converter.go
│ │ ├── doc.go
│ │ ├── error.go
│ │ ├── numerics.go
│ │ ├── patterns.go
│ │ ├── types.go
│ │ ├── utils.go
│ │ ├── validator.go
│ │ └── wercker.yml
│ ├── aws/
│ │ └── aws-sdk-go/
│ │ ├── LICENSE.txt
│ │ ├── NOTICE.txt
│ │ ├── aws/
│ │ │ ├── arn/
│ │ │ │ └── arn.go
│ │ │ ├── auth/
│ │ │ │ └── bearer/
│ │ │ │ └── token.go
│ │ │ ├── awserr/
│ │ │ │ ├── error.go
│ │ │ │ └── types.go
│ │ │ ├── awsutil/
│ │ │ │ ├── copy.go
│ │ │ │ ├── equal.go
│ │ │ │ ├── path_value.go
│ │ │ │ ├── prettify.go
│ │ │ │ └── string_value.go
│ │ │ ├── client/
│ │ │ │ ├── client.go
│ │ │ │ ├── default_retryer.go
│ │ │ │ ├── logger.go
│ │ │ │ ├── metadata/
│ │ │ │ │ └── client_info.go
│ │ │ │ └── no_op_retryer.go
│ │ │ ├── config.go
│ │ │ ├── context_1_5.go
│ │ │ ├── context_1_9.go
│ │ │ ├── context_background_1_5.go
│ │ │ ├── context_background_1_7.go
│ │ │ ├── context_sleep.go
│ │ │ ├── convert_types.go
│ │ │ ├── corehandlers/
│ │ │ │ ├── awsinternal.go
│ │ │ │ ├── handlers.go
│ │ │ │ ├── param_validator.go
│ │ │ │ └── user_agent.go
│ │ │ ├── credentials/
│ │ │ │ ├── chain_provider.go
│ │ │ │ ├── context_background_go1.5.go
│ │ │ │ ├── context_background_go1.7.go
│ │ │ │ ├── context_go1.5.go
│ │ │ │ ├── context_go1.9.go
│ │ │ │ ├── credentials.go
│ │ │ │ ├── ec2rolecreds/
│ │ │ │ │ └── ec2_role_provider.go
│ │ │ │ ├── endpointcreds/
│ │ │ │ │ └── provider.go
│ │ │ │ ├── env_provider.go
│ │ │ │ ├── example.ini
│ │ │ │ ├── processcreds/
│ │ │ │ │ └── provider.go
│ │ │ │ ├── shared_credentials_provider.go
│ │ │ │ ├── ssocreds/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── os.go
│ │ │ │ │ ├── os_windows.go
│ │ │ │ │ ├── provider.go
│ │ │ │ │ ├── sso_cached_token.go
│ │ │ │ │ └── token_provider.go
│ │ │ │ ├── static_provider.go
│ │ │ │ └── stscreds/
│ │ │ │ ├── assume_role_provider.go
│ │ │ │ └── web_identity_provider.go
│ │ │ ├── csm/
│ │ │ │ ├── doc.go
│ │ │ │ ├── enable.go
│ │ │ │ ├── metric.go
│ │ │ │ ├── metric_chan.go
│ │ │ │ ├── metric_exception.go
│ │ │ │ └── reporter.go
│ │ │ ├── defaults/
│ │ │ │ ├── defaults.go
│ │ │ │ └── shared_config.go
│ │ │ ├── doc.go
│ │ │ ├── ec2metadata/
│ │ │ │ ├── api.go
│ │ │ │ ├── service.go
│ │ │ │ └── token_provider.go
│ │ │ ├── endpoints/
│ │ │ │ ├── decode.go
│ │ │ │ ├── defaults.go
│ │ │ │ ├── dep_service_ids.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── endpoints.go
│ │ │ │ ├── legacy_regions.go
│ │ │ │ ├── v3model.go
│ │ │ │ └── v3model_codegen.go
│ │ │ ├── errors.go
│ │ │ ├── jsonvalue.go
│ │ │ ├── logger.go
│ │ │ ├── request/
│ │ │ │ ├── connection_reset_error.go
│ │ │ │ ├── handlers.go
│ │ │ │ ├── http_request.go
│ │ │ │ ├── offset_reader.go
│ │ │ │ ├── request.go
│ │ │ │ ├── request_1_7.go
│ │ │ │ ├── request_1_8.go
│ │ │ │ ├── request_context.go
│ │ │ │ ├── request_context_1_6.go
│ │ │ │ ├── request_pagination.go
│ │ │ │ ├── retryer.go
│ │ │ │ ├── timeout_read_closer.go
│ │ │ │ ├── validation.go
│ │ │ │ └── waiter.go
│ │ │ ├── session/
│ │ │ │ ├── credentials.go
│ │ │ │ ├── custom_transport.go
│ │ │ │ ├── custom_transport_go1.12.go
│ │ │ │ ├── custom_transport_go1.5.go
│ │ │ │ ├── custom_transport_go1.6.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── env_config.go
│ │ │ │ ├── session.go
│ │ │ │ └── shared_config.go
│ │ │ ├── signer/
│ │ │ │ └── v4/
│ │ │ │ ├── header_rules.go
│ │ │ │ ├── options.go
│ │ │ │ ├── request_context_go1.5.go
│ │ │ │ ├── request_context_go1.7.go
│ │ │ │ ├── stream.go
│ │ │ │ ├── uri_path.go
│ │ │ │ └── v4.go
│ │ │ ├── types.go
│ │ │ ├── url.go
│ │ │ ├── url_1_7.go
│ │ │ └── version.go
│ │ ├── internal/
│ │ │ ├── context/
│ │ │ │ └── background_go1.5.go
│ │ │ ├── ini/
│ │ │ │ ├── ast.go
│ │ │ │ ├── comma_token.go
│ │ │ │ ├── comment_token.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── empty_token.go
│ │ │ │ ├── expression.go
│ │ │ │ ├── fuzz.go
│ │ │ │ ├── ini.go
│ │ │ │ ├── ini_lexer.go
│ │ │ │ ├── ini_parser.go
│ │ │ │ ├── literal_tokens.go
│ │ │ │ ├── newline_token.go
│ │ │ │ ├── number_helper.go
│ │ │ │ ├── op_tokens.go
│ │ │ │ ├── parse_error.go
│ │ │ │ ├── parse_stack.go
│ │ │ │ ├── sep_tokens.go
│ │ │ │ ├── skipper.go
│ │ │ │ ├── statement.go
│ │ │ │ ├── value_util.go
│ │ │ │ ├── visitor.go
│ │ │ │ ├── walker.go
│ │ │ │ └── ws_token.go
│ │ │ ├── s3shared/
│ │ │ │ ├── arn/
│ │ │ │ │ ├── accesspoint_arn.go
│ │ │ │ │ ├── arn.go
│ │ │ │ │ ├── outpost_arn.go
│ │ │ │ │ └── s3_object_lambda_arn.go
│ │ │ │ ├── endpoint_errors.go
│ │ │ │ ├── resource_request.go
│ │ │ │ └── s3err/
│ │ │ │ └── error.go
│ │ │ ├── sdkio/
│ │ │ │ ├── byte.go
│ │ │ │ ├── io_go1.6.go
│ │ │ │ └── io_go1.7.go
│ │ │ ├── sdkmath/
│ │ │ │ ├── floor.go
│ │ │ │ └── floor_go1.9.go
│ │ │ ├── sdkrand/
│ │ │ │ ├── locked_source.go
│ │ │ │ ├── read.go
│ │ │ │ └── read_1_5.go
│ │ │ ├── sdkuri/
│ │ │ │ └── path.go
│ │ │ ├── shareddefaults/
│ │ │ │ ├── ecs_container.go
│ │ │ │ ├── shared_config.go
│ │ │ │ ├── shared_config_resolve_home.go
│ │ │ │ └── shared_config_resolve_home_go1.12.go
│ │ │ ├── strings/
│ │ │ │ └── strings.go
│ │ │ └── sync/
│ │ │ └── singleflight/
│ │ │ ├── LICENSE
│ │ │ └── singleflight.go
│ │ ├── private/
│ │ │ ├── checksum/
│ │ │ │ └── content_md5.go
│ │ │ └── protocol/
│ │ │ ├── eventstream/
│ │ │ │ ├── debug.go
│ │ │ │ ├── decode.go
│ │ │ │ ├── encode.go
│ │ │ │ ├── error.go
│ │ │ │ ├── eventstreamapi/
│ │ │ │ │ ├── error.go
│ │ │ │ │ ├── reader.go
│ │ │ │ │ ├── shared.go
│ │ │ │ │ ├── signer.go
│ │ │ │ │ ├── stream_writer.go
│ │ │ │ │ ├── transport.go
│ │ │ │ │ ├── transport_go1.17.go
│ │ │ │ │ └── writer.go
│ │ │ │ ├── header.go
│ │ │ │ ├── header_value.go
│ │ │ │ └── message.go
│ │ │ ├── host.go
│ │ │ ├── host_prefix.go
│ │ │ ├── idempotency.go
│ │ │ ├── json/
│ │ │ │ └── jsonutil/
│ │ │ │ ├── build.go
│ │ │ │ └── unmarshal.go
│ │ │ ├── jsonrpc/
│ │ │ │ ├── jsonrpc.go
│ │ │ │ └── unmarshal_error.go
│ │ │ ├── jsonvalue.go
│ │ │ ├── payload.go
│ │ │ ├── protocol.go
│ │ │ ├── query/
│ │ │ │ ├── build.go
│ │ │ │ ├── queryutil/
│ │ │ │ │ └── queryutil.go
│ │ │ │ ├── unmarshal.go
│ │ │ │ └── unmarshal_error.go
│ │ │ ├── rest/
│ │ │ │ ├── build.go
│ │ │ │ ├── payload.go
│ │ │ │ └── unmarshal.go
│ │ │ ├── restjson/
│ │ │ │ ├── restjson.go
│ │ │ │ └── unmarshal_error.go
│ │ │ ├── restxml/
│ │ │ │ └── restxml.go
│ │ │ ├── timestamp.go
│ │ │ ├── unmarshal.go
│ │ │ ├── unmarshal_error.go
│ │ │ └── xml/
│ │ │ └── xmlutil/
│ │ │ ├── build.go
│ │ │ ├── sort.go
│ │ │ ├── unmarshal.go
│ │ │ └── xml_to_struct.go
│ │ └── service/
│ │ ├── s3/
│ │ │ ├── api.go
│ │ │ ├── body_hash.go
│ │ │ ├── bucket_location.go
│ │ │ ├── customizations.go
│ │ │ ├── doc.go
│ │ │ ├── doc_custom.go
│ │ │ ├── endpoint.go
│ │ │ ├── endpoint_builder.go
│ │ │ ├── errors.go
│ │ │ ├── host_style_bucket.go
│ │ │ ├── platform_handlers.go
│ │ │ ├── platform_handlers_go1.6.go
│ │ │ ├── s3iface/
│ │ │ │ └── interface.go
│ │ │ ├── s3manager/
│ │ │ │ ├── arn.go
│ │ │ │ ├── batch.go
│ │ │ │ ├── bucket_region.go
│ │ │ │ ├── buffered_read_seeker.go
│ │ │ │ ├── default_read_seeker_write_to.go
│ │ │ │ ├── default_read_seeker_write_to_windows.go
│ │ │ │ ├── default_writer_read_from.go
│ │ │ │ ├── default_writer_read_from_windows.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── download.go
│ │ │ │ ├── pool.go
│ │ │ │ ├── read_seeker_write_to.go
│ │ │ │ ├── upload.go
│ │ │ │ ├── upload_input.go
│ │ │ │ └── writer_read_from.go
│ │ │ ├── service.go
│ │ │ ├── sse.go
│ │ │ ├── statusok_error.go
│ │ │ ├── unmarshal_error.go
│ │ │ └── waiters.go
│ │ ├── sso/
│ │ │ ├── api.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── service.go
│ │ │ └── ssoiface/
│ │ │ └── interface.go
│ │ ├── ssooidc/
│ │ │ ├── api.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ └── service.go
│ │ └── sts/
│ │ ├── api.go
│ │ ├── customizations.go
│ │ ├── doc.go
│ │ ├── errors.go
│ │ ├── service.go
│ │ └── stsiface/
│ │ └── interface.go
│ ├── beorn7/
│ │ └── perks/
│ │ ├── LICENSE
│ │ └── quantile/
│ │ ├── exampledata.txt
│ │ └── stream.go
│ ├── blang/
│ │ └── semver/
│ │ └── v4/
│ │ ├── LICENSE
│ │ ├── json.go
│ │ ├── range.go
│ │ ├── semver.go
│ │ ├── sort.go
│ │ └── sql.go
│ ├── cenkalti/
│ │ └── backoff/
│ │ └── v5/
│ │ ├── .gitignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── backoff.go
│ │ ├── error.go
│ │ ├── exponential.go
│ │ ├── retry.go
│ │ ├── ticker.go
│ │ └── timer.go
│ ├── cespare/
│ │ └── xxhash/
│ │ └── v2/
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── testall.sh
│ │ ├── xxhash.go
│ │ ├── xxhash_amd64.s
│ │ ├── xxhash_arm64.s
│ │ ├── xxhash_asm.go
│ │ ├── xxhash_other.go
│ │ ├── xxhash_safe.go
│ │ └── xxhash_unsafe.go
│ ├── chai2010/
│ │ └── gettext-go/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── doc.go
│ │ ├── fs.go
│ │ ├── fs_json.go
│ │ ├── fs_os.go
│ │ ├── fs_zip.go
│ │ ├── gettext.go
│ │ ├── locale.go
│ │ ├── mo/
│ │ │ ├── doc.go
│ │ │ ├── encoder.go
│ │ │ ├── file.go
│ │ │ ├── header.go
│ │ │ ├── message.go
│ │ │ └── util.go
│ │ ├── plural/
│ │ │ ├── doc.go
│ │ │ ├── formula.go
│ │ │ └── table.go
│ │ ├── po/
│ │ │ ├── comment.go
│ │ │ ├── doc.go
│ │ │ ├── file.go
│ │ │ ├── header.go
│ │ │ ├── line_reader.go
│ │ │ ├── message.go
│ │ │ ├── re.go
│ │ │ └── util.go
│ │ ├── tr.go
│ │ └── util.go
│ ├── cloudflare/
│ │ └── circl/
│ │ ├── LICENSE
│ │ ├── dh/
│ │ │ ├── x25519/
│ │ │ │ ├── curve.go
│ │ │ │ ├── curve_amd64.go
│ │ │ │ ├── curve_amd64.h
│ │ │ │ ├── curve_amd64.s
│ │ │ │ ├── curve_generic.go
│ │ │ │ ├── curve_noasm.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── key.go
│ │ │ │ └── table.go
│ │ │ └── x448/
│ │ │ ├── curve.go
│ │ │ ├── curve_amd64.go
│ │ │ ├── curve_amd64.h
│ │ │ ├── curve_amd64.s
│ │ │ ├── curve_generic.go
│ │ │ ├── curve_noasm.go
│ │ │ ├── doc.go
│ │ │ ├── key.go
│ │ │ └── table.go
│ │ ├── ecc/
│ │ │ └── goldilocks/
│ │ │ ├── constants.go
│ │ │ ├── curve.go
│ │ │ ├── isogeny.go
│ │ │ ├── point.go
│ │ │ ├── scalar.go
│ │ │ ├── twist.go
│ │ │ ├── twistPoint.go
│ │ │ ├── twistTables.go
│ │ │ └── twist_basemult.go
│ │ ├── internal/
│ │ │ ├── conv/
│ │ │ │ └── conv.go
│ │ │ └── sha3/
│ │ │ ├── doc.go
│ │ │ ├── hashes.go
│ │ │ ├── keccakf.go
│ │ │ ├── rc.go
│ │ │ ├── sha3.go
│ │ │ ├── sha3_s390x.s
│ │ │ ├── shake.go
│ │ │ ├── xor.go
│ │ │ ├── xor_generic.go
│ │ │ └── xor_unaligned.go
│ │ ├── math/
│ │ │ ├── fp25519/
│ │ │ │ ├── fp.go
│ │ │ │ ├── fp_amd64.go
│ │ │ │ ├── fp_amd64.h
│ │ │ │ ├── fp_amd64.s
│ │ │ │ ├── fp_generic.go
│ │ │ │ └── fp_noasm.go
│ │ │ ├── fp448/
│ │ │ │ ├── fp.go
│ │ │ │ ├── fp_amd64.go
│ │ │ │ ├── fp_amd64.h
│ │ │ │ ├── fp_amd64.s
│ │ │ │ ├── fp_generic.go
│ │ │ │ ├── fp_noasm.go
│ │ │ │ └── fuzzer.go
│ │ │ ├── integer.go
│ │ │ ├── mlsbset/
│ │ │ │ ├── mlsbset.go
│ │ │ │ └── power.go
│ │ │ ├── primes.go
│ │ │ └── wnaf.go
│ │ └── sign/
│ │ ├── ed25519/
│ │ │ ├── ed25519.go
│ │ │ ├── modular.go
│ │ │ ├── mult.go
│ │ │ ├── point.go
│ │ │ ├── pubkey.go
│ │ │ ├── pubkey112.go
│ │ │ ├── signapi.go
│ │ │ └── tables.go
│ │ ├── ed448/
│ │ │ ├── ed448.go
│ │ │ └── signapi.go
│ │ └── sign.go
│ ├── containerd/
│ │ ├── containerd/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ ├── archive/
│ │ │ │ └── compression/
│ │ │ │ ├── compression.go
│ │ │ │ └── compression_fuzzer.go
│ │ │ ├── content/
│ │ │ │ ├── adaptor.go
│ │ │ │ ├── content.go
│ │ │ │ ├── helpers.go
│ │ │ │ └── local/
│ │ │ │ ├── content_local_fuzzer.go
│ │ │ │ ├── locks.go
│ │ │ │ ├── readerat.go
│ │ │ │ ├── store.go
│ │ │ │ ├── store_bsd.go
│ │ │ │ ├── store_openbsd.go
│ │ │ │ ├── store_unix.go
│ │ │ │ ├── store_windows.go
│ │ │ │ ├── test_helper.go
│ │ │ │ └── writer.go
│ │ │ ├── errdefs/
│ │ │ │ ├── errors.go
│ │ │ │ └── grpc.go
│ │ │ ├── filters/
│ │ │ │ ├── adaptor.go
│ │ │ │ ├── filter.go
│ │ │ │ ├── parser.go
│ │ │ │ ├── quote.go
│ │ │ │ └── scanner.go
│ │ │ ├── images/
│ │ │ │ ├── annotations.go
│ │ │ │ ├── diffid.go
│ │ │ │ ├── handlers.go
│ │ │ │ ├── image.go
│ │ │ │ ├── importexport.go
│ │ │ │ ├── labels.go
│ │ │ │ └── mediatypes.go
│ │ │ ├── labels/
│ │ │ │ ├── labels.go
│ │ │ │ └── validate.go
│ │ │ ├── pkg/
│ │ │ │ └── randutil/
│ │ │ │ └── randutil.go
│ │ │ ├── reference/
│ │ │ │ └── reference.go
│ │ │ ├── remotes/
│ │ │ │ ├── docker/
│ │ │ │ │ ├── auth/
│ │ │ │ │ │ ├── fetch.go
│ │ │ │ │ │ └── parse.go
│ │ │ │ │ ├── authorizer.go
│ │ │ │ │ ├── converter.go
│ │ │ │ │ ├── converter_fuzz.go
│ │ │ │ │ ├── errcode.go
│ │ │ │ │ ├── errdesc.go
│ │ │ │ │ ├── fetcher.go
│ │ │ │ │ ├── fetcher_fuzz.go
│ │ │ │ │ ├── handler.go
│ │ │ │ │ ├── httpreadseeker.go
│ │ │ │ │ ├── pusher.go
│ │ │ │ │ ├── registry.go
│ │ │ │ │ ├── resolver.go
│ │ │ │ │ ├── resolver_unix.go
│ │ │ │ │ ├── resolver_windows.go
│ │ │ │ │ ├── schema1/
│ │ │ │ │ │ └── converter.go
│ │ │ │ │ ├── scope.go
│ │ │ │ │ └── status.go
│ │ │ │ ├── errors/
│ │ │ │ │ └── errors.go
│ │ │ │ ├── handlers.go
│ │ │ │ └── resolver.go
│ │ │ ├── tracing/
│ │ │ │ ├── helpers.go
│ │ │ │ ├── log.go
│ │ │ │ └── tracing.go
│ │ │ └── version/
│ │ │ └── version.go
│ │ ├── errdefs/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── errors.go
│ │ │ ├── pkg/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── errhttp/
│ │ │ │ │ └── http.go
│ │ │ │ └── internal/
│ │ │ │ └── cause/
│ │ │ │ └── cause.go
│ │ │ └── resolve.go
│ │ ├── log/
│ │ │ ├── .golangci.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── context.go
│ │ ├── platforms/
│ │ │ ├── .gitattributes
│ │ │ ├── .golangci.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── compare.go
│ │ │ ├── cpuinfo.go
│ │ │ ├── cpuinfo_linux.go
│ │ │ ├── cpuinfo_other.go
│ │ │ ├── database.go
│ │ │ ├── defaults.go
│ │ │ ├── defaults_darwin.go
│ │ │ ├── defaults_freebsd.go
│ │ │ ├── defaults_unix.go
│ │ │ ├── defaults_windows.go
│ │ │ ├── errors.go
│ │ │ ├── platform_compat_windows.go
│ │ │ ├── platforms.go
│ │ │ ├── platforms_other.go
│ │ │ └── platforms_windows.go
│ │ └── stargz-snapshotter/
│ │ └── estargz/
│ │ ├── LICENSE
│ │ ├── build.go
│ │ ├── errorutil/
│ │ │ └── errors.go
│ │ ├── estargz.go
│ │ ├── gzip.go
│ │ ├── testutil.go
│ │ └── types.go
│ ├── coreos/
│ │ ├── go-oidc/
│ │ │ └── v3/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── oidc/
│ │ │ ├── jose.go
│ │ │ ├── jwks.go
│ │ │ ├── oidc.go
│ │ │ └── verify.go
│ │ ├── go-semver/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── semver/
│ │ │ ├── semver.go
│ │ │ └── sort.go
│ │ └── go-systemd/
│ │ └── v22/
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ ├── daemon/
│ │ │ ├── sdnotify.go
│ │ │ └── watchdog.go
│ │ └── journal/
│ │ ├── journal.go
│ │ ├── journal_unix.go
│ │ └── journal_windows.go
│ ├── cyphar/
│ │ └── filepath-securejoin/
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── VERSION
│ │ ├── doc.go
│ │ ├── gocompat_errors_go120.go
│ │ ├── gocompat_errors_unsupported.go
│ │ ├── gocompat_generics_go121.go
│ │ ├── gocompat_generics_unsupported.go
│ │ ├── join.go
│ │ ├── lookup_linux.go
│ │ ├── mkdir_linux.go
│ │ ├── open_linux.go
│ │ ├── openat2_linux.go
│ │ ├── openat_linux.go
│ │ ├── procfs_linux.go
│ │ └── vfs.go
│ ├── davecgh/
│ │ └── go-spew/
│ │ ├── LICENSE
│ │ └── spew/
│ │ ├── bypass.go
│ │ ├── bypasssafe.go
│ │ ├── common.go
│ │ ├── config.go
│ │ ├── doc.go
│ │ ├── dump.go
│ │ ├── format.go
│ │ └── spew.go
│ ├── distribution/
│ │ └── reference/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── CODE-OF-CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── GOVERNANCE.md
│ │ ├── LICENSE
│ │ ├── MAINTAINERS
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── helpers.go
│ │ ├── normalize.go
│ │ ├── reference.go
│ │ ├── regexp.go
│ │ └── sort.go
│ ├── docker/
│ │ ├── cli/
│ │ │ ├── AUTHORS
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── cli/
│ │ │ └── config/
│ │ │ ├── config.go
│ │ │ ├── configfile/
│ │ │ │ ├── file.go
│ │ │ │ ├── file_unix.go
│ │ │ │ └── file_windows.go
│ │ │ ├── credentials/
│ │ │ │ ├── credentials.go
│ │ │ │ ├── default_store.go
│ │ │ │ ├── default_store_darwin.go
│ │ │ │ ├── default_store_linux.go
│ │ │ │ ├── default_store_unsupported.go
│ │ │ │ ├── default_store_windows.go
│ │ │ │ ├── file_store.go
│ │ │ │ └── native_store.go
│ │ │ └── types/
│ │ │ └── authconfig.go
│ │ ├── distribution/
│ │ │ ├── .dockerignore
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── .mailmap
│ │ │ ├── BUILDING.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Dockerfile
│ │ │ ├── LICENSE
│ │ │ ├── MAINTAINERS
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── ROADMAP.md
│ │ │ ├── blobs.go
│ │ │ ├── doc.go
│ │ │ ├── docker-bake.hcl
│ │ │ ├── errors.go
│ │ │ ├── manifest/
│ │ │ │ ├── doc.go
│ │ │ │ ├── schema2/
│ │ │ │ │ ├── builder.go
│ │ │ │ │ └── manifest.go
│ │ │ │ └── versioned.go
│ │ │ ├── manifests.go
│ │ │ ├── metrics/
│ │ │ │ └── prometheus.go
│ │ │ ├── registry/
│ │ │ │ ├── api/
│ │ │ │ │ ├── errcode/
│ │ │ │ │ │ ├── errors.go
│ │ │ │ │ │ ├── handler.go
│ │ │ │ │ │ └── register.go
│ │ │ │ │ └── v2/
│ │ │ │ │ ├── descriptors.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── headerparser.go
│ │ │ │ │ ├── routes.go
│ │ │ │ │ └── urls.go
│ │ │ │ ├── client/
│ │ │ │ │ ├── auth/
│ │ │ │ │ │ ├── api_version.go
│ │ │ │ │ │ ├── challenge/
│ │ │ │ │ │ │ ├── addr.go
│ │ │ │ │ │ │ └── authchallenge.go
│ │ │ │ │ │ └── session.go
│ │ │ │ │ ├── blob_writer.go
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── repository.go
│ │ │ │ │ └── transport/
│ │ │ │ │ ├── http_reader.go
│ │ │ │ │ └── transport.go
│ │ │ │ └── storage/
│ │ │ │ └── cache/
│ │ │ │ ├── cache.go
│ │ │ │ ├── cachedblobdescriptorstore.go
│ │ │ │ └── memory/
│ │ │ │ └── memory.go
│ │ │ ├── registry.go
│ │ │ ├── tags.go
│ │ │ └── vendor.conf
│ │ ├── docker/
│ │ │ ├── AUTHORS
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ ├── api/
│ │ │ │ ├── README.md
│ │ │ │ ├── common.go
│ │ │ │ ├── swagger-gen.yaml
│ │ │ │ ├── swagger.yaml
│ │ │ │ └── types/
│ │ │ │ ├── blkiodev/
│ │ │ │ │ └── blkio.go
│ │ │ │ ├── build/
│ │ │ │ │ ├── build.go
│ │ │ │ │ ├── cache.go
│ │ │ │ │ └── disk_usage.go
│ │ │ │ ├── checkpoint/
│ │ │ │ │ ├── list.go
│ │ │ │ │ └── options.go
│ │ │ │ ├── client.go
│ │ │ │ ├── common/
│ │ │ │ │ └── id_response.go
│ │ │ │ ├── container/
│ │ │ │ │ ├── change_type.go
│ │ │ │ │ ├── change_types.go
│ │ │ │ │ ├── commit.go
│ │ │ │ │ ├── config.go
│ │ │ │ │ ├── container.go
│ │ │ │ │ ├── create_request.go
│ │ │ │ │ ├── create_response.go
│ │ │ │ │ ├── disk_usage.go
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── exec.go
│ │ │ │ │ ├── filesystem_change.go
│ │ │ │ │ ├── health.go
│ │ │ │ │ ├── hostconfig.go
│ │ │ │ │ ├── hostconfig_unix.go
│ │ │ │ │ ├── hostconfig_windows.go
│ │ │ │ │ ├── network_settings.go
│ │ │ │ │ ├── options.go
│ │ │ │ │ ├── port.go
│ │ │ │ │ ├── state.go
│ │ │ │ │ ├── stats.go
│ │ │ │ │ ├── top_response.go
│ │ │ │ │ ├── update_response.go
│ │ │ │ │ ├── wait_exit_error.go
│ │ │ │ │ ├── wait_response.go
│ │ │ │ │ └── waitcondition.go
│ │ │ │ ├── error_response.go
│ │ │ │ ├── error_response_ext.go
│ │ │ │ ├── events/
│ │ │ │ │ └── events.go
│ │ │ │ ├── filters/
│ │ │ │ │ ├── errors.go
│ │ │ │ │ └── parse.go
│ │ │ │ ├── image/
│ │ │ │ │ ├── delete_response.go
│ │ │ │ │ ├── disk_usage.go
│ │ │ │ │ ├── image.go
│ │ │ │ │ ├── image_history.go
│ │ │ │ │ ├── image_inspect.go
│ │ │ │ │ ├── manifest.go
│ │ │ │ │ ├── opts.go
│ │ │ │ │ └── summary.go
│ │ │ │ ├── mount/
│ │ │ │ │ └── mount.go
│ │ │ │ ├── network/
│ │ │ │ │ ├── create_response.go
│ │ │ │ │ ├── endpoint.go
│ │ │ │ │ ├── ipam.go
│ │ │ │ │ └── network.go
│ │ │ │ ├── plugin.go
│ │ │ │ ├── plugin_device.go
│ │ │ │ ├── plugin_env.go
│ │ │ │ ├── plugin_interface_type.go
│ │ │ │ ├── plugin_mount.go
│ │ │ │ ├── plugin_responses.go
│ │ │ │ ├── registry/
│ │ │ │ │ ├── authconfig.go
│ │ │ │ │ ├── authenticate.go
│ │ │ │ │ ├── registry.go
│ │ │ │ │ └── search.go
│ │ │ │ ├── storage/
│ │ │ │ │ └── driver_data.go
│ │ │ │ ├── strslice/
│ │ │ │ │ └── strslice.go
│ │ │ │ ├── swarm/
│ │ │ │ │ ├── common.go
│ │ │ │ │ ├── config.go
│ │ │ │ │ ├── container.go
│ │ │ │ │ ├── network.go
│ │ │ │ │ ├── node.go
│ │ │ │ │ ├── runtime/
│ │ │ │ │ │ ├── gen.go
│ │ │ │ │ │ ├── plugin.pb.go
│ │ │ │ │ │ └── plugin.proto
│ │ │ │ │ ├── runtime.go
│ │ │ │ │ ├── secret.go
│ │ │ │ │ ├── service.go
│ │ │ │ │ ├── service_create_response.go
│ │ │ │ │ ├── service_update_response.go
│ │ │ │ │ ├── swarm.go
│ │ │ │ │ └── task.go
│ │ │ │ ├── system/
│ │ │ │ │ ├── disk_usage.go
│ │ │ │ │ ├── info.go
│ │ │ │ │ ├── runtime.go
│ │ │ │ │ └── security_opts.go
│ │ │ │ ├── time/
│ │ │ │ │ └── timestamp.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_deprecated.go
│ │ │ │ ├── versions/
│ │ │ │ │ └── compare.go
│ │ │ │ └── volume/
│ │ │ │ ├── cluster_volume.go
│ │ │ │ ├── create_options.go
│ │ │ │ ├── disk_usage.go
│ │ │ │ ├── list_response.go
│ │ │ │ ├── options.go
│ │ │ │ ├── volume.go
│ │ │ │ └── volume_update.go
│ │ │ ├── client/
│ │ │ │ ├── README.md
│ │ │ │ ├── build_cancel.go
│ │ │ │ ├── build_prune.go
│ │ │ │ ├── checkpoint.go
│ │ │ │ ├── checkpoint_create.go
│ │ │ │ ├── checkpoint_delete.go
│ │ │ │ ├── checkpoint_list.go
│ │ │ │ ├── client.go
│ │ │ │ ├── client_deprecated.go
│ │ │ │ ├── client_interfaces.go
│ │ │ │ ├── client_unix.go
│ │ │ │ ├── client_windows.go
│ │ │ │ ├── config_create.go
│ │ │ │ ├── config_inspect.go
│ │ │ │ ├── config_list.go
│ │ │ │ ├── config_remove.go
│ │ │ │ ├── config_update.go
│ │ │ │ ├── container_attach.go
│ │ │ │ ├── container_commit.go
│ │ │ │ ├── container_copy.go
│ │ │ │ ├── container_create.go
│ │ │ │ ├── container_diff.go
│ │ │ │ ├── container_exec.go
│ │ │ │ ├── container_export.go
│ │ │ │ ├── container_inspect.go
│ │ │ │ ├── container_kill.go
│ │ │ │ ├── container_list.go
│ │ │ │ ├── container_logs.go
│ │ │ │ ├── container_pause.go
│ │ │ │ ├── container_prune.go
│ │ │ │ ├── container_remove.go
│ │ │ │ ├── container_rename.go
│ │ │ │ ├── container_resize.go
│ │ │ │ ├── container_restart.go
│ │ │ │ ├── container_start.go
│ │ │ │ ├── container_stats.go
│ │ │ │ ├── container_stop.go
│ │ │ │ ├── container_top.go
│ │ │ │ ├── container_unpause.go
│ │ │ │ ├── container_update.go
│ │ │ │ ├── container_wait.go
│ │ │ │ ├── disk_usage.go
│ │ │ │ ├── distribution_inspect.go
│ │ │ │ ├── envvars.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── events.go
│ │ │ │ ├── hijack.go
│ │ │ │ ├── image_build.go
│ │ │ │ ├── image_create.go
│ │ │ │ ├── image_history.go
│ │ │ │ ├── image_history_opts.go
│ │ │ │ ├── image_import.go
│ │ │ │ ├── image_inspect.go
│ │ │ │ ├── image_inspect_opts.go
│ │ │ │ ├── image_list.go
│ │ │ │ ├── image_load.go
│ │ │ │ ├── image_load_opts.go
│ │ │ │ ├── image_prune.go
│ │ │ │ ├── image_pull.go
│ │ │ │ ├── image_push.go
│ │ │ │ ├── image_remove.go
│ │ │ │ ├── image_save.go
│ │ │ │ ├── image_save_opts.go
│ │ │ │ ├── image_search.go
│ │ │ │ ├── image_tag.go
│ │ │ │ ├── info.go
│ │ │ │ ├── login.go
│ │ │ │ ├── network_connect.go
│ │ │ │ ├── network_create.go
│ │ │ │ ├── network_disconnect.go
│ │ │ │ ├── network_inspect.go
│ │ │ │ ├── network_list.go
│ │ │ │ ├── network_prune.go
│ │ │ │ ├── network_remove.go
│ │ │ │ ├── node_inspect.go
│ │ │ │ ├── node_list.go
│ │ │ │ ├── node_remove.go
│ │ │ │ ├── node_update.go
│ │ │ │ ├── options.go
│ │ │ │ ├── ping.go
│ │ │ │ ├── plugin_create.go
│ │ │ │ ├── plugin_disable.go
│ │ │ │ ├── plugin_enable.go
│ │ │ │ ├── plugin_inspect.go
│ │ │ │ ├── plugin_install.go
│ │ │ │ ├── plugin_list.go
│ │ │ │ ├── plugin_push.go
│ │ │ │ ├── plugin_remove.go
│ │ │ │ ├── plugin_set.go
│ │ │ │ ├── plugin_upgrade.go
│ │ │ │ ├── request.go
│ │ │ │ ├── secret_create.go
│ │ │ │ ├── secret_inspect.go
│ │ │ │ ├── secret_list.go
│ │ │ │ ├── secret_remove.go
│ │ │ │ ├── secret_update.go
│ │ │ │ ├── service_create.go
│ │ │ │ ├── service_inspect.go
│ │ │ │ ├── service_list.go
│ │ │ │ ├── service_logs.go
│ │ │ │ ├── service_remove.go
│ │ │ │ ├── service_update.go
│ │ │ │ ├── swarm_get_unlock_key.go
│ │ │ │ ├── swarm_init.go
│ │ │ │ ├── swarm_inspect.go
│ │ │ │ ├── swarm_join.go
│ │ │ │ ├── swarm_leave.go
│ │ │ │ ├── swarm_unlock.go
│ │ │ │ ├── swarm_update.go
│ │ │ │ ├── task_inspect.go
│ │ │ │ ├── task_list.go
│ │ │ │ ├── task_logs.go
│ │ │ │ ├── utils.go
│ │ │ │ ├── version.go
│ │ │ │ ├── volume_create.go
│ │ │ │ ├── volume_inspect.go
│ │ │ │ ├── volume_list.go
│ │ │ │ ├── volume_prune.go
│ │ │ │ ├── volume_remove.go
│ │ │ │ └── volume_update.go
│ │ │ ├── errdefs/
│ │ │ │ ├── defs.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── helpers.go
│ │ │ │ ├── http_helpers.go
│ │ │ │ └── is.go
│ │ │ ├── internal/
│ │ │ │ ├── lazyregexp/
│ │ │ │ │ └── lazyregexp.go
│ │ │ │ └── multierror/
│ │ │ │ └── multierror.go
│ │ │ ├── pkg/
│ │ │ │ └── homedir/
│ │ │ │ ├── homedir.go
│ │ │ │ ├── homedir_linux.go
│ │ │ │ └── homedir_others.go
│ │ │ └── registry/
│ │ │ ├── auth.go
│ │ │ ├── config.go
│ │ │ ├── config_unix.go
│ │ │ ├── config_windows.go
│ │ │ ├── errors.go
│ │ │ ├── registry.go
│ │ │ ├── search.go
│ │ │ ├── search_endpoint_v1.go
│ │ │ ├── search_session.go
│ │ │ ├── service.go
│ │ │ ├── service_v2.go
│ │ │ └── types.go
│ │ ├── docker-credential-helpers/
│ │ │ ├── LICENSE
│ │ │ ├── client/
│ │ │ │ ├── client.go
│ │ │ │ └── command.go
│ │ │ └── credentials/
│ │ │ ├── credentials.go
│ │ │ ├── error.go
│ │ │ ├── helper.go
│ │ │ └── version.go
│ │ ├── go-connections/
│ │ │ ├── LICENSE
│ │ │ ├── nat/
│ │ │ │ ├── nat.go
│ │ │ │ ├── parse.go
│ │ │ │ └── sort.go
│ │ │ ├── sockets/
│ │ │ │ ├── README.md
│ │ │ │ ├── inmem_socket.go
│ │ │ │ ├── proxy.go
│ │ │ │ ├── sockets.go
│ │ │ │ ├── sockets_unix.go
│ │ │ │ ├── sockets_windows.go
│ │ │ │ ├── tcp_socket.go
│ │ │ │ └── unix_socket.go
│ │ │ └── tlsconfig/
│ │ │ ├── certpool.go
│ │ │ ├── config.go
│ │ │ └── config_client_ciphers.go
│ │ ├── go-metrics/
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── LICENSE.docs
│ │ │ ├── NOTICE
│ │ │ ├── README.md
│ │ │ ├── counter.go
│ │ │ ├── docs.go
│ │ │ ├── gauge.go
│ │ │ ├── handler.go
│ │ │ ├── helpers.go
│ │ │ ├── namespace.go
│ │ │ ├── register.go
│ │ │ ├── timer.go
│ │ │ └── unit.go
│ │ └── go-units/
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── MAINTAINERS
│ │ ├── README.md
│ │ ├── circle.yml
│ │ ├── duration.go
│ │ ├── size.go
│ │ └── ulimit.go
│ ├── emicklei/
│ │ ├── go-restful/
│ │ │ └── v3/
│ │ │ ├── .gitignore
│ │ │ ├── .goconvey
│ │ │ ├── .travis.yml
│ │ │ ├── CHANGES.md
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── SECURITY.md
│ │ │ ├── Srcfile
│ │ │ ├── bench_test.sh
│ │ │ ├── compress.go
│ │ │ ├── compressor_cache.go
│ │ │ ├── compressor_pools.go
│ │ │ ├── compressors.go
│ │ │ ├── constants.go
│ │ │ ├── container.go
│ │ │ ├── cors_filter.go
│ │ │ ├── coverage.sh
│ │ │ ├── curly.go
│ │ │ ├── curly_route.go
│ │ │ ├── custom_verb.go
│ │ │ ├── doc.go
│ │ │ ├── entity_accessors.go
│ │ │ ├── extensions.go
│ │ │ ├── filter.go
│ │ │ ├── filter_adapter.go
│ │ │ ├── jsr311.go
│ │ │ ├── log/
│ │ │ │ └── log.go
│ │ │ ├── logger.go
│ │ │ ├── mime.go
│ │ │ ├── options_filter.go
│ │ │ ├── parameter.go
│ │ │ ├── path_expression.go
│ │ │ ├── path_processor.go
│ │ │ ├── request.go
│ │ │ ├── response.go
│ │ │ ├── route.go
│ │ │ ├── route_builder.go
│ │ │ ├── route_reader.go
│ │ │ ├── router.go
│ │ │ ├── service_error.go
│ │ │ ├── web_service.go
│ │ │ └── web_service_container.go
│ │ └── go-restful-openapi/
│ │ └── v2/
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── .travis.yml
│ │ ├── CHANGES.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── build_definitions.go
│ │ ├── build_path.go
│ │ ├── config.go
│ │ ├── definition_builder.go
│ │ ├── definition_name.go
│ │ ├── lookup.go
│ │ ├── property_ext.go
│ │ └── spec_resource.go
│ ├── emirpasic/
│ │ └── gods/
│ │ ├── LICENSE
│ │ ├── containers/
│ │ │ ├── containers.go
│ │ │ ├── enumerable.go
│ │ │ ├── iterator.go
│ │ │ └── serialization.go
│ │ ├── lists/
│ │ │ ├── arraylist/
│ │ │ │ ├── arraylist.go
│ │ │ │ ├── enumerable.go
│ │ │ │ ├── iterator.go
│ │ │ │ └── serialization.go
│ │ │ └── lists.go
│ │ ├── trees/
│ │ │ ├── binaryheap/
│ │ │ │ ├── binaryheap.go
│ │ │ │ ├── iterator.go
│ │ │ │ └── serialization.go
│ │ │ └── trees.go
│ │ └── utils/
│ │ ├── comparator.go
│ │ ├── sort.go
│ │ └── utils.go
│ ├── evanphx/
│ │ └── json-patch/
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── errors.go
│ │ ├── merge.go
│ │ ├── patch.go
│ │ └── v5/
│ │ ├── LICENSE
│ │ ├── errors.go
│ │ ├── internal/
│ │ │ └── json/
│ │ │ ├── decode.go
│ │ │ ├── encode.go
│ │ │ ├── fold.go
│ │ │ ├── fuzz.go
│ │ │ ├── indent.go
│ │ │ ├── scanner.go
│ │ │ ├── stream.go
│ │ │ ├── tables.go
│ │ │ └── tags.go
│ │ ├── merge.go
│ │ └── patch.go
│ ├── exponent-io/
│ │ └── jsonpath/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── decoder.go
│ │ ├── path.go
│ │ └── pathaction.go
│ ├── fatih/
│ │ └── color/
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── color.go
│ │ ├── color_windows.go
│ │ └── doc.go
│ ├── felixge/
│ │ └── httpsnoop/
│ │ ├── .gitignore
│ │ ├── LICENSE.txt
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── capture_metrics.go
│ │ ├── docs.go
│ │ ├── wrap_generated_gteq_1.8.go
│ │ └── wrap_generated_lt_1.8.go
│ ├── fsnotify/
│ │ └── fsnotify/
│ │ ├── .cirrus.yml
│ │ ├── .gitignore
│ │ ├── .mailmap
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── backend_fen.go
│ │ ├── backend_inotify.go
│ │ ├── backend_kqueue.go
│ │ ├── backend_other.go
│ │ ├── backend_windows.go
│ │ ├── fsnotify.go
│ │ ├── internal/
│ │ │ ├── darwin.go
│ │ │ ├── debug_darwin.go
│ │ │ ├── debug_dragonfly.go
│ │ │ ├── debug_freebsd.go
│ │ │ ├── debug_kqueue.go
│ │ │ ├── debug_linux.go
│ │ │ ├── debug_netbsd.go
│ │ │ ├── debug_openbsd.go
│ │ │ ├── debug_solaris.go
│ │ │ ├── debug_windows.go
│ │ │ ├── freebsd.go
│ │ │ ├── internal.go
│ │ │ ├── unix.go
│ │ │ ├── unix2.go
│ │ │ └── windows.go
│ │ ├── shared.go
│ │ ├── staticcheck.conf
│ │ ├── system_bsd.go
│ │ └── system_darwin.go
│ ├── fxamacker/
│ │ └── cbor/
│ │ └── v2/
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── bytestring.go
│ │ ├── cache.go
│ │ ├── common.go
│ │ ├── decode.go
│ │ ├── diagnose.go
│ │ ├── doc.go
│ │ ├── encode.go
│ │ ├── encode_map.go
│ │ ├── omitzero_go124.go
│ │ ├── omitzero_pre_go124.go
│ │ ├── simplevalue.go
│ │ ├── stream.go
│ │ ├── structfields.go
│ │ ├── tag.go
│ │ └── valid.go
│ ├── go-asn1-ber/
│ │ └── asn1-ber/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── ber.go
│ │ ├── content_int.go
│ │ ├── generalizedTime.go
│ │ ├── header.go
│ │ ├── identifier.go
│ │ ├── length.go
│ │ ├── real.go
│ │ └── util.go
│ ├── go-errors/
│ │ └── errors/
│ │ ├── .travis.yml
│ │ ├── LICENSE.MIT
│ │ ├── README.md
│ │ ├── error.go
│ │ ├── error_1_13.go
│ │ ├── error_backward.go
│ │ ├── join_unwrap_1_20.go
│ │ ├── join_unwrap_backward.go
│ │ ├── parse_panic.go
│ │ └── stackframe.go
│ ├── go-git/
│ │ ├── gcfg/
│ │ │ ├── .gitignore
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── read.go
│ │ │ ├── scanner/
│ │ │ │ ├── errors.go
│ │ │ │ └── scanner.go
│ │ │ ├── set.go
│ │ │ ├── token/
│ │ │ │ ├── position.go
│ │ │ │ ├── serialize.go
│ │ │ │ └── token.go
│ │ │ └── types/
│ │ │ ├── bool.go
│ │ │ ├── doc.go
│ │ │ ├── enum.go
│ │ │ ├── int.go
│ │ │ └── scan.go
│ │ └── go-git/
│ │ └── v5/
│ │ ├── .gitignore
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── COMPATIBILITY.md
│ │ ├── CONTRIBUTING.md
│ │ ├── EXTENDING.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── blame.go
│ │ ├── common.go
│ │ ├── config/
│ │ │ ├── branch.go
│ │ │ ├── config.go
│ │ │ ├── modules.go
│ │ │ ├── refspec.go
│ │ │ └── url.go
│ │ ├── doc.go
│ │ ├── internal/
│ │ │ ├── path_util/
│ │ │ │ └── path_util.go
│ │ │ ├── revision/
│ │ │ │ ├── parser.go
│ │ │ │ ├── scanner.go
│ │ │ │ └── token.go
│ │ │ └── url/
│ │ │ └── url.go
│ │ ├── object_walker.go
│ │ ├── options.go
│ │ ├── oss-fuzz.sh
│ │ ├── plumbing/
│ │ │ ├── cache/
│ │ │ │ ├── buffer_lru.go
│ │ │ │ ├── common.go
│ │ │ │ └── object_lru.go
│ │ │ ├── color/
│ │ │ │ └── color.go
│ │ │ ├── error.go
│ │ │ ├── filemode/
│ │ │ │ └── filemode.go
│ │ │ ├── format/
│ │ │ │ ├── config/
│ │ │ │ │ ├── common.go
│ │ │ │ │ ├── decoder.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoder.go
│ │ │ │ │ ├── format.go
│ │ │ │ │ ├── option.go
│ │ │ │ │ └── section.go
│ │ │ │ ├── diff/
│ │ │ │ │ ├── colorconfig.go
│ │ │ │ │ ├── patch.go
│ │ │ │ │ └── unified_encoder.go
│ │ │ │ ├── gitignore/
│ │ │ │ │ ├── dir.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── matcher.go
│ │ │ │ │ └── pattern.go
│ │ │ │ ├── idxfile/
│ │ │ │ │ ├── decoder.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoder.go
│ │ │ │ │ ├── idxfile.go
│ │ │ │ │ └── writer.go
│ │ │ │ ├── index/
│ │ │ │ │ ├── decoder.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoder.go
│ │ │ │ │ ├── index.go
│ │ │ │ │ └── match.go
│ │ │ │ ├── objfile/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── reader.go
│ │ │ │ │ └── writer.go
│ │ │ │ ├── packfile/
│ │ │ │ │ ├── common.go
│ │ │ │ │ ├── delta_index.go
│ │ │ │ │ ├── delta_selector.go
│ │ │ │ │ ├── diff_delta.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoder.go
│ │ │ │ │ ├── error.go
│ │ │ │ │ ├── fsobject.go
│ │ │ │ │ ├── object_pack.go
│ │ │ │ │ ├── packfile.go
│ │ │ │ │ ├── parser.go
│ │ │ │ │ ├── patch_delta.go
│ │ │ │ │ └── scanner.go
│ │ │ │ └── pktline/
│ │ │ │ ├── encoder.go
│ │ │ │ ├── error.go
│ │ │ │ └── scanner.go
│ │ │ ├── hash/
│ │ │ │ ├── hash.go
│ │ │ │ ├── hash_sha1.go
│ │ │ │ └── hash_sha256.go
│ │ │ ├── hash.go
│ │ │ ├── memory.go
│ │ │ ├── object/
│ │ │ │ ├── blob.go
│ │ │ │ ├── change.go
│ │ │ │ ├── change_adaptor.go
│ │ │ │ ├── commit.go
│ │ │ │ ├── commit_walker.go
│ │ │ │ ├── commit_walker_bfs.go
│ │ │ │ ├── commit_walker_bfs_filtered.go
│ │ │ │ ├── commit_walker_ctime.go
│ │ │ │ ├── commit_walker_limit.go
│ │ │ │ ├── commit_walker_path.go
│ │ │ │ ├── difftree.go
│ │ │ │ ├── file.go
│ │ │ │ ├── merge_base.go
│ │ │ │ ├── object.go
│ │ │ │ ├── patch.go
│ │ │ │ ├── rename.go
│ │ │ │ ├── signature.go
│ │ │ │ ├── tag.go
│ │ │ │ ├── tree.go
│ │ │ │ └── treenoder.go
│ │ │ ├── object.go
│ │ │ ├── protocol/
│ │ │ │ └── packp/
│ │ │ │ ├── advrefs.go
│ │ │ │ ├── advrefs_decode.go
│ │ │ │ ├── advrefs_encode.go
│ │ │ │ ├── capability/
│ │ │ │ │ ├── capability.go
│ │ │ │ │ └── list.go
│ │ │ │ ├── common.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── filter.go
│ │ │ │ ├── gitproto.go
│ │ │ │ ├── report_status.go
│ │ │ │ ├── shallowupd.go
│ │ │ │ ├── sideband/
│ │ │ │ │ ├── common.go
│ │ │ │ │ ├── demux.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ └── muxer.go
│ │ │ │ ├── srvresp.go
│ │ │ │ ├── ulreq.go
│ │ │ │ ├── ulreq_decode.go
│ │ │ │ ├── ulreq_encode.go
│ │ │ │ ├── updreq.go
│ │ │ │ ├── updreq_decode.go
│ │ │ │ ├── updreq_encode.go
│ │ │ │ ├── uppackreq.go
│ │ │ │ └── uppackresp.go
│ │ │ ├── reference.go
│ │ │ ├── revision.go
│ │ │ ├── revlist/
│ │ │ │ └── revlist.go
│ │ │ ├── storer/
│ │ │ │ ├── doc.go
│ │ │ │ ├── index.go
│ │ │ │ ├── object.go
│ │ │ │ ├── reference.go
│ │ │ │ ├── shallow.go
│ │ │ │ └── storer.go
│ │ │ └── transport/
│ │ │ ├── client/
│ │ │ │ └── client.go
│ │ │ ├── common.go
│ │ │ ├── file/
│ │ │ │ ├── client.go
│ │ │ │ └── server.go
│ │ │ ├── git/
│ │ │ │ └── common.go
│ │ │ ├── http/
│ │ │ │ ├── common.go
│ │ │ │ ├── receive_pack.go
│ │ │ │ ├── transport.go
│ │ │ │ └── upload_pack.go
│ │ │ ├── internal/
│ │ │ │ └── common/
│ │ │ │ ├── common.go
│ │ │ │ ├── mocks.go
│ │ │ │ └── server.go
│ │ │ ├── server/
│ │ │ │ ├── loader.go
│ │ │ │ └── server.go
│ │ │ └── ssh/
│ │ │ ├── auth_method.go
│ │ │ └── common.go
│ │ ├── prune.go
│ │ ├── remote.go
│ │ ├── repository.go
│ │ ├── signer.go
│ │ ├── status.go
│ │ ├── storage/
│ │ │ ├── filesystem/
│ │ │ │ ├── config.go
│ │ │ │ ├── deltaobject.go
│ │ │ │ ├── dotgit/
│ │ │ │ │ ├── dotgit.go
│ │ │ │ │ ├── dotgit_rewrite_packed_refs.go
│ │ │ │ │ ├── dotgit_setref.go
│ │ │ │ │ ├── reader.go
│ │ │ │ │ ├── repository_filesystem.go
│ │ │ │ │ └── writers.go
│ │ │ │ ├── index.go
│ │ │ │ ├── module.go
│ │ │ │ ├── object.go
│ │ │ │ ├── reference.go
│ │ │ │ ├── shallow.go
│ │ │ │ └── storage.go
│ │ │ ├── memory/
│ │ │ │ └── storage.go
│ │ │ └── storer.go
│ │ ├── submodule.go
│ │ ├── utils/
│ │ │ ├── binary/
│ │ │ │ ├── read.go
│ │ │ │ └── write.go
│ │ │ ├── diff/
│ │ │ │ └── diff.go
│ │ │ ├── ioutil/
│ │ │ │ └── common.go
│ │ │ ├── merkletrie/
│ │ │ │ ├── change.go
│ │ │ │ ├── difftree.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── doubleiter.go
│ │ │ │ ├── filesystem/
│ │ │ │ │ └── node.go
│ │ │ │ ├── index/
│ │ │ │ │ └── node.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── frame/
│ │ │ │ │ └── frame.go
│ │ │ │ ├── iter.go
│ │ │ │ └── noder/
│ │ │ │ ├── noder.go
│ │ │ │ └── path.go
│ │ │ ├── sync/
│ │ │ │ ├── bufio.go
│ │ │ │ ├── bytes.go
│ │ │ │ └── zlib.go
│ │ │ └── trace/
│ │ │ └── trace.go
│ │ ├── worktree.go
│ │ ├── worktree_bsd.go
│ │ ├── worktree_commit.go
│ │ ├── worktree_js.go
│ │ ├── worktree_linux.go
│ │ ├── worktree_plan9.go
│ │ ├── worktree_status.go
│ │ ├── worktree_unix_other.go
│ │ └── worktree_windows.go
│ ├── go-gorp/
│ │ └── gorp/
│ │ └── v3/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── column.go
│ │ ├── db.go
│ │ ├── dialect.go
│ │ ├── dialect_mysql.go
│ │ ├── dialect_oracle.go
│ │ ├── dialect_postgres.go
│ │ ├── dialect_snowflake.go
│ │ ├── dialect_sqlite.go
│ │ ├── dialect_sqlserver.go
│ │ ├── doc.go
│ │ ├── errors.go
│ │ ├── gorp.go
│ │ ├── hooks.go
│ │ ├── index.go
│ │ ├── lockerror.go
│ │ ├── logging.go
│ │ ├── nulltypes.go
│ │ ├── select.go
│ │ ├── table.go
│ │ ├── table_bindings.go
│ │ ├── test_all.sh
│ │ └── transaction.go
│ ├── go-ini/
│ │ └── ini/
│ │ ├── .editorconfig
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── codecov.yml
│ │ ├── data_source.go
│ │ ├── deprecated.go
│ │ ├── error.go
│ │ ├── file.go
│ │ ├── helper.go
│ │ ├── ini.go
│ │ ├── key.go
│ │ ├── parser.go
│ │ ├── section.go
│ │ └── struct.go
│ ├── go-jose/
│ │ └── go-jose/
│ │ └── v4/
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── .travis.yml
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── asymmetric.go
│ │ ├── cipher/
│ │ │ ├── cbc_hmac.go
│ │ │ ├── concat_kdf.go
│ │ │ ├── ecdh_es.go
│ │ │ └── key_wrap.go
│ │ ├── crypter.go
│ │ ├── doc.go
│ │ ├── encoding.go
│ │ ├── json/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── decode.go
│ │ │ ├── encode.go
│ │ │ ├── indent.go
│ │ │ ├── scanner.go
│ │ │ ├── stream.go
│ │ │ └── tags.go
│ │ ├── jwe.go
│ │ ├── jwk.go
│ │ ├── jws.go
│ │ ├── opaque.go
│ │ ├── shared.go
│ │ ├── signing.go
│ │ └── symmetric.go
│ ├── go-ldap/
│ │ └── ldap/
│ │ └── v3/
│ │ ├── LICENSE
│ │ ├── add.go
│ │ ├── bind.go
│ │ ├── client.go
│ │ ├── compare.go
│ │ ├── conn.go
│ │ ├── control.go
│ │ ├── debug.go
│ │ ├── del.go
│ │ ├── dn.go
│ │ ├── doc.go
│ │ ├── error.go
│ │ ├── extended.go
│ │ ├── filter.go
│ │ ├── ldap.go
│ │ ├── moddn.go
│ │ ├── modify.go
│ │ ├── passwdmodify.go
│ │ ├── request.go
│ │ ├── response.go
│ │ ├── search.go
│ │ ├── unbind.go
│ │ └── whoami.go
│ ├── go-logr/
│ │ ├── logr/
│ │ │ ├── .golangci.yaml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── SECURITY.md
│ │ │ ├── context.go
│ │ │ ├── context_noslog.go
│ │ │ ├── context_slog.go
│ │ │ ├── discard.go
│ │ │ ├── funcr/
│ │ │ │ ├── funcr.go
│ │ │ │ └── slogsink.go
│ │ │ ├── logr.go
│ │ │ ├── sloghandler.go
│ │ │ ├── slogr.go
│ │ │ └── slogsink.go
│ │ └── stdr/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── stdr.go
│ ├── go-openapi/
│ │ ├── analysis/
│ │ │ ├── .codecov.yml
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── analyzer.go
│ │ │ ├── debug.go
│ │ │ ├── doc.go
│ │ │ ├── fixer.go
│ │ │ ├── flatten.go
│ │ │ ├── flatten_name.go
│ │ │ ├── flatten_options.go
│ │ │ ├── internal/
│ │ │ │ ├── debug/
│ │ │ │ │ └── debug.go
│ │ │ │ └── flatten/
│ │ │ │ ├── normalize/
│ │ │ │ │ └── normalize.go
│ │ │ │ ├── operations/
│ │ │ │ │ └── operations.go
│ │ │ │ ├── replace/
│ │ │ │ │ └── replace.go
│ │ │ │ ├── schutils/
│ │ │ │ │ └── flatten_schema.go
│ │ │ │ └── sortref/
│ │ │ │ ├── keys.go
│ │ │ │ └── sort_ref.go
│ │ │ ├── mixin.go
│ │ │ └── schema.go
│ │ ├── errors/
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── api.go
│ │ │ ├── auth.go
│ │ │ ├── doc.go
│ │ │ ├── headers.go
│ │ │ ├── middleware.go
│ │ │ ├── parsing.go
│ │ │ └── schema.go
│ │ ├── jsonpointer/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── errors.go
│ │ │ └── pointer.go
│ │ ├── jsonreference/
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── internal/
│ │ │ │ └── normalize_url.go
│ │ │ └── reference.go
│ │ ├── loads/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── .travis.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ ├── loaders.go
│ │ │ ├── options.go
│ │ │ └── spec.go
│ │ ├── spec/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── cache.go
│ │ │ ├── contact_info.go
│ │ │ ├── debug.go
│ │ │ ├── embed.go
│ │ │ ├── errors.go
│ │ │ ├── expander.go
│ │ │ ├── external_docs.go
│ │ │ ├── header.go
│ │ │ ├── info.go
│ │ │ ├── items.go
│ │ │ ├── license.go
│ │ │ ├── normalizer.go
│ │ │ ├── normalizer_nonwindows.go
│ │ │ ├── normalizer_windows.go
│ │ │ ├── operation.go
│ │ │ ├── parameter.go
│ │ │ ├── path_item.go
│ │ │ ├── paths.go
│ │ │ ├── properties.go
│ │ │ ├── ref.go
│ │ │ ├── resolver.go
│ │ │ ├── response.go
│ │ │ ├── responses.go
│ │ │ ├── schema.go
│ │ │ ├── schema_loader.go
│ │ │ ├── schemas/
│ │ │ │ ├── jsonschema-draft-04.json
│ │ │ │ └── v2/
│ │ │ │ └── schema.json
│ │ │ ├── security_scheme.go
│ │ │ ├── spec.go
│ │ │ ├── swagger.go
│ │ │ ├── tag.go
│ │ │ ├── url_go19.go
│ │ │ ├── validations.go
│ │ │ └── xml_object.go
│ │ ├── strfmt/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── bson.go
│ │ │ ├── date.go
│ │ │ ├── default.go
│ │ │ ├── doc.go
│ │ │ ├── duration.go
│ │ │ ├── format.go
│ │ │ ├── time.go
│ │ │ └── ulid.go
│ │ └── validate/
│ │ ├── .editorconfig
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── BENCHMARK.md
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── context.go
│ │ ├── debug.go
│ │ ├── default_validator.go
│ │ ├── doc.go
│ │ ├── example_validator.go
│ │ ├── formats.go
│ │ ├── helpers.go
│ │ ├── object_validator.go
│ │ ├── options.go
│ │ ├── pools.go
│ │ ├── pools_debug.go
│ │ ├── result.go
│ │ ├── rexp.go
│ │ ├── schema.go
│ │ ├── schema_messages.go
│ │ ├── schema_option.go
│ │ ├── schema_props.go
│ │ ├── slice_validator.go
│ │ ├── spec.go
│ │ ├── spec_messages.go
│ │ ├── type.go
│ │ ├── update-fixtures.sh
│ │ ├── validator.go
│ │ └── values.go
│ ├── go-redis/
│ │ └── redis/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── cluster.go
│ │ ├── cluster_commands.go
│ │ ├── command.go
│ │ ├── commands.go
│ │ ├── doc.go
│ │ ├── internal/
│ │ │ ├── consistenthash/
│ │ │ │ └── consistenthash.go
│ │ │ ├── error.go
│ │ │ ├── hashtag/
│ │ │ │ └── hashtag.go
│ │ │ ├── internal.go
│ │ │ ├── log.go
│ │ │ ├── once.go
│ │ │ ├── pool/
│ │ │ │ ├── conn.go
│ │ │ │ ├── pool.go
│ │ │ │ ├── pool_single.go
│ │ │ │ └── pool_sticky.go
│ │ │ ├── proto/
│ │ │ │ ├── reader.go
│ │ │ │ ├── scan.go
│ │ │ │ └── writer.go
│ │ │ ├── util/
│ │ │ │ ├── safe.go
│ │ │ │ ├── strconv.go
│ │ │ │ └── unsafe.go
│ │ │ └── util.go
│ │ ├── iterator.go
│ │ ├── options.go
│ │ ├── pipeline.go
│ │ ├── pubsub.go
│ │ ├── redis.go
│ │ ├── result.go
│ │ ├── ring.go
│ │ ├── script.go
│ │ ├── sentinel.go
│ │ ├── tx.go
│ │ └── universal.go
│ ├── go-viper/
│ │ └── mapstructure/
│ │ └── v2/
│ │ ├── .editorconfig
│ │ ├── .envrc
│ │ ├── .gitignore
│ │ ├── .golangci.yaml
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── decode_hooks.go
│ │ ├── flake.nix
│ │ ├── internal/
│ │ │ └── errors/
│ │ │ ├── errors.go
│ │ │ ├── join.go
│ │ │ └── join_go1_19.go
│ │ ├── mapstructure.go
│ │ ├── reflect_go1_19.go
│ │ └── reflect_go1_20.go
│ ├── gobuffalo/
│ │ └── flect/
│ │ ├── .gitignore
│ │ ├── .gometalinter.json
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── SHOULDERS.md
│ │ ├── acronyms.go
│ │ ├── camelize.go
│ │ ├── capitalize.go
│ │ ├── custom_data.go
│ │ ├── dasherize.go
│ │ ├── flect.go
│ │ ├── humanize.go
│ │ ├── ident.go
│ │ ├── lower_upper.go
│ │ ├── ordinalize.go
│ │ ├── pascalize.go
│ │ ├── plural_rules.go
│ │ ├── pluralize.go
│ │ ├── rule.go
│ │ ├── singular_rules.go
│ │ ├── singularize.go
│ │ ├── titleize.go
│ │ ├── underscore.go
│ │ └── version.go
│ ├── gobwas/
│ │ └── glob/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── bench.sh
│ │ ├── compiler/
│ │ │ └── compiler.go
│ │ ├── glob.go
│ │ ├── match/
│ │ │ ├── any.go
│ │ │ ├── any_of.go
│ │ │ ├── btree.go
│ │ │ ├── contains.go
│ │ │ ├── every_of.go
│ │ │ ├── list.go
│ │ │ ├── match.go
│ │ │ ├── max.go
│ │ │ ├── min.go
│ │ │ ├── nothing.go
│ │ │ ├── prefix.go
│ │ │ ├── prefix_any.go
│ │ │ ├── prefix_suffix.go
│ │ │ ├── range.go
│ │ │ ├── row.go
│ │ │ ├── segments.go
│ │ │ ├── single.go
│ │ │ ├── suffix.go
│ │ │ ├── suffix_any.go
│ │ │ ├── super.go
│ │ │ └── text.go
│ │ ├── readme.md
│ │ ├── syntax/
│ │ │ ├── ast/
│ │ │ │ ├── ast.go
│ │ │ │ └── parser.go
│ │ │ ├── lexer/
│ │ │ │ ├── lexer.go
│ │ │ │ └── token.go
│ │ │ └── syntax.go
│ │ └── util/
│ │ ├── runes/
│ │ │ └── runes.go
│ │ └── strings/
│ │ └── strings.go
│ ├── gogo/
│ │ └── protobuf/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── gogoproto/
│ │ │ ├── Makefile
│ │ │ ├── doc.go
│ │ │ ├── gogo.pb.go
│ │ │ ├── gogo.pb.golden
│ │ │ ├── gogo.proto
│ │ │ └── helper.go
│ │ ├── proto/
│ │ │ ├── Makefile
│ │ │ ├── clone.go
│ │ │ ├── custom_gogo.go
│ │ │ ├── decode.go
│ │ │ ├── deprecated.go
│ │ │ ├── discard.go
│ │ │ ├── duration.go
│ │ │ ├── duration_gogo.go
│ │ │ ├── encode.go
│ │ │ ├── encode_gogo.go
│ │ │ ├── equal.go
│ │ │ ├── extensions.go
│ │ │ ├── extensions_gogo.go
│ │ │ ├── lib.go
│ │ │ ├── lib_gogo.go
│ │ │ ├── message_set.go
│ │ │ ├── pointer_reflect.go
│ │ │ ├── pointer_reflect_gogo.go
│ │ │ ├── pointer_unsafe.go
│ │ │ ├── pointer_unsafe_gogo.go
│ │ │ ├── properties.go
│ │ │ ├── properties_gogo.go
│ │ │ ├── skip_gogo.go
│ │ │ ├── table_marshal.go
│ │ │ ├── table_marshal_gogo.go
│ │ │ ├── table_merge.go
│ │ │ ├── table_unmarshal.go
│ │ │ ├── table_unmarshal_gogo.go
│ │ │ ├── text.go
│ │ │ ├── text_gogo.go
│ │ │ ├── text_parser.go
│ │ │ ├── timestamp.go
│ │ │ ├── timestamp_gogo.go
│ │ │ ├── wrappers.go
│ │ │ └── wrappers_gogo.go
│ │ ├── protoc-gen-gogo/
│ │ │ └── descriptor/
│ │ │ ├── Makefile
│ │ │ ├── descriptor.go
│ │ │ ├── descriptor.pb.go
│ │ │ ├── descriptor_gostring.gen.go
│ │ │ └── helper.go
│ │ └── sortkeys/
│ │ └── sortkeys.go
│ ├── golang/
│ │ ├── example/
│ │ │ ├── LICENSE
│ │ │ └── stringutil/
│ │ │ └── reverse.go
│ │ ├── glog/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── glog.go
│ │ │ ├── glog_file.go
│ │ │ ├── glog_file_linux.go
│ │ │ ├── glog_file_nonwindows.go
│ │ │ ├── glog_file_other.go
│ │ │ ├── glog_file_posix.go
│ │ │ ├── glog_file_windows.go
│ │ │ ├── glog_flags.go
│ │ │ └── internal/
│ │ │ ├── logsink/
│ │ │ │ ├── logsink.go
│ │ │ │ └── logsink_fatal.go
│ │ │ └── stackdump/
│ │ │ └── stackdump.go
│ │ ├── groupcache/
│ │ │ ├── LICENSE
│ │ │ └── lru/
│ │ │ └── lru.go
│ │ └── protobuf/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ └── proto/
│ │ ├── buffer.go
│ │ ├── defaults.go
│ │ ├── deprecated.go
│ │ ├── discard.go
│ │ ├── extensions.go
│ │ ├── properties.go
│ │ ├── proto.go
│ │ ├── registry.go
│ │ ├── text_decode.go
│ │ ├── text_encode.go
│ │ ├── wire.go
│ │ └── wrappers.go
│ ├── golang-jwt/
│ │ └── jwt/
│ │ └── v4/
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── MIGRATION_GUIDE.md
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── VERSION_HISTORY.md
│ │ ├── claims.go
│ │ ├── doc.go
│ │ ├── ecdsa.go
│ │ ├── ecdsa_utils.go
│ │ ├── ed25519.go
│ │ ├── ed25519_utils.go
│ │ ├── errors.go
│ │ ├── hmac.go
│ │ ├── map_claims.go
│ │ ├── none.go
│ │ ├── parser.go
│ │ ├── parser_option.go
│ │ ├── rsa.go
│ │ ├── rsa_pss.go
│ │ ├── rsa_utils.go
│ │ ├── signing_method.go
│ │ ├── staticcheck.conf
│ │ ├── token.go
│ │ └── types.go
│ ├── google/
│ │ ├── btree/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── btree.go
│ │ │ └── btree_generic.go
│ │ ├── cel-go/
│ │ │ ├── LICENSE
│ │ │ ├── cel/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── cel.go
│ │ │ │ ├── decls.go
│ │ │ │ ├── env.go
│ │ │ │ ├── folding.go
│ │ │ │ ├── inlining.go
│ │ │ │ ├── io.go
│ │ │ │ ├── library.go
│ │ │ │ ├── macro.go
│ │ │ │ ├── optimizer.go
│ │ │ │ ├── options.go
│ │ │ │ ├── program.go
│ │ │ │ ├── prompt.go
│ │ │ │ ├── templates/
│ │ │ │ │ └── authoring.tmpl
│ │ │ │ └── validator.go
│ │ │ ├── checker/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── checker.go
│ │ │ │ ├── cost.go
│ │ │ │ ├── decls/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── decls.go
│ │ │ │ ├── env.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── format.go
│ │ │ │ ├── mapping.go
│ │ │ │ ├── options.go
│ │ │ │ ├── printer.go
│ │ │ │ ├── scopes.go
│ │ │ │ └── types.go
│ │ │ ├── common/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── ast/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── ast.go
│ │ │ │ │ ├── conversion.go
│ │ │ │ │ ├── expr.go
│ │ │ │ │ ├── factory.go
│ │ │ │ │ └── navigable.go
│ │ │ │ ├── containers/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── container.go
│ │ │ │ ├── cost.go
│ │ │ │ ├── debug/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── debug.go
│ │ │ │ ├── decls/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── decls.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── env/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── env.go
│ │ │ │ ├── error.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── functions/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── functions.go
│ │ │ │ ├── location.go
│ │ │ │ ├── operators/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── operators.go
│ │ │ │ ├── overloads/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── overloads.go
│ │ │ │ ├── runes/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── buffer.go
│ │ │ │ ├── source.go
│ │ │ │ ├── stdlib/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── standard.go
│ │ │ │ └── types/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── any_value.go
│ │ │ │ ├── bool.go
│ │ │ │ ├── bytes.go
│ │ │ │ ├── compare.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── double.go
│ │ │ │ ├── duration.go
│ │ │ │ ├── err.go
│ │ │ │ ├── format.go
│ │ │ │ ├── int.go
│ │ │ │ ├── iterator.go
│ │ │ │ ├── json_value.go
│ │ │ │ ├── list.go
│ │ │ │ ├── map.go
│ │ │ │ ├── null.go
│ │ │ │ ├── object.go
│ │ │ │ ├── optional.go
│ │ │ │ ├── overflow.go
│ │ │ │ ├── pb/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── checked.go
│ │ │ │ │ ├── enum.go
│ │ │ │ │ ├── equal.go
│ │ │ │ │ ├── file.go
│ │ │ │ │ ├── pb.go
│ │ │ │ │ └── type.go
│ │ │ │ ├── provider.go
│ │ │ │ ├── ref/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── provider.go
│ │ │ │ │ └── reference.go
│ │ │ │ ├── string.go
│ │ │ │ ├── timestamp.go
│ │ │ │ ├── traits/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── comparer.go
│ │ │ │ │ ├── container.go
│ │ │ │ │ ├── field_tester.go
│ │ │ │ │ ├── indexer.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ ├── lister.go
│ │ │ │ │ ├── mapper.go
│ │ │ │ │ ├── matcher.go
│ │ │ │ │ ├── math.go
│ │ │ │ │ ├── receiver.go
│ │ │ │ │ ├── sizer.go
│ │ │ │ │ ├── traits.go
│ │ │ │ │ └── zeroer.go
│ │ │ │ ├── types.go
│ │ │ │ ├── uint.go
│ │ │ │ ├── unknown.go
│ │ │ │ └── util.go
│ │ │ ├── ext/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── README.md
│ │ │ │ ├── bindings.go
│ │ │ │ ├── comprehensions.go
│ │ │ │ ├── encoders.go
│ │ │ │ ├── extension_option_factory.go
│ │ │ │ ├── formatting.go
│ │ │ │ ├── formatting_v2.go
│ │ │ │ ├── guards.go
│ │ │ │ ├── lists.go
│ │ │ │ ├── math.go
│ │ │ │ ├── native.go
│ │ │ │ ├── protos.go
│ │ │ │ ├── sets.go
│ │ │ │ └── strings.go
│ │ │ ├── interpreter/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── activation.go
│ │ │ │ ├── attribute_patterns.go
│ │ │ │ ├── attributes.go
│ │ │ │ ├── decorators.go
│ │ │ │ ├── dispatcher.go
│ │ │ │ ├── evalstate.go
│ │ │ │ ├── functions/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── functions.go
│ │ │ │ ├── interpretable.go
│ │ │ │ ├── interpreter.go
│ │ │ │ ├── optimizations.go
│ │ │ │ ├── planner.go
│ │ │ │ ├── prune.go
│ │ │ │ └── runtimecost.go
│ │ │ └── parser/
│ │ │ ├── BUILD.bazel
│ │ │ ├── errors.go
│ │ │ ├── gen/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── CEL.g4
│ │ │ │ ├── CEL.interp
│ │ │ │ ├── CEL.tokens
│ │ │ │ ├── CELLexer.interp
│ │ │ │ ├── CELLexer.tokens
│ │ │ │ ├── cel_base_listener.go
│ │ │ │ ├── cel_base_visitor.go
│ │ │ │ ├── cel_lexer.go
│ │ │ │ ├── cel_listener.go
│ │ │ │ ├── cel_parser.go
│ │ │ │ ├── cel_visitor.go
│ │ │ │ ├── doc.go
│ │ │ │ └── generate.sh
│ │ │ ├── helper.go
│ │ │ ├── input.go
│ │ │ ├── macro.go
│ │ │ ├── options.go
│ │ │ ├── parser.go
│ │ │ ├── unescape.go
│ │ │ └── unparser.go
│ │ ├── gnostic-models/
│ │ │ ├── LICENSE
│ │ │ ├── compiler/
│ │ │ │ ├── README.md
│ │ │ │ ├── context.go
│ │ │ │ ├── error.go
│ │ │ │ ├── extensions.go
│ │ │ │ ├── helpers.go
│ │ │ │ ├── main.go
│ │ │ │ └── reader.go
│ │ │ ├── extensions/
│ │ │ │ ├── README.md
│ │ │ │ ├── extension.pb.go
│ │ │ │ ├── extension.proto
│ │ │ │ └── extensions.go
│ │ │ ├── jsonschema/
│ │ │ │ ├── README.md
│ │ │ │ ├── base.go
│ │ │ │ ├── display.go
│ │ │ │ ├── models.go
│ │ │ │ ├── operations.go
│ │ │ │ ├── reader.go
│ │ │ │ ├── schema.json
│ │ │ │ └── writer.go
│ │ │ ├── openapiv2/
│ │ │ │ ├── OpenAPIv2.go
│ │ │ │ ├── OpenAPIv2.pb.go
│ │ │ │ ├── OpenAPIv2.proto
│ │ │ │ ├── README.md
│ │ │ │ ├── document.go
│ │ │ │ └── openapi-2.0.json
│ │ │ └── openapiv3/
│ │ │ ├── OpenAPIv3.go
│ │ │ ├── OpenAPIv3.pb.go
│ │ │ ├── OpenAPIv3.proto
│ │ │ ├── README.md
│ │ │ ├── annotations.pb.go
│ │ │ ├── annotations.proto
│ │ │ └── document.go
│ │ ├── go-cmp/
│ │ │ ├── LICENSE
│ │ │ └── cmp/
│ │ │ ├── compare.go
│ │ │ ├── export.go
│ │ │ ├── internal/
│ │ │ │ ├── diff/
│ │ │ │ │ ├── debug_disable.go
│ │ │ │ │ ├── debug_enable.go
│ │ │ │ │ └── diff.go
│ │ │ │ ├── flags/
│ │ │ │ │ └── flags.go
│ │ │ │ ├── function/
│ │ │ │ │ └── func.go
│ │ │ │ └── value/
│ │ │ │ ├── name.go
│ │ │ │ ├── pointer.go
│ │ │ │ └── sort.go
│ │ │ ├── options.go
│ │ │ ├── path.go
│ │ │ ├── report.go
│ │ │ ├── report_compare.go
│ │ │ ├── report_references.go
│ │ │ ├── report_reflect.go
│ │ │ ├── report_slices.go
│ │ │ ├── report_text.go
│ │ │ └── report_value.go
│ │ ├── go-containerregistry/
│ │ │ ├── LICENSE
│ │ │ ├── internal/
│ │ │ │ ├── and/
│ │ │ │ │ └── and_closer.go
│ │ │ │ ├── compression/
│ │ │ │ │ └── compression.go
│ │ │ │ ├── estargz/
│ │ │ │ │ └── estargz.go
│ │ │ │ ├── gzip/
│ │ │ │ │ └── zip.go
│ │ │ │ ├── redact/
│ │ │ │ │ └── redact.go
│ │ │ │ ├── retry/
│ │ │ │ │ ├── retry.go
│ │ │ │ │ └── wait/
│ │ │ │ │ └── kubernetes_apimachinery_wait.go
│ │ │ │ ├── verify/
│ │ │ │ │ └── verify.go
│ │ │ │ └── zstd/
│ │ │ │ └── zstd.go
│ │ │ └── pkg/
│ │ │ ├── authn/
│ │ │ │ ├── README.md
│ │ │ │ ├── anon.go
│ │ │ │ ├── auth.go
│ │ │ │ ├── authn.go
│ │ │ │ ├── basic.go
│ │ │ │ ├── bearer.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── keychain.go
│ │ │ │ └── multikeychain.go
│ │ │ ├── compression/
│ │ │ │ └── compression.go
│ │ │ ├── logs/
│ │ │ │ └── logs.go
│ │ │ ├── name/
│ │ │ │ ├── README.md
│ │ │ │ ├── check.go
│ │ │ │ ├── digest.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── options.go
│ │ │ │ ├── ref.go
│ │ │ │ ├── registry.go
│ │ │ │ ├── repository.go
│ │ │ │ └── tag.go
│ │ │ └── v1/
│ │ │ ├── config.go
│ │ │ ├── doc.go
│ │ │ ├── empty/
│ │ │ │ ├── README.md
│ │ │ │ ├── doc.go
│ │ │ │ ├── image.go
│ │ │ │ └── index.go
│ │ │ ├── hash.go
│ │ │ ├── image.go
│ │ │ ├── index.go
│ │ │ ├── layer.go
│ │ │ ├── manifest.go
│ │ │ ├── match/
│ │ │ │ └── match.go
│ │ │ ├── mutate/
│ │ │ │ ├── README.md
│ │ │ │ ├── doc.go
│ │ │ │ ├── image.go
│ │ │ │ ├── index.go
│ │ │ │ ├── mutate.go
│ │ │ │ └── rebase.go
│ │ │ ├── partial/
│ │ │ │ ├── README.md
│ │ │ │ ├── compressed.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── image.go
│ │ │ │ ├── index.go
│ │ │ │ ├── uncompressed.go
│ │ │ │ └── with.go
│ │ │ ├── platform.go
│ │ │ ├── progress.go
│ │ │ ├── remote/
│ │ │ │ ├── README.md
│ │ │ │ ├── catalog.go
│ │ │ │ ├── check.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── descriptor.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── fetcher.go
│ │ │ │ ├── image.go
│ │ │ │ ├── index.go
│ │ │ │ ├── layer.go
│ │ │ │ ├── list.go
│ │ │ │ ├── mount.go
│ │ │ │ ├── multi_write.go
│ │ │ │ ├── options.go
│ │ │ │ ├── progress.go
│ │ │ │ ├── puller.go
│ │ │ │ ├── pusher.go
│ │ │ │ ├── referrers.go
│ │ │ │ ├── schema1.go
│ │ │ │ ├── transport/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── basic.go
│ │ │ │ │ ├── bearer.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── error.go
│ │ │ │ │ ├── logger.go
│ │ │ │ │ ├── ping.go
│ │ │ │ │ ├── retry.go
│ │ │ │ │ ├── schemer.go
│ │ │ │ │ ├── scope.go
│ │ │ │ │ ├── transport.go
│ │ │ │ │ └── useragent.go
│ │ │ │ └── write.go
│ │ │ ├── stream/
│ │ │ │ ├── README.md
│ │ │ │ └── layer.go
│ │ │ ├── tarball/
│ │ │ │ ├── README.md
│ │ │ │ ├── doc.go
│ │ │ │ ├── image.go
│ │ │ │ ├── layer.go
│ │ │ │ └── write.go
│ │ │ ├── types/
│ │ │ │ └── types.go
│ │ │ └── zz_deepcopy_generated.go
│ │ ├── gofuzz/
│ │ │ ├── .travis.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── bytesource/
│ │ │ │ └── bytesource.go
│ │ │ ├── doc.go
│ │ │ └── fuzz.go
│ │ ├── gops/
│ │ │ ├── LICENSE
│ │ │ ├── agent/
│ │ │ │ ├── agent.go
│ │ │ │ ├── sockopt_reuseport.go
│ │ │ │ └── sockopt_unsupported.go
│ │ │ ├── internal/
│ │ │ │ └── internal.go
│ │ │ └── signal/
│ │ │ └── signal.go
│ │ ├── pprof/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ └── profile/
│ │ │ ├── encode.go
│ │ │ ├── filter.go
│ │ │ ├── index.go
│ │ │ ├── legacy_java_profile.go
│ │ │ ├── legacy_profile.go
│ │ │ ├── merge.go
│ │ │ ├── profile.go
│ │ │ ├── proto.go
│ │ │ └── prune.go
│ │ ├── shlex/
│ │ │ ├── COPYING
│ │ │ ├── README
│ │ │ └── shlex.go
│ │ └── uuid/
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── dce.go
│ │ ├── doc.go
│ │ ├── hash.go
│ │ ├── marshal.go
│ │ ├── node.go
│ │ ├── node_js.go
│ │ ├── node_net.go
│ │ ├── null.go
│ │ ├── sql.go
│ │ ├── time.go
│ │ ├── util.go
│ │ ├── uuid.go
│ │ ├── version1.go
│ │ ├── version4.go
│ │ ├── version6.go
│ │ └── version7.go
│ ├── gorilla/
│ │ ├── mux/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitignore
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ ├── middleware.go
│ │ │ ├── mux.go
│ │ │ ├── regexp.go
│ │ │ ├── route.go
│ │ │ └── test_helpers.go
│ │ └── websocket/
│ │ ├── .gitignore
│ │ ├── AUTHORS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── client.go
│ │ ├── compression.go
│ │ ├── conn.go
│ │ ├── doc.go
│ │ ├── join.go
│ │ ├── json.go
│ │ ├── mask.go
│ │ ├── mask_safe.go
│ │ ├── prepared.go
│ │ ├── proxy.go
│ │ ├── server.go
│ │ └── util.go
│ ├── gosuri/
│ │ └── uitable/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── table.go
│ │ └── util/
│ │ ├── strutil/
│ │ │ └── strutil.go
│ │ └── wordwrap/
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ └── wordwrap.go
│ ├── gregjones/
│ │ └── httpcache/
│ │ ├── .travis.yml
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ └── httpcache.go
│ ├── grpc-ecosystem/
│ │ └── grpc-gateway/
│ │ └── v2/
│ │ ├── LICENSE
│ │ ├── internal/
│ │ │ └── httprule/
│ │ │ ├── BUILD.bazel
│ │ │ ├── compile.go
│ │ │ ├── fuzz.go
│ │ │ ├── parse.go
│ │ │ └── types.go
│ │ ├── protoc-gen-openapiv2/
│ │ │ └── options/
│ │ │ ├── BUILD.bazel
│ │ │ ├── annotations.pb.go
│ │ │ ├── annotations.proto
│ │ │ ├── annotations_protoopaque.pb.go
│ │ │ ├── buf.gen.yaml
│ │ │ ├── openapiv2.pb.go
│ │ │ ├── openapiv2.proto
│ │ │ └── openapiv2_protoopaque.pb.go
│ │ ├── runtime/
│ │ │ ├── BUILD.bazel
│ │ │ ├── context.go
│ │ │ ├── convert.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── fieldmask.go
│ │ │ ├── handler.go
│ │ │ ├── marshal_httpbodyproto.go
│ │ │ ├── marshal_json.go
│ │ │ ├── marshal_jsonpb.go
│ │ │ ├── marshal_proto.go
│ │ │ ├── marshaler.go
│ │ │ ├── marshaler_registry.go
│ │ │ ├── mux.go
│ │ │ ├── pattern.go
│ │ │ ├── proto2_convert.go
│ │ │ └── query.go
│ │ └── utilities/
│ │ ├── BUILD.bazel
│ │ ├── doc.go
│ │ ├── pattern.go
│ │ ├── readerfactory.go
│ │ ├── string_array_flag.go
│ │ └── trie.go
│ ├── hashicorp/
│ │ ├── errwrap/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── errwrap.go
│ │ └── go-multierror/
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── append.go
│ │ ├── flatten.go
│ │ ├── format.go
│ │ ├── group.go
│ │ ├── multierror.go
│ │ ├── prefix.go
│ │ └── sort.go
│ ├── huandu/
│ │ └── xstrings/
│ │ ├── .gitignore
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── common.go
│ │ ├── convert.go
│ │ ├── count.go
│ │ ├── doc.go
│ │ ├── format.go
│ │ ├── manipulate.go
│ │ ├── stringbuilder.go
│ │ ├── stringbuilder_go110.go
│ │ └── translate.go
│ ├── inconshreveable/
│ │ └── mousetrap/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── trap_others.go
│ │ └── trap_windows.go
│ ├── jbenet/
│ │ └── go-context/
│ │ ├── LICENSE
│ │ └── io/
│ │ └── ctxio.go
│ ├── jmespath/
│ │ └── go-jmespath/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── api.go
│ │ ├── astnodetype_string.go
│ │ ├── functions.go
│ │ ├── interpreter.go
│ │ ├── lexer.go
│ │ ├── parser.go
│ │ ├── toktype_string.go
│ │ └── util.go
│ ├── jmoiron/
│ │ └── sqlx/
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── bind.go
│ │ ├── doc.go
│ │ ├── named.go
│ │ ├── named_context.go
│ │ ├── reflectx/
│ │ │ ├── README.md
│ │ │ └── reflect.go
│ │ ├── sqlx.go
│ │ └── sqlx_context.go
│ ├── josharian/
│ │ └── intern/
│ │ ├── README.md
│ │ ├── intern.go
│ │ └── license.md
│ ├── kevinburke/
│ │ └── ssh_config/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .mailmap
│ │ ├── AUTHORS.txt
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.go
│ │ ├── lexer.go
│ │ ├── parser.go
│ │ ├── position.go
│ │ ├── token.go
│ │ └── validators.go
│ ├── klauspost/
│ │ └── compress/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .goreleaser.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── compressible.go
│ │ ├── fse/
│ │ │ ├── README.md
│ │ │ ├── bitreader.go
│ │ │ ├── bitwriter.go
│ │ │ ├── bytereader.go
│ │ │ ├── compress.go
│ │ │ ├── decompress.go
│ │ │ └── fse.go
│ │ ├── gen.sh
│ │ ├── huff0/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── bitreader.go
│ │ │ ├── bitwriter.go
│ │ │ ├── compress.go
│ │ │ ├── decompress.go
│ │ │ ├── decompress_amd64.go
│ │ │ ├── decompress_amd64.s
│ │ │ ├── decompress_generic.go
│ │ │ └── huff0.go
│ │ ├── internal/
│ │ │ ├── cpuinfo/
│ │ │ │ ├── cpuinfo.go
│ │ │ │ ├── cpuinfo_amd64.go
│ │ │ │ └── cpuinfo_amd64.s
│ │ │ ├── le/
│ │ │ │ ├── le.go
│ │ │ │ ├── unsafe_disabled.go
│ │ │ │ └── unsafe_enabled.go
│ │ │ └── snapref/
│ │ │ ├── LICENSE
│ │ │ ├── decode.go
│ │ │ ├── decode_other.go
│ │ │ ├── encode.go
│ │ │ ├── encode_other.go
│ │ │ └── snappy.go
│ │ ├── s2sx.mod
│ │ ├── s2sx.sum
│ │ └── zstd/
│ │ ├── README.md
│ │ ├── bitreader.go
│ │ ├── bitwriter.go
│ │ ├── blockdec.go
│ │ ├── blockenc.go
│ │ ├── blocktype_string.go
│ │ ├── bytebuf.go
│ │ ├── bytereader.go
│ │ ├── decodeheader.go
│ │ ├── decoder.go
│ │ ├── decoder_options.go
│ │ ├── dict.go
│ │ ├── enc_base.go
│ │ ├── enc_best.go
│ │ ├── enc_better.go
│ │ ├── enc_dfast.go
│ │ ├── enc_fast.go
│ │ ├── encoder.go
│ │ ├── encoder_options.go
│ │ ├── framedec.go
│ │ ├── frameenc.go
│ │ ├── fse_decoder.go
│ │ ├── fse_decoder_amd64.go
│ │ ├── fse_decoder_amd64.s
│ │ ├── fse_decoder_generic.go
│ │ ├── fse_encoder.go
│ │ ├── fse_predefined.go
│ │ ├── hash.go
│ │ ├── history.go
│ │ ├── internal/
│ │ │ └── xxhash/
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── xxhash.go
│ │ │ ├── xxhash_amd64.s
│ │ │ ├── xxhash_arm64.s
│ │ │ ├── xxhash_asm.go
│ │ │ ├── xxhash_other.go
│ │ │ └── xxhash_safe.go
│ │ ├── matchlen_amd64.go
│ │ ├── matchlen_amd64.s
│ │ ├── matchlen_generic.go
│ │ ├── seqdec.go
│ │ ├── seqdec_amd64.go
│ │ ├── seqdec_amd64.s
│ │ ├── seqdec_generic.go
│ │ ├── seqenc.go
│ │ ├── snappy.go
│ │ ├── zip.go
│ │ └── zstd.go
│ ├── kylelemons/
│ │ └── godebug/
│ │ ├── LICENSE
│ │ └── diff/
│ │ └── diff.go
│ ├── lann/
│ │ ├── builder/
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── builder.go
│ │ │ ├── reflect.go
│ │ │ └── registry.go
│ │ └── ps/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── list.go
│ │ ├── map.go
│ │ └── profile.sh
│ ├── lib/
│ │ └── pq/
│ │ ├── .gitignore
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── TESTS.md
│ │ ├── array.go
│ │ ├── buf.go
│ │ ├── conn.go
│ │ ├── conn_go115.go
│ │ ├── conn_go18.go
│ │ ├── connector.go
│ │ ├── copy.go
│ │ ├── doc.go
│ │ ├── encode.go
│ │ ├── error.go
│ │ ├── krb.go
│ │ ├── notice.go
│ │ ├── notify.go
│ │ ├── oid/
│ │ │ ├── doc.go
│ │ │ └── types.go
│ │ ├── rows.go
│ │ ├── scram/
│ │ │ └── scram.go
│ │ ├── ssl.go
│ │ ├── ssl_permissions.go
│ │ ├── ssl_windows.go
│ │ ├── url.go
│ │ ├── user_other.go
│ │ ├── user_posix.go
│ │ ├── user_windows.go
│ │ └── uuid.go
│ ├── liggitt/
│ │ └── tabwriter/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── tabwriter.go
│ ├── mailru/
│ │ └── easyjson/
│ │ ├── LICENSE
│ │ ├── buffer/
│ │ │ └── pool.go
│ │ ├── jlexer/
│ │ │ ├── bytestostr.go
│ │ │ ├── bytestostr_nounsafe.go
│ │ │ ├── error.go
│ │ │ └── lexer.go
│ │ └── jwriter/
│ │ └── writer.go
│ ├── mattn/
│ │ ├── go-colorable/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── colorable_others.go
│ │ │ ├── colorable_windows.go
│ │ │ ├── go.test.sh
│ │ │ └── noncolorable.go
│ │ ├── go-isatty/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ ├── go.test.sh
│ │ │ ├── isatty_bsd.go
│ │ │ ├── isatty_others.go
│ │ │ ├── isatty_plan9.go
│ │ │ ├── isatty_solaris.go
│ │ │ ├── isatty_tcgets.go
│ │ │ └── isatty_windows.go
│ │ └── go-runewidth/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── runewidth.go
│ │ ├── runewidth_appengine.go
│ │ ├── runewidth_js.go
│ │ ├── runewidth_posix.go
│ │ ├── runewidth_table.go
│ │ └── runewidth_windows.go
│ ├── mitchellh/
│ │ ├── copystructure/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── copier_time.go
│ │ │ └── copystructure.go
│ │ ├── go-homedir/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── homedir.go
│ │ ├── go-wordwrap/
│ │ │ ├── LICENSE.md
│ │ │ ├── README.md
│ │ │ └── wordwrap.go
│ │ ├── mapstructure/
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── decode_hooks.go
│ │ │ ├── error.go
│ │ │ └── mapstructure.go
│ │ └── reflectwalk/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── location.go
│ │ ├── location_string.go
│ │ └── reflectwalk.go
│ ├── moby/
│ │ ├── docker-image-spec/
│ │ │ ├── LICENSE
│ │ │ └── specs-go/
│ │ │ └── v1/
│ │ │ └── image.go
│ │ ├── locker/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── locker.go
│ │ └── spdystream/
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── MAINTAINERS
│ │ ├── NOTICE
│ │ ├── README.md
│ │ ├── connection.go
│ │ ├── handlers.go
│ │ ├── priority.go
│ │ ├── spdy/
│ │ │ ├── dictionary.go
│ │ │ ├── read.go
│ │ │ ├── types.go
│ │ │ └── write.go
│ │ ├── stream.go
│ │ └── utils.go
│ ├── modern-go/
│ │ └── concurrent/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── executor.go
│ │ ├── go_above_19.go
│ │ ├── go_below_19.go
│ │ ├── log.go
│ │ ├── test.sh
│ │ └── unbounded_executor.go
│ ├── monochromegane/
│ │ └── go-gitignore/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── depth_holder.go
│ │ ├── full_scan_patterns.go
│ │ ├── gitignore.go
│ │ ├── index_scan_patterns.go
│ │ ├── initial_holder.go
│ │ ├── match.go
│ │ ├── pattern.go
│ │ ├── patterns.go
│ │ └── util.go
│ ├── munnerz/
│ │ └── goautoneg/
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.txt
│ │ └── autoneg.go
│ ├── mxk/
│ │ └── go-flowrate/
│ │ ├── LICENSE
│ │ └── flowrate/
│ │ ├── flowrate.go
│ │ ├── io.go
│ │ └── util.go
│ ├── oklog/
│ │ └── ulid/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── Gopkg.toml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── ulid.go
│ ├── oliveagle/
│ │ └── jsonpath/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── jsonpath.go
│ │ └── readme.md
│ ├── onsi/
│ │ ├── ginkgo/
│ │ │ └── v2/
│ │ │ ├── .gitignore
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── RELEASING.md
│ │ │ ├── config/
│ │ │ │ └── deprecated.go
│ │ │ ├── core_dsl.go
│ │ │ ├── decorator_dsl.go
│ │ │ ├── deprecated_dsl.go
│ │ │ ├── formatter/
│ │ │ │ ├── colorable_others.go
│ │ │ │ ├── colorable_windows.go
│ │ │ │ └── formatter.go
│ │ │ ├── ginkgo/
│ │ │ │ ├── build/
│ │ │ │ │ └── build_command.go
│ │ │ │ ├── command/
│ │ │ │ │ ├── abort.go
│ │ │ │ │ ├── command.go
│ │ │ │ │ └── program.go
│ │ │ │ ├── generators/
│ │ │ │ │ ├── boostrap_templates.go
│ │ │ │ │ ├── bootstrap_command.go
│ │ │ │ │ ├── generate_command.go
│ │ │ │ │ ├── generate_templates.go
│ │ │ │ │ └── generators_common.go
│ │ │ │ ├── internal/
│ │ │ │ │ ├── compile.go
│ │ │ │ │ ├── gocovmerge.go
│ │ │ │ │ ├── profiles_and_reports.go
│ │ │ │ │ ├── run.go
│ │ │ │ │ ├── test_suite.go
│ │ │ │ │ ├── utils.go
│ │ │ │ │ └── verify_version.go
│ │ │ │ ├── labels/
│ │ │ │ │ └── labels_command.go
│ │ │ │ ├── main.go
│ │ │ │ ├── outline/
│ │ │ │ │ ├── ginkgo.go
│ │ │ │ │ ├── import.go
│ │ │ │ │ ├── outline.go
│ │ │ │ │ └── outline_command.go
│ │ │ │ ├── run/
│ │ │ │ │ └── run_command.go
│ │ │ │ ├── unfocus/
│ │ │ │ │ └── unfocus_command.go
│ │ │ │ └── watch/
│ │ │ │ ├── delta.go
│ │ │ │ ├── delta_tracker.go
│ │ │ │ ├── dependencies.go
│ │ │ │ ├── package_hash.go
│ │ │ │ ├── package_hashes.go
│ │ │ │ ├── suite.go
│ │ │ │ └── watch_command.go
│ │ │ ├── ginkgo_cli_dependencies.go
│ │ │ ├── ginkgo_t_dsl.go
│ │ │ ├── internal/
│ │ │ │ ├── counter.go
│ │ │ │ ├── failer.go
│ │ │ │ ├── focus.go
│ │ │ │ ├── global/
│ │ │ │ │ └── init.go
│ │ │ │ ├── group.go
│ │ │ │ ├── interrupt_handler/
│ │ │ │ │ ├── interrupt_handler.go
│ │ │ │ │ ├── sigquit_swallower_unix.go
│ │ │ │ │ └── sigquit_swallower_windows.go
│ │ │ │ ├── node.go
│ │ │ │ ├── ordering.go
│ │ │ │ ├── output_interceptor.go
│ │ │ │ ├── output_interceptor_unix.go
│ │ │ │ ├── output_interceptor_wasm.go
│ │ │ │ ├── output_interceptor_win.go
│ │ │ │ ├── parallel_support/
│ │ │ │ │ ├── client_server.go
│ │ │ │ │ ├── http_client.go
│ │ │ │ │ ├── http_server.go
│ │ │ │ │ ├── rpc_client.go
│ │ │ │ │ ├── rpc_server.go
│ │ │ │ │ └── server_handler.go
│ │ │ │ ├── progress_report.go
│ │ │ │ ├── progress_report_bsd.go
│ │ │ │ ├── progress_report_unix.go
│ │ │ │ ├── progress_report_wasm.go
│ │ │ │ ├── progress_report_win.go
│ │ │ │ ├── progress_reporter_manager.go
│ │ │ │ ├── report_entry.go
│ │ │ │ ├── spec.go
│ │ │ │ ├── spec_context.go
│ │ │ │ ├── suite.go
│ │ │ │ ├── testingtproxy/
│ │ │ │ │ └── testing_t_proxy.go
│ │ │ │ ├── tree.go
│ │ │ │ └── writer.go
│ │ │ ├── reporters/
│ │ │ │ ├── default_reporter.go
│ │ │ │ ├── deprecated_reporter.go
│ │ │ │ ├── json_report.go
│ │ │ │ ├── junit_report.go
│ │ │ │ ├── reporter.go
│ │ │ │ └── teamcity_report.go
│ │ │ ├── reporting_dsl.go
│ │ │ ├── table_dsl.go
│ │ │ └── types/
│ │ │ ├── code_location.go
│ │ │ ├── config.go
│ │ │ ├── deprecated_types.go
│ │ │ ├── deprecation_support.go
│ │ │ ├── enum_support.go
│ │ │ ├── errors.go
│ │ │ ├── file_filter.go
│ │ │ ├── flags.go
│ │ │ ├── label_filter.go
│ │ │ ├── report_entry.go
│ │ │ ├── types.go
│ │ │ └── version.go
│ │ └── gomega/
│ │ ├── .gitignore
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── RELEASING.md
│ │ ├── format/
│ │ │ └── format.go
│ │ ├── gbytes/
│ │ │ ├── buffer.go
│ │ │ ├── io_wrappers.go
│ │ │ └── say_matcher.go
│ │ ├── gexec/
│ │ │ ├── build.go
│ │ │ ├── exit_matcher.go
│ │ │ ├── prefixed_writer.go
│ │ │ └── session.go
│ │ ├── gomega_dsl.go
│ │ ├── internal/
│ │ │ ├── assertion.go
│ │ │ ├── async_assertion.go
│ │ │ ├── duration_bundle.go
│ │ │ ├── gomega.go
│ │ │ ├── gutil/
│ │ │ │ ├── post_ioutil.go
│ │ │ │ └── using_ioutil.go
│ │ │ ├── polling_signal_error.go
│ │ │ └── vetoptdesc.go
│ │ ├── matchers/
│ │ │ ├── and.go
│ │ │ ├── assignable_to_type_of_matcher.go
│ │ │ ├── attributes_slice.go
│ │ │ ├── be_a_directory.go
│ │ │ ├── be_a_regular_file.go
│ │ │ ├── be_an_existing_file.go
│ │ │ ├── be_closed_matcher.go
│ │ │ ├── be_comparable_to_matcher.go
│ │ │ ├── be_element_of_matcher.go
│ │ │ ├── be_empty_matcher.go
│ │ │ ├── be_equivalent_to_matcher.go
│ │ │ ├── be_false_matcher.go
│ │ │ ├── be_identical_to.go
│ │ │ ├── be_key_of_matcher.go
│ │ │ ├── be_nil_matcher.go
│ │ │ ├── be_numerically_matcher.go
│ │ │ ├── be_sent_matcher.go
│ │ │ ├── be_temporally_matcher.go
│ │ │ ├── be_true_matcher.go
│ │ │ ├── be_zero_matcher.go
│ │ │ ├── consist_of.go
│ │ │ ├── contain_element_matcher.go
│ │ │ ├── contain_elements_matcher.go
│ │ │ ├── contain_substring_matcher.go
│ │ │ ├── equal_matcher.go
│ │ │ ├── have_cap_matcher.go
│ │ │ ├── have_each_matcher.go
│ │ │ ├── have_exact_elements.go
│ │ │ ├── have_existing_field_matcher.go
│ │ │ ├── have_field.go
│ │ │ ├── have_http_body_matcher.go
│ │ │ ├── have_http_header_with_value_matcher.go
│ │ │ ├── have_http_status_matcher.go
│ │ │ ├── have_key_matcher.go
│ │ │ ├── have_key_with_value_matcher.go
│ │ │ ├── have_len_matcher.go
│ │ │ ├── have_occurred_matcher.go
│ │ │ ├── have_prefix_matcher.go
│ │ │ ├── have_suffix_matcher.go
│ │ │ ├── have_value.go
│ │ │ ├── internal/
│ │ │ │ └── miter/
│ │ │ │ ├── type_support_iter.go
│ │ │ │ └── type_support_noiter.go
│ │ │ ├── match_error_matcher.go
│ │ │ ├── match_json_matcher.go
│ │ │ ├── match_regexp_matcher.go
│ │ │ ├── match_xml_matcher.go
│ │ │ ├── match_yaml_matcher.go
│ │ │ ├── not.go
│ │ │ ├── or.go
│ │ │ ├── panic_matcher.go
│ │ │ ├── receive_matcher.go
│ │ │ ├── satisfy_matcher.go
│ │ │ ├── semi_structured_data_support.go
│ │ │ ├── succeed_matcher.go
│ │ │ ├── support/
│ │ │ │ └── goraph/
│ │ │ │ ├── bipartitegraph/
│ │ │ │ │ ├── bipartitegraph.go
│ │ │ │ │ └── bipartitegraphmatching.go
│ │ │ │ ├── edge/
│ │ │ │ │ └── edge.go
│ │ │ │ ├── node/
│ │ │ │ │ └── node.go
│ │ │ │ └── util/
│ │ │ │ └── util.go
│ │ │ ├── type_support.go
│ │ │ └── with_transform.go
│ │ ├── matchers.go
│ │ └── types/
│ │ └── types.go
│ ├── open-policy-agent/
│ │ └── opa/
│ │ ├── LICENSE
│ │ ├── ast/
│ │ │ ├── annotations.go
│ │ │ ├── builtins.go
│ │ │ ├── capabilities.go
│ │ │ ├── check.go
│ │ │ ├── compare.go
│ │ │ ├── compile.go
│ │ │ ├── compilehelper.go
│ │ │ ├── conflicts.go
│ │ │ ├── doc.go
│ │ │ ├── env.go
│ │ │ ├── errors.go
│ │ │ ├── index.go
│ │ │ ├── interning.go
│ │ │ ├── json/
│ │ │ │ ├── doc.go
│ │ │ │ └── json.go
│ │ │ ├── map.go
│ │ │ ├── parser.go
│ │ │ ├── parser_ext.go
│ │ │ ├── policy.go
│ │ │ ├── pretty.go
│ │ │ ├── schema.go
│ │ │ ├── strings.go
│ │ │ ├── term.go
│ │ │ ├── transform.go
│ │ │ ├── unify.go
│ │ │ ├── varset.go
│ │ │ └── visit.go
│ │ ├── bundle/
│ │ │ ├── bundle.go
│ │ │ ├── doc.go
│ │ │ ├── file.go
│ │ │ ├── filefs.go
│ │ │ ├── hash.go
│ │ │ ├── keys.go
│ │ │ ├── sign.go
│ │ │ ├── store.go
│ │ │ └── verify.go
│ │ ├── capabilities/
│ │ │ ├── capabilities.go
│ │ │ ├── doc.go
│ │ │ ├── v0.17.0.json
│ │ │ ├── v0.17.1.json
│ │ │ ├── v0.17.2.json
│ │ │ ├── v0.17.3.json
│ │ │ ├── v0.18.0.json
│ │ │ ├── v0.19.0-rc1.json
│ │ │ ├── v0.19.0.json
│ │ │ ├── v0.19.1.json
│ │ │ ├── v0.19.2.json
│ │ │ ├── v0.20.0.json
│ │ │ ├── v0.20.1.json
│ │ │ ├── v0.20.2.json
│ │ │ ├── v0.20.3.json
│ │ │ ├── v0.20.4.json
│ │ │ ├── v0.20.5.json
│ │ │ ├── v0.21.0.json
│ │ │ ├── v0.21.1.json
│ │ │ ├── v0.22.0.json
│ │ │ ├── v0.23.0.json
│ │ │ ├── v0.23.1.json
│ │ │ ├── v0.23.2.json
│ │ │ ├── v0.24.0.json
│ │ │ ├── v0.25.0-rc1.json
│ │ │ ├── v0.25.0-rc2.json
│ │ │ ├── v0.25.0-rc3.json
│ │ │ ├── v0.25.0-rc4.json
│ │ │ ├── v0.25.0.json
│ │ │ ├── v0.25.1.json
│ │ │ ├── v0.25.2.json
│ │ │ ├── v0.26.0.json
│ │ │ ├── v0.27.0.json
│ │ │ ├── v0.27.1.json
│ │ │ ├── v0.28.0.json
│ │ │ ├── v0.29.0.json
│ │ │ ├── v0.29.1.json
│ │ │ ├── v0.29.2.json
│ │ │ ├── v0.29.3.json
│ │ │ ├── v0.29.4.json
│ │ │ ├── v0.30.0.json
│ │ │ ├── v0.30.1.json
│ │ │ ├── v0.30.2.json
│ │ │ ├── v0.31.0.json
│ │ │ ├── v0.32.0.json
│ │ │ ├── v0.32.1.json
│ │ │ ├── v0.33.0.json
│ │ │ ├── v0.33.1.json
│ │ │ ├── v0.34.0.json
│ │ │ ├── v0.34.1.json
│ │ │ ├── v0.34.2.json
│ │ │ ├── v0.35.0.json
│ │ │ ├── v0.36.0.json
│ │ │ ├── v0.36.1.json
│ │ │ ├── v0.37.0.json
│ │ │ ├── v0.37.1.json
│ │ │ ├── v0.37.2.json
│ │ │ ├── v0.38.0.json
│ │ │ ├── v0.38.1.json
│ │ │ ├── v0.39.0.json
│ │ │ ├── v0.40.0.json
│ │ │ ├── v0.41.0.json
│ │ │ ├── v0.42.0.json
│ │ │ ├── v0.42.1.json
│ │ │ ├── v0.42.2.json
│ │ │ ├── v0.43.0.json
│ │ │ ├── v0.43.1.json
│ │ │ ├── v0.44.0.json
│ │ │ ├── v0.45.0.json
│ │ │ ├── v0.46.0.json
│ │ │ ├── v0.46.1.json
│ │ │ ├── v0.46.2.json
│ │ │ ├── v0.46.3.json
│ │ │ ├── v0.47.0.json
│ │ │ ├── v0.47.1.json
│ │ │ ├── v0.47.2.json
│ │ │ ├── v0.47.3.json
│ │ │ ├── v0.47.4.json
│ │ │ ├── v0.48.0.json
│ │ │ ├── v0.49.0.json
│ │ │ ├── v0.49.1.json
│ │ │ ├── v0.49.2.json
│ │ │ ├── v0.50.0.json
│ │ │ ├── v0.50.1.json
│ │ │ ├── v0.50.2.json
│ │ │ ├── v0.51.0.json
│ │ │ ├── v0.52.0.json
│ │ │ ├── v0.53.0.json
│ │ │ ├── v0.53.1.json
│ │ │ ├── v0.54.0.json
│ │ │ ├── v0.55.0.json
│ │ │ ├── v0.56.0.json
│ │ │ ├── v0.57.0.json
│ │ │ ├── v0.57.1.json
│ │ │ ├── v0.58.0.json
│ │ │ ├── v0.59.0.json
│ │ │ ├── v0.60.0.json
│ │ │ ├── v0.61.0.json
│ │ │ ├── v0.62.0.json
│ │ │ ├── v0.62.1.json
│ │ │ ├── v0.63.0.json
│ │ │ ├── v0.64.0.json
│ │ │ ├── v0.64.1.json
│ │ │ ├── v0.65.0.json
│ │ │ ├── v0.66.0.json
│ │ │ ├── v0.67.0.json
│ │ │ ├── v0.67.1.json
│ │ │ ├── v0.68.0.json
│ │ │ ├── v0.69.0.json
│ │ │ ├── v0.70.0.json
│ │ │ ├── v1.0.0.json
│ │ │ ├── v1.0.1.json
│ │ │ ├── v1.1.0.json
│ │ │ ├── v1.2.0.json
│ │ │ ├── v1.3.0.json
│ │ │ ├── v1.4.0.json
│ │ │ ├── v1.4.1.json
│ │ │ └── v1.4.2.json
│ │ ├── internal/
│ │ │ ├── bundle/
│ │ │ │ └── utils.go
│ │ │ ├── cidr/
│ │ │ │ └── merge/
│ │ │ │ └── merge.go
│ │ │ ├── compiler/
│ │ │ │ ├── utils.go
│ │ │ │ └── wasm/
│ │ │ │ ├── opa/
│ │ │ │ │ ├── callgraph.csv
│ │ │ │ │ ├── opa.go
│ │ │ │ │ └── opa.wasm
│ │ │ │ ├── optimizations.go
│ │ │ │ └── wasm.go
│ │ │ ├── config/
│ │ │ │ └── config.go
│ │ │ ├── debug/
│ │ │ │ └── debug.go
│ │ │ ├── deepcopy/
│ │ │ │ └── deepcopy.go
│ │ │ ├── edittree/
│ │ │ │ ├── bitvector/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── bitvector.go
│ │ │ │ │ └── license.txt
│ │ │ │ └── edittree.go
│ │ │ ├── file/
│ │ │ │ ├── archive/
│ │ │ │ │ └── tarball.go
│ │ │ │ └── url/
│ │ │ │ └── url.go
│ │ │ ├── future/
│ │ │ │ ├── filter_imports.go
│ │ │ │ └── parser_opts.go
│ │ │ ├── gojsonschema/
│ │ │ │ ├── LICENSE-APACHE-2.0.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── draft.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── format_checkers.go
│ │ │ │ ├── internalLog.go
│ │ │ │ ├── jsonContext.go
│ │ │ │ ├── jsonLoader.go
│ │ │ │ ├── locales.go
│ │ │ │ ├── result.go
│ │ │ │ ├── schema.go
│ │ │ │ ├── schemaLoader.go
│ │ │ │ ├── schemaPool.go
│ │ │ │ ├── schemaReferencePool.go
│ │ │ │ ├── schemaType.go
│ │ │ │ ├── subSchema.go
│ │ │ │ ├── types.go
│ │ │ │ ├── utils.go
│ │ │ │
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
pkg/cmd/api/spec/api.swagger.json linguist-generated=true
pkg/cmd/api/spec/static.go linguist-generated=true
pkg/client/* linguist-generated=true
config/crds/* linguist-generated=true
config/rbac/* linguist-generated=true
zz_generated.deepcopy.go linguist-generated=true
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
labels: ["kind/bug"]
about: Create a report to help us improve
---
<!--
You don't need to remove this comment section, it's invisible on the issues page.
## General remarks
* Attention, please fill out this issues form using English only!
* 注意!GitHub Issue 仅支持英文,中文 Issue 请在 [论坛](https://kubesphere.com.cn/forum/) 提交。
* This form is to report bugs. For general usage questions you can join our Slack channel
[KubeSphere-users](https://join.slack.com/t/kubesphere/shared_invite/enQtNTE3MDIxNzUxNzQ0LTZkNTdkYWNiYTVkMTM5ZThhODY1MjAyZmVlYWEwZmQ3ODQ1NmM1MGVkNWEzZTRhNzk0MzM5MmY4NDc3ZWVhMjE)
-->
**Describe the Bug**
A clear and concise description of what the bug is.
For UI issues please also add a screenshot that shows the issue.
**Versions Used**
KubeSphere:
Kubernetes: (If KubeSphere installer used, you can skip this)
**Environment**
How many nodes and their hardware configuration:
For example: CentOS 7.5 / 3 masters: 8cpu/8g; 3 nodes: 8cpu/16g
(and other info are welcomed to help us debugging)
**How To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature Request
about: Have a good idea? Please don't hesitate to write it down, describe the new feature.
---
<!--
You don't need to remove this comment section, it's invisible on the issues page.
## General remarks
* Attention, please fill out this issues form using English only!
* 注意!GitHub Issue 仅支持英文,中文 Issue 请在 [论坛](https://kubesphere.com.cn/forum/) 提交。
* This form is to report bugs. For general usage questions, you can join our Slack channel
[KubeSphere-users](https://join.slack.com/t/kubesphere/shared_invite/enQtNTE3MDIxNzUxNzQ0LTZkNTdkYWNiYTVkMTM5ZThhODY1MjAyZmVlYWEwZmQ3ODQ1NmM1MGVkNWEzZTRhNzk0MzM5MmY4NDc3ZWVhMjE)
-->
**What's it about?**
<!--
A clear and concise description of what this feature request is.
-->
**What's the reason why we need it?**
<!--
Please tell us if you think it's a necessary feature for Kubesphere. Give us as many details about it as you can.
Two or more use cases might be very helpful when other contributors try to go through this request. If you have some references,
please just add it below.
-->
I believe this is an important feature for Kubesphere. There're a few use cases:
* case one
* case two
* ...
Please leave your comments below if there's anyone agrees with me. Or just give me a thumb up.
**Area Suggestion**
<!--
In order to have a clear issue list, giving an accuracy area is necessary. If you are not sure about it, please just leave it alone.
You can find some possible areas below. Please attention, sometimes crossing multiple areas might be possible. So, you
can keep one or more areas in this issue.
> /area alerting
> /area api
> /area apiserver
> /area app-management
> /area audit
> /area console
> /area devops
> /area documentation
> /area edge
> /area iam
> /area installation
> /area logging
> /area microservice
> /area monitoring
> /area multicluster
> /area networking
> /area notification
> /area observability
> /area performance
> /area security
> /area storage
> /area test
> /area upgrade
-->
/kind feature-request
================================================
FILE: .github/ISSUE_TEMPLATE/installation_failure.md
================================================
---
name: Installation Issue
about: Create an issue to help us improve installation
---
## English only!
**注意!GitHub Issue 仅支持英文,中文 Issue 请在 [论坛](https://kubesphere.com.cn/forum/) 提交。**
**General remarks**
> Please delete this section including header before submitting
>
> This form is to report installation issues. For general usage questions you can refer to [KubeSphere Documentation](https://kubesphere.io/docs) or join our Slack channel
> [KubeSphere-users](https://join.slack.com/t/kubesphere/shared_invite/enQtNTE3MDIxNzUxNzQ0LTZkNTdkYWNiYTVkMTM5ZThhODY1MjAyZmVlYWEwZmQ3ODQ1NmM1MGVkNWEzZTRhNzk0MzM5MmY4NDc3ZWVhMjE)
**What's your question**
**Environment: OS & Hardware Information**
> Important: You must describe your environment clearly, e.g. VMware or Bare Metal, CentOS 7.5, 8 C / 16 G (If you install on Linux), Or Kubernetes v1.16 (If you install on K8s).
**Error logs or message (Attach logs or screenshot)**
**Installer Version**
> e.g. v2.1.0, v2.1.1, v3.0.0
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!-- Thanks for sending a pull request! Here are some tips for you:
1. If you want **faster** PR reviews, read how: https://github.com/kubesphere/community/blob/master/developer-guide/development/the-pr-author-guide-to-getting-through-code-review.md
2. In case you want to know how your PR got reviewed, read: https://github.com/kubesphere/community/blob/master/developer-guide/development/code-review-guide.md
3. Here are some coding convetions followed by KubeSphere community: https://github.com/kubesphere/community/blob/master/developer-guide/development/coding-conventions.md
-->
### What type of PR is this?
<!--
Add one of the following kinds:
/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind design
Optionally add one or more of the following kinds if applicable:
/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->
### What this PR does / why we need it:
### Which issue(s) this PR fixes:
<!--
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*
-->
Fixes #
### Special notes for reviewers:
```
```
### Does this PR introduced a user-facing change?
<!--
If no, just write "None" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
For more information on release notes see: https://github.com/kubernetes/community/blob/master/contributors/guide/release-notes.md
-->
```release-note
```
### Additional documentation, usage docs, etc.:
<!--
This section can be blank if this pull request does not require a release note.
Please use the following format for linking documentation or pass the
section below:
- [KEP]: <link>
- [Usage]: <link>
- [Other doc]: <link>
-->
```docs
```
================================================
FILE: .github/release-drafter.yml
================================================
# Configuration for Release Drafter: https://github.com/toolmantim/release-drafter
name-template: 'v$NEXT_PATCH_VERSION 🌈'
tag-template: 'v$NEXT_PATCH_VERSION'
version-template: $MAJOR.$MINOR.$PATCH
# Emoji reference: https://gitmoji.carloscuesta.me/
categories:
- title: '🚀 Features'
labels:
- 'feature'
- 'enhancement'
- 'kind/feature'
- title: '🐛 Bug Fixes'
labels:
- 'fix'
- 'bugfix'
- 'bug'
- 'regression'
- 'kind/bug'
- title: 📝 Documentation updates
labels:
- 'documentation'
- 'kind/documentation'
- title: 👻 Maintenance
labels:
- chore
- dependencies
- 'kind/cleanup'
- title: 🚦 Tests
labels:
- test
- tests
exclude-labels:
- reverted
- no-changelog
- skip-changelog
- invalid
change-template: '* $TITLE (#$NUMBER) @$AUTHOR'
template: |
## What’s Changed
$CHANGES
================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 90
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 30
# Issues with these labels will never be considered stale
exemptLabels:
- frozen
- kind/feature-request
- kind/feature
- kind/security
- kind/design
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Any further update will
cause the issue/pull request to no longer be considered stale. Thank you for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue is being automatically closed due to inactivity.
================================================
FILE: .github/workflows/build-multiarch.yaml
================================================
name: BuildContainerImage
on:
push:
branches:
- 'master'
- 'release-*'
tags:
- 'v*'
workflow_dispatch: # Manual trigger
jobs:
build:
name: Build
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Login to HUAWEICLOUD
uses: docker/login-action@v3
with:
registry: swr.cn-southwest-2.myhuaweicloud.com
username: ${{ secrets.HUAWEICLOUD_USERNAME }}
password: ${{ secrets.HUAWEICLOUD_PASSWORD }}
- name: Login to DOCKER
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v3
- name: Chose Registry by tag
id: chose_registry
run: |
if [[ ${GITHUB_REF#refs/*/} =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "env=prod" >> "$GITHUB_OUTPUT"
else
echo "env=dev" >> "$GITHUB_OUTPUT"
fi
echo "tag=${GITHUB_REF#refs/*/}" >> "$GITHUB_OUTPUT"
- name: Build and push ks-apiserver images
uses: docker/build-push-action@v6
if: steps.chose_registry.outputs.env == 'prod'
with:
context: ${{ github.workspace }}
file: build/ks-apiserver/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
docker.io/kubesphere/ks-apiserver:${{ steps.chose_registry.outputs.tag }}
- name: Build and push ks-apiserver dev images
uses: docker/build-push-action@v6
if: steps.chose_registry.outputs.env == 'dev'
with:
context: ${{ github.workspace }}
file: build/ks-apiserver/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
docker.io/kubespheredev/ks-apiserver:${{ steps.chose_registry.outputs.tag }}
- name: Build and push ks-controller-manager images
uses: docker/build-push-action@v6
if: steps.chose_registry.outputs.env == 'prod'
with:
context: ${{ github.workspace }}
file: build/ks-controller-manager/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
docker.io/kubesphere/ks-controller-manager:${{ steps.chose_registry.outputs.tag }}
- name: Build and push ks-controller-manager dev images
uses: docker/build-push-action@v6
if: steps.chose_registry.outputs.env == 'dev'
with:
context: ${{ github.workspace }}
file: build/ks-controller-manager/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
docker.io/kubespheredev/ks-controller-manager:${{ steps.chose_registry.outputs.tag }}
- name: Sync ks images to HUAWEICLOUD
if: steps.chose_registry.outputs.env == 'prod'
run: |
# apiserver
docker pull docker.io/kubesphere/ks-apiserver:${{ steps.chose_registry.outputs.tag }}
docker tag docker.io/kubesphere/ks-apiserver:${{ steps.chose_registry.outputs.tag }} swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-apiserver:${{ steps.chose_registry.outputs.tag }}
docker push swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-apiserver:${{ steps.chose_registry.outputs.tag }}
# controller-manager
docker pull docker.io/kubesphere/ks-controller-manager:${{ steps.chose_registry.outputs.tag }}
docker tag docker.io/kubesphere/ks-controller-manager:${{ steps.chose_registry.outputs.tag }} swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-controller-manager:${{ steps.chose_registry.outputs.tag }}
docker push swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-controller-manager:${{ steps.chose_registry.outputs.tag }}
================================================
FILE: .github/workflows/e2e-test.yml
================================================
name: e2e
on:
schedule:
# run e2e test every 4 hours
- cron: 0 */4 * * *
workflow_dispatch:
jobs:
build:
name: Test
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Set up Go 1.21
uses: actions/setup-go@v2
with:
go-version: 1.21
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Create kind cluster
uses: helm/kind-action@v1.2.0
with:
config: .github/workflows/kind/kind.yaml
- name: Deploy KubeSphere to Kind
run: KIND_CLUSTER_NAME=chart-testing hack/deploy-kubesphere.sh
- name: Run e2e testing
run: go test ./test/e2e
- name: slack
uses: 8398a7/action-slack@v3
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
with:
status: ${{ job.status }}
fields: repo,message,commit,author,action,eventName,ref,workflow,job,took
if: failure()
================================================
FILE: .github/workflows/issue_comment_webhook.yml
================================================
name: Issue Comment WeCom Webhook
on:
issues:
types: [opened, edited]
issue_comment:
types: [created, edited]
jobs:
send_to_webhook:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: "20.x"
- run: npm install axios
- name: Send issue/comment to WeCom webhook
uses: actions/github-script@v7
env:
WEBHOOK_URL: ${{ secrets.WEBHOOK_URL }}
with:
script: |
console.log(JSON.stringify(context, null, 2));
if (context.payload.sender.login === "ks-ci-bot") return;
if (context.payload.sender.type === 'Bot') return;
if (context.payload.issue.html_url.indexOf('/pull/') > 0) return;
const issue = context.payload.issue;
const comment = context.payload.comment;
var subject = {};
var action = '';
if (comment) {
action = "comment";
subject = comment;
} else {
action = "issue";
subject = issue;
};
const webhook_body = {
msgtype: 'markdown',
markdown: {
content: `[${context.payload.sender.login}](${context.payload.sender.html_url}) ${context.payload.action} ${action} [${issue.title}](${subject.html_url})\n${subject.body}`,
},
};
console.log(JSON.stringify(webhook_body, null, 2));
const axios = require('axios');
await axios.post(process.env.WEBHOOK_URL, webhook_body);
================================================
FILE: .github/workflows/kind/kind.yaml
================================================
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
image: kindest/node:v1.21.1
extraMounts:
- hostPath: /etc/localtime
containerPath: /etc/localtime
extraPortMappings:
- containerPort: 30881
hostPort: 9090
================================================
FILE: .github/workflows/nightly-builds.yml
================================================
name: NightlyBuild
on:
schedule:
# This is a UTC time
- cron: "0 16 * * *"
# Keep it only for test purpose, comment it once everything is ok
workflow_dispatch:
jobs:
build:
name: Build
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Set up Go 1.21
uses: actions/setup-go@v2
with:
go-version: 1.21
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
with:
platforms: all
- name: Set up Docker buildx
uses: docker/setup-buildx-action@v1
- name: Build and push docker images
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
tag=nightly-$(date '+%Y%m%d')
REPO=kubespheredev TAG=${tag} make container-cross-push
- name: slack
uses: 8398a7/action-slack@v3
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
with:
status: ${{ job.status }}
fields: repo,message,commit,author,action,eventName,ref,workflow,job,took
if: failure()
================================================
FILE: .github/workflows/release-drafter.yml
================================================
name: Release Drafter
on:
push:
branches:
- master
jobs:
update_release_draft:
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .github/workflows/sync-helm-chart.yaml
================================================
name: SyncHelmChart
on:
workflow_dispatch:
push:
paths:
- 'config/ks-core/**'
branches:
- 'master'
- 'release-*'
tags:
- 'helm-chart-*'
- 'v*'
jobs:
sync-chart:
runs-on: ubuntu-latest
steps:
- name: Check out kubesphere/kubesphere
uses: actions/checkout@v4
with:
path: kubesphere
fetch-depth: 0
- name: Check out kubesphere/helm-charts
uses: actions/checkout@v4
with:
repository: ks-ci-bot/helm-charts
token: ${{ secrets.CIBOT_ACCESS_TOKEN }}
path: helm-charts
fetch-depth: 0
- name: Setup SSH
uses: MrSquaare/ssh-setup-action@v3
with:
working-directory: helm-charts
host: github.com
private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Sync charts
run: |
cd helm-charts
git config --global user.email "ci-bot@kubesphere.io"
git config --global user.name "ks-ci-bot"
git remote add ks git@github.com:kubesphere/helm-charts.git
git fetch ks master
git checkout -b sync/ks-core/${GITHUB_REF#refs/*/} ks/master
rm -rf src/test/ks-core
cp -r ../kubesphere/config/ks-core src/test/
if [[ ${GITHUB_REF#refs/*/} =~ ^helm-chart-[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
rm -rf src/main/ks-core
cp -r ../kubesphere/config/ks-core src/main/
fi
git add .
git commit -m "update ks-core helm chart"
git push origin sync/ks-core/${GITHUB_REF#refs/*/} --force
- name: Create Pull Request
env:
GH_TOKEN: ${{ secrets.CIBOT_ACCESS_TOKEN }}
run: |
cd helm-charts
if [[ $(gh pr ls -R kubesphere/helm-charts -A ks-ci-bot -H sync/ks-core/${GITHUB_REF#refs/*/} -B master) == "" ]]; then
# Create a PR in the kubesphere/helm-charts repository
gh pr create -R kubesphere/helm-charts \
-B master \
-H ks-ci-bot:sync/ks-core/${GITHUB_REF#refs/*/} \
-t "Update ks-core helm chart from ${GITHUB_REF#refs/*/}" \
-b "Update ks-core helm chart"
fi
================================================
FILE: .gitignore
================================================
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
*.a
# Test binary, build with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Files generated by JetBrains IDEs, e.g. IntelliJ IDEA
.idea/
*.iml
bin/
# Vscode files
.vscode/
__debug_bin
# This is where the result of the go build goes
/output*/
/_output*/
/_output
# OSX trash
.DS_Store
api.json
*.coverprofile
cover.out
coverage.txt
kustomize/network/etcd
apiserver.local.config
tmp/
_tmp
kubesphere.yaml
testbin/
================================================
FILE: .go-version
================================================
1.24.3
================================================
FILE: .licenserc.yaml
================================================
# Copyright 2025 The KubeSphere Authors.
# SPDX-License-Identifier: LicenseRef-KubeSphere-Open-Source
header:
license:
spdx-id: LicenseRef-KubeSphere-Open-Source
copyright-year: '2025'
copyright-owner: KubeSphere Authors
content: |
Copyright [year] The [owner].
SPDX-License-Identifier: LicenseRef-KubeSphere-Open-Source
paths:
- "pkg"
- "staging"
- "tools"
paths-ignore:
- "LICENSE"
- "OWNERS"
- "go.sum"
comment: on-failure
license-location-threshold: 80
language:
Go:
extensions:
- ".go"
comment_style_id: DoubleSlash
================================================
FILE: CHANGELOG/CHANGELOG-3.3.1.md
================================================
- [v3.3.1](#v331)
- [DevOps](#devops)
- [Enhancements & Updates](#enhancements--updates)
- [Bug Fixes](#bug-fixes)
- [Network](#network)
- [Bug Fixes](#bug-fixes-1)
- [App Store](#app-store)
- [Bug Fixes](#bug-fixes-2)
- [Storage](#storage)
- [Bug Fixes](#bug-fixes-3)
- [Observability](#observability)
- [Bug Fixes](#bug-fixes-4)
- [Authentication & Authorization](#authentication--authorization)
- [Bug Fixes](#bug-fixes-5)
- [KubeEdge Integration](#kubeedge-integration)
- [Bug Fixes](#bug-fixes-6)
- [User Experience](#user-experience)
- [API Changes](#api-changes)
# v3.3.1
## DevOps
### Enhancements & Updates
- Add support for editing the kubeconfig binding mode on the pipeline UI.([console#3864](https://github.com/kubesphere/console/pull/3864), [@harrisonliu5](https://github.com/harrisonliu5))
### Bug Fixes
- Fix an issue where Jenkins updates are not synchronized in real time. ([ks-devops#837](https://github.com/kubesphere/ks-devops/pull/837), [@chilianyi](https://github.com/chilianyi))
- Fix the cron expression check failure of Jenkins. ([ks-devops#784](https://github.com/kubesphere/ks-devops/pull/784), [@LinuxSuRen](https://github.com/LinuxSuRen))
- Fix an issue where users fail to check the CI/CD template.([ks-devops-helm-chart#80](https://github.com/kubesphere-sigs/ks-devops-helm-chart/pull/80), [@chilianyi](https://github.com/chilianyi))
- Remove the `Deprecated` tag from the CI/CD template and replace `kubernetesDeploy` with `kubeconfig binding` at the deployment phase.([ks-devops-helm-chart#81](https://github.com/kubesphere-sigs/ks-devops-helm-chart/pull/81), [@chilianyi](https://github.com/chilianyi))
- Fix an issue where pipeline parameters are not updated in time.([console#3864](https://github.com/kubesphere/console/pull/3864), [@harrisonliu5](https://github.com/harrisonliu5))
## Network
### Bug Fixes
- Fix an issue where users fail to create routing rules in IPv6 and IPv4 dual-stack environments.([console#3604](https://github.com/kubesphere/console/pull/3604), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Update the OpenELB check URL. ([console#3550](https://github.com/kubesphere/console/pull/3550), [@harrisonliu5](https://github.com/harrisonliu5))
## App Store
### Bug Fixes
- Fix an issue where the HTTP cookie is empty while sending the traffic update policy request on the traffic monitor page of an application.([console#3836](https://github.com/kubesphere/console/pull/3836), [@mujinhuakai](https://github.com/mujinhuakai))
## Storage
### Bug Fixes
- Set `hostpath` as a required option when users are mounting volumes. ([console#3478](https://github.com/kubesphere/console/pull/3478), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Update storageClass-accessor, so that deleting storage resources no longer requires accessor validation.([kubesphere#5271](https://github.com/kubesphere/kubesphere/pull/5271),[@f10atin9](https://github.com/f10atin9))
## Observability
### Bug Fixes
- Fix inaccurate time unit of the monitoring metrics.([console#3557](https://github.com/kubesphere/console/pull/3557), [@iawia002](https://github.com/iawia002))
- Change the ratio of `ingress_request_duration_95percentage` to 0.95. ([kubesphere#5132](https://github.com/kubesphere/kubesphere/pull/5132), [@iawia002](https://github.com/iawia002))
## Authentication & Authorization
### Bug Fixes
- Add support for filtering workspace roles using the LabelSelector. ([kubesphere#5162](https://github.com/kubesphere/kubesphere/pull/5162), [@zhou1203](https://github.com/zhou1203))
- Add support for customizing or randomly setting an initial amdin password.([ks-install#2067](https://github.com/kubesphere/ks-installer/pull/2067),[@pixiake](https://github.com/pixiake))
- Delete annotations in `role-template-manage-users`, `role-template-view-members` and `role-template-manage-roles`.([ks-install#2062](https://github.com/kubesphere/ks-installer/pull/2062),[@zhou1203](https://github.com/zhou1203))
- Fix an issue where `cluster-admin` cannot view and manage the configmap, secret, and service account.([ks-install#2082](https://github.com/kubesphere/ks-installer/pull/2082),[@zhou1203](https://github.com/zhou1203))
- Delete role `workspace-manager`.([ks-install#2094](https://github.com/kubesphere/ks-installer/pull/2094),[@zhou1203](https://github.com/zhou1203))
- Add role `platform-self-provisioner`. ([ks-install#2095](https://github.com/kubesphere/ks-installer/pull/2095),[@zhou1203](https://github.com/zhou1203))
- Delete role `users-manager`. ([ks-install#2105](https://github.com/kubesphere/ks-installer/pull/2105),[@zhou1203](https://github.com/zhou1203))
- Block `role-template-manage-groups`. ([ks-install#2122](https://github.com/kubesphere/ks-installer/pull/2122),[@zhou1203](https://github.com/zhou1203))
## KubeEdge Integration
### Bug Fixes
- Change the cluster module key from `kubeedge` to `edgeruntime`.([console#3548](https://github.com/kubesphere/console/pull/3548), [@harrisonliu5](https://github.com/harrisonliu5))
## User Experience
- Optimize image building of KubeSphere and the console.([console#3610](https://github.com/kubesphere/console/pull/3610), [@zt1046656665](https://github.com/zt1046656665))
- Fix an issue where the key is not display in LoadBalancer. ([console#3503](https://github.com/kubesphere/console/pull/3503), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an issue where no prompt is displayed when users do not fill in key and value in the LoadBalancer access mode.([console#3499](https://github.com/kubesphere/console/pull/3499), [@weili520](https://github.com/weili520))
- Fix an issue where the update time of a service is incorrect on the detail page.([console#3803](https://github.com/kubesphere/console/pull/3803), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix inaccurate prompt when users are adding an init container.([console#3561](https://github.com/kubesphere/console/pull/3561), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix an issue where an error occurs while users enter Chinese characters in secret. ([console#3774](https://github.com/kubesphere/console/pull/3774), [@moweiwei](https://github.com/moweiwei))
- Add a prompt to remind users to select a language or artifact type when users are building images. ([console#3534](https://github.com/kubesphere/console/pull/3534), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an issue where the total number of pages is incorrectly displayed.([kubesphere#5201](https://github.com/kubesphere/kubesphere/pull/5201), [@yongxingMa](https://github.com/yongxingMa))
- Fix an issue where the update time of an application is incorrect. ([console#3541](https://github.com/kubesphere/console/pull/3541), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Add support for changing the number of items displayed on each page of a table.([console#3486](https://github.com/kubesphere/console/pull/3486), [@weili520](https://github.com/weili520))
- Add support for batch stopping workloads. ([console#3497](https://github.com/kubesphere/console/pull/3497), [@harrisonliu5](https://github.com/harrisonliu5))
- Add the creator annotation to ensure information displayed on the pod detail page is consistent with other details pages. ([console#3820](https://github.com/kubesphere/console/pull/3820), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix a 404 issue in Documentation. ([console#3484](https://github.com/kubesphere/console/pull/3433) [@PrajwalBorkar](https://github.com/PrajwalBorkar))
- Add support for displaying the revision record when the workload type is `statefulsets` or `daemonsets`.([console#3819](https://github.com/kubesphere/console/pull/3819), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Add a support page. ([console#3832](https://github.com/kubesphere/console/pull/3832), [@yazhouio](https://github.com/yazhouio))
- Fix an issue where the status of a cluster remains true when the cluster fails to join Federation. ([kubesphere#5137](https://github.com/kubesphere/kubesphere/pull/5137), [@x893675](https://github.com/x893675))
- Fix an issue where traffic allocation fails in the canary release mode. ([console#3542](https://github.com/kubesphere/console/pull/3542), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Add support for duplicate name validation of containers. ([console#3559](https://github.com/kubesphere/console/pull/3559), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Add support for duplicate name validation of service names. ([console#3696](https://github.com/kubesphere/console/pull/3696), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix an issue where configurations do not take effect when users set the pod request to 0.([console#3827](https://github.com/kubesphere/console/pull/3827), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an issue where canary release goes wrong when multiple operating systems are selected.([console#3479](https://github.com/kubesphere/console/pull/3479), [@zhaohuiweixiao](https://github.com/zhaohuiweixiao))
- Fix an issue where configmap configurations cannot be saved while users are creating a workload.([console#3416](https://github.com/kubesphere/console/pull/3416),[@weili520](https://github.com/weili520))
## API Changes
- Change the patch type of `PatchWorkspaceTemplate` from `MergePatchType` to `JSONPatchType`.([kubesphere#5217](https://github.com/kubesphere/kubesphere/pull/5217), [@zhou1203](https://github.com/zhou1203))
- Fix the "No Cluster Available" issue during log search. ([console#3555](https://github.com/kubesphere/console/pull/3555), [@harrisonliu5](https://github.com/harrisonliu5))
================================================
FILE: CHANGELOG/CHANGELOG-3.3.2.md
================================================
- [v3.3.2](#v332)
- [DevOps](#devops)
- [Enhancements \& Upgrades](#enhancements--upgrades)
- [Bug Fixes](#bug-fixes)
- [App Store](#app-store)
- [Bug Fixes](#bug-fixes-1)
- [Observability](#observability)
- [Bug Fixes](#bug-fixes-2)
- [Service Mesh](#service-mesh)
- [Bug Fixes](#bug-fixes-3)
- [NetWork](#network)
- [Enhancements \& Upgrades](#enhancements--upgrades-1)
- [Storage](#storage)
- [Enhancements \& Upgrades](#enhancements--upgrades-2)
- [Bug Fixes](#bug-fixes-4)
- [Authentication \& Authorization](#authentication--authorization)
- [Enhancements \& Upgrades](#enhancements--upgrades-3)
- [Bug Fixes](#bug-fixes-5)
- [Development \& Testing](#development--testing)
- [Bug Fixes](#bug-fixes-6)
- [User Experience](#user-experience)
# v3.3.2
## DevOps
### Enhancements & Upgrades
- Add the latest GitHub Actions. ([ks-devops#879](https://github.com/kubesphere/ks-devops/pull/879), [@pixiake](https://github.com/pixiake))
- Save the PipelineRun results to the configmap. ([ks-devops#855](https://github.com/kubesphere/ks-devops/pull/855), [@LinuxSuRen](https://github.com/LinuxSuRen)), ([ks-devops#887](https://github.com/kubesphere/ks-devops/pull/887), [@yudong2015](https://github.com/yudong2015)), ([ks-devops-helm-chart#83](https://github.com/kubesphere-sigs/ks-devops-helm-chart/pull/83), [@chilianyi](https://github.com/chilianyi))
- Modify the Chinese description of the status of ArgoCD applications. ([console#4011](https://github.com/kubesphere/console/pull/4011), [@Bettygogo2021](https://github.com/Bettygogo2021))
- Add more information to continuous deployment parameters.([console#4074](https://github.com/kubesphere/console/pull/4074), [@yazhouio](https://github.com/yazhouio))
- Add a link for PipelineRun in the aborted state.([console#4029](https://github.com/kubesphere/console/pull/4029), [@yazhouio](https://github.com/yazhouio))
- Add an ID column for PipelineRun, and the ID will be displayed when users run kubectl commands. ([ks-devops#896](https://github.com/kubesphere/ks-devops/pull/896), [@yudong2015](https://github.com/yudong2015))
- Remove the queued state from pipelinerun. ([ks-devops#860](https://github.com/kubesphere/ks-devops/pull/860), [@chilianyi](https://github.com/chilianyi))
### Bug Fixes
- Fix an issue where webhook configurations are missing after users change and save pipeline configurations.([ks-devops#888](https://github.com/kubesphere/ks-devops/pull/888), [@yudong2015](https://github.com/yudong2015))
- Fix an issue where downloading DevOps pipeline artifacts fails. ([console#4036](https://github.com/kubesphere/console/pull/4036), [@yazhouio](https://github.com/yazhouio))
- Fix an issue where the image address does not match when a service is created by using a JAR/WAR file. ([console#4085](https://github.com/kubesphere/console/pull/4085), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an issue where the status of PipelineRun changes from `Cancelled` to `Not running`. ([ks-devops#896](https://github.com/kubesphere/ks-devops/pull/896), [@yudong2015](https://github.com/yudong2015))
- Fix the automatic cleaning behavior of pipelines, and keep it consistent with the cleaning configuration of Jenkins. ([ks#270](https://github.com/kubesphere-sigs/ks/pull/270), [@yudong2015](https://github.com/yudong2015))
## App Store
### Bug Fixes
- Fix an issue where the application icon is not displayed on the uploaded application template.([kubesphere#5467](https://github.com/kubesphere/kubesphere/pull/5467),[@liangzai006](https://github.com/liangzai006))
- Fix an issue where the homepage of an application is not displayed on the application information page.([kubesphere#5425](https://github.com/kubesphere/kubesphere/pull/5425),[@liangzai006](https://github.com/liangzai006))
- Fix an issue where importing built-in applications fails.([openpitrix-jobs#29](https://github.com/kubesphere/openpitrix-jobs/pull/29),[@liangzai006](https://github.com/liangzai006))
- Fix a UUID generation error in an IPv6-only environment.([kubesphere#5419](https://github.com/kubesphere/kubesphere/pull/5419),[@isyes](https://github.com/isyes))
## Observability
### Bug Fixes
- Fix a parsing error in the config file of logsidecar-injector. ([ks-installer#2154](https://github.com/kubesphere/ks-installer/pull/2154), @junotx),([logsidecar-injector#6](https://github.com/kubesphere/logsidecar-injector/pull/6), @junotx)
## Service Mesh
### Bug Fixes
- Fix an issue that application governance of Bookinfo projects without service mesh enabled is not disabled by default. ([kubesphere#4037](https://github.com/kubesphere/console/pull/4037))
- Fix an issue where the delete button is missing on the blue-green deployment details page. ([kubesphere#4031](https://github.com/kubesphere/console/pull/4031))
## NetWork
### Enhancements & Upgrades
- Restrict network isolation of projects within the current workspace. ([kubesphere#4019](https://github.com/kubesphere/console/pull/4019))
## Storage
### Enhancements & Upgrades
- Display the cluster to which system-workspace belongs in multi-cluster environments. ([kubesphere#4077](https://github.com/kubesphere/console/pull/4077))
- Rename route to ingress. ([klubesphere#4018](https://github.com/kubesphere/console/issues/4018))
### Bug Fixes
- Fix a storage class error of PVCs on the page for editing federated projects. ([kubesphere#4045](https://github.com/kubesphere/console/pull/4045))
## Authentication & Authorization
### Enhancements & Upgrades
- Add dynamic options for cache. ([kubesphere#5325](https://github.com/kubesphere/kubesphere/pull/5325),[@zhou1203](https://github.com/zhou1203))
- Remove the "Alerting Message Management" permission. ([kubesphere#2150](https://github.com/kubesphere/ks-installer/pull/2150))
### Bug Fixes
- Fix an issue where platform roles with platform management permisions cannot manage clusters. ([kubesphere#5334](https://github.com/kubesphere/kubesphere/pull/5334),[@zhou1203](https://github.com/zhou1203))
## Development & Testing
### Bug Fixes
- Fix an issue where some data is in the `Out of sync` state after the live-reload feature is introduced.([kubesphere#5422](https://github.com/kubesphere/kubesphere/pull/5422),[@hongzhouzi](https://github.com/hongzhouzi))
- Fix an issue where the ks-apiserver fails when it is reloaded multiple times.([kubesphere#5457](https://github.com/kubesphere/kubesphere/pull/5457),[@hongzhouzi](https://github.com/hongzhouzi))
- Fix an issue where caching resources fails if some required CRDs are missing.([kubesphere#5408](https://github.com/kubesphere/kubesphere/pull/5408),[@wansir](https://github.com/wansir)),([kubesphere#5466](https://github.com/kubesphere/kubesphere/pull/5466),[@hongzhouzi](https://github.com/hongzhouzi))
- Fix an ks-apiserver panic error.([kubesphere#5428](https://github.com/kubesphere/kubesphere/pull/5428),[@smartcat999](https://github.com/smartcat999))
- Fix an issue where Goroutine leaks occur when the audit event sender times out. ([kubesphere#5342](https://github.com/kubesphere/kubesphere/pull/5342),[@hzhhong](https://github.com/hzhhong))
## User Experience
- Limit the length of cluster names. ([kubesphere#4059](https://github.com/kubesphere/console/pull/4059))
- Fix an issue where pod replicas of a federated service are not automatically refreshed. ([kubesphere#4066](https://github.com/kubesphere/console/pull/4066))
- Fix an issue where related pods are not deleted after users delete a service. ([kubesphere#4021](https://github.com/kubesphere/console/pull/4021))
- Fix an issue where the number of nodes and roles are incorrectly displayed when there is only one node. ([kubesphere#4032](https://github.com/kubesphere/console/pull/4032))
================================================
FILE: CHANGELOG/CHANGELOG-3.3.md
================================================
- [v3.3.0](#v330)
- [DevOps](#devops)
- [Network](#network)
- [App Store](#app-store)
- [Multi-tenancy & Multi-cluster](#multi-tenancy--multi-cluster)
- [Observability](#observability)
- [Authentication & Authorization](#authentication--authorization)
- [Storage](#storage)
- [Service Mesh](#service-mesh)
- [KubeEdge Integration](#kubeedge-integration)
- [Development & Testing](#development--testing)
- [User Experience](#user-experience)
- [API Changes](#api-changes)
# v3.3.0
## DevOps
### Features
- Add the Continuous Deployment feature, which supports GitOps and uses Argo CD as the backend. ([ks-devops#466](https://github.com/kubesphere/ks-devops/pull/466), [@LinuxSuRen](https://github.com/LinuxSuRen), [console#2990]( https://github.com/kubesphere/console/pull/2990),[@harrisonliu5](https://github.com/harrisonliu5))
- Add a webhook for processing pipeline events. ([ks-devops#442](https://github.com/kubesphere/ks-devops/pull/442), [@JohnNiang](https://github.com/JohnNiang))
- Add support for verifying SCM tokens directly instead of calling a Jenkins API. ([ks-devops#439](https://github.com/kubesphere/ks-devops/pull/439), [@LinuxSuRen](https://github.com/LinuxSuRen))
- Optimize pipeline templates loaded from APIs. ([ks-devops#453](https://github.com/kubesphere/ks-devops/pull/453), [@JohnNiang](https://github.com/JohnNiang), [console#2963](https://github.com/kubesphere/console/pull/2963), [@harrisonliu5](https://github.com/harrisonliu5))
- Add the allowlist feature on the **Basic Information** page of a DevOps project. ([console#3224](https://github.com/kubesphere/console/pull/3224), [@harrisonliu5](https://github.com/harrisonliu5))
- Add the **Events** tab on the pipeline run record page. ([console#3012](https://github.com/kubesphere/console/pull/3012), [@harrisonliu5](https://github.com/harrisonliu5))
- Prevent passing tokens directly to the DevOps SCM verification API to avoid security vulnerabilities. Instead, only secret names are passed to the API. ([console#2943](https://github.com/kubesphere/console/pull/2943), [@mangoGoForward](https://github.com/mangoGoForward))
- Add a message indicating that the S2I and B2I features currently do not support the containerd runtime. ([console#2734](https://github.com/kubesphere/console/pull/2734), [@weili520](https://github.com/weili520))
- Fix an issue in the **Import Code Repository** dialog box, where repositories and organizations are not completely displayed. ([console#3222](https://github.com/kubesphere/console/pull/3222), [@harrisonliu5](https://github.com/harrisonliu5))
## Network
### Enhancements & Updates
- Integrate OpenELB with KubeSphere for exposing LoadBalancer services. ([console#2993](https://github.com/kubesphere/console/pull/2993), [@weili520](https://github.com/weili520))
### Bug Fixes
- Fix an issue where the gateway of a project is not deleted after the project is deleted. ([kubesphere#4626](https://github.com/kubesphere/kubesphere/pull/4626), [@RolandMa1986](https://github.com/RolandMa1986))
- Fix an issue during gateway log query, where the log query connection is not terminated after the query is complete. ([kubesphere#4927](https://github.com/kubesphere/kubesphere/pull/4927), [@qingwave](https://github.com/qingwave))
## App Store
### Bug Fixes
- Fix a ks-controller-manager crash caused by Helm controller NPE errors. ([kubesphere#4602](https://github.com/kubesphere/kubesphere/pull/4602), [@chaunceyjiang](https://github.com/chaunceyjiang))
## Multi-tenancy & Multi-cluster
### Features
- Add a notification to remind users when the kubeconfig certificate of a cluster is about to expire. ([console#3038](https://github.com/kubesphere/console/pull/3038), [@harrisonliu5](https://github.com/harrisonliu5), [kubesphere#4584](https://github.com/kubesphere/kubesphere/pull/4584), [@iawia002](https://github.com/iawia002))
- Add the kubesphere-config configmap, which provides the name of the current cluster. ([kubesphere#4679](https://github.com/kubesphere/kubesphere/pull/4679), [@iawia002](https://github.com/iawia002))
- Add an API for updating cluster kubeconfig information. ([kubesphere#4562](https://github.com/kubesphere/kubesphere/pull/4562), [@iawia002](https://github.com/iawia002))
- Add the cluster member management and cluster role management features. ([console#3061](https://github.com/kubesphere/console/pull/3061), [@harrisonliu5](https://github.com/harrisonliu5))
## Observability
### Enhancements & Upgrades
- Add process and thread monitoring metrics for containers. ([kubesphere#4711](https://github.com/kubesphere/kubesphere/pull/4711), [@junotx](https://github.com/junotx))
- Add disk monitoring metrics that provide usage of each disk. ([kubesphere#4705](https://github.com/kubesphere/kubesphere/pull/4705), [@junotx](https://github.com/junotx))
- Change metric query statements to match Prometheus component upgrades. ([kubesphere#4621](https://github.com/kubesphere/kubesphere/pull/4621), [@junotx](https://github.com/junotx))
- Add support for importing Grafana templates to create custom monitoring dashboards of a namespace scope. ([kubeshere#4446](https://github.com/kubesphere/kubesphere/pull/4446), [@zhu733756](https://github.com/zhu733756), [console#3202](https://github.com/kubesphere/console/pull/3202) [@weili520](https://github.com/weili520))
- Add support for defining separate data retention periods for container logs, resource events, and audit logs. ([ks-installer#1915](https://github.com/kubesphere/ks-installer/pull/1915), [@wenchajun](https://github.com/wenchajun))
- Upgrade Alertmanager from v0.21.0 to v0.23.0.
- Upgrade Grafana from v7.4.3 to v8.3.3.
- Upgrade kube-state-metrics from v1.9.7 to v2.3.0.
- Upgrade node-exporter from v0.18.1 to v1.3.1.
- Upgrade Prometheus from v2.26.0 to v2.34.0.
- Upgrade Prometheus Operator from v0.43.2 to v0.55.1.
- Upgrade kube-rbac-proxy from v0.8.0 to v0.11.0.
- Upgrade configmap-reload from v0.3.0 to v0.5.0.
- Upgrade Thanos from v0.18.0 to v0.25.2.
- Upgrade kube-events from v0.3.0 to v0.4.0.
- Upgrade Fluent Bit Operator from v0.11.0 to v0.13.0.
- Upgrade Fluent Bit from v1.8.3 to v1.8.11.
## Authentication & Authorization
### Features
- Add support for manually disabling and enabling users. ([kubesphere#4695](https://github.com/kubesphere/kubesphere/pull/4695), [@wansir](https://github.com/wansir), [console#3014](https://github.com/kubesphere/console/pull/3014), [@harrisonliu5](https://github.com/harrisonliu5))
## Storage
### Features
- Add the PVC auto expansion feature, which automatically expands PVCs when remaining capacity is insufficient. ([kubesphere#4660](https://github.com/kubesphere/kubesphere/pull/4660), [@f10atin9](https://github.com/f10atin9).[console#3056](https://github.com/kubesphere/console/pull/3056), [@weili520](https://github.com/weili520))
- Add the volume snapshot content management and volume snapshot class management features. ([kubesphere#4596](https://github.com/kubesphere/kubesphere/pull/4596), [@f10atin9](https://github.com/f10atin9), [console#2958](https://github.com/kubesphere/console/pull/2958), [@weili520](https://github.com/weili520), [console#3051](https://github.com/kubesphere/console/pull/3051), [@weili520](https://github.com/weili520))
- Allow users to set authorization rules for storage classes so that storage classes can be used only in specific projects. ([kubesphere#4770](https://github.com/kubesphere/kubesphere/pull/4770), [@f10atin9](https://github.com/f10atin9), [console#3069](https://github.com/kubesphere/console/pull/3069), [@weili520](https://github.com/weili520))
- Provide usage data of each disk. ([console#3063](https://github.com/kubesphere/console/pull/3063), [@harrisonliu5](https://github.com/harrisonliu5))
## Service Mesh
### Bug Fixes
- Resolve port conflicts of virtual services that use multiple protocols. ([kubesphere#4560](https://github.com/kubesphere/kubesphere/pull/4560), [@RolandMa1986](https://github.com/RolandMa1986))
## KubeEdge Integration
### Features
- Add support for logging in to common cluster nodes and edge nodes from the KubeSphere web console. ([kubesphere#4579](https://github.com/kubesphere/kubesphere/pull/4579), [@lynxcat](https://github.com/lynxcat), [console#2888](https://github.com/kubesphere/console/pull/2888), [@lynxcat](https://github.com/lynxcat))
### Enhancements & Upgrades
- Upgrade KubeEdge from v1.7.2 to v1.9.2.
- Remove EdgeWatcher as KubeEdge v1.9.2 provides similar functions.
## Development & Testing
### Features
- Add the --controllers flag to ks-controller-manager, which allows users to select controllers to be enabled for resource usage reduction during debugging. ([kubesphere#4512](https://github.com/kubesphere/kubesphere/pull/4512), [@live77](https://github.com/live77))
- Prevent ks-apiserver and ks-controller-manager from restarting when the cluster configuration is changed. ([kubesphere#4659](https://github.com/kubesphere/kubesphere/pull/4659), [@x893675](https://github.com/x893675))
- Add an agent to report additional information about ks-apiserver and controller-manager in debugging mode. ([kubesphere#4928](https://github.com/kubesphere/kubesphere/pull/4928), [@xyz-li](https://github.com/xyz-li))
## User Experience
- Add support for more languages on the KubeSphere web console. ([console#2782](https://github.com/kubesphere/console/pull/2782), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Add the lifecycle management feature for containers. ([console#2940](https://github.com/kubesphere/console/pull/2940), [@harrisonliu5](https://github.com/harrisonliu5))
- Add support for creating container environment variables in batches from secrets and configmaps. ([console#3044](https://github.com/kubesphere/console/pull/3044), [@weili520](https://github.com/weili520))
- Add a message in the **Audit Log Search** dialog box, which prompts users to enable the audit logs feature. ([console#3062](https://github.com/kubesphere/console/pull/3062), [@harrisonliu5](https://github.com/harrisonliu5))
- Add data units in the **Create Storage Class** dialog box. ([console#3200](https://github.com/kubesphere/console/pull/3200), [@weili520](https://github.com/weili520))
- Add the cluster viewing permission to a user when the user adds a cluster. ([console#3296](https://github.com/kubesphere/console/pull/3296), [@harrisonliu5](https://github.com/harrisonliu5))
- Optimize the service details area on the **Service Topology** page. ([console#2945](https://github.com/kubesphere/console/pull/2945), [@tracer1023](https://github.com/tracer1023))
- Prevent passwords without uppercase letters set through the backend CLI. ([kubesphere#4481](https://github.com/kubesphere/kubesphere/pull/4481), [@live77](https://github.com/live77))
- Fix an issue where statefulset creation fails when a volume is mounted to an init container. ([console#2730](https://github.com/kubesphere/console/pull/2730), [@weili520](https://github.com/weili520))
- Fix an app installation failure, which occurs when users click buttons too fast. ([console#2735](https://github.com/kubesphere/console/pull/2735), [@weili520](https://github.com/weili520))
- Change the abbreviation of "ReadOnlyMany" from "ROM" to "ROX". ([console#2751](https://github.com/kubesphere/console/pull/2751), [@123liubao](https://github.com/123liubao))
- Fix an incorrect message displayed during workload creation, which indicates that resource requests have exceeded limits. ([console#2809](https://github.com/kubesphere/console/pull/2809) , [@weili520](https://github.com/weili520))
- Fix an issue where no data is displayed on the **Traffic Management** and **Tracing** tab pages in a multi-cluster project. ([console#3195](https://github.com/kubesphere/console/pull/3195), [@harrisonliu5](https://github.com/harrisonliu5))
- Set the **Token** parameter on the webhook settings page as mandatory. ([console#2903](https://github.com/kubesphere/console/pull/2903), [@xuliwenwenwen](https://github.com/xuliwenwenwen))
- Improve user experience on the web console of member clusters. ([kubesphere#4721](https://github.com/kubesphere/kubesphere/pull/4721), [@iawia002](https://github.com/iawia002), [console#3031](https://github.com/kubesphere/console/pull/3031), [@weili520](https://github.com/weili520))
- Optimize the UI text of cluster, workspace, and project deletion. ([console#3004](https://github.com/kubesphere/console/pull/3004), [@weili520](https://github.com/weili520))
- Fix an issue where data in the service details area on the **Service Topology** page is not updated automatically. ([console#3117](https://github.com/kubesphere/console/pull/3117),[@weili520](https://github.com/weili520))
- Fix an issue where existing settings are not displayed when a stateful service is edited. ([console#2845](https://github.com/kubesphere/console/pull/2845), [@weili520](https://github.com/weili520))
- Add a time range selector on the **Traffic Monitoring** tab page. ([console#2916]( https://github.com/kubesphere/console/pull/2916), [@weili520](https://github.com/weili520))
- Optimize the **Service Type** and **External Access** columns of the service list. ([console#3058](https://github.com/kubesphere/console/pull/3058),[@weili520](https://github.com/weili520))
- Fix an issue where container probes are still displayed after they are deleted. ([console#3213](https://github.com/kubesphere/console/pull/3213), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix incorrect container names in the service details area on the **Service Topology** page. ([console#3276](https://github.com/kubesphere/console/pull/3276), [@weili520](https://github.com/weili520))
- Fix the incorrect number of worker nodes on the **Cluster Nodes** page. ([console#3279](https://github.com/kubesphere/console/pull/3279), [@weili520](https://github.com/weili520))
- Fix a workspace API error caused by an incorrect cluster role. ([console#3297](https://github.com/kubesphere/console/pull/3297), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix an incorrect error message displayed when kubeconfig is updated for a second time. ([console#3392](https://github.com/kubesphere/console/pull/3392), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix goroutine leaks that occur when a container terminal is opened. ([kubesphere#4918](https://github.com/kubesphere/kubesphere/pull/4918), [@anhoder](https://github.com/anhoder))
- Fix unexpected ks-apiserver panic caused by an index out of range error of metrics API calling. ([kubesphere#4691](https://github.com/kubesphere/kubesphere/pull/4691), [@larryliuqing](https://github.com/larryliuqing))
- Fix an ks-apiserver crash caused by resource discovery failure. ([kubesphere#4835](https://github.com/kubesphere/kubesphere/pull/4835), [@wansir](https://github.com/wansir))
- Fix an incorrect private key type in kubeconfig information. ([kubesphere#4936](https://github.com/kubesphere/kubesphere/pull/4936), [@xyz-li](https://github.com/xyz-li))
- Improve the registry verification API to resolve registry verification failures. ([kubesphere#4678](https://github.com/kubesphere/kubesphere/pull/4678), [@wansir](https://github.com/wansir))
## API Changes
- Expose kube-apiserver of the host cluster as a LoadBalancer service for member clusters to access. ([kubesphere#4528](https://github.com/kubesphere/kubesphere/pull/4528), [@lxm](https://github.com/lxm))
- Provide RESTful APIs for ClusterTemplate. ([ks-devops#468](https://github.com/kubesphere/ks-devops/pull/468), [@JohnNiang](https://github.com/JohnNiang))
- Provide template-related APIs. ([ks-devops#460](https://github.com/kubesphere/ks-devops/pull/460), [@JohnNiang](https://github.com/JohnNiang))
- Change the KubeEdge proxy service to `http://edgeservice.kubeedge.svc/api/`. ([kubesphere#4478](https://github.com/kubesphere/kubesphere/pull/4478), [@zhu733756](https://github.com/zhu733756))
================================================
FILE: CHANGELOG/CHANGELOG-3.4.0.md
================================================
- [v3.4.0](#v340)
- [DevOps](#devops)
- [Enhancements \& Updates](#enhancements--updates)
- [Bug Fixes](#bug-fixes)
- [Storage](#storage)
- [Bug Fixes](#bug-fixes-1)
- [Gateway and Microservice](#gateway-and-microservice)
- [Features](#features)
- [Enhancements \& Updates](#enhancements--updates-1)
- [Bug Fixes](#bug-fixes-2)
- [Observability](#observability)
- [Features](#features-1)
- [Enhancements \& Updates](#enhancements--updates-2)
- [Bug Fixes](#bug-fixes-3)
- [Multi-tenancy and Multi-cluster](#multi-tenancy-and-multi-cluster)
- [Enhancements \& Updates](#enhancements--updates-3)
- [Bug Fixes](#bug-fixes-4)
- [App Store](#app-store)
- [Bug Fixes](#bug-fixes-5)
- [Network](#network)
- [Enhancements \& Updates](#enhancements--updates-4)
- [Authentication and Authorization](#authentication-and-authorization)
- [Features](#features-2)
- [Enhancements \& Updates](#enhancements--updates-5)
- [Bug Fixes](#bug-fixes-6)
- [API Changes](#api-changes)
- [User Experience](#user-experience)
- [Features](#features-3)
- [Bug Fixes](#bug-fixes-7)
- [Enhancements \& Updates](#enhancements--updates-6)
# v3.4.0
## DevOps
### Enhancements & Updates
- Support user-defined pipeline configuration steps.
([ks-devops#768](https://github.com/kubesphere/ks-devops/pull/768), [@LinuxSuRen](https://github.com/LinuxSuRen))
- Optimize the devops-jenkins JVM memory configuration.
([ks-installer#2206](https://github.com/kubesphere/ks-installer/pull/2206), [@yudong2015](https://github.com/yudong2015))
### Bug Fixes
- Fix the issue of removing ArgoCD resources without cascade parameters. ([ks-devops#949](https://github.com/kubesphere/ks-devops/pull/949), [@chilianyi](https://github.com/chilianyi))
- Fix the issue that downloading artifacts for multi-branch pipelines fails.
([ks-devops#969](https://github.com/kubesphere/ks-devops/pull/969), [@littlejiancc](https://github.com/littlejiancc))
- Fix the issue that the pipeline running status is inconsistent with Jenkins (Add retry for pipelinerun annotation update).
([ks-devops#907](https://github.com/kubesphere/ks-devops/pull/907), [@yudong2015](https://github.com/yudong2015))
- Fix the issue that the running of a pipeline created by a new user is pending.
([ks-devops#936](https://github.com/kubesphere/ks-devops/pull/936), [@yudong2015](https://github.com/yudong2015))
## Storage
### Bug Fixes
- Fix the issue that pvc cannot be deleted.
([kubesphere#5271](https://github.com/kubesphere/kubesphere/pull/5271), [@f10atin9](https://github.com/f10atin9))
## Gateway and Microservice
### Features
- Gateway supports the configuration of forwarding TCP/UDP traffic.([kubesphere#5445](https://github.com/kubesphere/kubesphere/pull/5445), [@hongzhouzi](https://github.com/hongzhouzi))
### Enhancements & Updates
- Upgrade ingress nginx: v1.1.0 -> v1.3.1.
([kubesphere#5490](https://github.com/kubesphere/kubesphere/pull/5490), [@hongzhouzi](https://github.com/hongzhouzi))
- Upgrade servicemesh:
istio: 1.11.1 -> 1.14.6; kiali: v1.38.1 -> v1.50.1; jaeger: 1.27 -> 1.29.([kubesphere#5792](https://github.com/kubesphere/kubesphere/pull/5792), [@hongzhouzi](https://github.com/hongzhouzi))
### Bug Fixes
- Fix the issue that the returned cluster gateways duplicate. ([kubesphere#5582](https://github.com/kubesphere/kubesphere/pull/5582), [@hongzhouzi](https://github.com/hongzhouzi))
- Fix the verification error when upgrading the gateway.
([kubesphere#5232](https://github.com/kubesphere/kubesphere/pull/5232), [@hongzhouzi](https://github.com/hongzhouzi))
- Fix the abnormal display of cluster gateway log and resource status after changing gateway namespace configuration.
([kubesphere#5248](https://github.com/kubesphere/kubesphere/pull/5248), [@hongzhouzi](https://github.com/hongzhouzi))
## Observability
### Features
- Add CRDs such as RuleGroup, ClusterRuleGroup, GlobalRuleGroup to support Alerting v2beta1 APIs.
([kubesphere#5064](https://github.com/kubesphere/kubesphere/pull/5064), [@junotx](https://github.com/junotx))
- Add admission webhook for RuleGroup, ClusterRuleGroup, GlobalRuleGroup.
([kubesphere#5071](https://github.com/kubesphere/kubesphere/pull/5071), [@junotx](https://github.com/junotx))
- Add controllers to sync RuleGroup, ClusterRuleGroup, GlobalRuleGroup resources to PrometheusRule resources.
([kubesphere#5081](https://github.com/kubesphere/kubesphere/pull/5081), [@junotx](https://github.com/junotx))
- Add Alerting v2beta1 APIs.
([kubesphere#5115](https://github.com/kubesphere/kubesphere/pull/5115), [@junotx](https://github.com/junotx))
- The ks-apiserver of Kubesphere integrates the v1 and v2 versions of opensearch, and users can use the external or built-in opensearch cluster for log storage and query. (Currently the built-in opensearch version of Kubesphere is v2).
([kubesphere#5044](https://github.com/kubesphere/kubesphere/pull/5044), [@wenchajun](https://github.com/wenchajun))
- ks-installer integrates the opensearch dashboard, which should be enabled by users.
([ks-installer#2197](https://github.com/kubesphere/ks-installer/pull/2197), [@wenchajun](https://github.com/wenchajun))
### Enhancements & Updates
- Upgrade Prometheus stack dependencies.
([kubesphere#5520](https://github.com/kubesphere/kubesphere/pull/5520), [@junotx](https://github.com/junotx))
- Support configuring the maximum number of logs that can be exported. ([kubesphere#5794](https://github.com/kubesphere/kubesphere/pull/5794), [@wansir](https://github.com/wansir))
- The monitoring component supports Kubernetes PDB Apiversion changes. ([ks-installer#2190](https://github.com/kubesphere/ks-installer/pull/2190), [@frezes](https://github.com/frezes))
- Upgrade Notification Manager to v2.3.0.
([kubesphere#5030](https://github.com/kubesphere/kubesphere/pull/5030), [@wanjunlei](https://github.com/wanjunlei))
- Support cleaning up notification configuration in member clusters when a member cluster is deleted.
([kubesphere#5077](https://github.com/kubesphere/kubesphere/pull/5077), [@wanjunlei](https://github.com/wanjunlei))
- Support switching notification languages.
([kubesphere#5088](https://github.com/kubesphere/kubesphere/pull/5088), [@wanjunlei](https://github.com/wanjunlei))
- Support route notifications to specified users.
([kubesphere#5206](https://github.com/kubesphere/kubesphere/pull/5206), [@wanjunlei](https://github.com/wanjunlei))
### Bug Fixes
- Fix the issue that Goroutine leaks when getting audit event sender times out. ([kubesphere#5342](https://github.com/kubesphere/kubesphere/pull/5342), [@hzhhong](https://github.com/hzhhong))
- Fix the promql statement of ingress P95 delay.
([kubesphere#5119](https://github.com/kubesphere/kubesphere/pull/5119), [@iawia002](https://github.com/iawia002))
## Multi-tenancy and Multi-cluster
### Enhancements & Updates
- Check the cluster ID (kube-system UID) when updating the cluster. ([kubesphere#5299](https://github.com/kubesphere/kubesphere/pull/5299), [@yzxiu](https://github.com/yzxiu))
### Bug Fixes
- Make sure the cluster is Ready when cleaning up notifications.([kubesphere#5392](https://github.com/kubesphere/kubesphere/pull/5392), [@iawia002](https://github.com/iawia002))
- Fix the webhook validation issue for new clusters.
([kubesphere#5802](https://github.com/kubesphere/kubesphere/pull/5802), [@iawia002](https://github.com/iawia002))
- Fix the incorrect cluster status.
([kubesphere#5130](https://github.com/kubesphere/kubesphere/pull/5130), [@x893675](https://github.com/x893675))
- Fix the issue of potentially duplicated entries for granted clusters in the workspace.
([kubesphere#5795](https://github.com/kubesphere/kubesphere/pull/5795), [@wansir](https://github.com/wansir))
## App Store
### Bug Fixes
- Fix the ID generation failure in IPv6-only environment.
([kubesphere#5419](https://github.com/kubesphere/kubesphere/pull/5419), [@isyes](https://github.com/isyes))
- Fix the missing Home field in app templates.
([kubesphere#5425](https://github.com/kubesphere/kubesphere/pull/5425), [@liangzai006](https://github.com/liangzai006))
- Fix the issue that the uploaded app templates do not show icons. ([kubesphere#5467](https://github.com/kubesphere/kubesphere/pull/5467), [@liangzai006](https://github.com/liangzai006))
- Fix missing maintainers in Helm apps.
([kubesphere#5401](https://github.com/kubesphere/kubesphere/pull/5401), [@qingwave](https://github.com/qingwave))
- Fix the issue that Helm applications in a failed status cannot be upgraded again.
([kubesphere#5543](https://github.com/kubesphere/kubesphere/pull/5543), [@sekfung](https://github.com/sekfung))
- Fix the wrong "applicationId" parameter.
([kubesphere#5666](https://github.com/kubesphere/kubesphere/pull/5666), [@sologgfun](https://github.com/sologgfun))
- Fix the infinite loop after app installation failure.
([kubesphere#5793](https://github.com/kubesphere/kubesphere/pull/5793), [@wansir](https://github.com/wansir))
- FIx the wrong status of application repository.
([kubesphere#5152](https://github.com/kubesphere/kubesphere/pull/5152), [@x893675](https://github.com/x893675))
## Network
### Enhancements & Updates
- Upgrade dependencies. ([kubesphere#5557](https://github.com/kubesphere/kubesphere/pull/5557), [@renyunkang](https://github.com/renyunkang))
## Authentication and Authorization
### Features
- Add inmemory cache. ([kubesphere#4894](https://github.com/kubesphere/kubesphere/pull/4894), [@zhou1203](https://github.com/zhou1203))
- Add Resource Getter v1beta1. ([kubesphere#5416](https://github.com/kubesphere/kubesphere/pull/5416), [@zhou1203](https://github.com/zhou1203))
- Add write operation for Resource Manager. ([kubesphere#5601](https://github.com/kubesphere/kubesphere/pull/5601), [@zhou1203](https://github.com/zhou1203))
### Enhancements & Updates
- Add iam.kubesphere/v1beta1 RoleTemplate. ([kubesphere#5080](https://github.com/kubesphere/kubesphere/pull/5080), [@zhou1203](https://github.com/zhou1203))
- Update the password minimum length to 8. ([kubesphere#5516](https://github.com/kubesphere/kubesphere/pull/5516), [@zhou1203](https://github.com/zhou1203))
- Update Version API. ([kubesphere#5542](https://github.com/kubesphere/kubesphere/pull/5542), [@zhou1203](https://github.com/zhou1203))
- Update identityProvider API.
([kubesphere#5534](https://github.com/kubesphere/kubesphere/pull/5534), [@zhou1203](https://github.com/zhou1203))
- Add IAM v1beta1 APIs.
([kubesphere#5502](https://github.com/kubesphere/kubesphere/pull/5502), [@zhou1203](https://github.com/zhou1203))
### Bug Fixes
- Fix the issue that the enableMultiLogin configuration does not take effect. ([kubesphere#5819](https://github.com/kubesphere/kubesphere/pull/5819), [@wansir](https://github.com/wansir))
## API Changes
- Use autoscaling/v2 API. ([kubesphere#5833](https://github.com/kubesphere/kubesphere/pull/5833), [@LQBing](https://github.com/LQBing))
- Use batch/v1 API. ([kubesphere#5562](https://github.com/kubesphere/kubesphere/pull/5562), [@wansir](https://github.com/wansir))
- Update health check API. ([kubesphere#5496](https://github.com/kubesphere/kubesphere/pull/5496), [@smartcat99](https://github.com/smartcat99))
- Fix the ks-apiserver crash issue in K8s v1.25. ([kubesphere#5428](https://github.com/kubesphere/kubesphere/pull/5428), [@smartcat999](https://github.com/smartcat999))
## User Experience
### Features
- Resource API supports searching alias in annotations. ([kubesphere#5807](https://github.com/kubesphere/kubesphere/pull/5807), [@iawia002](https://github.com/iawia002))
### Bug Fixes
- Fix the potential Websocket link leakage issue. ([kubesphere#5024](https://github.com/kubesphere/kubesphere/pull/5024), [@lixd](https://github.com/lixd))
### Enhancements & Updates
- Use Helm action package instead of using Helm binary. ([kubesphere#4852](https://github.com/kubesphere/kubesphere/pull/4852), [@nioshield](https://github.com/nioshield))
- Adjust the priority of bash and sh in the kubectl terminal.([kubesphere#5075](https://github.com/kubesphere/kubesphere/pull/5075), [@tal66](https://github.com/tal66))
- Fix the issue that ks-apiserver cannot start due to DiscoveryAPI exception. ([kubesphere#5408](https://github.com/kubesphere/kubesphere/pull/5408), [@wansir](https://github.com/wansir))
- Fix the issue that the pod status is inconsistent with the filtered status when filtering by status on the pod list page. ([kubesphere#5483](https://github.com/kubesphere/kubesphere/pull/5483), [@frezes](https://github.com/frezes))
- Support querying the secret list according to the secret type by supporting fieldSelector filtering. ([kubesphere#5300](https://github.com/kubesphere/kubesphere/pull/5300), [@nuclearwu](https://github.com/nuclearwu))
================================================
FILE: CHANGELOG/CHANGELOG-3.4.1.md
================================================
- [v3.4.1](#v341)
- [App Store](#app-store)
- [Bug Fixes](#bug-fixes)
- [Console](#console)
- [Bug Fixes](#bug-fixes-1)
- [Multi Cluster](#multi-cluster)
- [Bug Fixes](#bug-fixes-2)
- [Observability](#observability)
- [Bug Fixes](#bug-fixes-3)
- [Authentication \& Authorization](#authentication--authorization)
- [Bug Fixes](#bug-fixes-4)
- [DevOps](#devops)
- [Bug Fixes](#bug-fixes-5)
- [Optimization](#optimization)
- [User Experience](#user-experience)
- [Bug Fixes](#bug-fixes-6)
- [Monitoring](#monitoring)
- [Bug Fixes](#bug-fixes-7)
# v3.4.1
## App Store
### Bug Fixes
- Fix the error on the application repository page. ([console#4188](https://github.com/kubesphere/console/pull/4188), [@ic0xgkk](https://github.com/ic0xgkk), [console#4224](https://github.com/kubesphere/console/pull/4224), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the error in the application approval process. ([kubesphere#5962](https://github.com/kubesphere/kubesphere/pull/5962), [@inksnw](https://github.com/inksnw))
- Support "select" in Appdeploy schemaform.([console#3415](https://github.com/kubesphere/console/pull/3415), [@SongJXin](https://github.com/SongJXin))
## Console
### Bug Fixes
- Fix the issue of losing status when modifying a CRD. ([console#3866](https://github.com/kubesphere/console/pull/3866), [@yzxiu](https://github.com/yzxiu))
- Fix the incorrect style for IsolateInfo and RuleInfo in the Network Policy panel. ([console#4180](https://github.com/kubesphere/console/pull/4180), [@nekomeowww](https://github.com/nekomeowww))
- Fix inaccurate Chinese translations on some pages. ([console#4186](https://github.com/kubesphere/console/pull/4186), [@Hanmo123](https://github.com/Hanmo123), [console#4201](https://github.com/kubesphere/console/pull/4201), [@studyingwang23](https://github.com/studyingwang23), [console#4195](https://github.com/kubesphere/console/pull/4195), [@harrisonliu5](https://github.com/harrisonliu5), [console#4226](https://github.com/kubesphere/console/pull/4226), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the resource creation failure issue in higher versions of Kubernetes. ([console#4190](https://github.com/kubesphere/console/pull/4190), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the issue in the dashboard where the names in Recently Access are obscured. ([console#4210](https://github.com/kubesphere/console/pull/4210), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the issue on the list page where the Customize Columns button displays incomplete content. ([console#4211](https://github.com/kubesphere/console/pull/4211), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the display error of pod status. ([console#4214](https://github.com/kubesphere/console/pull/4214), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the issue on the PVC page where the capacity selection numbers are displayed incorrectly. ([console#4227](https://github.com/kubesphere/console/pull/4227), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the issue when adding containers on the Create Deployment page, using tags to search for images is not working. ([console#4228](https://github.com/kubesphere/console/pull/4228), [@harrisonliu5](https://github.com/harrisonliu5))
- Support building ARM64 images. ([console#4102](https://github.com/kubesphere/console/pull/4102), [@gunine](https://github.com/gunine))
## Multi Cluster
### Bug Fixes
- Fix the issue where CD-related clusters are displayed incorrectly in a multi-cluster environment. ([console#4165](https://github.com/kubesphere/console/pull/4165), [@ks-ci-bot](https://github.com/ks-ci-bot))
- Fix the issue of mistakenly adding a host cluster as a member cluster of another cluster. ([kubesphere#5961](https://github.com/kubesphere/kubesphere/pull/5961), [@ks-ci-bot](https://github.com/ks-ci-bot))
## Observability
### Bug Fixes
- Fix the issue that CPU and memory statistics charts are not displaying. ([console#4182](https://github.com/kubesphere/console/pull/4182), [@fuchunlan](https://github.com/fuchunlan))
- Fix API call errors on the notification channel page. ([console#4183](https://github.com/kubesphere/console/pull/4183), [@fuchunlan](https://github.com/fuchunlan))
- Fix the blank log receiver page. ([console#4184](https://github.com/kubesphere/console/pull/4184), [@fuchunlan](https://github.com/fuchunlan))
- Fix the issue on the new notification channel page where conditional filtering values are missing. ([console#4225](https://github.com/kubesphere/console/pull/4225), [@harrisonliu5](https://github.com/harrisonliu5))
## Authentication & Authorization
### Bug Fixes
- Fix LDAP login failure. ([console#4187](https://github.com/kubesphere/console/pull/4187), [@fuchunlan](https://github.com/fuchunlan))
## DevOps
### Bug Fixes
- Fix the issue where shell is not effective in graphical editing. ([console#4206](https://github.com/kubesphere/console/pull/4206), [@yazhouio](https://github.com/yazhouio))
- When a cluster is not ready or does not install DevOps, DevOps projects are unavailable. ([console#4216](https://github.com/kubesphere/console/pull/4216), [@yazhouio](https://github.com/yazhouio))
- Fix the incorrect parameter passing in Jenkins. ([console#4217](https://github.com/kubesphere/console/pull/4217), [@yazhouio](https://github.com/yazhouio))
- Fix the issue that clicking the replay button pops up an error prompt. ([console#4219](https://github.com/kubesphere/console/pull/4219), [@yazhouio](https://github.com/yazhouio))
- Fix the issue that the details of a pipeline cannot be viewed. ([console#4220](https://github.com/kubesphere/console/pull/4220), [@yazhouio](https://github.com/yazhouio))
- Fix the run error due to the large DevOps pipeline logs. ([console#4221](https://github.com/kubesphere/console/pull/4221), [@yazhouio](https://github.com/yazhouio))
- Fix Jenkins image vulnerability. ([console#4222](https://github.com/kubesphere/console/pull/4222), [@yazhouio](https://github.com/yazhouio))
- Fix the issue that failed to upgrade DevOps to 3.4.0. ([ks-installer#2247](https://github.com/kubesphere/ks-installer/pull/2247), [@yazhouio](https://github.com/yazhouio))
- Fix the error in the cleanup task. ([ks-DevOps#1014](https://github.com/kubesphere/ks-DevOps/pull/1014), [@yazhouio](https://github.com/yazhouio))
- Fix the failure to set a timeout. ([ks-DevOps#1016](https://github.com/kubesphere/ks-DevOps/pull/1016), [@yazhouio](https://github.com/yazhouio))
- Fix the bug with downloading multi-branch-pipeline artifacts. ([ks-DevOps#973](https://github.com/kubesphere/ks-DevOps/pull/973), [@yazhouio](https://github.com/yazhouio))
- Fix the issue that disabling discarded history pipelineruns doesn't work. ([ks-DevOps#989](https://github.com/kubesphere/ks-DevOps/pull/989), [@yazhouio](https://github.com/yazhouio))
- Fix the issue that some application resources are not deleted when cascade deleting multiple applications. ([ks-DevOps#990](https://github.com/kubesphere/ks-DevOps/pull/990), [@yazhouio](https://github.com/yazhouio))
### Optimization
- Display the git repo link on the Pipeline page. ([console#4215](https://github.com/kubesphere/console/pull/4215), [@yazhouio](https://github.com/yazhouio))
- Improve the API documentation for DevOps. ([ks-DevOps#968](https://github.com/kubesphere/ks-DevOps/pull/968), [@yazhouio](https://github.com/yazhouio))
## User Experience
### Bug Fixes
- Fix the issue on the Statefuls page where the Pod Grace Period parameter is missing. ([console#4207](https://github.com/kubesphere/console/pull/4207), [@yazhouio](https://github.com/yazhouio))
- Fix the issue where the cluster gateway is not displayed in cluster management. ([console#4209](https://github.com/kubesphere/console/pull/4209), [@harrisonliu5](https://github.com/harrisonliu5))
- Fix the error when creating an application route. ([console#4213](https://github.com/kubesphere/console/pull/4213), [@harrisonliu5](https://github.com/harrisonliu5))
- Add pagination for listing repository tags. ([kubesphere#5958](https://github.com/kubesphere/kubesphere/pull/5958), [@ks-ci-bot](https://github.com/ks-ci-bot))
## Monitoring
### Bug Fixes
- Fix the issue that the Monitoring Target field is displayed blank. ([kubesphere#5834](https://github.com/kubesphere/kubesphere/pull/5834), [@junotx](https://github.com/junotx))
================================================
FILE: CHANGELOG/CHANGELOG-4.1.1.md
================================================
# v4.1.1
## KubeSphere
### Features
* Refactor based on the new microkernel architecture of KubeSphere LuBan.
* Introduce the KubeSphere Marketplace as a built-in feature.
* Support for managing extensions through the Extensions Center.
* UI and API can be extended.
* Support for one-click import of member clusters via kubeconfig.
* Support for KubeSphere Service Accounts.
* Support for dynamic extension of the Resource API.
* Support for adding clusters, workspaces, and projects to quick access.
* Enabled file upload and download via container terminal.
* Adapted to cloud-native gateways (Kubernetes Ingress API) from different vendors.
* Support API rate limiting.
* Support creating persistent volumes on the page.
### Enhancements
* Support for selecting all clusters when creating a workspace.
* Optimization of web kubectl, supporting dynamic recycling of pods and fuzzy search when switching clusters.
* Optimization of node list, changing the default sorting to ascending order.
* Only allow trusted OAuth clients to verify user identity directly using username and password.
* Streamline the Agent components deployed in member clusters.
* Split some configurations in KubeSphere Config as independent configuration items.
* Adjust the search result of container images to sort in reverse chronological order.
* Support for editing user aliases.
* Display scheduling status in the cluster list.
* Support binaryData data display in ConfigMap details.
* Refactor the Workbench page.
* Remove unnecessary extensions.
* Support fast deployment and uninstallation via helm.
* Simplify the deployment of agents in member clusters.
* Support for disabling terminal for control plane nodes.
* Support triggering cluster resource synchronization proactively.
* User experience improvements on the workload pages under clusters.
* User experience improvements on the application list page.
* User experience improvements on the persistent volume claim and storage class list pages.
* Optimize the display of excessively long resource names.
* Support globally enabling fieldValidation.
* Support horizontal movement on the cluster nodes list page.
### Bug Fixes
* Fix the issue of the node terminal displaying "connecting" indefinitely.
* Fix the potential issue of unauthorized access to resources in the workspace.
* Fix the potential issue of unauthorized access to cluster authorization APIs in the workspace.
* Fix the issue of abnormal session logout due to incorrect configuration.
* Fix the issue of exceptions when adding image service information to pull images from a specified repository.
* Fix the issue of missing ownerReferences when editing Secrets.
* Fix the issue of white screen and incorrect page redirection during the initial login.
* Fix the scrolling issue with checkboxes in Windows environment.
* Fix the problem where the cluster management entry couldn't be found when logged in as cluster-admin.
* Fix the issue where closing the kubectl container terminal did not terminate the corresponding pod.
* Fix the issue where the cluster cannot be selected when downloading kubeconfig.
* Fix the issue where resource names were not fully displayed in some lists due to excessive length.
* Fix the missing translations in some pages.
* Fix the blank display issue on container details page.
* Fix the default skip certificate verification issue when selecting HTTPS for image registry addresses when creating secrets.
* Fix inability to edit project roles for service accounts of member clusters.
* Fix inability to edit settings for configmaps without key-value pairs.
* Fix inability to edit or delete key-value pair data for configmaps of member clusters.
* Fix the display issue with pop-up dialog when removing unready clusters on the cluster management page.
* Fix the progress bar display issue when removing clusters on cluster management page.
* Fix disappearance of the selection status of previously selected clusters after searching for clusters in pop-up dialog for "Add tags to clusters".
* Fix pagination issue for pods on workload details page.
* Fix display of HTML comments in changelogs on extension details page.
* Fix incomplete display of floating elements on list pages under certain circumstances.
* Fix abnormal display of error messages in the top right corner.
* Fix display issue with pop-up dialog for creating workspaces.
* Fix inability to search for Harbor (version 2.8.0 and later) images.
* Fix slow loading of console under HTTPS protocol.
* Specify cluster creator as cluster administrator by default.
* Fix exception when deleting labels from nodes.
* Fix the issue where page does not refresh in real time when adding member clusters.
* Add prompt message when uploading files in containers.
* Fix the issue where clusters are not filtered based on user permissions when selecting clusters.
* Fix potential permission escalation and authorization risks in helm application deployment.
* Fix the issue where file upload freezes when creating application templates.
* Fix the issue where applications created in one project are visible in other projects.
* Fix the issue where bitnami source in application repository cannot be synchronized.
* Fix the issue where application template displays no data.
* Fix the issue where unauthorized users encounter a blank page when deploying applications from the app store.
* Fix incorrect display of types of secrets.
* Fix display issue with workspace list.
* Fix incorrect status in persistent volume list.
* Fix failure to create PVC based on snapshots.
* Remove unnecessary prompt for persistent volume expansion.
* Fix incorrect display of type dropdown when creating secrets.
* Fix data filling error when creating secrets with the "Image registry information" type.
* Fix the issue where workload list cannot retrieve all projects.
* Fix abnormal display of prompt information for pods in workloads.
* Fix the issue where versions displayed in CRDs page is not the latest.
* Fix display issue when searching for clusters in cluster list.
* Fix the issue where web kubectl terminal is unusable in EKS environment.
### API Updates
#### API Removal
The following APIs will be removed in v4.1:
**Multi-cluster**
The multi-cluster proxy request API `/API_PREFIX/clusters/{cluster}/API_GROUP/API_VERSION/...` has been removed. Please use the new multi-cluster proxy request path rule `/clusters/{cluster}/API_PREFIX/API_GROUP/API_VERSION/...` instead.
**Access Control**
- The `iam.kubesphere.io/v1alpha2` API version has been removed. Please use the `iam.kubesphere.io/v1beta1` API version instead.
- Significant changes in `iam.kubesphere.io/v1beta1`:
The API Group for Role, RoleBinding, ClusterRole, and ClusterRoleBinding resources has changed from `rbac.authorization.k8s.io` to `iam.kubesphere.io`.
**Multi-tenancy**
- Partial APIs in `tenant.kubesphere.io/v1alpha1` and `tenant.kubesphere.io/v1alpha2` API versions have been removed. Please use the `tenant.kubesphere.io/v1beta1` API version instead.
- Significant changes in `tenant.kubesphere.io/v1beta1`:
`spec.networkIsolation` in `Workspace` has been removed.
**kubectl**
- The `/resources.kubesphere.io/v1alpha2/users/{user}/kubectl` interface has been removed. Terminal-related operations no longer need to call this interface.
- The API path for the user web kubectl terminal has been adjust from `/kapis/terminal.kubesphere.io/v1alpha2/namespaces/{namespace}/pods/{pod}/exec` to `/kapis/terminal.kubesphere.io/v1alpha2/users/{user}/kubectl`.
**Gateway**
The `gateway.kubesphere.io/v1alpha1` API version has been removed.
- The API for querying related gateways of the Ingress configuration has been adjust to `/kapis/gateway.kubesphere.io/v1alpha2/namespaces/{namespace}/availableingressclassscopes`.
#### API Deprecations
The following APIs have been marked as deprecated and will be removed in future versions:
- Cluster validation API
- Config configz API
- OAuth token review API
- Operations job rerun API
- Resources v1alpha2 API
- Resources v1alpha3 API
- Tenant v1alpha3 API
- Legacy version API
### Known Issues
* Upgrade from version 3.x to 4.x is not supported at present, but will be supported in subsequent releases.
* The following functions are temporarily unavailable and will be offered by extensions later:
* Monitoring
* Alerting
* Notifications
* Istio
* DevOps
* Project gateway and cluster gateway
* Storage volume snapshot
* Network isolation
* OpenPitrix for app management
* The following features are currently unavailable and will be supported in subsequent versions:
* Department management in workspaces
### Misc
- Remove all language options except English and Simplified Chinese by default.
- Remove content related to system components.
================================================
FILE: CONTRIBUTING.md
================================================
# Guide
This [document](https://github.com/kubesphere/community) walks you through how to get started contributing KubeSphere.
================================================
FILE: LICENSE
================================================
# KubeSphere Open Source License
KubeSphere is licensed under the Apache License 2.0, with the following additional conditions:
1. You are permitted to use KubeSphere for your own applications or projects as backend services, and you have the freedom to modify or extend the source code. However, explicit permission or a commercial license from the producer is required for the following scenarios:
a. Commercial use (Offering On-Premises or Cloud-based products or services to third parties) including using KubeSphere as a standalone commercial product, integrating it into your commercial products, or distributing it to third parties.
b. Offering KubeSphere as a SaaS (Software as a Service) service.
c. Removing or altering KubeSphere's logo or name.
For licensing inquiries, please contact kubesphere@yunify.com .
2. As a contributor, you should agree that:
a. The project maintainers have the authority to modify the open-source license.
b. Your contributed code may be utilized for commercial purposes.
3. These additional conditions apply exclusively to KubeSphere version 4.x and all future versions. Versions 3.4.x and earlier are not included under these terms and continue to be governed by their previous licenses.
Apart from these additional conditions, all other rights and restrictions are governed by the Apache License 2.0, available at http://www.apache.org/licenses/LICENSE-2.0.
------
Copyright 2024 the KubeSphere Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: LICENSES/LICENSE
================================================
================================================================================
= KubeSphere licensed under: =
# KubeSphere Open Source License
KubeSphere is licensed under the Apache License 2.0, with the following additional conditions:
1. You are permitted to use KubeSphere for your own applications or projects as backend services, and you have the freedom to modify or extend the source code. However, explicit permission or a commercial license from the producer is required for the following scenarios:
a. Commercial use (Offering On-Premises or Cloud-based products or services to third parties) including using KubeSphere as a standalone commercial product, integrating it into your commercial products, or distributing it to third parties.
b. Offering KubeSphere as a SaaS (Software as a Service) service.
c. Removing or altering KubeSphere's logo or name.
For licensing inquiries, please contact kubesphere@yunify.com .
2. As a contributor, you should agree that:
a. The project maintainers have the authority to modify the open-source license.
b. Your contributed code may be utilized for commercial purposes.
3. These additional conditions apply exclusively to KubeSphere version 4.x and all future versions. Versions 3.4.x and earlier are not included under these terms and continue to be governed by their previous licenses.
Apart from these additional conditions, all other rights and restrictions are governed by the Apache License 2.0, available at http://www.apache.org/licenses/LICENSE-2.0.
------
Copyright 2024 the KubeSphere Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= LICENSE 123cd141a9515e60fbd64c3dbcfa9e94
================================================================================
================================================
FILE: LICENSES/vendor/cel.dev/expr/LICENSE
================================================
= vendor/cel.dev/expr licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/cel.dev/expr/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
================================================
FILE: LICENSES/vendor/code.cloudfoundry.org/bytefmt/LICENSE
================================================
= vendor/code.cloudfoundry.org/bytefmt licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/code.cloudfoundry.org/bytefmt/LICENSE 2b42edef8fa55315f34f2370b4715ca9
================================================
FILE: LICENSES/vendor/dario.cat/mergo/LICENSE
================================================
= vendor/dario.cat/mergo licensed under: =
Copyright (c) 2013 Dario Castañé. All rights reserved.
Copyright (c) 2012 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/dario.cat/mergo/LICENSE ff13e03bb57bf9c52645f2f942afa28b
================================================
FILE: LICENSES/vendor/github.com/AdaLogics/go-fuzz-headers/LICENSE
================================================
= vendor/github.com/AdaLogics/go-fuzz-headers licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/github.com/AdaLogics/go-fuzz-headers/LICENSE 86d3f3a95c324c9479bd8986968f4327
================================================
FILE: LICENSES/vendor/github.com/Azure/go-ansiterm/LICENSE
================================================
= vendor/github.com/Azure/go-ansiterm licensed under: =
The MIT License (MIT)
Copyright (c) 2015 Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
= vendor/github.com/Azure/go-ansiterm/LICENSE 6000442264015a23894024af9930539b
================================================
FILE: LICENSES/vendor/github.com/Azure/go-ntlmssp/LICENSE
================================================
= vendor/github.com/Azure/go-ntlmssp licensed under: =
The MIT License (MIT)
Copyright (c) 2016 Microsoft
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
= vendor/github.com/Azure/go-ntlmssp/LICENSE 7f7cc56311d298677f304d0ffce374d8
================================================
FILE: LICENSES/vendor/github.com/BurntSushi/toml/LICENSE
================================================
= vendor/github.com/BurntSushi/toml licensed under: =
The MIT License (MIT)
Copyright (c) 2013 TOML authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
= vendor/github.com/BurntSushi/toml/COPYING 9e24c0e2a784c1d1fcabb279f4f107e0
================================================
FILE: LICENSES/vendor/github.com/MakeNowJust/heredoc/LICENSE
================================================
= vendor/github.com/MakeNowJust/heredoc licensed under: =
The MIT License (MIT)
Copyright (c) 2014-2019 TSUYUSATO Kitsune
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
= vendor/github.com/MakeNowJust/heredoc/LICENSE 5231c9cc16279283cf96fac3fe340823
================================================
FILE: LICENSES/vendor/github.com/Masterminds/goutils/LICENSE
================================================
= vendor/github.com/Masterminds/goutils licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/github.com/Masterminds/goutils/LICENSE.txt 3b83ef96387f14655fc854ddc3c6bd57
================================================
FILE: LICENSES/vendor/github.com/Masterminds/semver/v3/LICENSE
================================================
= vendor/github.com/Masterminds/semver/v3 licensed under: =
Copyright (C) 2014-2019, Matt Butcher and Matt Farina
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
= vendor/github.com/Masterminds/semver/v3/LICENSE.txt 4c1ffeeb02e3f8f4af042205e189b3f7
================================================
FILE: LICENSES/vendor/github.com/Masterminds/sprig/v3/LICENSE
================================================
= vendor/github.com/Masterminds/sprig/v3 licensed under: =
Copyright (C) 2013-2020 Masterminds
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
= vendor/github.com/Masterminds/sprig/v3/LICENSE.txt 4ed8d725bea5f035fcea1ab05a767f78
================================================
FILE: LICENSES/vendor/github.com/Masterminds/squirrel/LICENSE
================================================
= vendor/github.com/Masterminds/squirrel licensed under: =
MIT License
Squirrel: The Masterminds
Copyright (c) 2014-2015, Lann Martin. Copyright (C) 2015-2016, Google. Copyright (C) 2015, Matt Farina and Matt Butcher.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
= vendor/github.com/Masterminds/squirrel/LICENSE 02addc2b9c9811e33bfc4577f2d938c9
================================================
FILE: LICENSES/vendor/github.com/Microsoft/go-winio/LICENSE
================================================
= vendor/github.com/Microsoft/go-winio licensed under: =
The MIT License (MIT)
Copyright (c) 2015 Microsoft
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
= vendor/github.com/Microsoft/go-winio/LICENSE 69205ff73858f2c22b2ca135b557e8ef
================================================
FILE: LICENSES/vendor/github.com/NYTimes/gziphandler/LICENSE
================================================
= vendor/github.com/NYTimes/gziphandler licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2016-2017 The New York Times Company
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/github.com/NYTimes/gziphandler/LICENSE 69b0fc8968f6bb69f0abba8730fddff9
================================================
FILE: LICENSES/vendor/github.com/ProtonMail/go-crypto/LICENSE
================================================
= vendor/github.com/ProtonMail/go-crypto licensed under: =
Copyright (c) 2009 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/github.com/ProtonMail/go-crypto/LICENSE 5d4950ecb7b26d2c5e4e7b4e0dd74707
================================================
FILE: LICENSES/vendor/github.com/agnivade/levenshtein/LICENSE
================================================
= vendor/github.com/agnivade/levenshtein licensed under: =
The MIT License (MIT)
Copyright (c) 2015 Agniva De Sarker
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
= vendor/github.com/agnivade/levenshtein/License.txt 911630ea868cb9d6ca549532110fd8fd
================================================
FILE: LICENSES/vendor/github.com/antlr4-go/antlr/v4/LICENSE
================================================
= vendor/github.com/antlr4-go/antlr/v4 licensed under: =
Copyright (c) 2012-2023 The ANTLR Project. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither name of copyright holders nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/github.com/antlr4-go/antlr/v4/LICENSE f399e127495f9783cfbe2b3b2802555f
================================================
FILE: LICENSES/vendor/github.com/asaskevich/govalidator/LICENSE
================================================
= vendor/github.com/asaskevich/govalidator licensed under: =
The MIT License (MIT)
Copyright (c) 2014-2020 Alex Saskevich
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
= vendor/github.com/asaskevich/govalidator/LICENSE 44f42f71b1145516f11eb20da85d7344
================================================
FILE: LICENSES/vendor/github.com/aws/aws-sdk-go/LICENSE
================================================
= vendor/github.com/aws/aws-sdk-go licensed under: =
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
= vendor/github.com/aws/aws-sdk-go/LICENSE.txt 3b83ef96387f14655fc854ddc3c6bd57
================================================
FILE: LICENSES/vendor/github.com/beorn7/perks/LICENSE
================================================
= vendor/github.com/beorn7/perks licensed under: =
Copyright (C) 2013 Blake Mizerany
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
= vendor/github.com/beorn7/perks/LICENSE 0d0738f37ee8dc0b5f88a32e83c60198
================================================
FILE: LICENSES/vendor/github.com/blang/semver/v4/LICENSE
================================================
= vendor/github.com/blang/semver/v4 licensed under: =
The MIT License
Copyright (c) 2014 Benedikt Lang <github at benediktlang.de>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
= vendor/github.com/blang/semver/v4/LICENSE 5a3ade42a900439691ebc22013660cae
================================================
FILE: LICENSES/vendor/github.com/cenkalti/backoff/v5/LICENSE
================================================
= vendor/github.com/cenkalti/backoff/v5 licensed under: =
The MIT License (MIT)
Copyright (c) 2014 Cenk Altı
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
= vendor/github.com/cenkalti/backoff/v5/LICENSE 1571d94433e3f3aa05267efd4dbea68b
================================================
FILE: LICENSES/vendor/github.com/cespare/xxhash/v2/LICENSE
================================================
= vendor/github.com/cespare/xxhash/v2 licensed under: =
Copyright (c) 2016 Caleb Spare
MIT License
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
= vendor/github.com/cespare/xxhash/v2/LICENSE.txt 802da049c92a99b4387d3f3d91b00fa9
================================================
FILE: LICENSES/vendor/github.com/chai2010/gettext-go/LICENSE
================================================
= vendor/github.com/chai2010/gettext-go licensed under: =
Copyright 2013 ChaiShushan <chaishushan{AT}gmail.com>. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/github.com/chai2010/gettext-go/LICENSE 87ce3ee0376881b02e75d3d5be2a6ba6
================================================
FILE: LICENSES/vendor/github.com/cloudflare/circl/LICENSE
================================================
= vendor/github.com/cloudflare/circl licensed under: =
Copyright (c) 2019 Cloudflare. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Cloudflare nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
========================================================================
Copyright (c) 2009 The Go Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
= vendor/github.com/cloudflare/circl/LICENSE 71d73ee3b01fb1fe8499f3da2593ecc7
================================================
FILE: LICENSES/vendor/github.com/containerd/containerd/LICENSE
================================================
= vendor/github.com/containerd/containerd licensed under: =
Apache License
Version 2.0, January 2004
https://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY
Showing preview only (576K chars total). Download the full file or copy to clipboard to get everything.
gitextract_j06rle4r/
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ ├── feature_request.md
│ │ └── installation_failure.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── release-drafter.yml
│ ├── stale.yml
│ └── workflows/
│ ├── build-multiarch.yaml
│ ├── e2e-test.yml
│ ├── issue_comment_webhook.yml
│ ├── kind/
│ │ └── kind.yaml
│ ├── nightly-builds.yml
│ ├── release-drafter.yml
│ └── sync-helm-chart.yaml
├── .gitignore
├── .go-version
├── .licenserc.yaml
├── CHANGELOG/
│ ├── CHANGELOG-3.3.1.md
│ ├── CHANGELOG-3.3.2.md
│ ├── CHANGELOG-3.3.md
│ ├── CHANGELOG-3.4.0.md
│ ├── CHANGELOG-3.4.1.md
│ └── CHANGELOG-4.1.1.md
├── CONTRIBUTING.md
├── LICENSE
├── LICENSES/
│ ├── LICENSE
│ └── vendor/
│ ├── cel.dev/
│ │ └── expr/
│ │ └── LICENSE
│ ├── code.cloudfoundry.org/
│ │ └── bytefmt/
│ │ └── LICENSE
│ ├── dario.cat/
│ │ └── mergo/
│ │ └── LICENSE
│ ├── github.com/
│ │ ├── AdaLogics/
│ │ │ └── go-fuzz-headers/
│ │ │ └── LICENSE
│ │ ├── Azure/
│ │ │ ├── go-ansiterm/
│ │ │ │ └── LICENSE
│ │ │ └── go-ntlmssp/
│ │ │ └── LICENSE
│ │ ├── BurntSushi/
│ │ │ └── toml/
│ │ │ └── LICENSE
│ │ ├── MakeNowJust/
│ │ │ └── heredoc/
│ │ │ └── LICENSE
│ │ ├── Masterminds/
│ │ │ ├── goutils/
│ │ │ │ └── LICENSE
│ │ │ ├── semver/
│ │ │ │ └── v3/
│ │ │ │ └── LICENSE
│ │ │ ├── sprig/
│ │ │ │ └── v3/
│ │ │ │ └── LICENSE
│ │ │ └── squirrel/
│ │ │ └── LICENSE
│ │ ├── Microsoft/
│ │ │ └── go-winio/
│ │ │ └── LICENSE
│ │ ├── NYTimes/
│ │ │ └── gziphandler/
│ │ │ └── LICENSE
│ │ ├── ProtonMail/
│ │ │ └── go-crypto/
│ │ │ └── LICENSE
│ │ ├── agnivade/
│ │ │ └── levenshtein/
│ │ │ └── LICENSE
│ │ ├── antlr4-go/
│ │ │ └── antlr/
│ │ │ └── v4/
│ │ │ └── LICENSE
│ │ ├── asaskevich/
│ │ │ └── govalidator/
│ │ │ └── LICENSE
│ │ ├── aws/
│ │ │ └── aws-sdk-go/
│ │ │ └── LICENSE
│ │ ├── beorn7/
│ │ │ └── perks/
│ │ │ └── LICENSE
│ │ ├── blang/
│ │ │ └── semver/
│ │ │ └── v4/
│ │ │ └── LICENSE
│ │ ├── cenkalti/
│ │ │ └── backoff/
│ │ │ └── v5/
│ │ │ └── LICENSE
│ │ ├── cespare/
│ │ │ └── xxhash/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── chai2010/
│ │ │ └── gettext-go/
│ │ │ └── LICENSE
│ │ ├── cloudflare/
│ │ │ └── circl/
│ │ │ └── LICENSE
│ │ ├── containerd/
│ │ │ ├── containerd/
│ │ │ │ └── LICENSE
│ │ │ ├── errdefs/
│ │ │ │ ├── LICENSE
│ │ │ │ └── pkg/
│ │ │ │ └── LICENSE
│ │ │ ├── log/
│ │ │ │ └── LICENSE
│ │ │ ├── platforms/
│ │ │ │ └── LICENSE
│ │ │ └── stargz-snapshotter/
│ │ │ └── estargz/
│ │ │ └── LICENSE
│ │ ├── coreos/
│ │ │ ├── go-oidc/
│ │ │ │ └── v3/
│ │ │ │ └── LICENSE
│ │ │ ├── go-semver/
│ │ │ │ └── LICENSE
│ │ │ └── go-systemd/
│ │ │ └── v22/
│ │ │ └── LICENSE
│ │ ├── cyphar/
│ │ │ └── filepath-securejoin/
│ │ │ └── LICENSE
│ │ ├── davecgh/
│ │ │ └── go-spew/
│ │ │ └── LICENSE
│ │ ├── distribution/
│ │ │ └── reference/
│ │ │ └── LICENSE
│ │ ├── docker/
│ │ │ ├── cli/
│ │ │ │ └── LICENSE
│ │ │ ├── distribution/
│ │ │ │ └── LICENSE
│ │ │ ├── docker/
│ │ │ │ └── LICENSE
│ │ │ ├── docker-credential-helpers/
│ │ │ │ └── LICENSE
│ │ │ ├── go-connections/
│ │ │ │ └── LICENSE
│ │ │ ├── go-metrics/
│ │ │ │ └── LICENSE
│ │ │ └── go-units/
│ │ │ └── LICENSE
│ │ ├── emicklei/
│ │ │ ├── go-restful/
│ │ │ │ └── v3/
│ │ │ │ └── LICENSE
│ │ │ └── go-restful-openapi/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── emirpasic/
│ │ │ └── gods/
│ │ │ └── LICENSE
│ │ ├── evanphx/
│ │ │ └── json-patch/
│ │ │ ├── LICENSE
│ │ │ └── v5/
│ │ │ └── LICENSE
│ │ ├── exponent-io/
│ │ │ └── jsonpath/
│ │ │ └── LICENSE
│ │ ├── fatih/
│ │ │ └── color/
│ │ │ └── LICENSE
│ │ ├── felixge/
│ │ │ └── httpsnoop/
│ │ │ └── LICENSE
│ │ ├── fsnotify/
│ │ │ └── fsnotify/
│ │ │ └── LICENSE
│ │ ├── fxamacker/
│ │ │ └── cbor/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── go-asn1-ber/
│ │ │ └── asn1-ber/
│ │ │ └── LICENSE
│ │ ├── go-errors/
│ │ │ └── errors/
│ │ │ └── LICENSE
│ │ ├── go-git/
│ │ │ ├── gcfg/
│ │ │ │ └── LICENSE
│ │ │ ├── go-billy/
│ │ │ │ └── v5/
│ │ │ │ └── LICENSE
│ │ │ └── go-git/
│ │ │ └── v5/
│ │ │ └── LICENSE
│ │ ├── go-gorp/
│ │ │ └── gorp/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ ├── go-ini/
│ │ │ └── ini/
│ │ │ └── LICENSE
│ │ ├── go-jose/
│ │ │ └── go-jose/
│ │ │ └── v4/
│ │ │ └── LICENSE
│ │ ├── go-ldap/
│ │ │ └── ldap/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ ├── go-logr/
│ │ │ ├── logr/
│ │ │ │ └── LICENSE
│ │ │ └── stdr/
│ │ │ └── LICENSE
│ │ ├── go-openapi/
│ │ │ ├── analysis/
│ │ │ │ └── LICENSE
│ │ │ ├── errors/
│ │ │ │ └── LICENSE
│ │ │ ├── jsonpointer/
│ │ │ │ └── LICENSE
│ │ │ ├── jsonreference/
│ │ │ │ └── LICENSE
│ │ │ ├── loads/
│ │ │ │ └── LICENSE
│ │ │ ├── spec/
│ │ │ │ └── LICENSE
│ │ │ ├── strfmt/
│ │ │ │ └── LICENSE
│ │ │ ├── swag/
│ │ │ │ └── LICENSE
│ │ │ └── validate/
│ │ │ └── LICENSE
│ │ ├── go-redis/
│ │ │ └── redis/
│ │ │ └── LICENSE
│ │ ├── go-task/
│ │ │ └── slim-sprig/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ ├── go-viper/
│ │ │ └── mapstructure/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── gobuffalo/
│ │ │ └── flect/
│ │ │ └── LICENSE
│ │ ├── gobwas/
│ │ │ └── glob/
│ │ │ └── LICENSE
│ │ ├── gogo/
│ │ │ └── protobuf/
│ │ │ └── LICENSE
│ │ ├── golang/
│ │ │ ├── example/
│ │ │ │ └── LICENSE
│ │ │ ├── glog/
│ │ │ │ └── LICENSE
│ │ │ ├── groupcache/
│ │ │ │ └── LICENSE
│ │ │ └── protobuf/
│ │ │ └── LICENSE
│ │ ├── golang-jwt/
│ │ │ └── jwt/
│ │ │ └── v4/
│ │ │ └── LICENSE
│ │ ├── google/
│ │ │ ├── btree/
│ │ │ │ └── LICENSE
│ │ │ ├── cel-go/
│ │ │ │ └── LICENSE
│ │ │ ├── gnostic-models/
│ │ │ │ └── LICENSE
│ │ │ ├── go-cmp/
│ │ │ │ └── LICENSE
│ │ │ ├── go-containerregistry/
│ │ │ │ └── LICENSE
│ │ │ ├── gofuzz/
│ │ │ │ └── LICENSE
│ │ │ ├── gops/
│ │ │ │ └── LICENSE
│ │ │ ├── pprof/
│ │ │ │ └── LICENSE
│ │ │ ├── shlex/
│ │ │ │ └── LICENSE
│ │ │ └── uuid/
│ │ │ └── LICENSE
│ │ ├── gorilla/
│ │ │ ├── mux/
│ │ │ │ └── LICENSE
│ │ │ └── websocket/
│ │ │ └── LICENSE
│ │ ├── gosuri/
│ │ │ └── uitable/
│ │ │ └── LICENSE
│ │ ├── gregjones/
│ │ │ └── httpcache/
│ │ │ └── LICENSE
│ │ ├── grpc-ecosystem/
│ │ │ ├── go-grpc-prometheus/
│ │ │ │ └── LICENSE
│ │ │ └── grpc-gateway/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── hashicorp/
│ │ │ ├── errwrap/
│ │ │ │ └── LICENSE
│ │ │ └── go-multierror/
│ │ │ └── LICENSE
│ │ ├── huandu/
│ │ │ └── xstrings/
│ │ │ └── LICENSE
│ │ ├── inconshreveable/
│ │ │ └── mousetrap/
│ │ │ └── LICENSE
│ │ ├── jbenet/
│ │ │ └── go-context/
│ │ │ └── LICENSE
│ │ ├── jmespath/
│ │ │ └── go-jmespath/
│ │ │ └── LICENSE
│ │ ├── jmoiron/
│ │ │ └── sqlx/
│ │ │ └── LICENSE
│ │ ├── josharian/
│ │ │ └── intern/
│ │ │ └── LICENSE
│ │ ├── json-iterator/
│ │ │ └── go/
│ │ │ └── LICENSE
│ │ ├── kevinburke/
│ │ │ └── ssh_config/
│ │ │ └── LICENSE
│ │ ├── klauspost/
│ │ │ └── compress/
│ │ │ └── LICENSE
│ │ ├── kylelemons/
│ │ │ └── godebug/
│ │ │ └── LICENSE
│ │ ├── lann/
│ │ │ ├── builder/
│ │ │ │ └── LICENSE
│ │ │ └── ps/
│ │ │ └── LICENSE
│ │ ├── lib/
│ │ │ └── pq/
│ │ │ └── LICENSE
│ │ ├── liggitt/
│ │ │ └── tabwriter/
│ │ │ └── LICENSE
│ │ ├── mailru/
│ │ │ └── easyjson/
│ │ │ └── LICENSE
│ │ ├── mattn/
│ │ │ ├── go-colorable/
│ │ │ │ └── LICENSE
│ │ │ ├── go-isatty/
│ │ │ │ └── LICENSE
│ │ │ └── go-runewidth/
│ │ │ └── LICENSE
│ │ ├── mitchellh/
│ │ │ ├── copystructure/
│ │ │ │ └── LICENSE
│ │ │ ├── go-homedir/
│ │ │ │ └── LICENSE
│ │ │ ├── go-wordwrap/
│ │ │ │ └── LICENSE
│ │ │ ├── mapstructure/
│ │ │ │ └── LICENSE
│ │ │ └── reflectwalk/
│ │ │ └── LICENSE
│ │ ├── moby/
│ │ │ ├── docker-image-spec/
│ │ │ │ └── LICENSE
│ │ │ ├── locker/
│ │ │ │ └── LICENSE
│ │ │ ├── spdystream/
│ │ │ │ └── LICENSE
│ │ │ └── term/
│ │ │ └── LICENSE
│ │ ├── modern-go/
│ │ │ ├── concurrent/
│ │ │ │ └── LICENSE
│ │ │ └── reflect2/
│ │ │ └── LICENSE
│ │ ├── monochromegane/
│ │ │ └── go-gitignore/
│ │ │ └── LICENSE
│ │ ├── munnerz/
│ │ │ └── goautoneg/
│ │ │ └── LICENSE
│ │ ├── mxk/
│ │ │ └── go-flowrate/
│ │ │ └── LICENSE
│ │ ├── oklog/
│ │ │ └── ulid/
│ │ │ └── LICENSE
│ │ ├── oliveagle/
│ │ │ └── jsonpath/
│ │ │ └── LICENSE
│ │ ├── onsi/
│ │ │ ├── ginkgo/
│ │ │ │ └── v2/
│ │ │ │ └── LICENSE
│ │ │ └── gomega/
│ │ │ └── LICENSE
│ │ ├── open-policy-agent/
│ │ │ └── opa/
│ │ │ └── LICENSE
│ │ ├── opencontainers/
│ │ │ ├── go-digest/
│ │ │ │ └── LICENSE
│ │ │ └── image-spec/
│ │ │ └── LICENSE
│ │ ├── pelletier/
│ │ │ └── go-toml/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── peterbourgon/
│ │ │ └── diskv/
│ │ │ └── LICENSE
│ │ ├── pjbgf/
│ │ │ └── sha1cd/
│ │ │ └── LICENSE
│ │ ├── pkg/
│ │ │ └── errors/
│ │ │ └── LICENSE
│ │ ├── pmezard/
│ │ │ └── go-difflib/
│ │ │ └── LICENSE
│ │ ├── prometheus/
│ │ │ ├── client_golang/
│ │ │ │ └── LICENSE
│ │ │ ├── client_model/
│ │ │ │ └── LICENSE
│ │ │ ├── common/
│ │ │ │ └── LICENSE
│ │ │ └── procfs/
│ │ │ └── LICENSE
│ │ ├── rcrowley/
│ │ │ └── go-metrics/
│ │ │ └── LICENSE
│ │ ├── rivo/
│ │ │ └── uniseg/
│ │ │ └── LICENSE
│ │ ├── robfig/
│ │ │ └── cron/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ ├── rubenv/
│ │ │ └── sql-migrate/
│ │ │ └── LICENSE
│ │ ├── russross/
│ │ │ └── blackfriday/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── sagikazarmark/
│ │ │ └── locafero/
│ │ │ └── LICENSE
│ │ ├── sergi/
│ │ │ └── go-diff/
│ │ │ └── LICENSE
│ │ ├── shopspring/
│ │ │ └── decimal/
│ │ │ └── LICENSE
│ │ ├── sirupsen/
│ │ │ └── logrus/
│ │ │ └── LICENSE
│ │ ├── skeema/
│ │ │ └── knownhosts/
│ │ │ └── LICENSE
│ │ ├── sony/
│ │ │ └── sonyflake/
│ │ │ └── LICENSE
│ │ ├── sourcegraph/
│ │ │ └── conc/
│ │ │ └── LICENSE
│ │ ├── speps/
│ │ │ └── go-hashids/
│ │ │ └── LICENSE
│ │ ├── spf13/
│ │ │ ├── afero/
│ │ │ │ └── LICENSE
│ │ │ ├── cast/
│ │ │ │ └── LICENSE
│ │ │ ├── cobra/
│ │ │ │ └── LICENSE
│ │ │ ├── pflag/
│ │ │ │ └── LICENSE
│ │ │ └── viper/
│ │ │ └── LICENSE
│ │ ├── stoewer/
│ │ │ └── go-strcase/
│ │ │ └── LICENSE
│ │ ├── stretchr/
│ │ │ └── testify/
│ │ │ └── LICENSE
│ │ ├── subosito/
│ │ │ └── gotenv/
│ │ │ └── LICENSE
│ │ ├── tchap/
│ │ │ └── go-patricia/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── vbatts/
│ │ │ └── tar-split/
│ │ │ └── LICENSE
│ │ ├── x448/
│ │ │ └── float16/
│ │ │ └── LICENSE
│ │ ├── xanzy/
│ │ │ └── ssh-agent/
│ │ │ └── LICENSE
│ │ ├── xeipuuv/
│ │ │ ├── gojsonpointer/
│ │ │ │ └── LICENSE
│ │ │ ├── gojsonreference/
│ │ │ │ └── LICENSE
│ │ │ └── gojsonschema/
│ │ │ └── LICENSE
│ │ ├── xlab/
│ │ │ └── treeprint/
│ │ │ └── LICENSE
│ │ └── yashtewari/
│ │ └── glob-intersection/
│ │ └── LICENSE
│ ├── go.etcd.io/
│ │ └── etcd/
│ │ ├── api/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ └── client/
│ │ ├── pkg/
│ │ │ └── v3/
│ │ │ └── LICENSE
│ │ └── v3/
│ │ └── LICENSE
│ ├── go.mongodb.org/
│ │ └── mongo-driver/
│ │ └── LICENSE
│ ├── go.opentelemetry.io/
│ │ ├── auto/
│ │ │ └── sdk/
│ │ │ └── LICENSE
│ │ ├── contrib/
│ │ │ └── instrumentation/
│ │ │ ├── google.golang.org/
│ │ │ │ └── grpc/
│ │ │ │ └── otelgrpc/
│ │ │ │ └── LICENSE
│ │ │ └── net/
│ │ │ └── http/
│ │ │ └── otelhttp/
│ │ │ └── LICENSE
│ │ ├── otel/
│ │ │ ├── LICENSE
│ │ │ ├── exporters/
│ │ │ │ └── otlp/
│ │ │ │ └── otlptrace/
│ │ │ │ ├── LICENSE
│ │ │ │ └── otlptracegrpc/
│ │ │ │ └── LICENSE
│ │ │ ├── metric/
│ │ │ │ └── LICENSE
│ │ │ ├── sdk/
│ │ │ │ └── LICENSE
│ │ │ └── trace/
│ │ │ └── LICENSE
│ │ └── proto/
│ │ └── otlp/
│ │ └── LICENSE
│ ├── go.uber.org/
│ │ ├── automaxprocs/
│ │ │ └── LICENSE
│ │ ├── multierr/
│ │ │ └── LICENSE
│ │ └── zap/
│ │ └── LICENSE
│ ├── golang.org/
│ │ └── x/
│ │ ├── crypto/
│ │ │ └── LICENSE
│ │ ├── exp/
│ │ │ └── LICENSE
│ │ ├── mod/
│ │ │ └── LICENSE
│ │ ├── net/
│ │ │ └── LICENSE
│ │ ├── oauth2/
│ │ │ └── LICENSE
│ │ ├── sync/
│ │ │ └── LICENSE
│ │ ├── sys/
│ │ │ └── LICENSE
│ │ ├── term/
│ │ │ └── LICENSE
│ │ ├── text/
│ │ │ └── LICENSE
│ │ ├── time/
│ │ │ └── LICENSE
│ │ └── tools/
│ │ └── LICENSE
│ ├── gomodules.xyz/
│ │ └── jsonpatch/
│ │ └── v2/
│ │ └── LICENSE
│ ├── google.golang.org/
│ │ ├── genproto/
│ │ │ └── googleapis/
│ │ │ ├── api/
│ │ │ │ └── LICENSE
│ │ │ └── rpc/
│ │ │ └── LICENSE
│ │ ├── grpc/
│ │ │ └── LICENSE
│ │ └── protobuf/
│ │ └── LICENSE
│ ├── gopkg.in/
│ │ ├── cas.v2/
│ │ │ └── LICENSE
│ │ ├── evanphx/
│ │ │ └── json-patch.v4/
│ │ │ └── LICENSE
│ │ ├── inf.v0/
│ │ │ └── LICENSE
│ │ ├── natefinch/
│ │ │ └── lumberjack.v2/
│ │ │ └── LICENSE
│ │ ├── warnings.v0/
│ │ │ └── LICENSE
│ │ ├── yaml.v2/
│ │ │ └── LICENSE
│ │ └── yaml.v3/
│ │ └── LICENSE
│ ├── helm.sh/
│ │ └── helm/
│ │ └── v3/
│ │ └── LICENSE
│ ├── k8s.io/
│ │ ├── api/
│ │ │ └── LICENSE
│ │ ├── apiextensions-apiserver/
│ │ │ └── LICENSE
│ │ ├── apimachinery/
│ │ │ ├── LICENSE
│ │ │ └── third_party/
│ │ │ └── forked/
│ │ │ └── golang/
│ │ │ └── LICENSE
│ │ ├── apiserver/
│ │ │ └── LICENSE
│ │ ├── cli-runtime/
│ │ │ └── LICENSE
│ │ ├── client-go/
│ │ │ ├── LICENSE
│ │ │ └── third_party/
│ │ │ └── forked/
│ │ │ └── golang/
│ │ │ └── LICENSE
│ │ ├── code-generator/
│ │ │ └── LICENSE
│ │ ├── component-base/
│ │ │ └── LICENSE
│ │ ├── gengo/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── klog/
│ │ │ └── v2/
│ │ │ └── LICENSE
│ │ ├── kms/
│ │ │ └── LICENSE
│ │ ├── kube-openapi/
│ │ │ ├── LICENSE
│ │ │ └── pkg/
│ │ │ └── internal/
│ │ │ └── third_party/
│ │ │ ├── go-json-experiment/
│ │ │ │ └── json/
│ │ │ │ └── LICENSE
│ │ │ └── govalidator/
│ │ │ └── LICENSE
│ │ ├── kubectl/
│ │ │ └── LICENSE
│ │ └── utils/
│ │ ├── LICENSE
│ │ └── internal/
│ │ └── third_party/
│ │ └── forked/
│ │ └── golang/
│ │ └── LICENSE
│ ├── oras.land/
│ │ └── oras-go/
│ │ ├── LICENSE
│ │ └── v2/
│ │ └── LICENSE
│ └── sigs.k8s.io/
│ ├── apiserver-network-proxy/
│ │ └── konnectivity-client/
│ │ └── LICENSE
│ ├── application/
│ │ └── LICENSE
│ ├── controller-runtime/
│ │ └── LICENSE
│ ├── controller-tools/
│ │ └── LICENSE
│ ├── json/
│ │ └── LICENSE
│ ├── kustomize/
│ │ ├── api/
│ │ │ └── LICENSE
│ │ └── kyaml/
│ │ └── LICENSE
│ ├── randfill/
│ │ └── LICENSE
│ ├── structured-merge-diff/
│ │ └── v4/
│ │ └── LICENSE
│ └── yaml/
│ └── LICENSE
├── Makefile
├── OWNERS
├── README.md
├── README_zh.md
├── SECURITY.md
├── api/
│ ├── api-rules/
│ │ └── violation_exceptions.list
│ ├── ks-openapi-spec/
│ │ └── swagger.json
│ └── openapi-spec/
│ └── swagger.json
├── build/
│ ├── ks-apiserver/
│ │ └── Dockerfile
│ └── ks-controller-manager/
│ └── Dockerfile
├── cmd/
│ ├── ks-apiserver/
│ │ ├── apiserver.go
│ │ └── app/
│ │ ├── options/
│ │ │ ├── options.go
│ │ │ └── validation.go
│ │ └── server.go
│ └── ks-controller-manager/
│ ├── app/
│ │ ├── options/
│ │ │ ├── options.go
│ │ │ └── options_test.go
│ │ └── server.go
│ └── controller-manager.go
├── config/
│ └── ks-core/
│ ├── .helmignore
│ ├── Chart.yaml
│ ├── charts/
│ │ ├── ks-crds/
│ │ │ ├── .helmignore
│ │ │ ├── Chart.yaml
│ │ │ ├── crds/
│ │ │ │ ├── app.k8s.io_applications.yaml
│ │ │ │ ├── application.kubesphere.io_applicationreleases.yaml
│ │ │ │ ├── application.kubesphere.io_applications.yaml
│ │ │ │ ├── application.kubesphere.io_applicationversions.yaml
│ │ │ │ ├── application.kubesphere.io_categories.yaml
│ │ │ │ ├── application.kubesphere.io_repos.yaml
│ │ │ │ ├── cluster.kubesphere.io_clusters.yaml
│ │ │ │ ├── cluster.kubesphere.io_labels.yaml
│ │ │ │ ├── extensions.kubesphere.io_apiservices.yaml
│ │ │ │ ├── extensions.kubesphere.io_extensionentries.yaml
│ │ │ │ ├── extensions.kubesphere.io_jsbundles.yaml
│ │ │ │ ├── extensions.kubesphere.io_reverseproxies.yaml
│ │ │ │ ├── gateway.kubesphere.io_ingressclassscopes.yaml
│ │ │ │ ├── iam.kubesphere.io_builtinroles.yaml
│ │ │ │ ├── iam.kubesphere.io_categories.yaml
│ │ │ │ ├── iam.kubesphere.io_clusterrolebindings.yaml
│ │ │ │ ├── iam.kubesphere.io_clusterroles.yaml
│ │ │ │ ├── iam.kubesphere.io_globalrolebindings.yaml
│ │ │ │ ├── iam.kubesphere.io_globalroles.yaml
│ │ │ │ ├── iam.kubesphere.io_groupbindings.yaml
│ │ │ │ ├── iam.kubesphere.io_groups.yaml
│ │ │ │ ├── iam.kubesphere.io_loginrecords.yaml
│ │ │ │ ├── iam.kubesphere.io_rolebindings.yaml
│ │ │ │ ├── iam.kubesphere.io_roles.yaml
│ │ │ │ ├── iam.kubesphere.io_roletemplates.yaml
│ │ │ │ ├── iam.kubesphere.io_users.yaml
│ │ │ │ ├── iam.kubesphere.io_workspacerolebindings.yaml
│ │ │ │ ├── iam.kubesphere.io_workspaceroles.yaml
│ │ │ │ ├── kubesphere.io_categories.yaml
│ │ │ │ ├── kubesphere.io_extensions.yaml
│ │ │ │ ├── kubesphere.io_extensionversions.yaml
│ │ │ │ ├── kubesphere.io_installplans.yaml
│ │ │ │ ├── kubesphere.io_repositories.yaml
│ │ │ │ ├── kubesphere.io_serviceaccounts.yaml
│ │ │ │ ├── quota.kubesphere.io_resourcequotas.yaml
│ │ │ │ ├── storage.kubesphere.io_provisionercapabilities.yaml
│ │ │ │ ├── storage.kubesphere.io_storageclasscapabilities.yaml
│ │ │ │ ├── tenant.kubesphere.io_workspaces.yaml
│ │ │ │ └── tenant.kubesphere.io_workspacetemplates.yaml
│ │ │ ├── scripts/
│ │ │ │ ├── install.sh
│ │ │ │ └── post-delete.sh
│ │ │ ├── templates/
│ │ │ │ ├── post-delete-crd-job.yaml
│ │ │ │ └── pre-upgrade-crd-job.yaml
│ │ │ └── values.yaml
│ │ └── redis-ha/
│ │ ├── Chart.yaml
│ │ ├── README.md
│ │ ├── ci/
│ │ │ └── haproxy-enabled-values.yaml
│ │ ├── templates/
│ │ │ ├── NOTES.txt
│ │ │ ├── _configs.tpl
│ │ │ ├── _helpers.tpl
│ │ │ ├── _images.tpl
│ │ │ ├── redis-auth-secret.yaml
│ │ │ ├── redis-ha-announce-service.yaml
│ │ │ ├── redis-ha-configmap.yaml
│ │ │ ├── redis-ha-exporter-script-configmap.yaml
│ │ │ ├── redis-ha-health-configmap.yaml
│ │ │ ├── redis-ha-network-policy.yaml
│ │ │ ├── redis-ha-pdb.yaml
│ │ │ ├── redis-ha-prometheus-rule.yaml
│ │ │ ├── redis-ha-role.yaml
│ │ │ ├── redis-ha-rolebinding.yaml
│ │ │ ├── redis-ha-secret.yaml
│ │ │ ├── redis-ha-service.yaml
│ │ │ ├── redis-ha-serviceaccount.yaml
│ │ │ ├── redis-ha-servicemonitor.yaml
│ │ │ ├── redis-ha-statefulset.yaml
│ │ │ ├── redis-haproxy-deployment.yaml
│ │ │ ├── redis-haproxy-network-policy.yaml
│ │ │ ├── redis-haproxy-pdb.yaml
│ │ │ ├── redis-haproxy-role.yaml
│ │ │ ├── redis-haproxy-rolebinding.yaml
│ │ │ ├── redis-haproxy-service.yaml
│ │ │ ├── redis-haproxy-serviceaccount.yaml
│ │ │ ├── redis-haproxy-servicemonitor.yaml
│ │ │ ├── redis-tls-secret.yaml
│ │ │ ├── sentinel-auth-secret.yaml
│ │ │ └── tests/
│ │ │ ├── test-redis-ha-configmap.yaml
│ │ │ └── test-redis-ha-pod.yaml
│ │ └── values.yaml
│ ├── files/
│ │ └── extensions.customresourcefilters.rego
│ ├── scripts/
│ │ └── post-delete.sh
│ ├── templates/
│ │ ├── NOTES.txt
│ │ ├── _helpers.tpl
│ │ ├── _images.tpl
│ │ ├── _tplvalues.tpl
│ │ ├── builtinroles.yaml
│ │ ├── cert-manager.yaml
│ │ ├── clusterroles.yaml
│ │ ├── customresourcefilters.yaml
│ │ ├── dynamic-upgrade-job.yaml
│ │ ├── extension-categories.yaml
│ │ ├── extension-museum.yaml
│ │ ├── globalrolebindings.yaml
│ │ ├── globalroles.yaml
│ │ ├── ingress.yaml
│ │ ├── ks-agent.yaml
│ │ ├── ks-apiserver.yaml
│ │ ├── ks-console-config.yaml
│ │ ├── ks-console.yaml
│ │ ├── ks-controller-manager.yaml
│ │ ├── kubesphere-config.yaml
│ │ ├── oauthclient-config.yaml
│ │ ├── platformconfig-telemetry.yaml
│ │ ├── post-delete-job.yaml
│ │ ├── post-patch-system-ns-job.yaml
│ │ ├── post-patch-user-job.yaml
│ │ ├── post-upgrade-job.yaml
│ │ ├── pre-upgrade-job.yaml
│ │ ├── prepare-upgrade-job.yaml
│ │ ├── redis.yaml
│ │ ├── roletemplate-categories.yaml
│ │ ├── roletemplates.yaml
│ │ ├── serviceaccount.yaml
│ │ ├── services.yaml
│ │ ├── tls-secrets.yaml
│ │ ├── traefik.yaml
│ │ ├── user.yaml
│ │ ├── webhook.yaml
│ │ └── workspace.yaml
│ └── values.yaml
├── docs/
│ ├── build-multiarch-images.md
│ ├── powered-by-kubesphere.md
│ └── roadmap.md
├── go.mod
├── go.sum
├── go.work
├── go.work.sum
├── hack/
│ ├── .spelling_failures
│ ├── boilerplate.go.txt
│ ├── build-scripts/
│ │ ├── get-etcd.sh
│ │ ├── get-helm.sh
│ │ ├── get-kubernetes.sh
│ │ └── get-kustomize.sh
│ ├── build_e2e.sh
│ ├── cherry_pick_pull.sh
│ ├── custom-boilerplate.go.txt
│ ├── deploy-kubesphere.sh
│ ├── docker_build.sh
│ ├── docker_build_multiarch.sh
│ ├── generate_certs.sh
│ ├── generate_group.sh
│ ├── generate_manifests.sh
│ ├── gobuild.sh
│ ├── init_env.sh
│ ├── kind_e2e.sh
│ ├── lib/
│ │ ├── golang.sh
│ │ ├── init.sh
│ │ ├── logging.sh
│ │ ├── util.sh
│ │ ├── verify-generated.sh
│ │ └── version.sh
│ ├── lint-dependencies.sh
│ ├── make-rules/
│ │ ├── build.sh
│ │ ├── clean.sh
│ │ ├── cross.sh
│ │ ├── make-help.sh
│ │ ├── update.sh
│ │ ├── verify.sh
│ │ └── vet.sh
│ ├── pin-dependency.sh
│ ├── setup-envtest.sh
│ ├── test-go.sh
│ ├── unwanted-dependencies.json
│ ├── update-gofmt.sh
│ ├── update-goimports.sh
│ ├── update-internal-modules.sh
│ ├── update-licenses.sh
│ ├── update-vendor-licenses.sh
│ ├── update-vendor.sh
│ ├── verify-all.sh
│ ├── verify-gofmt.sh
│ ├── verify-goimports.sh
│ ├── verify-golangci-lint.sh
│ ├── verify-licenses.sh
│ ├── verify-shellcheck.sh
│ ├── verify-spelling.sh
│ └── verify-vendor-licenses.sh
├── kube/
│ ├── pkg/
│ │ ├── apis/
│ │ │ └── core/
│ │ │ └── v1/
│ │ │ └── helper/
│ │ │ ├── helpers.go
│ │ │ └── qos/
│ │ │ └── qos.go
│ │ ├── features/
│ │ │ └── features.go
│ │ ├── openapi/
│ │ │ ├── apiservice.go
│ │ │ ├── downloader.go
│ │ │ ├── error.go
│ │ │ ├── merge/
│ │ │ │ ├── default_pruning.go
│ │ │ │ ├── merge.go
│ │ │ │ └── walker.go
│ │ │ ├── openapi.go
│ │ │ ├── v2/
│ │ │ │ ├── services.go
│ │ │ │ └── services_test.go
│ │ │ └── v3/
│ │ │ ├── services.go
│ │ │ └── services_test.go
│ │ └── quota/
│ │ └── v1/
│ │ ├── evaluator/
│ │ │ └── core/
│ │ │ ├── persistentvolumeclaims.go
│ │ │ ├── pods.go
│ │ │ ├── registry.go
│ │ │ └── services.go
│ │ ├── generic/
│ │ │ ├── configuration.go
│ │ │ ├── evaluator.go
│ │ │ └── registry.go
│ │ ├── install/
│ │ │ └── registry.go
│ │ ├── interfaces.go
│ │ └── resources.go
│ └── plugin/
│ └── pkg/
│ └── admission/
│ └── resourcequota/
│ ├── apis/
│ │ └── resourcequota/
│ │ └── types.go
│ ├── controller.go
│ └── resource_access.go
├── pkg/
│ ├── api/
│ │ ├── cluster/
│ │ │ └── v1alpha1/
│ │ │ └── types.go
│ │ ├── resource/
│ │ │ └── v1alpha2/
│ │ │ └── types.go
│ │ ├── types.go
│ │ └── utils.go
│ ├── apiserver/
│ │ ├── apiserver.go
│ │ ├── auditing/
│ │ │ ├── client.go
│ │ │ ├── event.go
│ │ │ ├── internal/
│ │ │ │ └── backend.go
│ │ │ ├── log/
│ │ │ │ └── backend.go
│ │ │ ├── options.go
│ │ │ └── webhook/
│ │ │ └── backend.go
│ │ ├── authentication/
│ │ │ ├── authenticators/
│ │ │ │ ├── basic/
│ │ │ │ │ └── basic.go
│ │ │ │ └── jwt/
│ │ │ │ └── jwt.go
│ │ │ ├── identityprovider/
│ │ │ │ ├── aliyunidaas/
│ │ │ │ │ ├── idaas.go
│ │ │ │ │ └── idaas_test.go
│ │ │ │ ├── cas/
│ │ │ │ │ └── cas.go
│ │ │ │ ├── configuration.go
│ │ │ │ ├── generic_provider.go
│ │ │ │ ├── github/
│ │ │ │ │ ├── github.go
│ │ │ │ │ └── github_test.go
│ │ │ │ ├── identity.go
│ │ │ │ ├── identity_provider_factory.go
│ │ │ │ ├── identityprovider.go
│ │ │ │ ├── ldap/
│ │ │ │ │ ├── ldap.go
│ │ │ │ │ └── ldap_test.go
│ │ │ │ ├── oauth_provider.go
│ │ │ │ └── oidc/
│ │ │ │ ├── oidc.go
│ │ │ │ └── oidc_test.go
│ │ │ ├── oauth/
│ │ │ │ ├── error.go
│ │ │ │ ├── oauth_client.go
│ │ │ │ ├── oauth_client_test.go
│ │ │ │ ├── oidc.go
│ │ │ │ ├── oidc_test.go
│ │ │ │ └── options.go
│ │ │ ├── options.go
│ │ │ ├── request/
│ │ │ │ ├── anonymous/
│ │ │ │ │ ├── anonymous.go
│ │ │ │ │ └── anonymous_test.go
│ │ │ │ ├── basictoken/
│ │ │ │ │ └── basic_token.go
│ │ │ │ └── bearertoken/
│ │ │ │ ├── bearertoken.go
│ │ │ │ └── bearertoken_test.go
│ │ │ └── token/
│ │ │ ├── issuer.go
│ │ │ └── issuer_test.go
│ │ ├── authorization/
│ │ │ ├── authorizer/
│ │ │ │ ├── interfaces.go
│ │ │ │ └── rule.go
│ │ │ ├── authorizerfactory/
│ │ │ │ ├── builtin.go
│ │ │ │ └── builtin_test.go
│ │ │ ├── options.go
│ │ │ ├── path/
│ │ │ │ ├── doc.go
│ │ │ │ ├── path.go
│ │ │ │ └── path_test.go
│ │ │ ├── rbac/
│ │ │ │ ├── evaluation_helpers.go
│ │ │ │ ├── rbac.go
│ │ │ │ └── rbac_test.go
│ │ │ └── union/
│ │ │ ├── union.go
│ │ │ └── union_test.go
│ │ ├── filters/
│ │ │ ├── apiservice.go
│ │ │ ├── auditing.go
│ │ │ ├── authentication.go
│ │ │ ├── authorization.go
│ │ │ ├── dynamicresource.go
│ │ │ ├── filters.go
│ │ │ ├── jsbundle.go
│ │ │ ├── kubeapiserver.go
│ │ │ ├── multicluster.go
│ │ │ ├── requestinfo.go
│ │ │ ├── responder.go
│ │ │ └── reverseproxy.go
│ │ ├── metrics/
│ │ │ └── metrics.go
│ │ ├── options/
│ │ │ └── options.go
│ │ ├── query/
│ │ │ ├── field.go
│ │ │ ├── types.go
│ │ │ └── types_test.go
│ │ ├── request/
│ │ │ ├── context.go
│ │ │ ├── context_test.go
│ │ │ ├── requestinfo.go
│ │ │ └── requestinfo_test.go
│ │ ├── rest/
│ │ │ └── interface.go
│ │ └── runtime/
│ │ └── runtime.go
│ ├── componenthelper/
│ │ └── auth/
│ │ └── rbac/
│ │ ├── clusterrole_interface.go
│ │ ├── globalrole_interfaces.go
│ │ ├── helper.go
│ │ ├── helper_test.go
│ │ ├── interface.go
│ │ ├── policy_comparator.go
│ │ ├── role_interfaces.go
│ │ └── workspacerole_interfaces.go
│ ├── config/
│ │ ├── config.go
│ │ ├── config_test.go
│ │ └── options.go
│ ├── constants/
│ │ └── constants.go
│ ├── controller/
│ │ ├── application/
│ │ │ ├── appcategory_controller.go
│ │ │ ├── apprelease_controller.go
│ │ │ ├── apprelease_webhook.go
│ │ │ ├── appversion_contrlller.go
│ │ │ ├── delete_predicate.go
│ │ │ ├── executor.go
│ │ │ ├── helm_repo_controller.go
│ │ │ └── predicate.go
│ │ ├── certificatesigningrequest/
│ │ │ └── certificatesigningrequest_controller.go
│ │ ├── cluster/
│ │ │ ├── cluster_controller.go
│ │ │ ├── cluster_controller_test.go
│ │ │ ├── cluster_webhook.go
│ │ │ ├── helper.go
│ │ │ ├── kubeconfig.go
│ │ │ ├── predicate/
│ │ │ │ └── predicate.go
│ │ │ └── utils/
│ │ │ └── utils.go
│ │ ├── clusterlabel/
│ │ │ └── clusterlabel_controller.go
│ │ ├── clusterrole/
│ │ │ └── clusterrole_controller.go
│ │ ├── clusterrolebinding/
│ │ │ └── clusterrolebinding_controller.go
│ │ ├── config/
│ │ │ ├── config_webhook.go
│ │ │ ├── identityprovider/
│ │ │ │ └── webhook.go
│ │ │ ├── oauthclient/
│ │ │ │ └── webhook.go
│ │ │ └── webhook_factory.go
│ │ ├── controllertest/
│ │ │ └── testing.go
│ │ ├── conversion/
│ │ │ └── conversion.go
│ │ ├── core/
│ │ │ ├── category_controller.go
│ │ │ ├── extension_controller.go
│ │ │ ├── extensionversion_controller.go
│ │ │ ├── installplan_controller.go
│ │ │ ├── installplan_webhook.go
│ │ │ ├── repository_controller.go
│ │ │ ├── util.go
│ │ │ └── util_test.go
│ │ ├── extension/
│ │ │ ├── apiservice_webhook.go
│ │ │ ├── extensionentry_webhook.go
│ │ │ ├── jsbundle_webhook.go
│ │ │ └── reverseproxy_webhook.go
│ │ ├── globalrole/
│ │ │ └── globalrole_controller.go
│ │ ├── globalrolebinding/
│ │ │ └── globalrolebinding_controller.go
│ │ ├── group/
│ │ │ └── group_controller.go
│ │ ├── groupbinding/
│ │ │ └── groupbinding_controller.go
│ │ ├── job/
│ │ │ ├── job_controller.go
│ │ │ ├── job_controller_test.go
│ │ │ └── types.go
│ │ ├── k8sapplication/
│ │ │ ├── condition.go
│ │ │ ├── k8sapplication_controller.go
│ │ │ ├── status.go
│ │ │ └── utils.go
│ │ ├── ksserviceaccount/
│ │ │ ├── pod_injector.go
│ │ │ └── serviceaccount_controller.go
│ │ ├── kubeconfig/
│ │ │ └── kubeconfig_controller.go
│ │ ├── kubectl/
│ │ │ ├── kubectl.go
│ │ │ └── lease/
│ │ │ └── lease.go
│ │ ├── loginrecord/
│ │ │ ├── loginrecord_controller.go
│ │ │ └── loginrecord_controller_test.go
│ │ ├── manager.go
│ │ ├── namespace/
│ │ │ ├── namespace_controller.go
│ │ │ ├── namespace_controller_suite_test.go
│ │ │ └── namespace_controller_test.go
│ │ ├── openapi/
│ │ │ ├── config.go
│ │ │ └── openapi_controller.go
│ │ ├── options/
│ │ │ └── options.go
│ │ ├── quota/
│ │ │ ├── accessor.go
│ │ │ ├── lockfactory.go
│ │ │ ├── resourcequota_controller.go
│ │ │ ├── resourcequota_webhook.go
│ │ │ └── util.go
│ │ ├── resourceprotection/
│ │ │ └── resource_protection_webhook.go
│ │ ├── role/
│ │ │ └── role_controller.go
│ │ ├── rolebinding/
│ │ │ └── rolebinding_controller.go
│ │ ├── roletemplate/
│ │ │ └── roletemplate_controller.go
│ │ ├── secret/
│ │ │ └── serviceaccount_secret_controller.go
│ │ ├── serviceaccount/
│ │ │ ├── serviceaccount_controller.go
│ │ │ └── serviceaccount_controller_test.go
│ │ ├── serviceaccounttoken/
│ │ │ └── serviceaccount_token_controller.go
│ │ ├── storageclass/
│ │ │ ├── storageclass_controller.go
│ │ │ └── storageclass_controller_test.go
│ │ ├── telemetry/
│ │ │ ├── options.go
│ │ │ ├── runnable.go
│ │ │ └── telemetry_controller.go
│ │ ├── user/
│ │ │ ├── user_controller.go
│ │ │ ├── user_controller_test.go
│ │ │ └── user_webhook.go
│ │ ├── workspace/
│ │ │ ├── metrics.go
│ │ │ ├── workspace_controller.go
│ │ │ ├── workspace_controller_suite_test.go
│ │ │ └── workspace_controller_test.go
│ │ ├── workspacerole/
│ │ │ ├── workspacerole_controller.go
│ │ │ ├── workspacerole_controller_suite_test.go
│ │ │ └── workspacerole_controller_test.go
│ │ ├── workspacerolebinding/
│ │ │ ├── workspacerolebinding_controller.go
│ │ │ ├── workspacerolebinding_controller_suite_test.go
│ │ │ └── workspacerolebinding_controller_test.go
│ │ └── workspacetemplate/
│ │ ├── predicate/
│ │ │ └── predicate.go
│ │ ├── utils/
│ │ │ └── helper.go
│ │ ├── workspacetemplate_controller.go
│ │ └── workspacetemplate_controller_test.go
│ ├── kapis/
│ │ ├── application/
│ │ │ └── v2/
│ │ │ ├── attachments.go
│ │ │ ├── crd2cr.go
│ │ │ ├── errors.go
│ │ │ ├── handler_app.go
│ │ │ ├── handler_apprls.go
│ │ │ ├── handler_appversion.go
│ │ │ ├── handler_category.go
│ │ │ ├── handler_repo.go
│ │ │ ├── operator.go
│ │ │ ├── register.go
│ │ │ └── utils.go
│ │ ├── cluster/
│ │ │ └── v1alpha1/
│ │ │ ├── handler.go
│ │ │ ├── handler_test.go
│ │ │ ├── label_handler.go
│ │ │ └── register.go
│ │ ├── config/
│ │ │ └── v1alpha2/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── gateway/
│ │ │ └── v1alpha2/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── generic/
│ │ │ ├── generic.go
│ │ │ └── generic_test.go
│ │ ├── iam/
│ │ │ └── v1beta1/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── oauth/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── operations/
│ │ │ └── v1alpha2/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── package/
│ │ │ └── v1alpha1/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── resources/
│ │ │ ├── group.go
│ │ │ ├── v1alpha2/
│ │ │ │ ├── handler.go
│ │ │ │ └── register.go
│ │ │ └── v1alpha3/
│ │ │ ├── handler.go
│ │ │ ├── handler_test.go
│ │ │ └── register.go
│ │ ├── static/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── tenant/
│ │ │ ├── v1alpha3/
│ │ │ │ ├── handler.go
│ │ │ │ └── register.go
│ │ │ └── v1beta1/
│ │ │ ├── handler.go
│ │ │ ├── register.go
│ │ │ └── resource_handler.go
│ │ ├── terminal/
│ │ │ └── v1alpha2/
│ │ │ ├── handler.go
│ │ │ └── register.go
│ │ ├── version/
│ │ │ └── register.go
│ │ └── workloadtemplate/
│ │ └── v1alpha1/
│ │ ├── handler.go
│ │ └── register.go
│ ├── models/
│ │ ├── auth/
│ │ │ ├── authenticator.go
│ │ │ ├── login_recoder.go
│ │ │ ├── mapper.go
│ │ │ ├── oauth.go
│ │ │ ├── oauth_test.go
│ │ │ ├── password.go
│ │ │ ├── password_test.go
│ │ │ └── token.go
│ │ ├── components/
│ │ │ ├── components.go
│ │ │ └── components_test.go
│ │ ├── composedapp/
│ │ │ └── options.go
│ │ ├── git/
│ │ │ ├── OWNERS
│ │ │ ├── git.go
│ │ │ └── git_test.go
│ │ ├── iam/
│ │ │ ├── am/
│ │ │ │ ├── am.go
│ │ │ │ └── rbac/
│ │ │ │ └── evaluation_helpers.go
│ │ │ ├── group/
│ │ │ │ └── group.go
│ │ │ └── im/
│ │ │ ├── im.go
│ │ │ └── im_test.go
│ │ ├── kubeconfig/
│ │ │ ├── kubeconfig.go
│ │ │ └── options.go
│ │ ├── quotas/
│ │ │ └── quotas.go
│ │ ├── registries/
│ │ │ ├── blob.go
│ │ │ ├── image.go
│ │ │ ├── image_test.go
│ │ │ ├── image_type.go
│ │ │ ├── imagesearch/
│ │ │ │ ├── configuration.go
│ │ │ │ ├── controller.go
│ │ │ │ ├── dockerhub/
│ │ │ │ │ └── provider.go
│ │ │ │ ├── harbor/
│ │ │ │ │ └── provider.go
│ │ │ │ └── registry_provider.go
│ │ │ ├── manifest.go
│ │ │ ├── manifest_test.go
│ │ │ ├── registries.go
│ │ │ ├── registry_client.go
│ │ │ ├── registry_client_test.go
│ │ │ ├── token.go
│ │ │ ├── token_test.go
│ │ │ └── v2/
│ │ │ ├── options.go
│ │ │ ├── registries.go
│ │ │ ├── registries_test.go
│ │ │ ├── registry_helper.go
│ │ │ ├── secret_authenticator.go
│ │ │ ├── secret_authenticator_test.go
│ │ │ └── types.go
│ │ ├── resources/
│ │ │ ├── v1alpha3/
│ │ │ │ ├── cluster/
│ │ │ │ │ └── clusters.go
│ │ │ │ ├── clusterrole/
│ │ │ │ │ ├── clusterroles.go
│ │ │ │ │ └── clusterroles_test.go
│ │ │ │ ├── clusterrolebinding/
│ │ │ │ │ ├── clusterrolebindings.go
│ │ │ │ │ └── clusterrolebindings_test.go
│ │ │ │ ├── configmap/
│ │ │ │ │ ├── configmaps.go
│ │ │ │ │ └── configmaps_test.go
│ │ │ │ ├── cronjob/
│ │ │ │ │ └── cronjobs.go
│ │ │ │ ├── customresourcedefinition/
│ │ │ │ │ └── customresourcedefinitions.go
│ │ │ │ ├── daemonset/
│ │ │ │ │ ├── daemonset.go
│ │ │ │ │ └── daemonset_test.go
│ │ │ │ ├── deployment/
│ │ │ │ │ ├── deployments.go
│ │ │ │ │ └── deployments_test.go
│ │ │ │ ├── globalrole/
│ │ │ │ │ └── globalroles.go
│ │ │ │ ├── globalrolebinding/
│ │ │ │ │ └── globalrolebindings.go
│ │ │ │ ├── group/
│ │ │ │ │ └── group.go
│ │ │ │ ├── groupbinding/
│ │ │ │ │ └── groupbinding.go
│ │ │ │ ├── hpa/
│ │ │ │ │ └── horizontalpodautoscalers.go
│ │ │ │ ├── ingress/
│ │ │ │ │ └── ingresses.go
│ │ │ │ ├── interface.go
│ │ │ │ ├── interface_test.go
│ │ │ │ ├── job/
│ │ │ │ │ └── jobs.go
│ │ │ │ ├── label/
│ │ │ │ │ └── label.go
│ │ │ │ ├── loginrecord/
│ │ │ │ │ └── loginrecords.go
│ │ │ │ ├── namespace/
│ │ │ │ │ └── namespaces.go
│ │ │ │ ├── node/
│ │ │ │ │ └── nodes.go
│ │ │ │ ├── persistentvolume/
│ │ │ │ │ └── persistentvolume.go
│ │ │ │ ├── persistentvolumeclaim/
│ │ │ │ │ └── persistentvolumeclaim.go
│ │ │ │ ├── pod/
│ │ │ │ │ └── pods.go
│ │ │ │ ├── resource/
│ │ │ │ │ ├── resource.go
│ │ │ │ │ └── resource_test.go
│ │ │ │ ├── role/
│ │ │ │ │ └── roles.go
│ │ │ │ ├── rolebinding/
│ │ │ │ │ └── rolebindings.go
│ │ │ │ ├── secret/
│ │ │ │ │ └── secrets.go
│ │ │ │ ├── service/
│ │ │ │ │ └── services.go
│ │ │ │ ├── serviceaccount/
│ │ │ │ │ └── serviceaccount.go
│ │ │ │ ├── statefulset/
│ │ │ │ │ └── statefulsets.go
│ │ │ │ ├── storageclass/
│ │ │ │ │ └── storageclasses.go
│ │ │ │ ├── user/
│ │ │ │ │ └── users.go
│ │ │ │ ├── workspace/
│ │ │ │ │ └── workspaces.go
│ │ │ │ ├── workspacerole/
│ │ │ │ │ └── workspaceroles.go
│ │ │ │ ├── workspacerolebinding/
│ │ │ │ │ └── workspacerolebindings.go
│ │ │ │ └── workspacetemplate/
│ │ │ │ └── workspacetemplates.go
│ │ │ └── v1beta1/
│ │ │ ├── interface.go
│ │ │ ├── resourcemanager.go
│ │ │ └── resourcemanager_test.go
│ │ ├── revisions/
│ │ │ └── revisions.go
│ │ ├── storage/
│ │ │ └── storage.go
│ │ ├── tenant/
│ │ │ ├── resourcequota.go
│ │ │ └── tenant.go
│ │ ├── terminal/
│ │ │ ├── options.go
│ │ │ └── terminal.go
│ │ ├── types.go
│ │ └── workloads/
│ │ └── jobs.go
│ ├── multicluster/
│ │ └── options.go
│ ├── scheme/
│ │ └── scheme.go
│ ├── server/
│ │ ├── errors/
│ │ │ └── errors.go
│ │ ├── healthz/
│ │ │ └── healthz.go
│ │ ├── options/
│ │ │ ├── dynamic_options.go
│ │ │ └── options.go
│ │ └── params/
│ │ ├── params.go
│ │ └── params_test.go
│ ├── simple/
│ │ └── client/
│ │ ├── application/
│ │ │ ├── helper.go
│ │ │ ├── oci.go
│ │ │ ├── oci_test.go
│ │ │ ├── store.go
│ │ │ └── yaml.go
│ │ ├── cache/
│ │ │ ├── cache.go
│ │ │ ├── factory.go
│ │ │ ├── inmemory_cache.go
│ │ │ ├── inmemory_cache_test.go
│ │ │ ├── options.go
│ │ │ └── redis.go
│ │ ├── k8s/
│ │ │ ├── kubernetes.go
│ │ │ ├── null_client.go
│ │ │ └── options.go
│ │ ├── oci/
│ │ │ ├── errors.go
│ │ │ ├── oci_test.go
│ │ │ ├── registry.go
│ │ │ ├── url.go
│ │ │ └── utils.go
│ │ └── overview/
│ │ ├── constants.go
│ │ └── metrics.go
│ ├── utils/
│ │ ├── clusterclient/
│ │ │ └── clusterclient.go
│ │ ├── directives/
│ │ │ ├── match.go
│ │ │ ├── match_test.go
│ │ │ ├── replace.go
│ │ │ ├── rewrite.go
│ │ │ └── rewrite_test.go
│ │ ├── hashutil/
│ │ │ └── hashutil.go
│ │ ├── idutils/
│ │ │ ├── id_utils.go
│ │ │ └── id_utils_test.go
│ │ ├── iputil/
│ │ │ └── iputils.go
│ │ ├── josnpatchutil/
│ │ │ └── jsonpatchutil.go
│ │ ├── jsonutil/
│ │ │ └── jsonutils.go
│ │ ├── k8sutil/
│ │ │ ├── k8sutil.go
│ │ │ ├── k8sutil_test.go
│ │ │ └── version.go
│ │ ├── net/
│ │ │ └── net.go
│ │ ├── pkiutil/
│ │ │ └── pkiutil.go
│ │ ├── rbac/
│ │ │ └── name.go
│ │ ├── readerutils/
│ │ │ └── MD5Reader.go
│ │ ├── reflectutils/
│ │ │ ├── deep.go
│ │ │ └── reflect.go
│ │ ├── resourceparse/
│ │ │ └── resource_parse.go
│ │ ├── serviceaccount/
│ │ │ └── serviceaccount_util.go
│ │ ├── signals/
│ │ │ ├── signal.go
│ │ │ ├── signal_posix.go
│ │ │ └── signal_windows.go
│ │ ├── sliceutil/
│ │ │ └── sliceutils.go
│ │ ├── stringutils/
│ │ │ └── string.go
│ │ └── term/
│ │ └── term.go
│ └── version/
│ └── version.go
├── staging/
│ ├── README.md
│ ├── publishing/
│ │ └── rules.yaml
│ └── src/
│ └── kubesphere.io/
│ ├── api/
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── OWNERS
│ │ ├── README.md
│ │ ├── application/
│ │ │ └── v2/
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── cluster/
│ │ │ └── v1alpha1/
│ │ │ ├── doc.go
│ │ │ ├── openapi_generated.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── constants/
│ │ │ └── constants.go
│ │ ├── core/
│ │ │ └── v1alpha1/
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── i18n.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── extensions/
│ │ │ └── v1alpha1/
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ ├── upstream.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── gateway/
│ │ │ └── v1alpha2/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── iam/
│ │ │ ├── v1alpha2/
│ │ │ │ ├── doc.go
│ │ │ │ ├── register.go
│ │ │ │ ├── types.go
│ │ │ │ └── zz_generated.deepcopy.go
│ │ │ └── v1beta1/
│ │ │ ├── constants.go
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── quota/
│ │ │ └── v1alpha2/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── storage/
│ │ │ └── v1alpha1/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ └── tenant/
│ │ ├── v1alpha1/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ ├── v1alpha2/
│ │ │ ├── doc.go
│ │ │ ├── register.go
│ │ │ ├── types.go
│ │ │ └── zz_generated.deepcopy.go
│ │ └── v1beta1/
│ │ ├── doc.go
│ │ ├── openapi_generated.go
│ │ ├── register.go
│ │ ├── types.go
│ │ └── zz_generated.deepcopy.go
│ ├── client-go/
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── OWNERS
│ │ ├── README.md
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── kubesphere/
│ │ │ └── scheme/
│ │ │ ├── doc.go
│ │ │ └── register.go
│ │ └── rest/
│ │ ├── client.go
│ │ ├── client_test.go
│ │ ├── config.go
│ │ ├── config_test.go
│ │ ├── fake/
│ │ │ └── fake.go
│ │ ├── request.go
│ │ ├── request_test.go
│ │ ├── transport.go
│ │ ├── transport_test.go
│ │ ├── url_utils.go
│ │ ├── url_utils_test.go
│ │ ├── urlbackoff.go
│ │ ├── urlbackoff_test.go
│ │ ├── warnings.go
│ │ ├── with_retry.go
│ │ └── with_retry_test.go
│ └── utils/
│ ├── LICENSE
│ ├── OWNERS
│ ├── README.md
│ ├── go.mod
│ ├── go.sum
│ ├── helm/
│ │ ├── build/
│ │ │ └── Dockerfile
│ │ ├── executor.go
│ │ ├── repo_index.go
│ │ ├── rest_client_getter.go
│ │ └── tls_util.go
│ └── s3/
│ └── s3.go
├── test/
│ ├── e2e/
│ │ ├── constant/
│ │ │ └── constants.go
│ │ ├── e2e.go
│ │ ├── e2e_test.go
│ │ ├── framework/
│ │ │ ├── expect.go
│ │ │ ├── framework.go
│ │ │ ├── ginkgowrapper/
│ │ │ │ └── wrapper.go
│ │ │ ├── log.go
│ │ │ └── test_context.go
│ │ ├── kind.yaml
│ │ ├── quick.go
│ │ └── users.go
│ ├── network/
│ │ ├── Dockerfile
│ │ ├── Jenkinsfile
│ │ ├── OWNERS
│ │ ├── manifests/
│ │ │ ├── sample1.yaml
│ │ │ └── test-job.yaml
│ │ └── test.sh
│ └── testdata/
│ └── certs/
│ ├── tls.crt
│ └── tls.key
├── third_party/
│ └── .gitkeep
├── tools/
│ ├── cmd/
│ │ ├── crd-doc-gen/
│ │ │ └── main.go
│ │ ├── dependencyverifier/
│ │ │ └── dependencyverifier.go
│ │ └── doc-gen/
│ │ └── main.go
│ ├── lib/
│ │ ├── render.go
│ │ └── storage.go
│ └── tools.go
└── vendor/
├── OWNERS
├── cel.dev/
│ └── expr/
│ ├── .bazelversion
│ ├── .gitattributes
│ ├── .gitignore
│ ├── BUILD.bazel
│ ├── CODE_OF_CONDUCT.md
│ ├── CONTRIBUTING.md
│ ├── GOVERNANCE.md
│ ├── LICENSE
│ ├── MAINTAINERS.md
│ ├── MODULE.bazel
│ ├── README.md
│ ├── WORKSPACE
│ ├── WORKSPACE.bzlmod
│ ├── checked.pb.go
│ ├── cloudbuild.yaml
│ ├── eval.pb.go
│ ├── explain.pb.go
│ ├── regen_go_proto.sh
│ ├── regen_go_proto_canonical_protos.sh
│ ├── syntax.pb.go
│ └── value.pb.go
├── code.cloudfoundry.org/
│ └── bytefmt/
│ ├── CODEOWNERS
│ ├── LICENSE
│ ├── NOTICE
│ ├── README.md
│ ├── bytes.go
│ ├── package.go
│ └── staticcheck.conf
├── dario.cat/
│ └── mergo/
│ ├── .deepsource.toml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CODE_OF_CONDUCT.md
│ ├── CONTRIBUTING.md
│ ├── FUNDING.json
│ ├── LICENSE
│ ├── README.md
│ ├── SECURITY.md
│ ├── doc.go
│ ├── map.go
│ ├── merge.go
│ └── mergo.go
├── github.com/
│ ├── AdaLogics/
│ │ └── go-fuzz-headers/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── consumer.go
│ │ ├── funcs.go
│ │ └── sql.go
│ ├── Azure/
│ │ ├── go-ansiterm/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── SECURITY.md
│ │ │ ├── constants.go
│ │ │ ├── context.go
│ │ │ ├── csi_entry_state.go
│ │ │ ├── csi_param_state.go
│ │ │ ├── escape_intermediate_state.go
│ │ │ ├── escape_state.go
│ │ │ ├── event_handler.go
│ │ │ ├── ground_state.go
│ │ │ ├── osc_string_state.go
│ │ │ ├── parser.go
│ │ │ ├── parser_action_helpers.go
│ │ │ ├── parser_actions.go
│ │ │ ├── states.go
│ │ │ ├── utilities.go
│ │ │ └── winterm/
│ │ │ ├── ansi.go
│ │ │ ├── api.go
│ │ │ ├── attr_translation.go
│ │ │ ├── cursor_helpers.go
│ │ │ ├── erase_helpers.go
│ │ │ ├── scroll_helper.go
│ │ │ ├── utilities.go
│ │ │ └── win_event_handler.go
│ │ └── go-ntlmssp/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── authenticate_message.go
│ │ ├── authheader.go
│ │ ├── avids.go
│ │ ├── challenge_message.go
│ │ ├── messageheader.go
│ │ ├── negotiate_flags.go
│ │ ├── negotiate_message.go
│ │ ├── negotiator.go
│ │ ├── nlmp.go
│ │ ├── unicode.go
│ │ ├── varfield.go
│ │ └── version.go
│ ├── BurntSushi/
│ │ └── toml/
│ │ ├── .gitignore
│ │ ├── COPYING
│ │ ├── README.md
│ │ ├── decode.go
│ │ ├── deprecated.go
│ │ ├── doc.go
│ │ ├── encode.go
│ │ ├── error.go
│ │ ├── internal/
│ │ │ └── tz.go
│ │ ├── lex.go
│ │ ├── meta.go
│ │ ├── parse.go
│ │ ├── type_fields.go
│ │ └── type_toml.go
│ ├── MakeNowJust/
│ │ └── heredoc/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── heredoc.go
│ ├── Masterminds/
│ │ ├── goutils/
│ │ │ ├── .travis.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── appveyor.yml
│ │ │ ├── cryptorandomstringutils.go
│ │ │ ├── randomstringutils.go
│ │ │ ├── stringutils.go
│ │ │ └── wordutils.go
│ │ ├── semver/
│ │ │ └── v3/
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE.txt
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── SECURITY.md
│ │ │ ├── collection.go
│ │ │ ├── constraints.go
│ │ │ ├── doc.go
│ │ │ └── version.go
│ │ └── squirrel/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── case.go
│ │ ├── delete.go
│ │ ├── delete_ctx.go
│ │ ├── expr.go
│ │ ├── insert.go
│ │ ├── insert_ctx.go
│ │ ├── part.go
│ │ ├── placeholder.go
│ │ ├── row.go
│ │ ├── select.go
│ │ ├── select_ctx.go
│ │ ├── squirrel.go
│ │ ├── squirrel_ctx.go
│ │ ├── statement.go
│ │ ├── stmtcacher.go
│ │ ├── stmtcacher_ctx.go
│ │ ├── stmtcacher_noctx.go
│ │ ├── update.go
│ │ ├── update_ctx.go
│ │ └── where.go
│ ├── Microsoft/
│ │ └── go-winio/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── CODEOWNERS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── backup.go
│ │ ├── doc.go
│ │ ├── ea.go
│ │ ├── file.go
│ │ ├── fileinfo.go
│ │ ├── hvsock.go
│ │ ├── internal/
│ │ │ ├── fs/
│ │ │ │ ├── doc.go
│ │ │ │ ├── fs.go
│ │ │ │ ├── security.go
│ │ │ │ └── zsyscall_windows.go
│ │ │ ├── socket/
│ │ │ │ ├── rawaddr.go
│ │ │ │ ├── socket.go
│ │ │ │ └── zsyscall_windows.go
│ │ │ └── stringbuffer/
│ │ │ └── wstring.go
│ │ ├── pipe.go
│ │ ├── pkg/
│ │ │ └── guid/
│ │ │ ├── guid.go
│ │ │ ├── guid_nonwindows.go
│ │ │ ├── guid_windows.go
│ │ │ └── variant_string.go
│ │ ├── privilege.go
│ │ ├── reparse.go
│ │ ├── sd.go
│ │ ├── syscall.go
│ │ └── zsyscall_windows.go
│ ├── NYTimes/
│ │ └── gziphandler/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── gzip.go
│ │ └── gzip_go18.go
│ ├── ProtonMail/
│ │ └── go-crypto/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── PATENTS
│ │ ├── bitcurves/
│ │ │ └── bitcurve.go
│ │ ├── brainpool/
│ │ │ ├── brainpool.go
│ │ │ └── rcurve.go
│ │ ├── eax/
│ │ │ ├── eax.go
│ │ │ ├── eax_test_vectors.go
│ │ │ └── random_vectors.go
│ │ ├── internal/
│ │ │ └── byteutil/
│ │ │ └── byteutil.go
│ │ ├── ocb/
│ │ │ ├── ocb.go
│ │ │ ├── random_vectors.go
│ │ │ ├── rfc7253_test_vectors_suite_a.go
│ │ │ └── rfc7253_test_vectors_suite_b.go
│ │ └── openpgp/
│ │ ├── aes/
│ │ │ └── keywrap/
│ │ │ └── keywrap.go
│ │ ├── armor/
│ │ │ ├── armor.go
│ │ │ └── encode.go
│ │ ├── canonical_text.go
│ │ ├── ecdh/
│ │ │ └── ecdh.go
│ │ ├── ecdsa/
│ │ │ └── ecdsa.go
│ │ ├── ed25519/
│ │ │ └── ed25519.go
│ │ ├── ed448/
│ │ │ └── ed448.go
│ │ ├── eddsa/
│ │ │ └── eddsa.go
│ │ ├── elgamal/
│ │ │ └── elgamal.go
│ │ ├── errors/
│ │ │ └── errors.go
│ │ ├── hash.go
│ │ ├── internal/
│ │ │ ├── algorithm/
│ │ │ │ ├── aead.go
│ │ │ │ ├── cipher.go
│ │ │ │ └── hash.go
│ │ │ ├── ecc/
│ │ │ │ ├── curve25519.go
│ │ │ │ ├── curve_info.go
│ │ │ │ ├── curves.go
│ │ │ │ ├── ed25519.go
│ │ │ │ ├── ed448.go
│ │ │ │ ├── generic.go
│ │ │ │ └── x448.go
│ │ │ └── encoding/
│ │ │ ├── encoding.go
│ │ │ ├── mpi.go
│ │ │ └── oid.go
│ │ ├── key_generation.go
│ │ ├── keys.go
│ │ ├── keys_test_data.go
│ │ ├── packet/
│ │ │ ├── aead_config.go
│ │ │ ├── aead_crypter.go
│ │ │ ├── aead_encrypted.go
│ │ │ ├── compressed.go
│ │ │ ├── config.go
│ │ │ ├── config_v5.go
│ │ │ ├── encrypted_key.go
│ │ │ ├── literal.go
│ │ │ ├── marker.go
│ │ │ ├── notation.go
│ │ │ ├── ocfb.go
│ │ │ ├── one_pass_signature.go
│ │ │ ├── opaque.go
│ │ │ ├── packet.go
│ │ │ ├── packet_sequence.go
│ │ │ ├── packet_unsupported.go
│ │ │ ├── padding.go
│ │ │ ├── private_key.go
│ │ │ ├── private_key_test_data.go
│ │ │ ├── public_key.go
│ │ │ ├── public_key_test_data.go
│ │ │ ├── reader.go
│ │ │ ├── recipient.go
│ │ │ ├── signature.go
│ │ │ ├── symmetric_key_encrypted.go
│ │ │ ├── symmetrically_encrypted.go
│ │ │ ├── symmetrically_encrypted_aead.go
│ │ │ ├── symmetrically_encrypted_mdc.go
│ │ │ ├── userattribute.go
│ │ │ └── userid.go
│ │ ├── read.go
│ │ ├── read_write_test_data.go
│ │ ├── s2k/
│ │ │ ├── s2k.go
│ │ │ ├── s2k_cache.go
│ │ │ └── s2k_config.go
│ │ ├── write.go
│ │ ├── x25519/
│ │ │ └── x25519.go
│ │ └── x448/
│ │ └── x448.go
│ ├── agnivade/
│ │ └── levenshtein/
│ │ ├── .gitignore
│ │ ├── License.txt
│ │ ├── Makefile
│ │ ├── README.md
│ │ └── levenshtein.go
│ ├── antlr4-go/
│ │ └── antlr/
│ │ └── v4/
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── antlrdoc.go
│ │ ├── atn.go
│ │ ├── atn_config.go
│ │ ├── atn_config_set.go
│ │ ├── atn_deserialization_options.go
│ │ ├── atn_deserializer.go
│ │ ├── atn_simulator.go
│ │ ├── atn_state.go
│ │ ├── atn_type.go
│ │ ├── char_stream.go
│ │ ├── common_token_factory.go
│ │ ├── common_token_stream.go
│ │ ├── comparators.go
│ │ ├── configuration.go
│ │ ├── dfa.go
│ │ ├── dfa_serializer.go
│ │ ├── dfa_state.go
│ │ ├── diagnostic_error_listener.go
│ │ ├── error_listener.go
│ │ ├── error_strategy.go
│ │ ├── errors.go
│ │ ├── file_stream.go
│ │ ├── input_stream.go
│ │ ├── int_stream.go
│ │ ├── interval_set.go
│ │ ├── jcollect.go
│ │ ├── lexer.go
│ │ ├── lexer_action.go
│ │ ├── lexer_action_executor.go
│ │ ├── lexer_atn_simulator.go
│ │ ├── ll1_analyzer.go
│ │ ├── mutex.go
│ │ ├── mutex_nomutex.go
│ │ ├── nostatistics.go
│ │ ├── parser.go
│ │ ├── parser_atn_simulator.go
│ │ ├── parser_rule_context.go
│ │ ├── prediction_context.go
│ │ ├── prediction_context_cache.go
│ │ ├── prediction_mode.go
│ │ ├── recognizer.go
│ │ ├── rule_context.go
│ │ ├── semantic_context.go
│ │ ├── statistics.go
│ │ ├── stats_data.go
│ │ ├── token.go
│ │ ├── token_source.go
│ │ ├── token_stream.go
│ │ ├── tokenstream_rewriter.go
│ │ ├── trace_listener.go
│ │ ├── transition.go
│ │ ├── tree.go
│ │ ├── trees.go
│ │ └── utils.go
│ ├── asaskevich/
│ │ └── govalidator/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── arrays.go
│ │ ├── converter.go
│ │ ├── doc.go
│ │ ├── error.go
│ │ ├── numerics.go
│ │ ├── patterns.go
│ │ ├── types.go
│ │ ├── utils.go
│ │ ├── validator.go
│ │ └── wercker.yml
│ ├── aws/
│ │ └── aws-sdk-go/
│ │ ├── LICENSE.txt
│ │ ├── NOTICE.txt
│ │ ├── aws/
│ │ │ ├── arn/
│ │ │ │ └── arn.go
│ │ │ ├── auth/
│ │ │ │ └── bearer/
│ │ │ │ └── token.go
│ │ │ ├── awserr/
│ │ │ │ ├── error.go
│ │ │ │ └── types.go
│ │ │ ├── awsutil/
│ │ │ │ ├── copy.go
│ │ │ │ ├── equal.go
│ │ │ │ ├── path_value.go
│ │ │ │ ├── prettify.go
│ │ │ │ └── string_value.go
│ │ │ ├── client/
│ │ │ │ ├── client.go
│ │ │ │ ├── default_retryer.go
│ │ │ │ ├── logger.go
│ │ │ │ ├── metadata/
│ │ │ │ │ └── client_info.go
│ │ │ │ └── no_op_retryer.go
│ │ │ ├── config.go
│ │ │ ├── context_1_5.go
│ │ │ ├── context_1_9.go
│ │ │ ├── context_background_1_5.go
│ │ │ ├── context_background_1_7.go
│ │ │ ├── context_sleep.go
│ │ │ ├── convert_types.go
│ │ │ ├── corehandlers/
│ │ │ │ ├── awsinternal.go
│ │ │ │ ├── handlers.go
│ │ │ │ ├── param_validator.go
│ │ │ │ └── user_agent.go
│ │ │ ├── credentials/
│ │ │ │ ├── chain_provider.go
│ │ │ │ ├── context_background_go1.5.go
│ │ │ │ ├── context_background_go1.7.go
│ │ │ │ ├── context_go1.5.go
│ │ │ │ ├── context_go1.9.go
│ │ │ │ ├── credentials.go
│ │ │ │ ├── ec2rolecreds/
│ │ │ │ │ └── ec2_role_provider.go
│ │ │ │ ├── endpointcreds/
│ │ │ │ │ └── provider.go
│ │ │ │ ├── env_provider.go
│ │ │ │ ├── example.ini
│ │ │ │ ├── processcreds/
│ │ │ │ │ └── provider.go
│ │ │ │ ├── shared_credentials_provider.go
│ │ │ │ ├── ssocreds/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── os.go
│ │ │ │ │ ├── os_windows.go
│ │ │ │ │ ├── provider.go
│ │ │ │ │ ├── sso_cached_token.go
│ │ │ │ │ └── token_provider.go
│ │ │ │ ├── static_provider.go
│ │ │ │ └── stscreds/
│ │ │ │ ├── assume_role_provider.go
│ │ │ │ └── web_identity_provider.go
│ │ │ ├── csm/
│ │ │ │ ├── doc.go
│ │ │ │ ├── enable.go
│ │ │ │ ├── metric.go
│ │ │ │ ├── metric_chan.go
│ │ │ │ ├── metric_exception.go
│ │ │ │ └── reporter.go
│ │ │ ├── defaults/
│ │ │ │ ├── defaults.go
│ │ │ │ └── shared_config.go
│ │ │ ├── doc.go
│ │ │ ├── ec2metadata/
│ │ │ │ ├── api.go
│ │ │ │ ├── service.go
│ │ │ │ └── token_provider.go
│ │ │ ├── endpoints/
│ │ │ │ ├── decode.go
│ │ │ │ ├── defaults.go
│ │ │ │ ├── dep_service_ids.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── endpoints.go
│ │ │ │ ├── legacy_regions.go
│ │ │ │ ├── v3model.go
│ │ │ │ └── v3model_codegen.go
│ │ │ ├── errors.go
│ │ │ ├── jsonvalue.go
│ │ │ ├── logger.go
│ │ │ ├── request/
│ │ │ │ ├── connection_reset_error.go
│ │ │ │ ├── handlers.go
│ │ │ │ ├── http_request.go
│ │ │ │ ├── offset_reader.go
│ │ │ │ ├── request.go
│ │ │ │ ├── request_1_7.go
│ │ │ │ ├── request_1_8.go
│ │ │ │ ├── request_context.go
│ │ │ │ ├── request_context_1_6.go
│ │ │ │ ├── request_pagination.go
│ │ │ │ ├── retryer.go
│ │ │ │ ├── timeout_read_closer.go
│ │ │ │ ├── validation.go
│ │ │ │ └── waiter.go
│ │ │ ├── session/
│ │ │ │ ├── credentials.go
│ │ │ │ ├── custom_transport.go
│ │ │ │ ├── custom_transport_go1.12.go
│ │ │ │ ├── custom_transport_go1.5.go
│ │ │ │ ├── custom_transport_go1.6.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── env_config.go
│ │ │ │ ├── session.go
│ │ │ │ └── shared_config.go
│ │ │ ├── signer/
│ │ │ │ └── v4/
│ │ │ │ ├── header_rules.go
│ │ │ │ ├── options.go
│ │ │ │ ├── request_context_go1.5.go
│ │ │ │ ├── request_context_go1.7.go
│ │ │ │ ├── stream.go
│ │ │ │ ├── uri_path.go
│ │ │ │ └── v4.go
│ │ │ ├── types.go
│ │ │ ├── url.go
│ │ │ ├── url_1_7.go
│ │ │ └── version.go
│ │ ├── internal/
│ │ │ ├── context/
│ │ │ │ └── background_go1.5.go
│ │ │ ├── ini/
│ │ │ │ ├── ast.go
│ │ │ │ ├── comma_token.go
│ │ │ │ ├── comment_token.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── empty_token.go
│ │ │ │ ├── expression.go
│ │ │ │ ├── fuzz.go
│ │ │ │ ├── ini.go
│ │ │ │ ├── ini_lexer.go
│ │ │ │ ├── ini_parser.go
│ │ │ │ ├── literal_tokens.go
│ │ │ │ ├── newline_token.go
│ │ │ │ ├── number_helper.go
│ │ │ │ ├── op_tokens.go
│ │ │ │ ├── parse_error.go
│ │ │ │ ├── parse_stack.go
│ │ │ │ ├── sep_tokens.go
│ │ │ │ ├── skipper.go
│ │ │ │ ├── statement.go
│ │ │ │ ├── value_util.go
│ │ │ │ ├── visitor.go
│ │ │ │ ├── walker.go
│ │ │ │ └── ws_token.go
│ │ │ ├── s3shared/
│ │ │ │ ├── arn/
│ │ │ │ │ ├── accesspoint_arn.go
│ │ │ │ │ ├── arn.go
│ │ │ │ │ ├── outpost_arn.go
│ │ │ │ │ └── s3_object_lambda_arn.go
│ │ │ │ ├── endpoint_errors.go
│ │ │ │ ├── resource_request.go
│ │ │ │ └── s3err/
│ │ │ │ └── error.go
│ │ │ ├── sdkio/
│ │ │ │ ├── byte.go
│ │ │ │ ├── io_go1.6.go
│ │ │ │ └── io_go1.7.go
│ │ │ ├── sdkmath/
│ │ │ │ ├── floor.go
│ │ │ │ └── floor_go1.9.go
│ │ │ ├── sdkrand/
│ │ │ │ ├── locked_source.go
│ │ │ │ ├── read.go
│ │ │ │ └── read_1_5.go
│ │ │ ├── sdkuri/
│ │ │ │ └── path.go
│ │ │ ├── shareddefaults/
│ │ │ │ ├── ecs_container.go
│ │ │ │ ├── shared_config.go
│ │ │ │ ├── shared_config_resolve_home.go
│ │ │ │ └── shared_config_resolve_home_go1.12.go
│ │ │ ├── strings/
│ │ │ │ └── strings.go
│ │ │ └── sync/
│ │ │ └── singleflight/
│ │ │ ├── LICENSE
│ │ │ └── singleflight.go
│ │ ├── private/
│ │ │ ├── checksum/
│ │ │ │ └── content_md5.go
│ │ │ └── protocol/
│ │ │ ├── eventstream/
│ │ │ │ ├── debug.go
│ │ │ │ ├── decode.go
│ │ │ │ ├── encode.go
│ │ │ │ ├── error.go
│ │ │ │ ├── eventstreamapi/
│ │ │ │ │ ├── error.go
│ │ │ │ │ ├── reader.go
│ │ │ │ │ ├── shared.go
│ │ │ │ │ ├── signer.go
│ │ │ │ │ ├── stream_writer.go
│ │ │ │ │ ├── transport.go
│ │ │ │ │ ├── transport_go1.17.go
│ │ │ │ │ └── writer.go
│ │ │ │ ├── header.go
│ │ │ │ ├── header_value.go
│ │ │ │ └── message.go
│ │ │ ├── host.go
│ │ │ ├── host_prefix.go
│ │ │ ├── idempotency.go
│ │ │ ├── json/
│ │ │ │ └── jsonutil/
│ │ │ │ ├── build.go
│ │ │ │ └── unmarshal.go
│ │ │ ├── jsonrpc/
│ │ │ │ ├── jsonrpc.go
│ │ │ │ └── unmarshal_error.go
│ │ │ ├── jsonvalue.go
│ │ │ ├── payload.go
│ │ │ ├── protocol.go
│ │ │ ├── query/
│ │ │ │ ├── build.go
│ │ │ │ ├── queryutil/
│ │ │ │ │ └── queryutil.go
│ │ │ │ ├── unmarshal.go
│ │ │ │ └── unmarshal_error.go
│ │ │ ├── rest/
│ │ │ │ ├── build.go
│ │ │ │ ├── payload.go
│ │ │ │ └── unmarshal.go
│ │ │ ├── restjson/
│ │ │ │ ├── restjson.go
│ │ │ │ └── unmarshal_error.go
│ │ │ ├── restxml/
│ │ │ │ └── restxml.go
│ │ │ ├── timestamp.go
│ │ │ ├── unmarshal.go
│ │ │ ├── unmarshal_error.go
│ │ │ └── xml/
│ │ │ └── xmlutil/
│ │ │ ├── build.go
│ │ │ ├── sort.go
│ │ │ ├── unmarshal.go
│ │ │ └── xml_to_struct.go
│ │ └── service/
│ │ ├── s3/
│ │ │ ├── api.go
│ │ │ ├── body_hash.go
│ │ │ ├── bucket_location.go
│ │ │ ├── customizations.go
│ │ │ ├── doc.go
│ │ │ ├── doc_custom.go
│ │ │ ├── endpoint.go
│ │ │ ├── endpoint_builder.go
│ │ │ ├── errors.go
│ │ │ ├── host_style_bucket.go
│ │ │ ├── platform_handlers.go
│ │ │ ├── platform_handlers_go1.6.go
│ │ │ ├── s3iface/
│ │ │ │ └── interface.go
│ │ │ ├── s3manager/
│ │ │ │ ├── arn.go
│ │ │ │ ├── batch.go
│ │ │ │ ├── bucket_region.go
│ │ │ │ ├── buffered_read_seeker.go
│ │ │ │ ├── default_read_seeker_write_to.go
│ │ │ │ ├── default_read_seeker_write_to_windows.go
│ │ │ │ ├── default_writer_read_from.go
│ │ │ │ ├── default_writer_read_from_windows.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── download.go
│ │ │ │ ├── pool.go
│ │ │ │ ├── read_seeker_write_to.go
│ │ │ │ ├── upload.go
│ │ │ │ ├── upload_input.go
│ │ │ │ └── writer_read_from.go
│ │ │ ├── service.go
│ │ │ ├── sse.go
│ │ │ ├── statusok_error.go
│ │ │ ├── unmarshal_error.go
│ │ │ └── waiters.go
│ │ ├── sso/
│ │ │ ├── api.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── service.go
│ │ │ └── ssoiface/
│ │ │ └── interface.go
│ │ ├── ssooidc/
│ │ │ ├── api.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ └── service.go
│ │ └── sts/
│ │ ├── api.go
│ │ ├── customizations.go
│ │ ├── doc.go
│ │ ├── errors.go
│ │ ├── service.go
│ │ └── stsiface/
│ │ └── interface.go
│ ├── beorn7/
│ │ └── perks/
│ │ ├── LICENSE
│ │ └── quantile/
│ │ ├── exampledata.txt
│ │ └── stream.go
│ ├── blang/
│ │ └── semver/
│ │ └── v4/
│ │ ├── LICENSE
│ │ ├── json.go
│ │ ├── range.go
│ │ ├── semver.go
│ │ ├── sort.go
│ │ └── sql.go
│ ├── cenkalti/
│ │ └── backoff/
│ │ └── v5/
│ │ ├── .gitignore
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── backoff.go
│ │ ├── error.go
│ │ ├── exponential.go
│ │ ├── retry.go
│ │ ├── ticker.go
│ │ └── timer.go
│ ├── cespare/
│ │ └── xxhash/
│ │ └── v2/
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── testall.sh
│ │ ├── xxhash.go
│ │ ├── xxhash_amd64.s
│ │ ├── xxhash_arm64.s
│ │ ├── xxhash_asm.go
│ │ ├── xxhash_other.go
│ │ ├── xxhash_safe.go
│ │ └── xxhash_unsafe.go
│ ├── chai2010/
│ │ └── gettext-go/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── doc.go
│ │ ├── fs.go
│ │ ├── fs_json.go
│ │ ├── fs_os.go
│ │ ├── fs_zip.go
│ │ ├── gettext.go
│ │ ├── locale.go
│ │ ├── mo/
│ │ │ ├── doc.go
│ │ │ ├── encoder.go
│ │ │ ├── file.go
│ │ │ ├── header.go
│ │ │ ├── message.go
│ │ │ └── util.go
│ │ ├── plural/
│ │ │ ├── doc.go
│ │ │ ├── formula.go
│ │ │ └── table.go
│ │ ├── po/
│ │ │ ├── comment.go
│ │ │ ├── doc.go
│ │ │ ├── file.go
│ │ │ ├── header.go
│ │ │ ├── line_reader.go
│ │ │ ├── message.go
│ │ │ ├── re.go
│ │ │ └── util.go
│ │ ├── tr.go
│ │ └── util.go
│ ├── cloudflare/
│ │ └── circl/
│ │ ├── LICENSE
│ │ ├── dh/
│ │ │ ├── x25519/
│ │ │ │ ├── curve.go
│ │ │ │ ├── curve_amd64.go
│ │ │ │ ├── curve_amd64.h
│ │ │ │ ├── curve_amd64.s
│ │ │ │ ├── curve_generic.go
│ │ │ │ ├── curve_noasm.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── key.go
│ │ │ │ └── table.go
│ │ │ └── x448/
│ │ │ ├── curve.go
│ │ │ ├── curve_amd64.go
│ │ │ ├── curve_amd64.h
│ │ │ ├── curve_amd64.s
│ │ │ ├── curve_generic.go
│ │ │ ├── curve_noasm.go
│ │ │ ├── doc.go
│ │ │ ├── key.go
│ │ │ └── table.go
│ │ ├── ecc/
│ │ │ └── goldilocks/
│ │ │ ├── constants.go
│ │ │ ├── curve.go
│ │ │ ├── isogeny.go
│ │ │ ├── point.go
│ │ │ ├── scalar.go
│ │ │ ├── twist.go
│ │ │ ├── twistPoint.go
│ │ │ ├── twistTables.go
│ │ │ └── twist_basemult.go
│ │ ├── internal/
│ │ │ ├── conv/
│ │ │ │ └── conv.go
│ │ │ └── sha3/
│ │ │ ├── doc.go
│ │ │ ├── hashes.go
│ │ │ ├── keccakf.go
│ │ │ ├── rc.go
│ │ │ ├── sha3.go
│ │ │ ├── sha3_s390x.s
│ │ │ ├── shake.go
│ │ │ ├── xor.go
│ │ │ ├── xor_generic.go
│ │ │ └── xor_unaligned.go
│ │ ├── math/
│ │ │ ├── fp25519/
│ │ │ │ ├── fp.go
│ │ │ │ ├── fp_amd64.go
│ │ │ │ ├── fp_amd64.h
│ │ │ │ ├── fp_amd64.s
│ │ │ │ ├── fp_generic.go
│ │ │ │ └── fp_noasm.go
│ │ │ ├── fp448/
│ │ │ │ ├── fp.go
│ │ │ │ ├── fp_amd64.go
│ │ │ │ ├── fp_amd64.h
│ │ │ │ ├── fp_amd64.s
│ │ │ │ ├── fp_generic.go
│ │ │ │ ├── fp_noasm.go
│ │ │ │ └── fuzzer.go
│ │ │ ├── integer.go
│ │ │ ├── mlsbset/
│ │ │ │ ├── mlsbset.go
│ │ │ │ └── power.go
│ │ │ ├── primes.go
│ │ │ └── wnaf.go
│ │ └── sign/
│ │ ├── ed25519/
│ │ │ ├── ed25519.go
│ │ │ ├── modular.go
│ │ │ ├── mult.go
│ │ │ ├── point.go
│ │ │ ├── pubkey.go
│ │ │ ├── pubkey112.go
│ │ │ ├── signapi.go
│ │ │ └── tables.go
│ │ ├── ed448/
│ │ │ ├── ed448.go
│ │ │ └── signapi.go
│ │ └── sign.go
│ ├── containerd/
│ │ ├── containerd/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ ├── archive/
│ │ │ │ └── compression/
│ │ │ │ ├── compression.go
│ │ │ │ └── compression_fuzzer.go
│ │ │ ├── content/
│ │ │ │ ├── adaptor.go
│ │ │ │ ├── content.go
│ │ │ │ ├── helpers.go
│ │ │ │ └── local/
│ │ │ │ ├── content_local_fuzzer.go
│ │ │ │ ├── locks.go
│ │ │ │ ├── readerat.go
│ │ │ │ ├── store.go
│ │ │ │ ├── store_bsd.go
│ │ │ │ ├── store_openbsd.go
│ │ │ │ ├── store_unix.go
│ │ │ │ ├── store_windows.go
│ │ │ │ ├── test_helper.go
│ │ │ │ └── writer.go
│ │ │ ├── errdefs/
│ │ │ │ ├── errors.go
│ │ │ │ └── grpc.go
│ │ │ ├── filters/
│ │ │ │ ├── adaptor.go
│ │ │ │ ├── filter.go
│ │ │ │ ├── parser.go
│ │ │ │ ├── quote.go
│ │ │ │ └── scanner.go
│ │ │ ├── images/
│ │ │ │ ├── annotations.go
│ │ │ │ ├── diffid.go
│ │ │ │ ├── handlers.go
│ │ │ │ ├── image.go
│ │ │ │ ├── importexport.go
│ │ │ │ ├── labels.go
│ │ │ │ └── mediatypes.go
│ │ │ ├── labels/
│ │ │ │ ├── labels.go
│ │ │ │ └── validate.go
│ │ │ ├── pkg/
│ │ │ │ └── randutil/
│ │ │ │ └── randutil.go
│ │ │ ├── reference/
│ │ │ │ └── reference.go
│ │ │ ├── remotes/
│ │ │ │ ├── docker/
│ │ │ │ │ ├── auth/
│ │ │ │ │ │ ├── fetch.go
│ │ │ │ │ │ └── parse.go
│ │ │ │ │ ├── authorizer.go
│ │ │ │ │ ├── converter.go
│ │ │ │ │ ├── converter_fuzz.go
│ │ │ │ │ ├── errcode.go
│ │ │ │ │ ├── errdesc.go
│ │ │ │ │ ├── fetcher.go
│ │ │ │ │ ├── fetcher_fuzz.go
│ │ │ │ │ ├── handler.go
│ │ │ │ │ ├── httpreadseeker.go
│ │ │ │ │ ├── pusher.go
│ │ │ │ │ ├── registry.go
│ │ │ │ │ ├── resolver.go
│ │ │ │ │ ├── resolver_unix.go
│ │ │ │ │ ├── resolver_windows.go
│ │ │ │ │ ├── schema1/
│ │ │ │ │ │ └── converter.go
│ │ │ │ │ ├── scope.go
│ │ │ │ │ └── status.go
│ │ │ │ ├── errors/
│ │ │ │ │ └── errors.go
│ │ │ │ ├── handlers.go
│ │ │ │ └── resolver.go
│ │ │ ├── tracing/
│ │ │ │ ├── helpers.go
│ │ │ │ ├── log.go
│ │ │ │ └── tracing.go
│ │ │ └── version/
│ │ │ └── version.go
│ │ ├── errdefs/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── errors.go
│ │ │ ├── pkg/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── errhttp/
│ │ │ │ │ └── http.go
│ │ │ │ └── internal/
│ │ │ │ └── cause/
│ │ │ │ └── cause.go
│ │ │ └── resolve.go
│ │ ├── log/
│ │ │ ├── .golangci.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── context.go
│ │ ├── platforms/
│ │ │ ├── .gitattributes
│ │ │ ├── .golangci.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── compare.go
│ │ │ ├── cpuinfo.go
│ │ │ ├── cpuinfo_linux.go
│ │ │ ├── cpuinfo_other.go
│ │ │ ├── database.go
│ │ │ ├── defaults.go
│ │ │ ├── defaults_darwin.go
│ │ │ ├── defaults_freebsd.go
│ │ │ ├── defaults_unix.go
│ │ │ ├── defaults_windows.go
│ │ │ ├── errors.go
│ │ │ ├── platform_compat_windows.go
│ │ │ ├── platforms.go
│ │ │ ├── platforms_other.go
│ │ │ └── platforms_windows.go
│ │ └── stargz-snapshotter/
│ │ └── estargz/
│ │ ├── LICENSE
│ │ ├── build.go
│ │ ├── errorutil/
│ │ │ └── errors.go
│ │ ├── estargz.go
│ │ ├── gzip.go
│ │ ├── testutil.go
│ │ └── types.go
│ ├── coreos/
│ │ ├── go-oidc/
│ │ │ └── v3/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── oidc/
│ │ │ ├── jose.go
│ │ │ ├── jwks.go
│ │ │ ├── oidc.go
│ │ │ └── verify.go
│ │ ├── go-semver/
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── semver/
│ │ │ ├── semver.go
│ │ │ └── sort.go
│ │ └── go-systemd/
│ │ └── v22/
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ ├── daemon/
│ │ │ ├── sdnotify.go
│ │ │ └── watchdog.go
│ │ └── journal/
│ │ ├── journal.go
│ │ ├── journal_unix.go
│ │ └── journal_windows.go
│ ├── cyphar/
│ │ └── filepath-securejoin/
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── VERSION
│ │ ├── doc.go
│ │ ├── gocompat_errors_go120.go
│ │ ├── gocompat_errors_unsupported.go
│ │ ├── gocompat_generics_go121.go
│ │ ├── gocompat_generics_unsupported.go
│ │ ├── join.go
│ │ ├── lookup_linux.go
│ │ ├── mkdir_linux.go
│ │ ├── open_linux.go
│ │ ├── openat2_linux.go
│ │ ├── openat_linux.go
│ │ ├── procfs_linux.go
│ │ └── vfs.go
│ ├── davecgh/
│ │ └── go-spew/
│ │ ├── LICENSE
│ │ └── spew/
│ │ ├── bypass.go
│ │ ├── bypasssafe.go
│ │ ├── common.go
│ │ ├── config.go
│ │ ├── doc.go
│ │ ├── dump.go
│ │ ├── format.go
│ │ └── spew.go
│ ├── distribution/
│ │ └── reference/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── CODE-OF-CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── GOVERNANCE.md
│ │ ├── LICENSE
│ │ ├── MAINTAINERS
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── helpers.go
│ │ ├── normalize.go
│ │ ├── reference.go
│ │ ├── regexp.go
│ │ └── sort.go
│ ├── docker/
│ │ ├── cli/
│ │ │ ├── AUTHORS
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ └── cli/
│ │ │ └── config/
│ │ │ ├── config.go
│ │ │ ├── configfile/
│ │ │ │ ├── file.go
│ │ │ │ ├── file_unix.go
│ │ │ │ └── file_windows.go
│ │ │ ├── credentials/
│ │ │ │ ├── credentials.go
│ │ │ │ ├── default_store.go
│ │ │ │ ├── default_store_darwin.go
│ │ │ │ ├── default_store_linux.go
│ │ │ │ ├── default_store_unsupported.go
│ │ │ │ ├── default_store_windows.go
│ │ │ │ ├── file_store.go
│ │ │ │ └── native_store.go
│ │ │ └── types/
│ │ │ └── authconfig.go
│ │ ├── distribution/
│ │ │ ├── .dockerignore
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── .mailmap
│ │ │ ├── BUILDING.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── Dockerfile
│ │ │ ├── LICENSE
│ │ │ ├── MAINTAINERS
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── ROADMAP.md
│ │ │ ├── blobs.go
│ │ │ ├── doc.go
│ │ │ ├── docker-bake.hcl
│ │ │ ├── errors.go
│ │ │ ├── manifest/
│ │ │ │ ├── doc.go
│ │ │ │ ├── schema2/
│ │ │ │ │ ├── builder.go
│ │ │ │ │ └── manifest.go
│ │ │ │ └── versioned.go
│ │ │ ├── manifests.go
│ │ │ ├── metrics/
│ │ │ │ └── prometheus.go
│ │ │ ├── registry/
│ │ │ │ ├── api/
│ │ │ │ │ ├── errcode/
│ │ │ │ │ │ ├── errors.go
│ │ │ │ │ │ ├── handler.go
│ │ │ │ │ │ └── register.go
│ │ │ │ │ └── v2/
│ │ │ │ │ ├── descriptors.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── headerparser.go
│ │ │ │ │ ├── routes.go
│ │ │ │ │ └── urls.go
│ │ │ │ ├── client/
│ │ │ │ │ ├── auth/
│ │ │ │ │ │ ├── api_version.go
│ │ │ │ │ │ ├── challenge/
│ │ │ │ │ │ │ ├── addr.go
│ │ │ │ │ │ │ └── authchallenge.go
│ │ │ │ │ │ └── session.go
│ │ │ │ │ ├── blob_writer.go
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── repository.go
│ │ │ │ │ └── transport/
│ │ │ │ │ ├── http_reader.go
│ │ │ │ │ └── transport.go
│ │ │ │ └── storage/
│ │ │ │ └── cache/
│ │ │ │ ├── cache.go
│ │ │ │ ├── cachedblobdescriptorstore.go
│ │ │ │ └── memory/
│ │ │ │ └── memory.go
│ │ │ ├── registry.go
│ │ │ ├── tags.go
│ │ │ └── vendor.conf
│ │ ├── docker/
│ │ │ ├── AUTHORS
│ │ │ ├── LICENSE
│ │ │ ├── NOTICE
│ │ │ ├── api/
│ │ │ │ ├── README.md
│ │ │ │ ├── common.go
│ │ │ │ ├── swagger-gen.yaml
│ │ │ │ ├── swagger.yaml
│ │ │ │ └── types/
│ │ │ │ ├── blkiodev/
│ │ │ │ │ └── blkio.go
│ │ │ │ ├── build/
│ │ │ │ │ ├── build.go
│ │ │ │ │ ├── cache.go
│ │ │ │ │ └── disk_usage.go
│ │ │ │ ├── checkpoint/
│ │ │ │ │ ├── list.go
│ │ │ │ │ └── options.go
│ │ │ │ ├── client.go
│ │ │ │ ├── common/
│ │ │ │ │ └── id_response.go
│ │ │ │ ├── container/
│ │ │ │ │ ├── change_type.go
│ │ │ │ │ ├── change_types.go
│ │ │ │ │ ├── commit.go
│ │ │ │ │ ├── config.go
│ │ │ │ │ ├── container.go
│ │ │ │ │ ├── create_request.go
│ │ │ │ │ ├── create_response.go
│ │ │ │ │ ├── disk_usage.go
│ │ │ │ │ ├── errors.go
│ │ │ │ │ ├── exec.go
│ │ │ │ │ ├── filesystem_change.go
│ │ │ │ │ ├── health.go
│ │ │ │ │ ├── hostconfig.go
│ │ │ │ │ ├── hostconfig_unix.go
│ │ │ │ │ ├── hostconfig_windows.go
│ │ │ │ │ ├── network_settings.go
│ │ │ │ │ ├── options.go
│ │ │ │ │ ├── port.go
│ │ │ │ │ ├── state.go
│ │ │ │ │ ├── stats.go
│ │ │ │ │ ├── top_response.go
│ │ │ │ │ ├── update_response.go
│ │ │ │ │ ├── wait_exit_error.go
│ │ │ │ │ ├── wait_response.go
│ │ │ │ │ └── waitcondition.go
│ │ │ │ ├── error_response.go
│ │ │ │ ├── error_response_ext.go
│ │ │ │ ├── events/
│ │ │ │ │ └── events.go
│ │ │ │ ├── filters/
│ │ │ │ │ ├── errors.go
│ │ │ │ │ └── parse.go
│ │ │ │ ├── image/
│ │ │ │ │ ├── delete_response.go
│ │ │ │ │ ├── disk_usage.go
│ │ │ │ │ ├── image.go
│ │ │ │ │ ├── image_history.go
│ │ │ │ │ ├── image_inspect.go
│ │ │ │ │ ├── manifest.go
│ │ │ │ │ ├── opts.go
│ │ │ │ │ └── summary.go
│ │ │ │ ├── mount/
│ │ │ │ │ └── mount.go
│ │ │ │ ├── network/
│ │ │ │ │ ├── create_response.go
│ │ │ │ │ ├── endpoint.go
│ │ │ │ │ ├── ipam.go
│ │ │ │ │ └── network.go
│ │ │ │ ├── plugin.go
│ │ │ │ ├── plugin_device.go
│ │ │ │ ├── plugin_env.go
│ │ │ │ ├── plugin_interface_type.go
│ │ │ │ ├── plugin_mount.go
│ │ │ │ ├── plugin_responses.go
│ │ │ │ ├── registry/
│ │ │ │ │ ├── authconfig.go
│ │ │ │ │ ├── authenticate.go
│ │ │ │ │ ├── registry.go
│ │ │ │ │ └── search.go
│ │ │ │ ├── storage/
│ │ │ │ │ └── driver_data.go
│ │ │ │ ├── strslice/
│ │ │ │ │ └── strslice.go
│ │ │ │ ├── swarm/
│ │ │ │ │ ├── common.go
│ │ │ │ │ ├── config.go
│ │ │ │ │ ├── container.go
│ │ │ │ │ ├── network.go
│ │ │ │ │ ├── node.go
│ │ │ │ │ ├── runtime/
│ │ │ │ │ │ ├── gen.go
│ │ │ │ │ │ ├── plugin.pb.go
│ │ │ │ │ │ └── plugin.proto
│ │ │ │ │ ├── runtime.go
│ │ │ │ │ ├── secret.go
│ │ │ │ │ ├── service.go
│ │ │ │ │ ├── service_create_response.go
│ │ │ │ │ ├── service_update_response.go
│ │ │ │ │ ├── swarm.go
│ │ │ │ │ └── task.go
│ │ │ │ ├── system/
│ │ │ │ │ ├── disk_usage.go
│ │ │ │ │ ├── info.go
│ │ │ │ │ ├── runtime.go
│ │ │ │ │ └── security_opts.go
│ │ │ │ ├── time/
│ │ │ │ │ └── timestamp.go
│ │ │ │ ├── types.go
│ │ │ │ ├── types_deprecated.go
│ │ │ │ ├── versions/
│ │ │ │ │ └── compare.go
│ │ │ │ └── volume/
│ │ │ │ ├── cluster_volume.go
│ │ │ │ ├── create_options.go
│ │ │ │ ├── disk_usage.go
│ │ │ │ ├── list_response.go
│ │ │ │ ├── options.go
│ │ │ │ ├── volume.go
│ │ │ │ └── volume_update.go
│ │ │ ├── client/
│ │ │ │ ├── README.md
│ │ │ │ ├── build_cancel.go
│ │ │ │ ├── build_prune.go
│ │ │ │ ├── checkpoint.go
│ │ │ │ ├── checkpoint_create.go
│ │ │ │ ├── checkpoint_delete.go
│ │ │ │ ├── checkpoint_list.go
│ │ │ │ ├── client.go
│ │ │ │ ├── client_deprecated.go
│ │ │ │ ├── client_interfaces.go
│ │ │ │ ├── client_unix.go
│ │ │ │ ├── client_windows.go
│ │ │ │ ├── config_create.go
│ │ │ │ ├── config_inspect.go
│ │ │ │ ├── config_list.go
│ │ │ │ ├── config_remove.go
│ │ │ │ ├── config_update.go
│ │ │ │ ├── container_attach.go
│ │ │ │ ├── container_commit.go
│ │ │ │ ├── container_copy.go
│ │ │ │ ├── container_create.go
│ │ │ │ ├── container_diff.go
│ │ │ │ ├── container_exec.go
│ │ │ │ ├── container_export.go
│ │ │ │ ├── container_inspect.go
│ │ │ │ ├── container_kill.go
│ │ │ │ ├── container_list.go
│ │ │ │ ├── container_logs.go
│ │ │ │ ├── container_pause.go
│ │ │ │ ├── container_prune.go
│ │ │ │ ├── container_remove.go
│ │ │ │ ├── container_rename.go
│ │ │ │ ├── container_resize.go
│ │ │ │ ├── container_restart.go
│ │ │ │ ├── container_start.go
│ │ │ │ ├── container_stats.go
│ │ │ │ ├── container_stop.go
│ │ │ │ ├── container_top.go
│ │ │ │ ├── container_unpause.go
│ │ │ │ ├── container_update.go
│ │ │ │ ├── container_wait.go
│ │ │ │ ├── disk_usage.go
│ │ │ │ ├── distribution_inspect.go
│ │ │ │ ├── envvars.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── events.go
│ │ │ │ ├── hijack.go
│ │ │ │ ├── image_build.go
│ │ │ │ ├── image_create.go
│ │ │ │ ├── image_history.go
│ │ │ │ ├── image_history_opts.go
│ │ │ │ ├── image_import.go
│ │ │ │ ├── image_inspect.go
│ │ │ │ ├── image_inspect_opts.go
│ │ │ │ ├── image_list.go
│ │ │ │ ├── image_load.go
│ │ │ │ ├── image_load_opts.go
│ │ │ │ ├── image_prune.go
│ │ │ │ ├── image_pull.go
│ │ │ │ ├── image_push.go
│ │ │ │ ├── image_remove.go
│ │ │ │ ├── image_save.go
│ │ │ │ ├── image_save_opts.go
│ │ │ │ ├── image_search.go
│ │ │ │ ├── image_tag.go
│ │ │ │ ├── info.go
│ │ │ │ ├── login.go
│ │ │ │ ├── network_connect.go
│ │ │ │ ├── network_create.go
│ │ │ │ ├── network_disconnect.go
│ │ │ │ ├── network_inspect.go
│ │ │ │ ├── network_list.go
│ │ │ │ ├── network_prune.go
│ │ │ │ ├── network_remove.go
│ │ │ │ ├── node_inspect.go
│ │ │ │ ├── node_list.go
│ │ │ │ ├── node_remove.go
│ │ │ │ ├── node_update.go
│ │ │ │ ├── options.go
│ │ │ │ ├── ping.go
│ │ │ │ ├── plugin_create.go
│ │ │ │ ├── plugin_disable.go
│ │ │ │ ├── plugin_enable.go
│ │ │ │ ├── plugin_inspect.go
│ │ │ │ ├── plugin_install.go
│ │ │ │ ├── plugin_list.go
│ │ │ │ ├── plugin_push.go
│ │ │ │ ├── plugin_remove.go
│ │ │ │ ├── plugin_set.go
│ │ │ │ ├── plugin_upgrade.go
│ │ │ │ ├── request.go
│ │ │ │ ├── secret_create.go
│ │ │ │ ├── secret_inspect.go
│ │ │ │ ├── secret_list.go
│ │ │ │ ├── secret_remove.go
│ │ │ │ ├── secret_update.go
│ │ │ │ ├── service_create.go
│ │ │ │ ├── service_inspect.go
│ │ │ │ ├── service_list.go
│ │ │ │ ├── service_logs.go
│ │ │ │ ├── service_remove.go
│ │ │ │ ├── service_update.go
│ │ │ │ ├── swarm_get_unlock_key.go
│ │ │ │ ├── swarm_init.go
│ │ │ │ ├── swarm_inspect.go
│ │ │ │ ├── swarm_join.go
│ │ │ │ ├── swarm_leave.go
│ │ │ │ ├── swarm_unlock.go
│ │ │ │ ├── swarm_update.go
│ │ │ │ ├── task_inspect.go
│ │ │ │ ├── task_list.go
│ │ │ │ ├── task_logs.go
│ │ │ │ ├── utils.go
│ │ │ │ ├── version.go
│ │ │ │ ├── volume_create.go
│ │ │ │ ├── volume_inspect.go
│ │ │ │ ├── volume_list.go
│ │ │ │ ├── volume_prune.go
│ │ │ │ ├── volume_remove.go
│ │ │ │ └── volume_update.go
│ │ │ ├── errdefs/
│ │ │ │ ├── defs.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── helpers.go
│ │ │ │ ├── http_helpers.go
│ │ │ │ └── is.go
│ │ │ ├── internal/
│ │ │ │ ├── lazyregexp/
│ │ │ │ │ └── lazyregexp.go
│ │ │ │ └── multierror/
│ │ │ │ └── multierror.go
│ │ │ ├── pkg/
│ │ │ │ └── homedir/
│ │ │ │ ├── homedir.go
│ │ │ │ ├── homedir_linux.go
│ │ │ │ └── homedir_others.go
│ │ │ └── registry/
│ │ │ ├── auth.go
│ │ │ ├── config.go
│ │ │ ├── config_unix.go
│ │ │ ├── config_windows.go
│ │ │ ├── errors.go
│ │ │ ├── registry.go
│ │ │ ├── search.go
│ │ │ ├── search_endpoint_v1.go
│ │ │ ├── search_session.go
│ │ │ ├── service.go
│ │ │ ├── service_v2.go
│ │ │ └── types.go
│ │ ├── docker-credential-helpers/
│ │ │ ├── LICENSE
│ │ │ ├── client/
│ │ │ │ ├── client.go
│ │ │ │ └── command.go
│ │ │ └── credentials/
│ │ │ ├── credentials.go
│ │ │ ├── error.go
│ │ │ ├── helper.go
│ │ │ └── version.go
│ │ ├── go-connections/
│ │ │ ├── LICENSE
│ │ │ ├── nat/
│ │ │ │ ├── nat.go
│ │ │ │ ├── parse.go
│ │ │ │ └── sort.go
│ │ │ ├── sockets/
│ │ │ │ ├── README.md
│ │ │ │ ├── inmem_socket.go
│ │ │ │ ├── proxy.go
│ │ │ │ ├── sockets.go
│ │ │ │ ├── sockets_unix.go
│ │ │ │ ├── sockets_windows.go
│ │ │ │ ├── tcp_socket.go
│ │ │ │ └── unix_socket.go
│ │ │ └── tlsconfig/
│ │ │ ├── certpool.go
│ │ │ ├── config.go
│ │ │ └── config_client_ciphers.go
│ │ ├── go-metrics/
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── LICENSE.docs
│ │ │ ├── NOTICE
│ │ │ ├── README.md
│ │ │ ├── counter.go
│ │ │ ├── docs.go
│ │ │ ├── gauge.go
│ │ │ ├── handler.go
│ │ │ ├── helpers.go
│ │ │ ├── namespace.go
│ │ │ ├── register.go
│ │ │ ├── timer.go
│ │ │ └── unit.go
│ │ └── go-units/
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── MAINTAINERS
│ │ ├── README.md
│ │ ├── circle.yml
│ │ ├── duration.go
│ │ ├── size.go
│ │ └── ulimit.go
│ ├── emicklei/
│ │ ├── go-restful/
│ │ │ └── v3/
│ │ │ ├── .gitignore
│ │ │ ├── .goconvey
│ │ │ ├── .travis.yml
│ │ │ ├── CHANGES.md
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── SECURITY.md
│ │ │ ├── Srcfile
│ │ │ ├── bench_test.sh
│ │ │ ├── compress.go
│ │ │ ├── compressor_cache.go
│ │ │ ├── compressor_pools.go
│ │ │ ├── compressors.go
│ │ │ ├── constants.go
│ │ │ ├── container.go
│ │ │ ├── cors_filter.go
│ │ │ ├── coverage.sh
│ │ │ ├── curly.go
│ │ │ ├── curly_route.go
│ │ │ ├── custom_verb.go
│ │ │ ├── doc.go
│ │ │ ├── entity_accessors.go
│ │ │ ├── extensions.go
│ │ │ ├── filter.go
│ │ │ ├── filter_adapter.go
│ │ │ ├── jsr311.go
│ │ │ ├── log/
│ │ │ │ └── log.go
│ │ │ ├── logger.go
│ │ │ ├── mime.go
│ │ │ ├── options_filter.go
│ │ │ ├── parameter.go
│ │ │ ├── path_expression.go
│ │ │ ├── path_processor.go
│ │ │ ├── request.go
│ │ │ ├── response.go
│ │ │ ├── route.go
│ │ │ ├── route_builder.go
│ │ │ ├── route_reader.go
│ │ │ ├── router.go
│ │ │ ├── service_error.go
│ │ │ ├── web_service.go
│ │ │ └── web_service_container.go
│ │ └── go-restful-openapi/
│ │ └── v2/
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── .travis.yml
│ │ ├── CHANGES.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── build_definitions.go
│ │ ├── build_path.go
│ │ ├── config.go
│ │ ├── definition_builder.go
│ │ ├── definition_name.go
│ │ ├── lookup.go
│ │ ├── property_ext.go
│ │ └── spec_resource.go
│ ├── emirpasic/
│ │ └── gods/
│ │ ├── LICENSE
│ │ ├── containers/
│ │ │ ├── containers.go
│ │ │ ├── enumerable.go
│ │ │ ├── iterator.go
│ │ │ └── serialization.go
│ │ ├── lists/
│ │ │ ├── arraylist/
│ │ │ │ ├── arraylist.go
│ │ │ │ ├── enumerable.go
│ │ │ │ ├── iterator.go
│ │ │ │ └── serialization.go
│ │ │ └── lists.go
│ │ ├── trees/
│ │ │ ├── binaryheap/
│ │ │ │ ├── binaryheap.go
│ │ │ │ ├── iterator.go
│ │ │ │ └── serialization.go
│ │ │ └── trees.go
│ │ └── utils/
│ │ ├── comparator.go
│ │ ├── sort.go
│ │ └── utils.go
│ ├── evanphx/
│ │ └── json-patch/
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── errors.go
│ │ ├── merge.go
│ │ ├── patch.go
│ │ └── v5/
│ │ ├── LICENSE
│ │ ├── errors.go
│ │ ├── internal/
│ │ │ └── json/
│ │ │ ├── decode.go
│ │ │ ├── encode.go
│ │ │ ├── fold.go
│ │ │ ├── fuzz.go
│ │ │ ├── indent.go
│ │ │ ├── scanner.go
│ │ │ ├── stream.go
│ │ │ ├── tables.go
│ │ │ └── tags.go
│ │ ├── merge.go
│ │ └── patch.go
│ ├── exponent-io/
│ │ └── jsonpath/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── decoder.go
│ │ ├── path.go
│ │ └── pathaction.go
│ ├── fatih/
│ │ └── color/
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── color.go
│ │ ├── color_windows.go
│ │ └── doc.go
│ ├── felixge/
│ │ └── httpsnoop/
│ │ ├── .gitignore
│ │ ├── LICENSE.txt
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── capture_metrics.go
│ │ ├── docs.go
│ │ ├── wrap_generated_gteq_1.8.go
│ │ └── wrap_generated_lt_1.8.go
│ ├── fsnotify/
│ │ └── fsnotify/
│ │ ├── .cirrus.yml
│ │ ├── .gitignore
│ │ ├── .mailmap
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── backend_fen.go
│ │ ├── backend_inotify.go
│ │ ├── backend_kqueue.go
│ │ ├── backend_other.go
│ │ ├── backend_windows.go
│ │ ├── fsnotify.go
│ │ ├── internal/
│ │ │ ├── darwin.go
│ │ │ ├── debug_darwin.go
│ │ │ ├── debug_dragonfly.go
│ │ │ ├── debug_freebsd.go
│ │ │ ├── debug_kqueue.go
│ │ │ ├── debug_linux.go
│ │ │ ├── debug_netbsd.go
│ │ │ ├── debug_openbsd.go
│ │ │ ├── debug_solaris.go
│ │ │ ├── debug_windows.go
│ │ │ ├── freebsd.go
│ │ │ ├── internal.go
│ │ │ ├── unix.go
│ │ │ ├── unix2.go
│ │ │ └── windows.go
│ │ ├── shared.go
│ │ ├── staticcheck.conf
│ │ ├── system_bsd.go
│ │ └── system_darwin.go
│ ├── fxamacker/
│ │ └── cbor/
│ │ └── v2/
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── bytestring.go
│ │ ├── cache.go
│ │ ├── common.go
│ │ ├── decode.go
│ │ ├── diagnose.go
│ │ ├── doc.go
│ │ ├── encode.go
│ │ ├── encode_map.go
│ │ ├── omitzero_go124.go
│ │ ├── omitzero_pre_go124.go
│ │ ├── simplevalue.go
│ │ ├── stream.go
│ │ ├── structfields.go
│ │ ├── tag.go
│ │ └── valid.go
│ ├── go-asn1-ber/
│ │ └── asn1-ber/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── ber.go
│ │ ├── content_int.go
│ │ ├── generalizedTime.go
│ │ ├── header.go
│ │ ├── identifier.go
│ │ ├── length.go
│ │ ├── real.go
│ │ └── util.go
│ ├── go-errors/
│ │ └── errors/
│ │ ├── .travis.yml
│ │ ├── LICENSE.MIT
│ │ ├── README.md
│ │ ├── error.go
│ │ ├── error_1_13.go
│ │ ├── error_backward.go
│ │ ├── join_unwrap_1_20.go
│ │ ├── join_unwrap_backward.go
│ │ ├── parse_panic.go
│ │ └── stackframe.go
│ ├── go-git/
│ │ ├── gcfg/
│ │ │ ├── .gitignore
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── read.go
│ │ │ ├── scanner/
│ │ │ │ ├── errors.go
│ │ │ │ └── scanner.go
│ │ │ ├── set.go
│ │ │ ├── token/
│ │ │ │ ├── position.go
│ │ │ │ ├── serialize.go
│ │ │ │ └── token.go
│ │ │ └── types/
│ │ │ ├── bool.go
│ │ │ ├── doc.go
│ │ │ ├── enum.go
│ │ │ ├── int.go
│ │ │ └── scan.go
│ │ └── go-git/
│ │ └── v5/
│ │ ├── .gitignore
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── COMPATIBILITY.md
│ │ ├── CONTRIBUTING.md
│ │ ├── EXTENDING.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── blame.go
│ │ ├── common.go
│ │ ├── config/
│ │ │ ├── branch.go
│ │ │ ├── config.go
│ │ │ ├── modules.go
│ │ │ ├── refspec.go
│ │ │ └── url.go
│ │ ├── doc.go
│ │ ├── internal/
│ │ │ ├── path_util/
│ │ │ │ └── path_util.go
│ │ │ ├── revision/
│ │ │ │ ├── parser.go
│ │ │ │ ├── scanner.go
│ │ │ │ └── token.go
│ │ │ └── url/
│ │ │ └── url.go
│ │ ├── object_walker.go
│ │ ├── options.go
│ │ ├── oss-fuzz.sh
│ │ ├── plumbing/
│ │ │ ├── cache/
│ │ │ │ ├── buffer_lru.go
│ │ │ │ ├── common.go
│ │ │ │ └── object_lru.go
│ │ │ ├── color/
│ │ │ │ └── color.go
│ │ │ ├── error.go
│ │ │ ├── filemode/
│ │ │ │ └── filemode.go
│ │ │ ├── format/
│ │ │ │ ├── config/
│ │ │ │ │ ├── common.go
│ │ │ │ │ ├── decoder.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoder.go
│ │ │ │ │ ├── format.go
│ │ │ │ │ ├── option.go
│ │ │ │ │ └── section.go
│ │ │ │ ├── diff/
│ │ │ │ │ ├── colorconfig.go
│ │ │ │ │ ├── patch.go
│ │ │ │ │ └── unified_encoder.go
│ │ │ │ ├── gitignore/
│ │ │ │ │ ├── dir.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── matcher.go
│ │ │ │ │ └── pattern.go
│ │ │ │ ├── idxfile/
│ │ │ │ │ ├── decoder.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoder.go
│ │ │ │ │ ├── idxfile.go
│ │ │ │ │ └── writer.go
│ │ │ │ ├── index/
│ │ │ │ │ ├── decoder.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoder.go
│ │ │ │ │ ├── index.go
│ │ │ │ │ └── match.go
│ │ │ │ ├── objfile/
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── reader.go
│ │ │ │ │ └── writer.go
│ │ │ │ ├── packfile/
│ │ │ │ │ ├── common.go
│ │ │ │ │ ├── delta_index.go
│ │ │ │ │ ├── delta_selector.go
│ │ │ │ │ ├── diff_delta.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── encoder.go
│ │ │ │ │ ├── error.go
│ │ │ │ │ ├── fsobject.go
│ │ │ │ │ ├── object_pack.go
│ │ │ │ │ ├── packfile.go
│ │ │ │ │ ├── parser.go
│ │ │ │ │ ├── patch_delta.go
│ │ │ │ │ └── scanner.go
│ │ │ │ └── pktline/
│ │ │ │ ├── encoder.go
│ │ │ │ ├── error.go
│ │ │ │ └── scanner.go
│ │ │ ├── hash/
│ │ │ │ ├── hash.go
│ │ │ │ ├── hash_sha1.go
│ │ │ │ └── hash_sha256.go
│ │ │ ├── hash.go
│ │ │ ├── memory.go
│ │ │ ├── object/
│ │ │ │ ├── blob.go
│ │ │ │ ├── change.go
│ │ │ │ ├── change_adaptor.go
│ │ │ │ ├── commit.go
│ │ │ │ ├── commit_walker.go
│ │ │ │ ├── commit_walker_bfs.go
│ │ │ │ ├── commit_walker_bfs_filtered.go
│ │ │ │ ├── commit_walker_ctime.go
│ │ │ │ ├── commit_walker_limit.go
│ │ │ │ ├── commit_walker_path.go
│ │ │ │ ├── difftree.go
│ │ │ │ ├── file.go
│ │ │ │ ├── merge_base.go
│ │ │ │ ├── object.go
│ │ │ │ ├── patch.go
│ │ │ │ ├── rename.go
│ │ │ │ ├── signature.go
│ │ │ │ ├── tag.go
│ │ │ │ ├── tree.go
│ │ │ │ └── treenoder.go
│ │ │ ├── object.go
│ │ │ ├── protocol/
│ │ │ │ └── packp/
│ │ │ │ ├── advrefs.go
│ │ │ │ ├── advrefs_decode.go
│ │ │ │ ├── advrefs_encode.go
│ │ │ │ ├── capability/
│ │ │ │ │ ├── capability.go
│ │ │ │ │ └── list.go
│ │ │ │ ├── common.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── filter.go
│ │ │ │ ├── gitproto.go
│ │ │ │ ├── report_status.go
│ │ │ │ ├── shallowupd.go
│ │ │ │ ├── sideband/
│ │ │ │ │ ├── common.go
│ │ │ │ │ ├── demux.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ └── muxer.go
│ │ │ │ ├── srvresp.go
│ │ │ │ ├── ulreq.go
│ │ │ │ ├── ulreq_decode.go
│ │ │ │ ├── ulreq_encode.go
│ │ │ │ ├── updreq.go
│ │ │ │ ├── updreq_decode.go
│ │ │ │ ├── updreq_encode.go
│ │ │ │ ├── uppackreq.go
│ │ │ │ └── uppackresp.go
│ │ │ ├── reference.go
│ │ │ ├── revision.go
│ │ │ ├── revlist/
│ │ │ │ └── revlist.go
│ │ │ ├── storer/
│ │ │ │ ├── doc.go
│ │ │ │ ├── index.go
│ │ │ │ ├── object.go
│ │ │ │ ├── reference.go
│ │ │ │ ├── shallow.go
│ │ │ │ └── storer.go
│ │ │ └── transport/
│ │ │ ├── client/
│ │ │ │ └── client.go
│ │ │ ├── common.go
│ │ │ ├── file/
│ │ │ │ ├── client.go
│ │ │ │ └── server.go
│ │ │ ├── git/
│ │ │ │ └── common.go
│ │ │ ├── http/
│ │ │ │ ├── common.go
│ │ │ │ ├── receive_pack.go
│ │ │ │ ├── transport.go
│ │ │ │ └── upload_pack.go
│ │ │ ├── internal/
│ │ │ │ └── common/
│ │ │ │ ├── common.go
│ │ │ │ ├── mocks.go
│ │ │ │ └── server.go
│ │ │ ├── server/
│ │ │ │ ├── loader.go
│ │ │ │ └── server.go
│ │ │ └── ssh/
│ │ │ ├── auth_method.go
│ │ │ └── common.go
│ │ ├── prune.go
│ │ ├── remote.go
│ │ ├── repository.go
│ │ ├── signer.go
│ │ ├── status.go
│ │ ├── storage/
│ │ │ ├── filesystem/
│ │ │ │ ├── config.go
│ │ │ │ ├── deltaobject.go
│ │ │ │ ├── dotgit/
│ │ │ │ │ ├── dotgit.go
│ │ │ │ │ ├── dotgit_rewrite_packed_refs.go
│ │ │ │ │ ├── dotgit_setref.go
│ │ │ │ │ ├── reader.go
│ │ │ │ │ ├── repository_filesystem.go
│ │ │ │ │ └── writers.go
│ │ │ │ ├── index.go
│ │ │ │ ├── module.go
│ │ │ │ ├── object.go
│ │ │ │ ├── reference.go
│ │ │ │ ├── shallow.go
│ │ │ │ └── storage.go
│ │ │ ├── memory/
│ │ │ │ └── storage.go
│ │ │ └── storer.go
│ │ ├── submodule.go
│ │ ├── utils/
│ │ │ ├── binary/
│ │ │ │ ├── read.go
│ │ │ │ └── write.go
│ │ │ ├── diff/
│ │ │ │ └── diff.go
│ │ │ ├── ioutil/
│ │ │ │ └── common.go
│ │ │ ├── merkletrie/
│ │ │ │ ├── change.go
│ │ │ │ ├── difftree.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── doubleiter.go
│ │ │ │ ├── filesystem/
│ │ │ │ │ └── node.go
│ │ │ │ ├── index/
│ │ │ │ │ └── node.go
│ │ │ │ ├── internal/
│ │ │ │ │ └── frame/
│ │ │ │ │ └── frame.go
│ │ │ │ ├── iter.go
│ │ │ │ └── noder/
│ │ │ │ ├── noder.go
│ │ │ │ └── path.go
│ │ │ ├── sync/
│ │ │ │ ├── bufio.go
│ │ │ │ ├── bytes.go
│ │ │ │ └── zlib.go
│ │ │ └── trace/
│ │ │ └── trace.go
│ │ ├── worktree.go
│ │ ├── worktree_bsd.go
│ │ ├── worktree_commit.go
│ │ ├── worktree_js.go
│ │ ├── worktree_linux.go
│ │ ├── worktree_plan9.go
│ │ ├── worktree_status.go
│ │ ├── worktree_unix_other.go
│ │ └── worktree_windows.go
│ ├── go-gorp/
│ │ └── gorp/
│ │ └── v3/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── column.go
│ │ ├── db.go
│ │ ├── dialect.go
│ │ ├── dialect_mysql.go
│ │ ├── dialect_oracle.go
│ │ ├── dialect_postgres.go
│ │ ├── dialect_snowflake.go
│ │ ├── dialect_sqlite.go
│ │ ├── dialect_sqlserver.go
│ │ ├── doc.go
│ │ ├── errors.go
│ │ ├── gorp.go
│ │ ├── hooks.go
│ │ ├── index.go
│ │ ├── lockerror.go
│ │ ├── logging.go
│ │ ├── nulltypes.go
│ │ ├── select.go
│ │ ├── table.go
│ │ ├── table_bindings.go
│ │ ├── test_all.sh
│ │ └── transaction.go
│ ├── go-ini/
│ │ └── ini/
│ │ ├── .editorconfig
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── codecov.yml
│ │ ├── data_source.go
│ │ ├── deprecated.go
│ │ ├── error.go
│ │ ├── file.go
│ │ ├── helper.go
│ │ ├── ini.go
│ │ ├── key.go
│ │ ├── parser.go
│ │ ├── section.go
│ │ └── struct.go
│ ├── go-jose/
│ │ └── go-jose/
│ │ └── v4/
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── .travis.yml
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── asymmetric.go
│ │ ├── cipher/
│ │ │ ├── cbc_hmac.go
│ │ │ ├── concat_kdf.go
│ │ │ ├── ecdh_es.go
│ │ │ └── key_wrap.go
│ │ ├── crypter.go
│ │ ├── doc.go
│ │ ├── encoding.go
│ │ ├── json/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── decode.go
│ │ │ ├── encode.go
│ │ │ ├── indent.go
│ │ │ ├── scanner.go
│ │ │ ├── stream.go
│ │ │ └── tags.go
│ │ ├── jwe.go
│ │ ├── jwk.go
│ │ ├── jws.go
│ │ ├── opaque.go
│ │ ├── shared.go
│ │ ├── signing.go
│ │ └── symmetric.go
│ ├── go-ldap/
│ │ └── ldap/
│ │ └── v3/
│ │ ├── LICENSE
│ │ ├── add.go
│ │ ├── bind.go
│ │ ├── client.go
│ │ ├── compare.go
│ │ ├── conn.go
│ │ ├── control.go
│ │ ├── debug.go
│ │ ├── del.go
│ │ ├── dn.go
│ │ ├── doc.go
│ │ ├── error.go
│ │ ├── extended.go
│ │ ├── filter.go
│ │ ├── ldap.go
│ │ ├── moddn.go
│ │ ├── modify.go
│ │ ├── passwdmodify.go
│ │ ├── request.go
│ │ ├── response.go
│ │ ├── search.go
│ │ ├── unbind.go
│ │ └── whoami.go
│ ├── go-logr/
│ │ ├── logr/
│ │ │ ├── .golangci.yaml
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── SECURITY.md
│ │ │ ├── context.go
│ │ │ ├── context_noslog.go
│ │ │ ├── context_slog.go
│ │ │ ├── discard.go
│ │ │ ├── funcr/
│ │ │ │ ├── funcr.go
│ │ │ │ └── slogsink.go
│ │ │ ├── logr.go
│ │ │ ├── sloghandler.go
│ │ │ ├── slogr.go
│ │ │ └── slogsink.go
│ │ └── stdr/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── stdr.go
│ ├── go-openapi/
│ │ ├── analysis/
│ │ │ ├── .codecov.yml
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── analyzer.go
│ │ │ ├── debug.go
│ │ │ ├── doc.go
│ │ │ ├── fixer.go
│ │ │ ├── flatten.go
│ │ │ ├── flatten_name.go
│ │ │ ├── flatten_options.go
│ │ │ ├── internal/
│ │ │ │ ├── debug/
│ │ │ │ │ └── debug.go
│ │ │ │ └── flatten/
│ │ │ │ ├── normalize/
│ │ │ │ │ └── normalize.go
│ │ │ │ ├── operations/
│ │ │ │ │ └── operations.go
│ │ │ │ ├── replace/
│ │ │ │ │ └── replace.go
│ │ │ │ ├── schutils/
│ │ │ │ │ └── flatten_schema.go
│ │ │ │ └── sortref/
│ │ │ │ ├── keys.go
│ │ │ │ └── sort_ref.go
│ │ │ ├── mixin.go
│ │ │ └── schema.go
│ │ ├── errors/
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── api.go
│ │ │ ├── auth.go
│ │ │ ├── doc.go
│ │ │ ├── headers.go
│ │ │ ├── middleware.go
│ │ │ ├── parsing.go
│ │ │ └── schema.go
│ │ ├── jsonpointer/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── errors.go
│ │ │ └── pointer.go
│ │ ├── jsonreference/
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── internal/
│ │ │ │ └── normalize_url.go
│ │ │ └── reference.go
│ │ ├── loads/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── .travis.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ ├── loaders.go
│ │ │ ├── options.go
│ │ │ └── spec.go
│ │ ├── spec/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── cache.go
│ │ │ ├── contact_info.go
│ │ │ ├── debug.go
│ │ │ ├── embed.go
│ │ │ ├── errors.go
│ │ │ ├── expander.go
│ │ │ ├── external_docs.go
│ │ │ ├── header.go
│ │ │ ├── info.go
│ │ │ ├── items.go
│ │ │ ├── license.go
│ │ │ ├── normalizer.go
│ │ │ ├── normalizer_nonwindows.go
│ │ │ ├── normalizer_windows.go
│ │ │ ├── operation.go
│ │ │ ├── parameter.go
│ │ │ ├── path_item.go
│ │ │ ├── paths.go
│ │ │ ├── properties.go
│ │ │ ├── ref.go
│ │ │ ├── resolver.go
│ │ │ ├── response.go
│ │ │ ├── responses.go
│ │ │ ├── schema.go
│ │ │ ├── schema_loader.go
│ │ │ ├── schemas/
│ │ │ │ ├── jsonschema-draft-04.json
│ │ │ │ └── v2/
│ │ │ │ └── schema.json
│ │ │ ├── security_scheme.go
│ │ │ ├── spec.go
│ │ │ ├── swagger.go
│ │ │ ├── tag.go
│ │ │ ├── url_go19.go
│ │ │ ├── validations.go
│ │ │ └── xml_object.go
│ │ ├── strfmt/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitattributes
│ │ │ ├── .gitignore
│ │ │ ├── .golangci.yml
│ │ │ ├── CODE_OF_CONDUCT.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── bson.go
│ │ │ ├── date.go
│ │ │ ├── default.go
│ │ │ ├── doc.go
│ │ │ ├── duration.go
│ │ │ ├── format.go
│ │ │ ├── time.go
│ │ │ └── ulid.go
│ │ └── validate/
│ │ ├── .editorconfig
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .golangci.yml
│ │ ├── BENCHMARK.md
│ │ ├── CODE_OF_CONDUCT.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── context.go
│ │ ├── debug.go
│ │ ├── default_validator.go
│ │ ├── doc.go
│ │ ├── example_validator.go
│ │ ├── formats.go
│ │ ├── helpers.go
│ │ ├── object_validator.go
│ │ ├── options.go
│ │ ├── pools.go
│ │ ├── pools_debug.go
│ │ ├── result.go
│ │ ├── rexp.go
│ │ ├── schema.go
│ │ ├── schema_messages.go
│ │ ├── schema_option.go
│ │ ├── schema_props.go
│ │ ├── slice_validator.go
│ │ ├── spec.go
│ │ ├── spec_messages.go
│ │ ├── type.go
│ │ ├── update-fixtures.sh
│ │ ├── validator.go
│ │ └── values.go
│ ├── go-redis/
│ │ └── redis/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── cluster.go
│ │ ├── cluster_commands.go
│ │ ├── command.go
│ │ ├── commands.go
│ │ ├── doc.go
│ │ ├── internal/
│ │ │ ├── consistenthash/
│ │ │ │ └── consistenthash.go
│ │ │ ├── error.go
│ │ │ ├── hashtag/
│ │ │ │ └── hashtag.go
│ │ │ ├── internal.go
│ │ │ ├── log.go
│ │ │ ├── once.go
│ │ │ ├── pool/
│ │ │ │ ├── conn.go
│ │ │ │ ├── pool.go
│ │ │ │ ├── pool_single.go
│ │ │ │ └── pool_sticky.go
│ │ │ ├── proto/
│ │ │ │ ├── reader.go
│ │ │ │ ├── scan.go
│ │ │ │ └── writer.go
│ │ │ ├── util/
│ │ │ │ ├── safe.go
│ │ │ │ ├── strconv.go
│ │ │ │ └── unsafe.go
│ │ │ └── util.go
│ │ ├── iterator.go
│ │ ├── options.go
│ │ ├── pipeline.go
│ │ ├── pubsub.go
│ │ ├── redis.go
│ │ ├── result.go
│ │ ├── ring.go
│ │ ├── script.go
│ │ ├── sentinel.go
│ │ ├── tx.go
│ │ └── universal.go
│ ├── go-viper/
│ │ └── mapstructure/
│ │ └── v2/
│ │ ├── .editorconfig
│ │ ├── .envrc
│ │ ├── .gitignore
│ │ ├── .golangci.yaml
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── decode_hooks.go
│ │ ├── flake.nix
│ │ ├── internal/
│ │ │ └── errors/
│ │ │ ├── errors.go
│ │ │ ├── join.go
│ │ │ └── join_go1_19.go
│ │ ├── mapstructure.go
│ │ ├── reflect_go1_19.go
│ │ └── reflect_go1_20.go
│ ├── gobuffalo/
│ │ └── flect/
│ │ ├── .gitignore
│ │ ├── .gometalinter.json
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── SHOULDERS.md
│ │ ├── acronyms.go
│ │ ├── camelize.go
│ │ ├── capitalize.go
│ │ ├── custom_data.go
│ │ ├── dasherize.go
│ │ ├── flect.go
│ │ ├── humanize.go
│ │ ├── ident.go
│ │ ├── lower_upper.go
│ │ ├── ordinalize.go
│ │ ├── pascalize.go
│ │ ├── plural_rules.go
│ │ ├── pluralize.go
│ │ ├── rule.go
│ │ ├── singular_rules.go
│ │ ├── singularize.go
│ │ ├── titleize.go
│ │ ├── underscore.go
│ │ └── version.go
│ ├── gobwas/
│ │ └── glob/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── bench.sh
│ │ ├── compiler/
│ │ │ └── compiler.go
│ │ ├── glob.go
│ │ ├── match/
│ │ │ ├── any.go
│ │ │ ├── any_of.go
│ │ │ ├── btree.go
│ │ │ ├── contains.go
│ │ │ ├── every_of.go
│ │ │ ├── list.go
│ │ │ ├── match.go
│ │ │ ├── max.go
│ │ │ ├── min.go
│ │ │ ├── nothing.go
│ │ │ ├── prefix.go
│ │ │ ├── prefix_any.go
│ │ │ ├── prefix_suffix.go
│ │ │ ├── range.go
│ │ │ ├── row.go
│ │ │ ├── segments.go
│ │ │ ├── single.go
│ │ │ ├── suffix.go
│ │ │ ├── suffix_any.go
│ │ │ ├── super.go
│ │ │ └── text.go
│ │ ├── readme.md
│ │ ├── syntax/
│ │ │ ├── ast/
│ │ │ │ ├── ast.go
│ │ │ │ └── parser.go
│ │ │ ├── lexer/
│ │ │ │ ├── lexer.go
│ │ │ │ └── token.go
│ │ │ └── syntax.go
│ │ └── util/
│ │ ├── runes/
│ │ │ └── runes.go
│ │ └── strings/
│ │ └── strings.go
│ ├── gogo/
│ │ └── protobuf/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── gogoproto/
│ │ │ ├── Makefile
│ │ │ ├── doc.go
│ │ │ ├── gogo.pb.go
│ │ │ ├── gogo.pb.golden
│ │ │ ├── gogo.proto
│ │ │ └── helper.go
│ │ ├── proto/
│ │ │ ├── Makefile
│ │ │ ├── clone.go
│ │ │ ├── custom_gogo.go
│ │ │ ├── decode.go
│ │ │ ├── deprecated.go
│ │ │ ├── discard.go
│ │ │ ├── duration.go
│ │ │ ├── duration_gogo.go
│ │ │ ├── encode.go
│ │ │ ├── encode_gogo.go
│ │ │ ├── equal.go
│ │ │ ├── extensions.go
│ │ │ ├── extensions_gogo.go
│ │ │ ├── lib.go
│ │ │ ├── lib_gogo.go
│ │ │ ├── message_set.go
│ │ │ ├── pointer_reflect.go
│ │ │ ├── pointer_reflect_gogo.go
│ │ │ ├── pointer_unsafe.go
│ │ │ ├── pointer_unsafe_gogo.go
│ │ │ ├── properties.go
│ │ │ ├── properties_gogo.go
│ │ │ ├── skip_gogo.go
│ │ │ ├── table_marshal.go
│ │ │ ├── table_marshal_gogo.go
│ │ │ ├── table_merge.go
│ │ │ ├── table_unmarshal.go
│ │ │ ├── table_unmarshal_gogo.go
│ │ │ ├── text.go
│ │ │ ├── text_gogo.go
│ │ │ ├── text_parser.go
│ │ │ ├── timestamp.go
│ │ │ ├── timestamp_gogo.go
│ │ │ ├── wrappers.go
│ │ │ └── wrappers_gogo.go
│ │ ├── protoc-gen-gogo/
│ │ │ └── descriptor/
│ │ │ ├── Makefile
│ │ │ ├── descriptor.go
│ │ │ ├── descriptor.pb.go
│ │ │ ├── descriptor_gostring.gen.go
│ │ │ └── helper.go
│ │ └── sortkeys/
│ │ └── sortkeys.go
│ ├── golang/
│ │ ├── example/
│ │ │ ├── LICENSE
│ │ │ └── stringutil/
│ │ │ └── reverse.go
│ │ ├── glog/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── glog.go
│ │ │ ├── glog_file.go
│ │ │ ├── glog_file_linux.go
│ │ │ ├── glog_file_nonwindows.go
│ │ │ ├── glog_file_other.go
│ │ │ ├── glog_file_posix.go
│ │ │ ├── glog_file_windows.go
│ │ │ ├── glog_flags.go
│ │ │ └── internal/
│ │ │ ├── logsink/
│ │ │ │ ├── logsink.go
│ │ │ │ └── logsink_fatal.go
│ │ │ └── stackdump/
│ │ │ └── stackdump.go
│ │ ├── groupcache/
│ │ │ ├── LICENSE
│ │ │ └── lru/
│ │ │ └── lru.go
│ │ └── protobuf/
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ └── proto/
│ │ ├── buffer.go
│ │ ├── defaults.go
│ │ ├── deprecated.go
│ │ ├── discard.go
│ │ ├── extensions.go
│ │ ├── properties.go
│ │ ├── proto.go
│ │ ├── registry.go
│ │ ├── text_decode.go
│ │ ├── text_encode.go
│ │ ├── wire.go
│ │ └── wrappers.go
│ ├── golang-jwt/
│ │ └── jwt/
│ │ └── v4/
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── MIGRATION_GUIDE.md
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── VERSION_HISTORY.md
│ │ ├── claims.go
│ │ ├── doc.go
│ │ ├── ecdsa.go
│ │ ├── ecdsa_utils.go
│ │ ├── ed25519.go
│ │ ├── ed25519_utils.go
│ │ ├── errors.go
│ │ ├── hmac.go
│ │ ├── map_claims.go
│ │ ├── none.go
│ │ ├── parser.go
│ │ ├── parser_option.go
│ │ ├── rsa.go
│ │ ├── rsa_pss.go
│ │ ├── rsa_utils.go
│ │ ├── signing_method.go
│ │ ├── staticcheck.conf
│ │ ├── token.go
│ │ └── types.go
│ ├── google/
│ │ ├── btree/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── btree.go
│ │ │ └── btree_generic.go
│ │ ├── cel-go/
│ │ │ ├── LICENSE
│ │ │ ├── cel/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── cel.go
│ │ │ │ ├── decls.go
│ │ │ │ ├── env.go
│ │ │ │ ├── folding.go
│ │ │ │ ├── inlining.go
│ │ │ │ ├── io.go
│ │ │ │ ├── library.go
│ │ │ │ ├── macro.go
│ │ │ │ ├── optimizer.go
│ │ │ │ ├── options.go
│ │ │ │ ├── program.go
│ │ │ │ ├── prompt.go
│ │ │ │ ├── templates/
│ │ │ │ │ └── authoring.tmpl
│ │ │ │ └── validator.go
│ │ │ ├── checker/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── checker.go
│ │ │ │ ├── cost.go
│ │ │ │ ├── decls/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── decls.go
│ │ │ │ ├── env.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── format.go
│ │ │ │ ├── mapping.go
│ │ │ │ ├── options.go
│ │ │ │ ├── printer.go
│ │ │ │ ├── scopes.go
│ │ │ │ └── types.go
│ │ │ ├── common/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── ast/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── ast.go
│ │ │ │ │ ├── conversion.go
│ │ │ │ │ ├── expr.go
│ │ │ │ │ ├── factory.go
│ │ │ │ │ └── navigable.go
│ │ │ │ ├── containers/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── container.go
│ │ │ │ ├── cost.go
│ │ │ │ ├── debug/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── debug.go
│ │ │ │ ├── decls/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── decls.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── env/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── env.go
│ │ │ │ ├── error.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── functions/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── functions.go
│ │ │ │ ├── location.go
│ │ │ │ ├── operators/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── operators.go
│ │ │ │ ├── overloads/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── overloads.go
│ │ │ │ ├── runes/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── buffer.go
│ │ │ │ ├── source.go
│ │ │ │ ├── stdlib/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── standard.go
│ │ │ │ └── types/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── any_value.go
│ │ │ │ ├── bool.go
│ │ │ │ ├── bytes.go
│ │ │ │ ├── compare.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── double.go
│ │ │ │ ├── duration.go
│ │ │ │ ├── err.go
│ │ │ │ ├── format.go
│ │ │ │ ├── int.go
│ │ │ │ ├── iterator.go
│ │ │ │ ├── json_value.go
│ │ │ │ ├── list.go
│ │ │ │ ├── map.go
│ │ │ │ ├── null.go
│ │ │ │ ├── object.go
│ │ │ │ ├── optional.go
│ │ │ │ ├── overflow.go
│ │ │ │ ├── pb/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── checked.go
│ │ │ │ │ ├── enum.go
│ │ │ │ │ ├── equal.go
│ │ │ │ │ ├── file.go
│ │ │ │ │ ├── pb.go
│ │ │ │ │ └── type.go
│ │ │ │ ├── provider.go
│ │ │ │ ├── ref/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── provider.go
│ │ │ │ │ └── reference.go
│ │ │ │ ├── string.go
│ │ │ │ ├── timestamp.go
│ │ │ │ ├── traits/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── comparer.go
│ │ │ │ │ ├── container.go
│ │ │ │ │ ├── field_tester.go
│ │ │ │ │ ├── indexer.go
│ │ │ │ │ ├── iterator.go
│ │ │ │ │ ├── lister.go
│ │ │ │ │ ├── mapper.go
│ │ │ │ │ ├── matcher.go
│ │ │ │ │ ├── math.go
│ │ │ │ │ ├── receiver.go
│ │ │ │ │ ├── sizer.go
│ │ │ │ │ ├── traits.go
│ │ │ │ │ └── zeroer.go
│ │ │ │ ├── types.go
│ │ │ │ ├── uint.go
│ │ │ │ ├── unknown.go
│ │ │ │ └── util.go
│ │ │ ├── ext/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── README.md
│ │ │ │ ├── bindings.go
│ │ │ │ ├── comprehensions.go
│ │ │ │ ├── encoders.go
│ │ │ │ ├── extension_option_factory.go
│ │ │ │ ├── formatting.go
│ │ │ │ ├── formatting_v2.go
│ │ │ │ ├── guards.go
│ │ │ │ ├── lists.go
│ │ │ │ ├── math.go
│ │ │ │ ├── native.go
│ │ │ │ ├── protos.go
│ │ │ │ ├── sets.go
│ │ │ │ └── strings.go
│ │ │ ├── interpreter/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── activation.go
│ │ │ │ ├── attribute_patterns.go
│ │ │ │ ├── attributes.go
│ │ │ │ ├── decorators.go
│ │ │ │ ├── dispatcher.go
│ │ │ │ ├── evalstate.go
│ │ │ │ ├── functions/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── functions.go
│ │ │ │ ├── interpretable.go
│ │ │ │ ├── interpreter.go
│ │ │ │ ├── optimizations.go
│ │ │ │ ├── planner.go
│ │ │ │ ├── prune.go
│ │ │ │ └── runtimecost.go
│ │ │ └── parser/
│ │ │ ├── BUILD.bazel
│ │ │ ├── errors.go
│ │ │ ├── gen/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── CEL.g4
│ │ │ │ ├── CEL.interp
│ │ │ │ ├── CEL.tokens
│ │ │ │ ├── CELLexer.interp
│ │ │ │ ├── CELLexer.tokens
│ │ │ │ ├── cel_base_listener.go
│ │ │ │ ├── cel_base_visitor.go
│ │ │ │ ├── cel_lexer.go
│ │ │ │ ├── cel_listener.go
│ │ │ │ ├── cel_parser.go
│ │ │ │ ├── cel_visitor.go
│ │ │ │ ├── doc.go
│ │ │ │ └── generate.sh
│ │ │ ├── helper.go
│ │ │ ├── input.go
│ │ │ ├── macro.go
│ │ │ ├── options.go
│ │ │ ├── parser.go
│ │ │ ├── unescape.go
│ │ │ └── unparser.go
│ │ ├── gnostic-models/
│ │ │ ├── LICENSE
│ │ │ ├── compiler/
│ │ │ │ ├── README.md
│ │ │ │ ├── context.go
│ │ │ │ ├── error.go
│ │ │ │ ├── extensions.go
│ │ │ │ ├── helpers.go
│ │ │ │ ├── main.go
│ │ │ │ └── reader.go
│ │ │ ├── extensions/
│ │ │ │ ├── README.md
│ │ │ │ ├── extension.pb.go
│ │ │ │ ├── extension.proto
│ │ │ │ └── extensions.go
│ │ │ ├── jsonschema/
│ │ │ │ ├── README.md
│ │ │ │ ├── base.go
│ │ │ │ ├── display.go
│ │ │ │ ├── models.go
│ │ │ │ ├── operations.go
│ │ │ │ ├── reader.go
│ │ │ │ ├── schema.json
│ │ │ │ └── writer.go
│ │ │ ├── openapiv2/
│ │ │ │ ├── OpenAPIv2.go
│ │ │ │ ├── OpenAPIv2.pb.go
│ │ │ │ ├── OpenAPIv2.proto
│ │ │ │ ├── README.md
│ │ │ │ ├── document.go
│ │ │ │ └── openapi-2.0.json
│ │ │ └── openapiv3/
│ │ │ ├── OpenAPIv3.go
│ │ │ ├── OpenAPIv3.pb.go
│ │ │ ├── OpenAPIv3.proto
│ │ │ ├── README.md
│ │ │ ├── annotations.pb.go
│ │ │ ├── annotations.proto
│ │ │ └── document.go
│ │ ├── go-cmp/
│ │ │ ├── LICENSE
│ │ │ └── cmp/
│ │ │ ├── compare.go
│ │ │ ├── export.go
│ │ │ ├── internal/
│ │ │ │ ├── diff/
│ │ │ │ │ ├── debug_disable.go
│ │ │ │ │ ├── debug_enable.go
│ │ │ │ │ └── diff.go
│ │ │ │ ├── flags/
│ │ │ │ │ └── flags.go
│ │ │ │ ├── function/
│ │ │ │ │ └── func.go
│ │ │ │ └── value/
│ │ │ │ ├── name.go
│ │ │ │ ├── pointer.go
│ │ │ │ └── sort.go
│ │ │ ├── options.go
│ │ │ ├── path.go
│ │ │ ├── report.go
│ │ │ ├── report_compare.go
│ │ │ ├── report_references.go
│ │ │ ├── report_reflect.go
│ │ │ ├── report_slices.go
│ │ │ ├── report_text.go
│ │ │ └── report_value.go
│ │ ├── go-containerregistry/
│ │ │ ├── LICENSE
│ │ │ ├── internal/
│ │ │ │ ├── and/
│ │ │ │ │ └── and_closer.go
│ │ │ │ ├── compression/
│ │ │ │ │ └── compression.go
│ │ │ │ ├── estargz/
│ │ │ │ │ └── estargz.go
│ │ │ │ ├── gzip/
│ │ │ │ │ └── zip.go
│ │ │ │ ├── redact/
│ │ │ │ │ └── redact.go
│ │ │ │ ├── retry/
│ │ │ │ │ ├── retry.go
│ │ │ │ │ └── wait/
│ │ │ │ │ └── kubernetes_apimachinery_wait.go
│ │ │ │ ├── verify/
│ │ │ │ │ └── verify.go
│ │ │ │ └── zstd/
│ │ │ │ └── zstd.go
│ │ │ └── pkg/
│ │ │ ├── authn/
│ │ │ │ ├── README.md
│ │ │ │ ├── anon.go
│ │ │ │ ├── auth.go
│ │ │ │ ├── authn.go
│ │ │ │ ├── basic.go
│ │ │ │ ├── bearer.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── keychain.go
│ │ │ │ └── multikeychain.go
│ │ │ ├── compression/
│ │ │ │ └── compression.go
│ │ │ ├── logs/
│ │ │ │ └── logs.go
│ │ │ ├── name/
│ │ │ │ ├── README.md
│ │ │ │ ├── check.go
│ │ │ │ ├── digest.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── options.go
│ │ │ │ ├── ref.go
│ │ │ │ ├── registry.go
│ │ │ │ ├── repository.go
│ │ │ │ └── tag.go
│ │ │ └── v1/
│ │ │ ├── config.go
│ │ │ ├── doc.go
│ │ │ ├── empty/
│ │ │ │ ├── README.md
│ │ │ │ ├── doc.go
│ │ │ │ ├── image.go
│ │ │ │ └── index.go
│ │ │ ├── hash.go
│ │ │ ├── image.go
│ │ │ ├── index.go
│ │ │ ├── layer.go
│ │ │ ├── manifest.go
│ │ │ ├── match/
│ │ │ │ └── match.go
│ │ │ ├── mutate/
│ │ │ │ ├── README.md
│ │ │ │ ├── doc.go
│ │ │ │ ├── image.go
│ │ │ │ ├── index.go
│ │ │ │ ├── mutate.go
│ │ │ │ └── rebase.go
│ │ │ ├── partial/
│ │ │ │ ├── README.md
│ │ │ │ ├── compressed.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── image.go
│ │ │ │ ├── index.go
│ │ │ │ ├── uncompressed.go
│ │ │ │ └── with.go
│ │ │ ├── platform.go
│ │ │ ├── progress.go
│ │ │ ├── remote/
│ │ │ │ ├── README.md
│ │ │ │ ├── catalog.go
│ │ │ │ ├── check.go
│ │ │ │ ├── delete.go
│ │ │ │ ├── descriptor.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── fetcher.go
│ │ │ │ ├── image.go
│ │ │ │ ├── index.go
│ │ │ │ ├── layer.go
│ │ │ │ ├── list.go
│ │ │ │ ├── mount.go
│ │ │ │ ├── multi_write.go
│ │ │ │ ├── options.go
│ │ │ │ ├── progress.go
│ │ │ │ ├── puller.go
│ │ │ │ ├── pusher.go
│ │ │ │ ├── referrers.go
│ │ │ │ ├── schema1.go
│ │ │ │ ├── transport/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── basic.go
│ │ │ │ │ ├── bearer.go
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── error.go
│ │ │ │ │ ├── logger.go
│ │ │ │ │ ├── ping.go
│ │ │ │ │ ├── retry.go
│ │ │ │ │ ├── schemer.go
│ │ │ │ │ ├── scope.go
│ │ │ │ │ ├── transport.go
│ │ │ │ │ └── useragent.go
│ │ │ │ └── write.go
│ │ │ ├── stream/
│ │ │ │ ├── README.md
│ │ │ │ └── layer.go
│ │ │ ├── tarball/
│ │ │ │ ├── README.md
│ │ │ │ ├── doc.go
│ │ │ │ ├── image.go
│ │ │ │ ├── layer.go
│ │ │ │ └── write.go
│ │ │ ├── types/
│ │ │ │ └── types.go
│ │ │ └── zz_deepcopy_generated.go
│ │ ├── gofuzz/
│ │ │ ├── .travis.yml
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── bytesource/
│ │ │ │ └── bytesource.go
│ │ │ ├── doc.go
│ │ │ └── fuzz.go
│ │ ├── gops/
│ │ │ ├── LICENSE
│ │ │ ├── agent/
│ │ │ │ ├── agent.go
│ │ │ │ ├── sockopt_reuseport.go
│ │ │ │ └── sockopt_unsupported.go
│ │ │ ├── internal/
│ │ │ │ └── internal.go
│ │ │ └── signal/
│ │ │ └── signal.go
│ │ ├── pprof/
│ │ │ ├── AUTHORS
│ │ │ ├── CONTRIBUTORS
│ │ │ ├── LICENSE
│ │ │ └── profile/
│ │ │ ├── encode.go
│ │ │ ├── filter.go
│ │ │ ├── index.go
│ │ │ ├── legacy_java_profile.go
│ │ │ ├── legacy_profile.go
│ │ │ ├── merge.go
│ │ │ ├── profile.go
│ │ │ ├── proto.go
│ │ │ └── prune.go
│ │ ├── shlex/
│ │ │ ├── COPYING
│ │ │ ├── README
│ │ │ └── shlex.go
│ │ └── uuid/
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── dce.go
│ │ ├── doc.go
│ │ ├── hash.go
│ │ ├── marshal.go
│ │ ├── node.go
│ │ ├── node_js.go
│ │ ├── node_net.go
│ │ ├── null.go
│ │ ├── sql.go
│ │ ├── time.go
│ │ ├── util.go
│ │ ├── uuid.go
│ │ ├── version1.go
│ │ ├── version4.go
│ │ ├── version6.go
│ │ └── version7.go
│ ├── gorilla/
│ │ ├── mux/
│ │ │ ├── .editorconfig
│ │ │ ├── .gitignore
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ ├── middleware.go
│ │ │ ├── mux.go
│ │ │ ├── regexp.go
│ │ │ ├── route.go
│ │ │ └── test_helpers.go
│ │ └── websocket/
│ │ ├── .gitignore
│ │ ├── AUTHORS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── client.go
│ │ ├── compression.go
│ │ ├── conn.go
│ │ ├── doc.go
│ │ ├── join.go
│ │ ├── json.go
│ │ ├── mask.go
│ │ ├── mask_safe.go
│ │ ├── prepared.go
│ │ ├── proxy.go
│ │ ├── server.go
│ │ └── util.go
│ ├── gosuri/
│ │ └── uitable/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── table.go
│ │ └── util/
│ │ ├── strutil/
│ │ │ └── strutil.go
│ │ └── wordwrap/
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ └── wordwrap.go
│ ├── gregjones/
│ │ └── httpcache/
│ │ ├── .travis.yml
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ └── httpcache.go
│ ├── grpc-ecosystem/
│ │ └── grpc-gateway/
│ │ └── v2/
│ │ ├── LICENSE
│ │ ├── internal/
│ │ │ └── httprule/
│ │ │ ├── BUILD.bazel
│ │ │ ├── compile.go
│ │ │ ├── fuzz.go
│ │ │ ├── parse.go
│ │ │ └── types.go
│ │ ├── protoc-gen-openapiv2/
│ │ │ └── options/
│ │ │ ├── BUILD.bazel
│ │ │ ├── annotations.pb.go
│ │ │ ├── annotations.proto
│ │ │ ├── annotations_protoopaque.pb.go
│ │ │ ├── buf.gen.yaml
│ │ │ ├── openapiv2.pb.go
│ │ │ ├── openapiv2.proto
│ │ │ └── openapiv2_protoopaque.pb.go
│ │ ├── runtime/
│ │ │ ├── BUILD.bazel
│ │ │ ├── context.go
│ │ │ ├── convert.go
│ │ │ ├── doc.go
│ │ │ ├── errors.go
│ │ │ ├── fieldmask.go
│ │ │ ├── handler.go
│ │ │ ├── marshal_httpbodyproto.go
│ │ │ ├── marshal_json.go
│ │ │ ├── marshal_jsonpb.go
│ │ │ ├── marshal_proto.go
│ │ │ ├── marshaler.go
│ │ │ ├── marshaler_registry.go
│ │ │ ├── mux.go
│ │ │ ├── pattern.go
│ │ │ ├── proto2_convert.go
│ │ │ └── query.go
│ │ └── utilities/
│ │ ├── BUILD.bazel
│ │ ├── doc.go
│ │ ├── pattern.go
│ │ ├── readerfactory.go
│ │ ├── string_array_flag.go
│ │ └── trie.go
│ ├── hashicorp/
│ │ ├── errwrap/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── errwrap.go
│ │ └── go-multierror/
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── append.go
│ │ ├── flatten.go
│ │ ├── format.go
│ │ ├── group.go
│ │ ├── multierror.go
│ │ ├── prefix.go
│ │ └── sort.go
│ ├── huandu/
│ │ └── xstrings/
│ │ ├── .gitignore
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── common.go
│ │ ├── convert.go
│ │ ├── count.go
│ │ ├── doc.go
│ │ ├── format.go
│ │ ├── manipulate.go
│ │ ├── stringbuilder.go
│ │ ├── stringbuilder_go110.go
│ │ └── translate.go
│ ├── inconshreveable/
│ │ └── mousetrap/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── trap_others.go
│ │ └── trap_windows.go
│ ├── jbenet/
│ │ └── go-context/
│ │ ├── LICENSE
│ │ └── io/
│ │ └── ctxio.go
│ ├── jmespath/
│ │ └── go-jmespath/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── api.go
│ │ ├── astnodetype_string.go
│ │ ├── functions.go
│ │ ├── interpreter.go
│ │ ├── lexer.go
│ │ ├── parser.go
│ │ ├── toktype_string.go
│ │ └── util.go
│ ├── jmoiron/
│ │ └── sqlx/
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── bind.go
│ │ ├── doc.go
│ │ ├── named.go
│ │ ├── named_context.go
│ │ ├── reflectx/
│ │ │ ├── README.md
│ │ │ └── reflect.go
│ │ ├── sqlx.go
│ │ └── sqlx_context.go
│ ├── josharian/
│ │ └── intern/
│ │ ├── README.md
│ │ ├── intern.go
│ │ └── license.md
│ ├── kevinburke/
│ │ └── ssh_config/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .mailmap
│ │ ├── AUTHORS.txt
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── config.go
│ │ ├── lexer.go
│ │ ├── parser.go
│ │ ├── position.go
│ │ ├── token.go
│ │ └── validators.go
│ ├── klauspost/
│ │ └── compress/
│ │ ├── .gitattributes
│ │ ├── .gitignore
│ │ ├── .goreleaser.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── SECURITY.md
│ │ ├── compressible.go
│ │ ├── fse/
│ │ │ ├── README.md
│ │ │ ├── bitreader.go
│ │ │ ├── bitwriter.go
│ │ │ ├── bytereader.go
│ │ │ ├── compress.go
│ │ │ ├── decompress.go
│ │ │ └── fse.go
│ │ ├── gen.sh
│ │ ├── huff0/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── bitreader.go
│ │ │ ├── bitwriter.go
│ │ │ ├── compress.go
│ │ │ ├── decompress.go
│ │ │ ├── decompress_amd64.go
│ │ │ ├── decompress_amd64.s
│ │ │ ├── decompress_generic.go
│ │ │ └── huff0.go
│ │ ├── internal/
│ │ │ ├── cpuinfo/
│ │ │ │ ├── cpuinfo.go
│ │ │ │ ├── cpuinfo_amd64.go
│ │ │ │ └── cpuinfo_amd64.s
│ │ │ ├── le/
│ │ │ │ ├── le.go
│ │ │ │ ├── unsafe_disabled.go
│ │ │ │ └── unsafe_enabled.go
│ │ │ └── snapref/
│ │ │ ├── LICENSE
│ │ │ ├── decode.go
│ │ │ ├── decode_other.go
│ │ │ ├── encode.go
│ │ │ ├── encode_other.go
│ │ │ └── snappy.go
│ │ ├── s2sx.mod
│ │ ├── s2sx.sum
│ │ └── zstd/
│ │ ├── README.md
│ │ ├── bitreader.go
│ │ ├── bitwriter.go
│ │ ├── blockdec.go
│ │ ├── blockenc.go
│ │ ├── blocktype_string.go
│ │ ├── bytebuf.go
│ │ ├── bytereader.go
│ │ ├── decodeheader.go
│ │ ├── decoder.go
│ │ ├── decoder_options.go
│ │ ├── dict.go
│ │ ├── enc_base.go
│ │ ├── enc_best.go
│ │ ├── enc_better.go
│ │ ├── enc_dfast.go
│ │ ├── enc_fast.go
│ │ ├── encoder.go
│ │ ├── encoder_options.go
│ │ ├── framedec.go
│ │ ├── frameenc.go
│ │ ├── fse_decoder.go
│ │ ├── fse_decoder_amd64.go
│ │ ├── fse_decoder_amd64.s
│ │ ├── fse_decoder_generic.go
│ │ ├── fse_encoder.go
│ │ ├── fse_predefined.go
│ │ ├── hash.go
│ │ ├── history.go
│ │ ├── internal/
│ │ │ └── xxhash/
│ │ │ ├── LICENSE.txt
│ │ │ ├── README.md
│ │ │ ├── xxhash.go
│ │ │ ├── xxhash_amd64.s
│ │ │ ├── xxhash_arm64.s
│ │ │ ├── xxhash_asm.go
│ │ │ ├── xxhash_other.go
│ │ │ └── xxhash_safe.go
│ │ ├── matchlen_amd64.go
│ │ ├── matchlen_amd64.s
│ │ ├── matchlen_generic.go
│ │ ├── seqdec.go
│ │ ├── seqdec_amd64.go
│ │ ├── seqdec_amd64.s
│ │ ├── seqdec_generic.go
│ │ ├── seqenc.go
│ │ ├── snappy.go
│ │ ├── zip.go
│ │ └── zstd.go
│ ├── kylelemons/
│ │ └── godebug/
│ │ ├── LICENSE
│ │ └── diff/
│ │ └── diff.go
│ ├── lann/
│ │ ├── builder/
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── builder.go
│ │ │ ├── reflect.go
│ │ │ └── registry.go
│ │ └── ps/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── list.go
│ │ ├── map.go
│ │ └── profile.sh
│ ├── lib/
│ │ └── pq/
│ │ ├── .gitignore
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ ├── TESTS.md
│ │ ├── array.go
│ │ ├── buf.go
│ │ ├── conn.go
│ │ ├── conn_go115.go
│ │ ├── conn_go18.go
│ │ ├── connector.go
│ │ ├── copy.go
│ │ ├── doc.go
│ │ ├── encode.go
│ │ ├── error.go
│ │ ├── krb.go
│ │ ├── notice.go
│ │ ├── notify.go
│ │ ├── oid/
│ │ │ ├── doc.go
│ │ │ └── types.go
│ │ ├── rows.go
│ │ ├── scram/
│ │ │ └── scram.go
│ │ ├── ssl.go
│ │ ├── ssl_permissions.go
│ │ ├── ssl_windows.go
│ │ ├── url.go
│ │ ├── user_other.go
│ │ ├── user_posix.go
│ │ ├── user_windows.go
│ │ └── uuid.go
│ ├── liggitt/
│ │ └── tabwriter/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── tabwriter.go
│ ├── mailru/
│ │ └── easyjson/
│ │ ├── LICENSE
│ │ ├── buffer/
│ │ │ └── pool.go
│ │ ├── jlexer/
│ │ │ ├── bytestostr.go
│ │ │ ├── bytestostr_nounsafe.go
│ │ │ ├── error.go
│ │ │ └── lexer.go
│ │ └── jwriter/
│ │ └── writer.go
│ ├── mattn/
│ │ ├── go-colorable/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── colorable_others.go
│ │ │ ├── colorable_windows.go
│ │ │ ├── go.test.sh
│ │ │ └── noncolorable.go
│ │ ├── go-isatty/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── doc.go
│ │ │ ├── go.test.sh
│ │ │ ├── isatty_bsd.go
│ │ │ ├── isatty_others.go
│ │ │ ├── isatty_plan9.go
│ │ │ ├── isatty_solaris.go
│ │ │ ├── isatty_tcgets.go
│ │ │ └── isatty_windows.go
│ │ └── go-runewidth/
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── runewidth.go
│ │ ├── runewidth_appengine.go
│ │ ├── runewidth_js.go
│ │ ├── runewidth_posix.go
│ │ ├── runewidth_table.go
│ │ └── runewidth_windows.go
│ ├── mitchellh/
│ │ ├── copystructure/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── copier_time.go
│ │ │ └── copystructure.go
│ │ ├── go-homedir/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── homedir.go
│ │ ├── go-wordwrap/
│ │ │ ├── LICENSE.md
│ │ │ ├── README.md
│ │ │ └── wordwrap.go
│ │ ├── mapstructure/
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── decode_hooks.go
│ │ │ ├── error.go
│ │ │ └── mapstructure.go
│ │ └── reflectwalk/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── location.go
│ │ ├── location_string.go
│ │ └── reflectwalk.go
│ ├── moby/
│ │ ├── docker-image-spec/
│ │ │ ├── LICENSE
│ │ │ └── specs-go/
│ │ │ └── v1/
│ │ │ └── image.go
│ │ ├── locker/
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ └── locker.go
│ │ └── spdystream/
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── MAINTAINERS
│ │ ├── NOTICE
│ │ ├── README.md
│ │ ├── connection.go
│ │ ├── handlers.go
│ │ ├── priority.go
│ │ ├── spdy/
│ │ │ ├── dictionary.go
│ │ │ ├── read.go
│ │ │ ├── types.go
│ │ │ └── write.go
│ │ ├── stream.go
│ │ └── utils.go
│ ├── modern-go/
│ │ └── concurrent/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── executor.go
│ │ ├── go_above_19.go
│ │ ├── go_below_19.go
│ │ ├── log.go
│ │ ├── test.sh
│ │ └── unbounded_executor.go
│ ├── monochromegane/
│ │ └── go-gitignore/
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── depth_holder.go
│ │ ├── full_scan_patterns.go
│ │ ├── gitignore.go
│ │ ├── index_scan_patterns.go
│ │ ├── initial_holder.go
│ │ ├── match.go
│ │ ├── pattern.go
│ │ ├── patterns.go
│ │ └── util.go
│ ├── munnerz/
│ │ └── goautoneg/
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README.txt
│ │ └── autoneg.go
│ ├── mxk/
│ │ └── go-flowrate/
│ │ ├── LICENSE
│ │ └── flowrate/
│ │ ├── flowrate.go
│ │ ├── io.go
│ │ └── util.go
│ ├── oklog/
│ │ └── ulid/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── AUTHORS.md
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── Gopkg.toml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ └── ulid.go
│ ├── oliveagle/
│ │ └── jsonpath/
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── jsonpath.go
│ │ └── readme.md
│ ├── onsi/
│ │ ├── ginkgo/
│ │ │ └── v2/
│ │ │ ├── .gitignore
│ │ │ ├── CHANGELOG.md
│ │ │ ├── CONTRIBUTING.md
│ │ │ ├── LICENSE
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── RELEASING.md
│ │ │ ├── config/
│ │ │ │ └── deprecated.go
│ │ │ ├── core_dsl.go
│ │ │ ├── decorator_dsl.go
│ │ │ ├── deprecated_dsl.go
│ │ │ ├── formatter/
│ │ │ │ ├── colorable_others.go
│ │ │ │ ├── colorable_windows.go
│ │ │ │ └── formatter.go
│ │ │ ├── ginkgo/
│ │ │ │ ├── build/
│ │ │ │ │ └── build_command.go
│ │ │ │ ├── command/
│ │ │ │ │ ├── abort.go
│ │ │ │ │ ├── command.go
│ │ │ │ │ └── program.go
│ │ │ │ ├── generators/
│ │ │ │ │ ├── boostrap_templates.go
│ │ │ │ │ ├── bootstrap_command.go
│ │ │ │ │ ├── generate_command.go
│ │ │ │ │ ├── generate_templates.go
│ │ │ │ │ └── generators_common.go
│ │ │ │ ├── internal/
│ │ │ │ │ ├── compile.go
│ │ │ │ │ ├── gocovmerge.go
│ │ │ │ │ ├── profiles_and_reports.go
│ │ │ │ │ ├── run.go
│ │ │ │ │ ├── test_suite.go
│ │ │ │ │ ├── utils.go
│ │ │ │ │ └── verify_version.go
│ │ │ │ ├── labels/
│ │ │ │ │ └── labels_command.go
│ │ │ │ ├── main.go
│ │ │ │ ├── outline/
│ │ │ │ │ ├── ginkgo.go
│ │ │ │ │ ├── import.go
│ │ │ │ │ ├── outline.go
│ │ │ │ │ └── outline_command.go
│ │ │ │ ├── run/
│ │ │ │ │ └── run_command.go
│ │ │ │ ├── unfocus/
│ │ │ │ │ └── unfocus_command.go
│ │ │ │ └── watch/
│ │ │ │ ├── delta.go
│ │ │ │ ├── delta_tracker.go
│ │ │ │ ├── dependencies.go
│ │ │ │ ├── package_hash.go
│ │ │ │ ├── package_hashes.go
│ │ │ │ ├── suite.go
│ │ │ │ └── watch_command.go
│ │ │ ├── ginkgo_cli_dependencies.go
│ │ │ ├── ginkgo_t_dsl.go
│ │ │ ├── internal/
│ │ │ │ ├── counter.go
│ │ │ │ ├── failer.go
│ │ │ │ ├── focus.go
│ │ │ │ ├── global/
│ │ │ │ │ └── init.go
│ │ │ │ ├── group.go
│ │ │ │ ├── interrupt_handler/
│ │ │ │ │ ├── interrupt_handler.go
│ │ │ │ │ ├── sigquit_swallower_unix.go
│ │ │ │ │ └── sigquit_swallower_windows.go
│ │ │ │ ├── node.go
│ │ │ │ ├── ordering.go
│ │ │ │ ├── output_interceptor.go
│ │ │ │ ├── output_interceptor_unix.go
│ │ │ │ ├── output_interceptor_wasm.go
│ │ │ │ ├── output_interceptor_win.go
│ │ │ │ ├── parallel_support/
│ │ │ │ │ ├── client_server.go
│ │ │ │ │ ├── http_client.go
│ │ │ │ │ ├── http_server.go
│ │ │ │ │ ├── rpc_client.go
│ │ │ │ │ ├── rpc_server.go
│ │ │ │ │ └── server_handler.go
│ │ │ │ ├── progress_report.go
│ │ │ │ ├── progress_report_bsd.go
│ │ │ │ ├── progress_report_unix.go
│ │ │ │ ├── progress_report_wasm.go
│ │ │ │ ├── progress_report_win.go
│ │ │ │ ├── progress_reporter_manager.go
│ │ │ │ ├── report_entry.go
│ │ │ │ ├── spec.go
│ │ │ │ ├── spec_context.go
│ │ │ │ ├── suite.go
│ │ │ │ ├── testingtproxy/
│ │ │ │ │ └── testing_t_proxy.go
│ │ │ │ ├── tree.go
│ │ │ │ └── writer.go
│ │ │ ├── reporters/
│ │ │ │ ├── default_reporter.go
│ │ │ │ ├── deprecated_reporter.go
│ │ │ │ ├── json_report.go
│ │ │ │ ├── junit_report.go
│ │ │ │ ├── reporter.go
│ │ │ │ └── teamcity_report.go
│ │ │ ├── reporting_dsl.go
│ │ │ ├── table_dsl.go
│ │ │ └── types/
│ │ │ ├── code_location.go
│ │ │ ├── config.go
│ │ │ ├── deprecated_types.go
│ │ │ ├── deprecation_support.go
│ │ │ ├── enum_support.go
│ │ │ ├── errors.go
│ │ │ ├── file_filter.go
│ │ │ ├── flags.go
│ │ │ ├── label_filter.go
│ │ │ ├── report_entry.go
│ │ │ ├── types.go
│ │ │ └── version.go
│ │ └── gomega/
│ │ ├── .gitignore
│ │ ├── CHANGELOG.md
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── RELEASING.md
│ │ ├── format/
│ │ │ └── format.go
│ │ ├── gbytes/
│ │ │ ├── buffer.go
│ │ │ ├── io_wrappers.go
│ │ │ └── say_matcher.go
│ │ ├── gexec/
│ │ │ ├── build.go
│ │ │ ├── exit_matcher.go
│ │ │ ├── prefixed_writer.go
│ │ │ └── session.go
│ │ ├── gomega_dsl.go
│ │ ├── internal/
│ │ │ ├── assertion.go
│ │ │ ├── async_assertion.go
│ │ │ ├── duration_bundle.go
│ │ │ ├── gomega.go
│ │ │ ├── gutil/
│ │ │ │ ├── post_ioutil.go
│ │ │ │ └── using_ioutil.go
│ │ │ ├── polling_signal_error.go
│ │ │ └── vetoptdesc.go
│ │ ├── matchers/
│ │ │ ├── and.go
│ │ │ ├── assignable_to_type_of_matcher.go
│ │ │ ├── attributes_slice.go
│ │ │ ├── be_a_directory.go
│ │ │ ├── be_a_regular_file.go
│ │ │ ├── be_an_existing_file.go
│ │ │ ├── be_closed_matcher.go
│ │ │ ├── be_comparable_to_matcher.go
│ │ │ ├── be_element_of_matcher.go
│ │ │ ├── be_empty_matcher.go
│ │ │ ├── be_equivalent_to_matcher.go
│ │ │ ├── be_false_matcher.go
│ │ │ ├── be_identical_to.go
│ │ │ ├── be_key_of_matcher.go
│ │ │ ├── be_nil_matcher.go
│ │ │ ├── be_numerically_matcher.go
│ │ │ ├── be_sent_matcher.go
│ │ │ ├── be_temporally_matcher.go
│ │ │ ├── be_true_matcher.go
│ │ │ ├── be_zero_matcher.go
│ │ │ ├── consist_of.go
│ │ │ ├── contain_element_matcher.go
│ │ │ ├── contain_elements_matcher.go
│ │ │ ├── contain_substring_matcher.go
│ │ │ ├── equal_matcher.go
│ │ │ ├── have_cap_matcher.go
│ │ │ ├── have_each_matcher.go
│ │ │ ├── have_exact_elements.go
│ │ │ ├── have_existing_field_matcher.go
│ │ │ ├── have_field.go
│ │ │ ├── have_http_body_matcher.go
│ │ │ ├── have_http_header_with_value_matcher.go
│ │ │ ├── have_http_status_matcher.go
│ │ │ ├── have_key_matcher.go
│ │ │ ├── have_key_with_value_matcher.go
│ │ │ ├── have_len_matcher.go
│ │ │ ├── have_occurred_matcher.go
│ │ │ ├── have_prefix_matcher.go
│ │ │ ├── have_suffix_matcher.go
│ │ │ ├── have_value.go
│ │ │ ├── internal/
│ │ │ │ └── miter/
│ │ │ │ ├── type_support_iter.go
│ │ │ │ └── type_support_noiter.go
│ │ │ ├── match_error_matcher.go
│ │ │ ├── match_json_matcher.go
│ │ │ ├── match_regexp_matcher.go
│ │ │ ├── match_xml_matcher.go
│ │ │ ├── match_yaml_matcher.go
│ │ │ ├── not.go
│ │ │ ├── or.go
│ │ │ ├── panic_matcher.go
│ │ │ ├── receive_matcher.go
│ │ │ ├── satisfy_matcher.go
│ │ │ ├── semi_structured_data_support.go
│ │ │ ├── succeed_matcher.go
│ │ │ ├── support/
│ │ │ │ └── goraph/
│ │ │ │ ├── bipartitegraph/
│ │ │ │ │ ├── bipartitegraph.go
│ │ │ │ │ └── bipartitegraphmatching.go
│ │ │ │ ├── edge/
│ │ │ │ │ └── edge.go
│ │ │ │ ├── node/
│ │ │ │ │ └── node.go
│ │ │ │ └── util/
│ │ │ │ └── util.go
│ │ │ ├── type_support.go
│ │ │ └── with_transform.go
│ │ ├── matchers.go
│ │ └── types/
│ │ └── types.go
│ ├── open-policy-agent/
│ │ └── opa/
│ │ ├── LICENSE
│ │ ├── ast/
│ │ │ ├── annotations.go
│ │ │ ├── builtins.go
│ │ │ ├── capabilities.go
│ │ │ ├── check.go
│ │ │ ├── compare.go
│ │ │ ├── compile.go
│ │ │ ├── compilehelper.go
│ │ │ ├── conflicts.go
│ │ │ ├── doc.go
│ │ │ ├── env.go
│ │ │ ├── errors.go
│ │ │ ├── index.go
│ │ │ ├── interning.go
│ │ │ ├── json/
│ │ │ │ ├── doc.go
│ │ │ │ └── json.go
│ │ │ ├── map.go
│ │ │ ├── parser.go
│ │ │ ├── parser_ext.go
│ │ │ ├── policy.go
│ │ │ ├── pretty.go
│ │ │ ├── schema.go
│ │ │ ├── strings.go
│ │ │ ├── term.go
│ │ │ ├── transform.go
│ │ │ ├── unify.go
│ │ │ ├── varset.go
│ │ │ └── visit.go
│ │ ├── bundle/
│ │ │ ├── bundle.go
│ │ │ ├── doc.go
│ │ │ ├── file.go
│ │ │ ├── filefs.go
│ │ │ ├── hash.go
│ │ │ ├── keys.go
│ │ │ ├── sign.go
│ │ │ ├── store.go
│ │ │ └── verify.go
│ │ ├── capabilities/
│ │ │ ├── capabilities.go
│ │ │ ├── doc.go
│ │ │ ├── v0.17.0.json
│ │ │ ├── v0.17.1.json
│ │ │ ├── v0.17.2.json
│ │ │ ├── v0.17.3.json
│ │ │ ├── v0.18.0.json
│ │ │ ├── v0.19.0-rc1.json
│ │ │ ├── v0.19.0.json
│ │ │ ├── v0.19.1.json
│ │ │ ├── v0.19.2.json
│ │ │ ├── v0.20.0.json
│ │ │ ├── v0.20.1.json
│ │ │ ├── v0.20.2.json
│ │ │ ├── v0.20.3.json
│ │ │ ├── v0.20.4.json
│ │ │ ├── v0.20.5.json
│ │ │ ├── v0.21.0.json
│ │ │ ├── v0.21.1.json
│ │ │ ├── v0.22.0.json
│ │ │ ├── v0.23.0.json
│ │ │ ├── v0.23.1.json
│ │ │ ├── v0.23.2.json
│ │ │ ├── v0.24.0.json
│ │ │ ├── v0.25.0-rc1.json
│ │ │ ├── v0.25.0-rc2.json
│ │ │ ├── v0.25.0-rc3.json
│ │ │ ├── v0.25.0-rc4.json
│ │ │ ├── v0.25.0.json
│ │ │ ├── v0.25.1.json
│ │ │ ├── v0.25.2.json
│ │ │ ├── v0.26.0.json
│ │ │ ├── v0.27.0.json
│ │ │ ├── v0.27.1.json
│ │ │ ├── v0.28.0.json
│ │ │ ├── v0.29.0.json
│ │ │ ├── v0.29.1.json
│ │ │ ├── v0.29.2.json
│ │ │ ├── v0.29.3.json
│ │ │ ├── v0.29.4.json
│ │ │ ├── v0.30.0.json
│ │ │ ├── v0.30.1.json
│ │ │ ├── v0.30.2.json
│ │ │ ├── v0.31.0.json
│ │ │ ├── v0.32.0.json
│ │ │ ├── v0.32.1.json
│ │ │ ├── v0.33.0.json
│ │ │ ├── v0.33.1.json
│ │ │ ├── v0.34.0.json
│ │ │ ├── v0.34.1.json
│ │ │ ├── v0.34.2.json
│ │ │ ├── v0.35.0.json
│ │ │ ├── v0.36.0.json
│ │ │ ├── v0.36.1.json
│ │ │ ├── v0.37.0.json
│ │ │ ├── v0.37.1.json
│ │ │ ├── v0.37.2.json
│ │ │ ├── v0.38.0.json
│ │ │ ├── v0.38.1.json
│ │ │ ├── v0.39.0.json
│ │ │ ├── v0.40.0.json
│ │ │ ├── v0.41.0.json
│ │ │ ├── v0.42.0.json
│ │ │ ├── v0.42.1.json
│ │ │ ├── v0.42.2.json
│ │ │ ├── v0.43.0.json
│ │ │ ├── v0.43.1.json
│ │ │ ├── v0.44.0.json
│ │ │ ├── v0.45.0.json
│ │ │ ├── v0.46.0.json
│ │ │ ├── v0.46.1.json
│ │ │ ├── v0.46.2.json
│ │ │ ├── v0.46.3.json
│ │ │ ├── v0.47.0.json
│ │ │ ├── v0.47.1.json
│ │ │ ├── v0.47.2.json
│ │ │ ├── v0.47.3.json
│ │ │ ├── v0.47.4.json
│ │ │ ├── v0.48.0.json
│ │ │ ├── v0.49.0.json
│ │ │ ├── v0.49.1.json
│ │ │ ├── v0.49.2.json
│ │ │ ├── v0.50.0.json
│ │ │ ├── v0.50.1.json
│ │ │ ├── v0.50.2.json
│ │ │ ├── v0.51.0.json
│ │ │ ├── v0.52.0.json
│ │ │ ├── v0.53.0.json
│ │ │ ├── v0.53.1.json
│ │ │ ├── v0.54.0.json
│ │ │ ├── v0.55.0.json
│ │ │ ├── v0.56.0.json
│ │ │ ├── v0.57.0.json
│ │ │ ├── v0.57.1.json
│ │ │ ├── v0.58.0.json
│ │ │ ├── v0.59.0.json
│ │ │ ├── v0.60.0.json
│ │ │ ├── v0.61.0.json
│ │ │ ├── v0.62.0.json
│ │ │ ├── v0.62.1.json
│ │ │ ├── v0.63.0.json
│ │ │ ├── v0.64.0.json
│ │ │ ├── v0.64.1.json
│ │ │ ├── v0.65.0.json
│ │ │ ├── v0.66.0.json
│ │ │ ├── v0.67.0.json
│ │ │ ├── v0.67.1.json
│ │ │ ├── v0.68.0.json
│ │ │ ├── v0.69.0.json
│ │ │ ├── v0.70.0.json
│ │ │ ├── v1.0.0.json
│ │ │ ├── v1.0.1.json
│ │ │ ├── v1.1.0.json
│ │ │ ├── v1.2.0.json
│ │ │ ├── v1.3.0.json
│ │ │ ├── v1.4.0.json
│ │ │ ├── v1.4.1.json
│ │ │ └── v1.4.2.json
│ │ ├── internal/
│ │ │ ├── bundle/
│ │ │ │ └── utils.go
│ │ │ ├── cidr/
│ │ │ │ └── merge/
│ │ │ │ └── merge.go
│ │ │ ├── compiler/
│ │ │ │ ├── utils.go
│ │ │ │ └── wasm/
│ │ │ │ ├── opa/
│ │ │ │ │ ├── callgraph.csv
│ │ │ │ │ ├── opa.go
│ │ │ │ │ └── opa.wasm
│ │ │ │ ├── optimizations.go
│ │ │ │ └── wasm.go
│ │ │ ├── config/
│ │ │ │ └── config.go
│ │ │ ├── debug/
│ │ │ │ └── debug.go
│ │ │ ├── deepcopy/
│ │ │ │ └── deepcopy.go
│ │ │ ├── edittree/
│ │ │ │ ├── bitvector/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── bitvector.go
│ │ │ │ │ └── license.txt
│ │ │ │ └── edittree.go
│ │ │ ├── file/
│ │ │ │ ├── archive/
│ │ │ │ │ └── tarball.go
│ │ │ │ └── url/
│ │ │ │ └── url.go
│ │ │ ├── future/
│ │ │ │ ├── filter_imports.go
│ │ │ │ └── parser_opts.go
│ │ │ ├── gojsonschema/
│ │ │ │ ├── LICENSE-APACHE-2.0.txt
│ │ │ │ ├── README.md
│ │ │ │ ├── draft.go
│ │ │ │ ├── errors.go
│ │ │ │ ├── format_checkers.go
│ │ │ │ ├── internalLog.go
│ │ │ │ ├── jsonContext.go
│ │ │ │ ├── jsonLoader.go
│ │ │ │ ├── locales.go
│ │ │ │ ├── result.go
│ │ │ │ ├── schema.go
│ │ │ │ ├── schemaLoader.go
│ │ │ │ ├── schemaPool.go
│ │ │ │ ├── schemaReferencePool.go
│ │ │ │ ├── schemaType.go
│ │ │ │ ├── subSchema.go
│ │ │ │ ├── types.go
│ │ │ │ ├── utils.go
│ │ │ │ └── validation.go
│ │ │ ├── gqlparser/
│ │ │ │ ├── LICENSE
│ │ │ │ ├── ast/
Showing preview only (1,793K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (18996 symbols across 1219 files)
FILE: cmd/ks-apiserver/apiserver.go
function main (line 17) | func main() {
FILE: cmd/ks-apiserver/app/options/options.go
type APIServerOptions (line 39) | type APIServerOptions struct
method Flags (line 52) | func (s *APIServerOptions) Flags() (fss cliflag.NamedFlagSets) {
method NewAPIServer (line 74) | func (s *APIServerOptions) NewAPIServer(ctx context.Context) (*apiserv...
method Merge (line 160) | func (s *APIServerOptions) Merge(conf *config.Config) {
function NewAPIServerOptions (line 46) | func NewAPIServerOptions() *APIServerOptions {
FILE: cmd/ks-apiserver/app/options/validation.go
method Validate (line 11) | func (s *APIServerOptions) Validate() []error {
FILE: cmd/ks-apiserver/app/server.go
function NewAPIServerCommand (line 29) | func NewAPIServerCommand() *cobra.Command {
function Run (line 85) | func Run(ctx context.Context, s *options.APIServerOptions) error {
FILE: cmd/ks-controller-manager/app/options/options.go
type ControllerManagerOptions (line 33) | type ControllerManagerOptions struct
method Flags (line 64) | func (s *ControllerManagerOptions) Flags() cliflag.NamedFlagSets {
method Validate (line 102) | func (s *ControllerManagerOptions) Validate() []error {
method bindLeaderElectionFlags (line 122) | func (s *ControllerManagerOptions) bindLeaderElectionFlags(l *leaderel...
method Merge (line 140) | func (s *ControllerManagerOptions) Merge(conf *config.Config) {
method NewControllerManager (line 176) | func (s *ControllerManagerOptions) NewControllerManager() (*controller...
method IsControllerEnabled (line 238) | func (s *ControllerManagerOptions) IsControllerEnabled(name string) bo...
function NewControllerManagerOptions (line 51) | func NewControllerManagerOptions() *ControllerManagerOptions {
FILE: cmd/ks-controller-manager/app/options/options_test.go
function TestIsControllerEnabled (line 16) | func TestIsControllerEnabled(t *testing.T) {
FILE: cmd/ks-controller-manager/app/server.go
function init (line 62) | func init() {
function NewControllerManagerCommand (line 128) | func NewControllerManagerCommand() *cobra.Command {
function Run (line 180) | func Run(ctx context.Context, s *options.ControllerManagerOptions) error {
FILE: cmd/ks-controller-manager/controller-manager.go
function main (line 17) | func main() {
FILE: kube/pkg/apis/core/v1/helper/helpers.go
function IsExtendedResourceName (line 34) | func IsExtendedResourceName(name v1.ResourceName) bool {
function IsPrefixedNativeResource (line 48) | func IsPrefixedNativeResource(name v1.ResourceName) bool {
function IsNativeResource (line 55) | func IsNativeResource(name v1.ResourceName) bool {
function GetPersistentVolumeClaimClass (line 62) | func GetPersistentVolumeClaimClass(claim *v1.PersistentVolumeClaim) stri...
function ScopedResourceSelectorRequirementsAsSelector (line 77) | func ScopedResourceSelectorRequirementsAsSelector(ssr v1.ScopedResourceS...
FILE: kube/pkg/apis/core/v1/helper/qos/qos.go
function isSupportedQoSComputeResource (line 27) | func isSupportedQoSComputeResource(name corev1.ResourceName) bool {
function GetPodQOS (line 35) | func GetPodQOS(pod *corev1.Pod) corev1.PodQOSClass {
FILE: kube/pkg/features/features.go
constant ExpandPersistentVolumes (line 28) | ExpandPersistentVolumes featuregate.Feature = "ExpandPersistentVolumes"
FILE: kube/pkg/openapi/apiservice.go
type certKeyFunc (line 30) | type certKeyFunc
constant aggregatedDiscoveryTimeout (line 33) | aggregatedDiscoveryTimeout = 5 * time.Second
type ApiService (line 36) | type ApiService interface
type defaultApiService (line 43) | type defaultApiService struct
method Name (line 58) | func (d *defaultApiService) Name() string {
method ResolveEndpoint (line 62) | func (d *defaultApiService) ResolveEndpoint() (*url.URL, error) {
method UpdateAPIService (line 84) | func (d *defaultApiService) UpdateAPIService() error {
method ServeHTTP (line 118) | func (d *defaultApiService) ServeHTTP(w http.ResponseWriter, req *http...
function NewApiService (line 51) | func NewApiService(apiService *extensionsv1alpha1.APIService) ApiService {
type responder (line 155) | type responder struct
method Object (line 159) | func (r *responder) Object(statusCode int, obj runtime.Object) {
method Error (line 163) | func (r *responder) Error(_ http.ResponseWriter, _ *http.Request, err ...
function proxyError (line 167) | func proxyError(w http.ResponseWriter, req *http.Request, error string, ...
function newRequestForProxy (line 172) | func newRequestForProxy(location *url.URL, req *http.Request) (*http.Req...
FILE: kube/pkg/openapi/downloader.go
constant specDownloadTimeout (line 16) | specDownloadTimeout = time.Minute
type CacheableDownloader (line 19) | type CacheableDownloader interface
type Downloader (line 26) | type Downloader struct
method Download (line 32) | func (s *Downloader) Download(handler http.Handler, req *http.Request)...
function NewDownloader (line 28) | func NewDownloader() *Downloader {
type inMemoryResponseWriter (line 50) | type inMemoryResponseWriter struct
method Header (line 61) | func (r *inMemoryResponseWriter) Header() http.Header {
method WriteHeader (line 65) | func (r *inMemoryResponseWriter) WriteHeader(code int) {
method Write (line 70) | func (r *inMemoryResponseWriter) Write(in []byte) (int, error) {
method String (line 78) | func (r *inMemoryResponseWriter) String() string {
function newInMemoryResponseWriter (line 57) | func newInMemoryResponseWriter() *inMemoryResponseWriter {
type cacheableDownloader (line 89) | type cacheableDownloader struct
method Name (line 105) | func (c *cacheableDownloader) Name() string {
method Get (line 109) | func (c *cacheableDownloader) Get(url string) ([]byte, error) {
method GetV2 (line 119) | func (c *cacheableDownloader) GetV2() ([]byte, error) {
method GetV3 (line 123) | func (c *cacheableDownloader) GetV3() ([]byte, error) {
method UpdateDownloader (line 127) | func (c *cacheableDownloader) UpdateDownloader(apiService ApiService) ...
function NewCacheableDownloader (line 94) | func NewCacheableDownloader(apiService ApiService, downloader *Downloade...
FILE: kube/pkg/openapi/merge/default_pruning.go
function PruneDefaults (line 24) | func PruneDefaults(definitions spec.Definitions) spec.Definitions {
function PruneDefaultsSchema (line 44) | func PruneDefaultsSchema(schema *spec.Schema) *spec.Schema {
FILE: kube/pkg/openapi/merge/merge.go
constant gvkKey (line 29) | gvkKey = "x-kubesphere-group-version-kind"
function usedDefinitionForSpec (line 32) | func usedDefinitionForSpec(root *spec.Swagger) map[string]bool {
function FilterSpecByPathsWithoutSideEffects (line 46) | func FilterSpecByPathsWithoutSideEffects(sp *spec.Swagger, keepPathPrefi...
function renameDefinitions (line 87) | func renameDefinitions(s *spec.Swagger, renames map[string]string) *spec...
function renameParameters (line 127) | func renameParameters(s *spec.Swagger, renames map[string]string) *spec....
function MergeSpecsIgnorePathConflictRenamingDefinitionsAndParameters (line 168) | func MergeSpecsIgnorePathConflictRenamingDefinitionsAndParameters(dest, ...
function mergeSpecs (line 174) | func mergeSpecs(dest, source *spec.Swagger, renameModelConflicts, rename...
function deepEqualDefinitionsModuloGVKs (line 327) | func deepEqualDefinitionsModuloGVKs(s1, s2 *spec.Schema) bool {
function mergedGVKs (line 371) | func mergedGVKs(s1, s2 *spec.Schema) (interface{}, bool, error) {
type byKeys (line 426) | type byKeys struct
method Len (line 431) | func (b byKeys) Len() int {
method Less (line 435) | func (b byKeys) Less(i, j int) bool {
method Swap (line 439) | func (b byKeys) Swap(i, j int) {
function ReplaceReferences (line 444) | func ReplaceReferences(walkRef func(ref *spec.Ref) *spec.Ref, sp *spec.S...
type Walker (line 449) | type Walker struct
method WalkRoot (line 472) | func (w *Walker) WalkRoot(swagger *spec.Swagger) *spec.Swagger {
method WalkSchema (line 542) | func (w *Walker) WalkSchema(schema *spec.Schema) *spec.Schema {
method walkParameter (line 696) | func (w *Walker) walkParameter(param *spec.Parameter) *spec.Parameter {
method walkParameters (line 728) | func (w *Walker) walkParameters(params []spec.Parameter) ([]spec.Param...
method walkResponse (line 753) | func (w *Walker) walkResponse(resp *spec.Response) *spec.Response {
method walkResponses (line 780) | func (w *Walker) walkResponses(resps *spec.Responses) *spec.Responses {
method walkOperation (line 818) | func (w *Walker) walkOperation(op *spec.Operation) *spec.Operation {
method walkPathItem (line 854) | func (w *Walker) walkPathItem(pathItem *spec.PathItem) *spec.PathItem {
method walkPaths (line 905) | func (w *Walker) walkPaths(paths *spec.Paths) *spec.Paths {
type SchemaCallbackFunc (line 462) | type SchemaCallbackFunc
type RefCallbackFunc (line 463) | type RefCallbackFunc
FILE: kube/pkg/openapi/merge/walker.go
constant definitionPrefix (line 26) | definitionPrefix = "#/definitions/"
constant parameterPrefix (line 27) | parameterPrefix = "#/parameters/"
type readonlyReferenceWalker (line 31) | type readonlyReferenceWalker struct
method walkSchema (line 65) | func (s *readonlyReferenceWalker) walkSchema(schema *spec.Schema) {
method walkParams (line 114) | func (s *readonlyReferenceWalker) walkParams(params []spec.Parameter) {
method walkResponse (line 127) | func (s *readonlyReferenceWalker) walkResponse(resp *spec.Response) {
method walkOperation (line 135) | func (s *readonlyReferenceWalker) walkOperation(op *spec.Operation) {
method Start (line 149) | func (s *readonlyReferenceWalker) Start() {
function walkOnAllReferences (line 41) | func walkOnAllReferences(walkRef func(ref *spec.Ref), root *spec.Swagger) {
FILE: kube/pkg/openapi/openapi.go
type Cache (line 17) | type Cache struct
method Store (line 21) | func (c *Cache[T]) Store(v T) {
method Load (line 25) | func (c *Cache[T]) Load() T {
type PathHandler (line 29) | type PathHandler interface
type APIServiceManager (line 33) | type APIServiceManager interface
type OpenApiAggregatorServices (line 39) | type OpenApiAggregatorServices struct
method AddUpdateApiService (line 53) | func (o *OpenApiAggregatorServices) AddUpdateApiService(apiService *ex...
method GetOpenApiSpecV2 (line 71) | func (o *OpenApiAggregatorServices) GetOpenApiSpecV2(apiServiceName st...
method GetOpenApiSpecV3 (line 82) | func (o *OpenApiAggregatorServices) GetOpenApiSpecV3(apiServiceName st...
method AddLocalApiService (line 93) | func (o *OpenApiAggregatorServices) AddLocalApiService(name string) {
method RemoveApiService (line 100) | func (o *OpenApiAggregatorServices) RemoveApiService(apiServiceName st...
function NewOpenApiAggregatorServices (line 45) | func NewOpenApiAggregatorServices() *OpenApiAggregatorServices {
FILE: kube/pkg/openapi/v2/services.go
type OpenApiV2Services (line 26) | type OpenApiV2Services struct
method AddUpdateApiService (line 38) | func (s *OpenApiV2Services) AddUpdateApiService(apiService *extensions...
method UpdateOpenApiSpec (line 48) | func (s *OpenApiV2Services) UpdateOpenApiSpec(apiServiceName string) e...
method RemoveApiService (line 68) | func (s *OpenApiV2Services) RemoveApiService(apiServiceName string) {
method MergeSpecCache (line 73) | func (s *OpenApiV2Services) MergeSpecCache() (*spec.Swagger, error) {
method RegisterOpenAPIVersionedService (line 93) | func (s *OpenApiV2Services) RegisterOpenAPIVersionedService(servePath ...
method AddLocalApiService (line 119) | func (s *OpenApiV2Services) AddLocalApiService(name string, val *spec....
function NewOpenApiV2Services (line 31) | func NewOpenApiV2Services() *OpenApiV2Services {
function BuildAndRegisterAggregator (line 126) | func BuildAndRegisterAggregator(
function buildAndRegisterOpenApiV2ForLocalServices (line 136) | func buildAndRegisterOpenApiV2ForLocalServices(path string, aggregatorSp...
FILE: kube/pkg/openapi/v2/services_test.go
function TestServiceAddUpdateApiService (line 18) | func TestServiceAddUpdateApiService(t *testing.T) {
FILE: kube/pkg/openapi/v3/services.go
type OpenApiV3Services (line 29) | type OpenApiV3Services struct
method AddUpdateApiService (line 41) | func (s *OpenApiV3Services) AddUpdateApiService(apiService *extensions...
method UpdateOpenApiSpec (line 51) | func (s *OpenApiV3Services) UpdateOpenApiSpec(apiServiceName string) e...
method RemoveApiService (line 72) | func (s *OpenApiV3Services) RemoveApiService(apiServiceName string) {
method MergeSpecCache (line 77) | func (s *OpenApiV3Services) MergeSpecCache() (*spec3.OpenAPI, error) {
method RegisterOpenAPIVersionedService (line 96) | func (s *OpenApiV3Services) RegisterOpenAPIVersionedService(servePath ...
method AddLocalApiService (line 122) | func (s *OpenApiV3Services) AddLocalApiService(name string, val *spec3...
function NewOpenApiV3Services (line 34) | func NewOpenApiV3Services() *OpenApiV3Services {
function BuildAndRegisterAggregator (line 129) | func BuildAndRegisterAggregator(
function buildAndRegisterOpenApiV3ForLocalServices (line 147) | func buildAndRegisterOpenApiV3ForLocalServices(path string, aggregatorSp...
FILE: kube/pkg/quota/v1/evaluator/core/persistentvolumeclaims.go
constant storageClassSuffix (line 55) | storageClassSuffix string = ".storageclass.storage.k8s.io/"
function NewPersistentVolumeClaimEvaluator (line 58) | func NewPersistentVolumeClaimEvaluator(cache client.Reader) quota.Evalua...
type pvcEvaluator (line 64) | type pvcEvaluator struct
method Constraints (line 70) | func (p *pvcEvaluator) Constraints(required []corev1.ResourceName, ite...
method GroupResource (line 76) | func (p *pvcEvaluator) GroupResource() schema.GroupResource {
method Handles (line 81) | func (p *pvcEvaluator) Handles(a admission.Attributes) bool {
method Matches (line 93) | func (p *pvcEvaluator) Matches(resourceQuota *corev1.ResourceQuota, it...
method MatchingScopes (line 98) | func (p *pvcEvaluator) MatchingScopes(item runtime.Object, scopes []co...
method UncoveredQuotaScopes (line 104) | func (p *pvcEvaluator) UncoveredQuotaScopes(limitedScopes []corev1.Sco...
method MatchingResources (line 109) | func (p *pvcEvaluator) MatchingResources(items []corev1.ResourceName) ...
method Usage (line 135) | func (p *pvcEvaluator) Usage(item runtime.Object) (corev1.ResourceList...
method listPVC (line 163) | func (p *pvcEvaluator) listPVC(namespace string) ([]runtime.Object, er...
method UsageStats (line 176) | func (p *pvcEvaluator) UsageStats(options quota.UsageStatsOptions) (qu...
function toExternalPersistentVolumeClaimOrError (line 183) | func toExternalPersistentVolumeClaimOrError(obj runtime.Object) (*corev1...
FILE: kube/pkg/quota/v1/evaluator/core/pods.go
function maskResourceWithPrefix (line 75) | func maskResourceWithPrefix(resource corev1.ResourceName, prefix string)...
function isExtendedResourceNameForQuota (line 81) | func isExtendedResourceNameForQuota(name corev1.ResourceName) bool {
function NewPodEvaluator (line 101) | func NewPodEvaluator(cache client.Reader, clock clock.Clock) quota.Evalu...
type podEvaluator (line 107) | type podEvaluator struct
method Constraints (line 115) | func (p *podEvaluator) Constraints(required []corev1.ResourceName, ite...
method GroupResource (line 140) | func (p *podEvaluator) GroupResource() schema.GroupResource {
method Handles (line 145) | func (p *podEvaluator) Handles(a admission.Attributes) bool {
method Matches (line 151) | func (p *podEvaluator) Matches(resourceQuota *corev1.ResourceQuota, it...
method MatchingResources (line 156) | func (p *podEvaluator) MatchingResources(input []corev1.ResourceName) ...
method MatchingScopes (line 173) | func (p *podEvaluator) MatchingScopes(item runtime.Object, scopeSelect...
method UncoveredQuotaScopes (line 189) | func (p *podEvaluator) UncoveredQuotaScopes(limitedScopes []corev1.Sco...
method Usage (line 208) | func (p *podEvaluator) Usage(item runtime.Object) (corev1.ResourceList...
method UsageStats (line 214) | func (p *podEvaluator) UsageStats(options quota.UsageStatsOptions) (qu...
method listPods (line 218) | func (p *podEvaluator) listPods(namespace string) ([]runtime.Object, e...
function enforcePodContainerConstraints (line 235) | func enforcePodContainerConstraints(container *corev1.Container, require...
function podComputeUsageHelper (line 247) | func podComputeUsageHelper(requests corev1.ResourceList, limits corev1.R...
function toExternalPodOrError (line 287) | func toExternalPodOrError(obj runtime.Object) (*corev1.Pod, error) {
function podMatchesScopeFunc (line 299) | func podMatchesScopeFunc(selector corev1.ScopedResourceSelectorRequireme...
function PodUsageFunc (line 323) | func PodUsageFunc(obj runtime.Object, clock clock.Clock) (corev1.Resourc...
function isBestEffort (line 362) | func isBestEffort(pod *corev1.Pod) bool {
function isTerminating (line 366) | func isTerminating(pod *corev1.Pod) bool {
function podMatchesSelector (line 373) | func podMatchesSelector(pod *corev1.Pod, selector corev1.ScopedResourceS...
function QuotaV1Pod (line 390) | func QuotaV1Pod(pod *corev1.Pod, clock clock.Clock) bool {
FILE: kube/pkg/quota/v1/evaluator/core/registry.go
function NewEvaluators (line 38) | func NewEvaluators(client client.Client) []quota.Evaluator {
FILE: kube/pkg/quota/v1/evaluator/core/services.go
function NewServiceEvaluator (line 47) | func NewServiceEvaluator(cache client.Reader) quota.Evaluator {
type serviceEvaluator (line 53) | type serviceEvaluator struct
method Constraints (line 59) | func (p *serviceEvaluator) Constraints(required []corev1.ResourceName,...
method GroupResource (line 65) | func (p *serviceEvaluator) GroupResource() schema.GroupResource {
method Handles (line 70) | func (p *serviceEvaluator) Handles(a admission.Attributes) bool {
method Matches (line 77) | func (p *serviceEvaluator) Matches(resourceQuota *corev1.ResourceQuota...
method MatchingResources (line 82) | func (p *serviceEvaluator) MatchingResources(input []corev1.ResourceNa...
method MatchingScopes (line 87) | func (p *serviceEvaluator) MatchingScopes(item runtime.Object, scopes ...
method UncoveredQuotaScopes (line 93) | func (p *serviceEvaluator) UncoveredQuotaScopes(limitedScopes []corev1...
method Usage (line 110) | func (p *serviceEvaluator) Usage(item runtime.Object) (corev1.Resource...
method listServices (line 136) | func (p *serviceEvaluator) listServices(namespace string) ([]runtime.O...
method UsageStats (line 149) | func (p *serviceEvaluator) UsageStats(options quota.UsageStatsOptions)...
function toExternalServiceOrError (line 98) | func toExternalServiceOrError(obj runtime.Object) (*corev1.Service, erro...
function GetQuotaServiceType (line 156) | func GetQuotaServiceType(service *corev1.Service) corev1.ServiceType {
FILE: kube/pkg/quota/v1/generic/configuration.go
type simpleConfiguration (line 26) | type simpleConfiguration struct
method IgnoredResources (line 39) | func (c *simpleConfiguration) IgnoredResources() map[schema.GroupResou...
method Evaluators (line 43) | func (c *simpleConfiguration) Evaluators() []quota.Evaluator {
function NewConfiguration (line 32) | func NewConfiguration(evaluators []quota.Evaluator, ignoredResources map...
FILE: kube/pkg/quota/v1/generic/evaluator.go
function ListResourceUsingCacheFunc (line 35) | func ListResourceUsingCacheFunc(cacheClient client.Client, gvr schema.Gr...
function ObjectCountQuotaResourceNameFor (line 54) | func ObjectCountQuotaResourceNameFor(groupResource schema.GroupResource)...
type ListFuncByNamespace (line 62) | type ListFuncByNamespace
type MatchesScopeFunc (line 65) | type MatchesScopeFunc
type UsageFunc (line 68) | type UsageFunc
type MatchingResourceNamesFunc (line 71) | type MatchingResourceNamesFunc
function MatchesNoScopeFunc (line 74) | func MatchesNoScopeFunc(scope corev1.ScopedResourceSelectorRequirement, ...
function Matches (line 79) | func Matches(
function getScopeSelectorsFromQuota (line 99) | func getScopeSelectorsFromQuota(quota *corev1.ResourceQuota) []corev1.Sc...
function CalculateUsageStats (line 113) | func CalculateUsageStats(options quota.UsageStatsOptions,
type objectCountEvaluator (line 162) | type objectCountEvaluator struct
method Constraints (line 174) | func (o *objectCountEvaluator) Constraints(required []corev1.ResourceN...
method Handles (line 180) | func (o *objectCountEvaluator) Handles(a admission.Attributes) bool {
method Matches (line 186) | func (o *objectCountEvaluator) Matches(resourceQuota *corev1.ResourceQ...
method MatchingResources (line 191) | func (o *objectCountEvaluator) MatchingResources(input []corev1.Resour...
method MatchingScopes (line 196) | func (o *objectCountEvaluator) MatchingScopes(item runtime.Object, sco...
method UncoveredQuotaScopes (line 202) | func (o *objectCountEvaluator) UncoveredQuotaScopes(limitedScopes []co...
method Usage (line 207) | func (o *objectCountEvaluator) Usage(object runtime.Object) (corev1.Re...
method GroupResource (line 217) | func (o *objectCountEvaluator) GroupResource() schema.GroupResource {
method UsageStats (line 222) | func (o *objectCountEvaluator) UsageStats(options quota.UsageStatsOpti...
function NewObjectCountEvaluator (line 233) | func NewObjectCountEvaluator(
FILE: kube/pkg/quota/v1/generic/registry.go
type simpleRegistry (line 28) | type simpleRegistry struct
method Add (line 41) | func (r *simpleRegistry) Add(e quota.Evaluator) {
method Remove (line 47) | func (r *simpleRegistry) Remove(e quota.Evaluator) {
method Get (line 53) | func (r *simpleRegistry) Get(gr schema.GroupResource) quota.Evaluator {
method List (line 59) | func (r *simpleRegistry) List() []quota.Evaluator {
function NewRegistry (line 35) | func NewRegistry(evaluators []quota.Evaluator) quota.Registry {
function evaluatorsByGroupResource (line 67) | func evaluatorsByGroupResource(items []quota.Evaluator) map[schema.Group...
function evaluatorsList (line 76) | func evaluatorsList(input map[schema.GroupResource]quota.Evaluator) []qu...
FILE: kube/pkg/quota/v1/install/registry.go
function NewQuotaConfigurationForAdmission (line 29) | func NewQuotaConfigurationForAdmission() quota.Configuration {
function NewQuotaConfigurationForControllers (line 35) | func NewQuotaConfigurationForControllers(client client.Client) quota.Con...
function DefaultIgnoredResources (line 47) | func DefaultIgnoredResources() map[schema.GroupResource]struct{} {
FILE: kube/pkg/quota/v1/interfaces.go
type UsageStatsOptions (line 27) | type UsageStatsOptions struct
type UsageStats (line 38) | type UsageStats struct
type Evaluator (line 44) | type Evaluator interface
type Configuration (line 67) | type Configuration interface
type Registry (line 75) | type Registry interface
FILE: kube/pkg/quota/v1/resources.go
function Equals (line 30) | func Equals(a corev1.ResourceList, b corev1.ResourceList) bool {
function LessThanOrEqual (line 50) | func LessThanOrEqual(a corev1.ResourceList, b corev1.ResourceList) (bool...
function Max (line 65) | func Max(a corev1.ResourceList, b corev1.ResourceList) corev1.ResourceLi...
function Add (line 85) | func Add(a corev1.ResourceList, b corev1.ResourceList) corev1.ResourceLi...
function SubtractWithNonNegativeResult (line 104) | func SubtractWithNonNegativeResult(a corev1.ResourceList, b corev1.Resou...
function Subtract (line 129) | func Subtract(a corev1.ResourceList, b corev1.ResourceList) corev1.Resou...
function Mask (line 149) | func Mask(resources corev1.ResourceList, names []corev1.ResourceName) co...
function ResourceNames (line 161) | func ResourceNames(resources corev1.ResourceList) []corev1.ResourceName {
function Contains (line 170) | func Contains(items []corev1.ResourceName, item corev1.ResourceName) bool {
function ContainsPrefix (line 180) | func ContainsPrefix(prefixSet []string, item corev1.ResourceName) bool {
function Intersection (line 190) | func Intersection(a []corev1.ResourceName, b []corev1.ResourceName) []co...
function Difference (line 206) | func Difference(a []corev1.ResourceName, b []corev1.ResourceName) []core...
function IsZero (line 219) | func IsZero(a corev1.ResourceList) bool {
function IsNegative (line 230) | func IsNegative(a corev1.ResourceList) []corev1.ResourceName {
function ToSet (line 242) | func ToSet(resourceNames []corev1.ResourceName) sets.Set[string] {
function CalculateUsage (line 252) | func CalculateUsage(namespaceName string, scopes []corev1.ResourceQuotaS...
FILE: kube/plugin/pkg/admission/resourcequota/apis/resourcequota/types.go
type Configuration (line 27) | type Configuration struct
type LimitedResource (line 38) | type LimitedResource struct
FILE: kube/plugin/pkg/admission/resourcequota/controller.go
type Evaluator (line 44) | type Evaluator interface
type quotaEvaluator (line 50) | type quotaEvaluator struct
method run (line 137) | func (e *quotaEvaluator) run() {
method doWork (line 148) | func (e *quotaEvaluator) doWork() {
method checkAttributes (line 171) | func (e *quotaEvaluator) checkAttributes(ns string, admissionAttribute...
method checkQuotas (line 215) | func (e *quotaEvaluator) checkQuotas(quotas []corev1.ResourceQuota, ad...
method checkRequest (line 390) | func (e *quotaEvaluator) checkRequest(quotas []corev1.ResourceQuota, a...
method Evaluate (line 581) | func (e *quotaEvaluator) Evaluate(a admission.Attributes) error {
method addWork (line 621) | func (e *quotaEvaluator) addWork(a *admissionWaiter) {
method completeWork (line 638) | func (e *quotaEvaluator) completeWork(ns string) {
method getWork (line 653) | func (e *quotaEvaluator) getWork() (string, []*admissionWaiter, bool) {
type admissionWaiter (line 79) | type admissionWaiter struct
type defaultDeny (line 85) | type defaultDeny struct
method Error (line 87) | func (defaultDeny) Error() string {
function IsDefaultDeny (line 92) | func IsDefaultDeny(err error) bool {
function newAdmissionWaiter (line 101) | func newAdmissionWaiter(a admission.Attributes) *admissionWaiter {
function NewQuotaEvaluator (line 112) | func NewQuotaEvaluator(quotaAccessor QuotaAccessor, ignoredResources map...
function copyQuotas (line 331) | func copyQuotas(in []corev1.ResourceQuota) ([]corev1.ResourceQuota, erro...
function filterLimitedResourcesByGroupResource (line 341) | func filterLimitedResourcesByGroupResource(input []resourcequotaapi.Limi...
function limitedByDefault (line 356) | func limitedByDefault(usage corev1.ResourceList, limitedResources []reso...
function getMatchedLimitedScopes (line 375) | func getMatchedLimitedScopes(evaluator quota.Evaluator, inputObject runt...
function CheckRequest (line 399) | func CheckRequest(quotas []corev1.ResourceQuota, a admission.Attributes,...
function getScopeSelectorsFromQuota (line 568) | func getScopeSelectorsFromQuota(quota corev1.ResourceQuota) []corev1.Sco...
function prettyPrint (line 675) | func prettyPrint(item corev1.ResourceList) string {
function prettyPrintResourceNames (line 690) | func prettyPrintResourceNames(a []corev1.ResourceName) string {
function hasUsageStats (line 700) | func hasUsageStats(resourceQuota *corev1.ResourceQuota, interestingResou...
FILE: kube/plugin/pkg/admission/resourcequota/resource_access.go
type QuotaAccessor (line 25) | type QuotaAccessor interface
FILE: pkg/api/cluster/v1alpha1/types.go
type UpdateClusterRequest (line 9) | type UpdateClusterRequest struct
type CreateLabelRequest (line 13) | type CreateLabelRequest struct
type UnbindClustersRequest (line 18) | type UnbindClustersRequest struct
type BindingClustersRequest (line 22) | type BindingClustersRequest struct
type LabelValue (line 27) | type LabelValue struct
type UpdateVisibilityRequest (line 32) | type UpdateVisibilityRequest struct
FILE: pkg/api/resource/v1alpha2/types.go
type ComponentStatus (line 12) | type ComponentStatus struct
type NodeStatus (line 23) | type NodeStatus struct
type HealthStatus (line 31) | type HealthStatus struct
FILE: pkg/api/types.go
type ListResult (line 14) | type ListResult struct
type ResourceQuota (line 19) | type ResourceQuota struct
type NamespacedResourceQuota (line 24) | type NamespacedResourceQuota struct
type Router (line 36) | type Router struct
type GitCredential (line 41) | type GitCredential struct
type RegistryCredential (line 46) | type RegistryCredential struct
type Workloads (line 52) | type Workloads struct
constant ResourceKindDaemonSet (line 59) | ResourceKindDaemonSet = "daemonsets"
constant ResourceKindDeployment (line 60) | ResourceKindDeployment = "deployments"
constant ResourceKindJob (line 61) | ResourceKindJob = "jobs"
constant ResourceKindPersistentVolumeClaim (line 62) | ResourceKindPersistentVolumeClaim = "persistentvolumeclaims"
constant ResourceKindStatefulSet (line 63) | ResourceKindStatefulSet = "statefulsets"
constant StatusOK (line 64) | StatusOK = "ok"
constant WorkspaceNone (line 65) | WorkspaceNone = ""
constant ClusterNone (line 66) | ClusterNone = ""
constant TagNonResourceAPI (line 67) | TagNonResourceAPI = "NonResource APIs"
constant TagAuthentication (line 68) | TagAuthentication = "Authentication"
constant TagMultiCluster (line 69) | TagMultiCluster = "Multi-cluster"
constant TagIdentityManagement (line 70) | TagIdentityManagement = "Identity Management"
constant TagAccessManagement (line 71) | TagAccessManagement = "Access Management"
constant TagAdvancedOperations (line 72) | TagAdvancedOperations = "Advanced Operations"
constant TagTerminal (line 73) | TagTerminal = "Web Terminal"
constant TagNamespacedResources (line 74) | TagNamespacedResources = "Namespaced Resources"
constant TagClusterResources (line 75) | TagClusterResources = "Cluster Resources"
constant TagComponentStatus (line 76) | TagComponentStatus = "Component Status"
constant TagUserRelatedResources (line 77) | TagUserRelatedResources = "User Related Resources"
constant TagPlatformConfigurations (line 78) | TagPlatformConfigurations = "Platform Configurations"
FILE: pkg/api/utils.go
function HandleInternalError (line 22) | func HandleInternalError(response *restful.Response, req *restful.Reques...
function HandleBadRequest (line 27) | func HandleBadRequest(response *restful.Response, req *restful.Request, ...
function HandleNotFound (line 31) | func HandleNotFound(response *restful.Response, req *restful.Request, er...
function HandleForbidden (line 35) | func HandleForbidden(response *restful.Response, req *restful.Request, e...
function HandleUnauthorized (line 39) | func HandleUnauthorized(response *restful.Response, req *restful.Request...
function HandleTooManyRequests (line 43) | func HandleTooManyRequests(response *restful.Response, req *restful.Requ...
function HandleConflict (line 47) | func HandleConflict(response *restful.Response, req *restful.Request, er...
function HandleError (line 51) | func HandleError(response *restful.Response, req *restful.Request, err e...
function handle (line 64) | func handle(statusCode int, response *restful.Response, req *restful.Req...
FILE: pkg/apiserver/apiserver.go
type APIServer (line 80) | type APIServer struct
method PrepareRun (line 114) | func (s *APIServer) PrepareRun(stopCh <-chan struct{}) error {
method installOpenAPI (line 141) | func (s *APIServer) installOpenAPI() error {
method installMetricsAPI (line 160) | func (s *APIServer) installMetricsAPI() {
method installKubeSphereAPIs (line 167) | func (s *APIServer) installKubeSphereAPIs() {
method installHealthz (line 202) | func (s *APIServer) installHealthz() {
method installLivez (line 207) | func (s *APIServer) installLivez() {
method Run (line 211) | func (s *APIServer) Run(ctx context.Context) (err error) {
method buildHandlerChain (line 237) | func (s *APIServer) buildHandlerChain(handler http.Handler, stopCh <-c...
method installDynamicResourceAPI (line 293) | func (s *APIServer) installDynamicResourceAPI() {
function logStackOnRecover (line 307) | func logStackOnRecover(panicReason interface{}, w http.ResponseWriter) {
FILE: pkg/apiserver/auditing/client.go
constant DefaultCacheCapacity (line 44) | DefaultCacheCapacity = 10000
constant CacheTimeout (line 45) | CacheTimeout = time.Second
constant DefaultBatchSize (line 47) | DefaultBatchSize = 100
constant DefaultBatchInterval (line 48) | DefaultBatchInterval = time.Second * 3
type Auditing (line 51) | type Auditing interface
type auditing (line 57) | type auditing struct
method getClusterName (line 129) | func (a *auditing) getClusterName() string {
method getAuditLevel (line 143) | func (a *auditing) getAuditLevel() audit.Level {
method Enabled (line 151) | func (a *auditing) Enabled() bool {
method LogRequestObject (line 169) | func (a *auditing) LogRequestObject(req *http.Request, info *request.R...
method getWorkspace (line 262) | func (a *auditing) getWorkspace(e *Event) {
method needAnalyzeRequestBody (line 286) | func (a *auditing) needAnalyzeRequestBody(e *Event, req *http.Request)...
method LogResponseObject (line 308) | func (a *auditing) LogResponseObject(e *Event, resp *ResponseCapture) {
method cacheEvent (line 319) | func (a *auditing) cacheEvent(e Event) {
method Start (line 329) | func (a *auditing) Start() {
method getEvents (line 355) | func (a *auditing) getEvents() ([]*Event, bool) {
method eventToBytes (line 378) | func (a *auditing) eventToBytes(events []*Event) [][]byte {
function NewAuditing (line 72) | func NewAuditing(kubernetesClient k8s.Client, opts *Options, stopCh <-ch...
function getHostIP (line 112) | func getHostIP() string {
type ResponseCapture (line 406) | type ResponseCapture struct
method Unwrap (line 421) | func (c *ResponseCapture) Unwrap() http.ResponseWriter {
method Header (line 425) | func (c *ResponseCapture) Header() http.Header {
method Write (line 429) | func (c *ResponseCapture) Write(data []byte) (int, error) {
method WriteHeader (line 440) | func (c *ResponseCapture) WriteHeader(statusCode int) {
method Bytes (line 448) | func (c *ResponseCapture) Bytes() []byte {
method StatusCode (line 452) | func (c *ResponseCapture) StatusCode() int {
method Hijack (line 459) | func (c *ResponseCapture) Hijack() (net.Conn, *bufio.ReadWriter, error) {
method CloseNotify (line 468) | func (c *ResponseCapture) CloseNotify() <-chan bool {
function NewResponseCapture (line 413) | func NewResponseCapture(w http.ResponseWriter) *ResponseCapture {
FILE: pkg/apiserver/auditing/event.go
type Event (line 14) | type Event struct
type Object (line 27) | type Object struct
FILE: pkg/apiserver/auditing/internal/backend.go
type Backend (line 9) | type Backend interface
FILE: pkg/apiserver/auditing/log/backend.go
constant WriteTimeout (line 23) | WriteTimeout = time.Second * 3
constant DefaultMaxAge (line 24) | DefaultMaxAge = 7
constant DefaultMaxBackups (line 25) | DefaultMaxBackups = 10
constant DefaultMaxSize (line 26) | DefaultMaxSize = 100
type backend (line 29) | type backend struct
method ensureLogFile (line 76) | func (b *backend) ensureLogFile() error {
method ProcessEvents (line 88) | func (b *backend) ProcessEvents(events ...[]byte) {
function NewBackend (line 39) | func NewBackend(path string, maxAge, maxBackups, maxSize int) internal.B...
FILE: pkg/apiserver/auditing/options.go
type WebhookOptions (line 17) | type WebhookOptions struct
type LogOptions (line 23) | type LogOptions struct
type Options (line 30) | type Options struct
method Validate (line 46) | func (s *Options) Validate() []error {
method AddFlags (line 51) | func (s *Options) AddFlags(fs *pflag.FlagSet, c *Options) {
function NewAuditingOptions (line 42) | func NewAuditingOptions() *Options {
FILE: pkg/apiserver/auditing/webhook/backend.go
constant GetSenderTimeout (line 22) | GetSenderTimeout = time.Second
constant SendTimeout (line 23) | SendTimeout = time.Second * 3
constant DefaultSendersNum (line 24) | DefaultSendersNum = 100
constant WebhookURL (line 26) | WebhookURL = "https://kube-auditing-webhook-svc.kubesphere-logging-syste...
type backend (line 29) | type backend struct
method ProcessEvents (line 67) | func (b *backend) ProcessEvents(events ...[]byte) {
method sendEvents (line 71) | func (b *backend) sendEvents(events ...[]byte) {
function NewBackend (line 37) | func NewBackend(url string, sendersNum int) internal.Backend {
FILE: pkg/apiserver/authentication/authenticators/basic/basic.go
type basicAuthenticator (line 28) | type basicAuthenticator struct
method AuthenticatePassword (line 40) | func (t *basicAuthenticator) AuthenticatePassword(ctx context.Context,...
function NewBasicAuthenticator (line 33) | func NewBasicAuthenticator(authenticator auth.PasswordAuthenticator, log...
FILE: pkg/apiserver/authentication/authenticators/jwt/jwt.go
type tokenAuthenticator (line 31) | type tokenAuthenticator struct
method AuthenticateToken (line 45) | func (t *tokenAuthenticator) AuthenticateToken(ctx context.Context, to...
method validateServiceAccount (line 91) | func (t *tokenAuthenticator) validateServiceAccount(ctx context.Contex...
function NewTokenAuthenticator (line 37) | func NewTokenAuthenticator(cache runtimecache.Cache, tokenOperator auth....
FILE: pkg/apiserver/authentication/identityprovider/aliyunidaas/idaas.go
function init (line 22) | func init() {
type aliyunIDaaS (line 26) | type aliyunIDaaS struct
method IdentityExchangeCallback (line 112) | func (a *aliyunIDaaS) IdentityExchangeCallback(req *http.Request) (ide...
type endpoint (line 51) | type endpoint struct
type idaasIdentity (line 57) | type idaasIdentity struct
method GetUserID (line 100) | func (a idaasIdentity) GetUserID() string {
method GetUsername (line 104) | func (a idaasIdentity) GetUsername() string {
method GetEmail (line 108) | func (a idaasIdentity) GetEmail() string {
type userInfoResp (line 67) | type userInfoResp struct
type idaasProviderFactory (line 74) | type idaasProviderFactory struct
method Type (line 77) | func (f *idaasProviderFactory) Type() string {
method Create (line 81) | func (f *idaasProviderFactory) Create(opts options.DynamicOptions) (id...
FILE: pkg/apiserver/authentication/identityprovider/aliyunidaas/idaas_test.go
function Test_idaasProviderFactory_Create (line 20) | func Test_idaasProviderFactory_Create(t *testing.T) {
FILE: pkg/apiserver/authentication/identityprovider/cas/cas.go
function init (line 22) | func init() {
type cas (line 26) | type cas struct
method IdentityExchangeCallback (line 82) | func (c cas) IdentityExchangeCallback(req *http.Request) (identityprov...
type casProviderFactory (line 33) | type casProviderFactory struct
method Type (line 52) | func (f casProviderFactory) Type() string {
method Create (line 56) | func (f casProviderFactory) Create(opts options.DynamicOptions) (ident...
type casIdentity (line 36) | type casIdentity struct
method GetUserID (line 40) | func (c casIdentity) GetUserID() string {
method GetUsername (line 44) | func (c casIdentity) GetUsername() string {
method GetEmail (line 48) | func (c casIdentity) GetEmail() string {
FILE: pkg/apiserver/authentication/identityprovider/configuration.go
constant MappingMethodManual (line 24) | MappingMethodManual MappingMethod = "manual"
constant MappingMethodAuto (line 26) | MappingMethodAuto MappingMethod = "auto"
constant MappingMethodLookup (line 30) | MappingMethodLookup MappingMethod = "lookup"
constant ConfigTypeIdentityProvider (line 32) | ConfigTypeIdentityProvider = "identityprovider"
constant SecretTypeIdentityProvider (line 33) | SecretTypeIdentityProvider = "config.kubesphere.io/" + ConfigTypeIdentit...
constant SecretDataKey (line 35) | SecretDataKey = "configuration.yaml"
type MappingMethod (line 42) | type MappingMethod
type Configuration (line 44) | type Configuration struct
type ConfigurationGetter (line 72) | type ConfigurationGetter interface
function NewConfigurationGetter (line 77) | func NewConfigurationGetter(client client.Client) ConfigurationGetter {
type configurationGetter (line 81) | type configurationGetter struct
method ListConfigurations (line 85) | func (o *configurationGetter) ListConfigurations(ctx context.Context) ...
method GetConfiguration (line 106) | func (o *configurationGetter) GetConfiguration(ctx context.Context, na...
function UnmarshalFrom (line 122) | func UnmarshalFrom(secret *v1.Secret) (*Configuration, error) {
function IsIdentityProviderConfiguration (line 130) | func IsIdentityProviderConfiguration(secret *v1.Secret) bool {
FILE: pkg/apiserver/authentication/identityprovider/generic_provider.go
type GenericProvider (line 13) | type GenericProvider interface
type GenericProviderFactory (line 18) | type GenericProviderFactory interface
FILE: pkg/apiserver/authentication/identityprovider/github/github.go
constant userInfoURL (line 25) | userInfoURL = "https://api.github.com/user"
constant authURL (line 26) | authURL = "https://github.com/login/oauth/authorize"
constant tokenURL (line 27) | tokenURL = "https://github.com/login/oauth/access_token"
function init (line 30) | func init() {
type github (line 34) | type github struct
method IdentityExchangeCallback (line 160) | func (g *github) IdentityExchangeCallback(req *http.Request) (identity...
type endpoint (line 62) | type endpoint struct
type githubIdentity (line 68) | type githubIdentity struct
method GetUserID (line 148) | func (g githubIdentity) GetUserID() string {
method GetUsername (line 152) | func (g githubIdentity) GetUsername() string {
method GetEmail (line 156) | func (g githubIdentity) GetEmail() string {
type ldapProviderFactory (line 107) | type ldapProviderFactory struct
method Type (line 110) | func (g *ldapProviderFactory) Type() string {
method Create (line 114) | func (g *ldapProviderFactory) Create(opts options.DynamicOptions) (ide...
FILE: pkg/apiserver/authentication/identityprovider/github/github_test.go
function TestGithub (line 31) | func TestGithub(t *testing.T) {
function mustUnmarshalYAML (line 149) | func mustUnmarshalYAML(data string) options.DynamicOptions {
FILE: pkg/apiserver/authentication/identityprovider/identity.go
type Identity (line 10) | type Identity interface
FILE: pkg/apiserver/authentication/identityprovider/identity_provider_factory.go
function RegisterOAuthProviderFactory (line 15) | func RegisterOAuthProviderFactory(factory OAuthProviderFactory) {
function RegisterGenericProviderFactory (line 20) | func RegisterGenericProviderFactory(factory GenericProviderFactory) {
FILE: pkg/apiserver/authentication/identityprovider/identityprovider.go
type Controller (line 22) | type Controller struct
method WatchConfigurationChanges (line 31) | func (c *Controller) WatchConfigurationChanges(ctx context.Context, ca...
method OnConfigurationDelete (line 61) | func (c *Controller) OnConfigurationDelete(secret *v1.Secret) {
method OnConfigurationChange (line 71) | func (c *Controller) OnConfigurationChange(secret *v1.Secret) {
method GetGenericProvider (line 105) | func (c *Controller) GetGenericProvider(providerName string) (GenericP...
method GetOAuthProvider (line 114) | func (c *Controller) GetOAuthProvider(providerName string) (OAuthProvi...
method ListConfigurations (line 123) | func (c *Controller) ListConfigurations() []*Configuration {
function NewController (line 27) | func NewController() *Controller {
FILE: pkg/apiserver/authentication/identityprovider/ldap/ldap.go
constant ldapIdentityProvider (line 30) | ldapIdentityProvider = "LDAPIdentityProvider"
constant defaultReadTimeout (line 31) | defaultReadTimeout = 15000
function init (line 34) | func init() {
type ldapProvider (line 38) | type ldapProvider struct
method Authenticate (line 109) | func (l ldapProvider) Authenticate(username string, password string) (...
method newConn (line 169) | func (l *ldapProvider) newConn() (*ldap.Conn, error) {
type ldapProviderFactory (line 74) | type ldapProviderFactory struct
method Type (line 77) | func (l *ldapProviderFactory) Type() string {
method Create (line 81) | func (l *ldapProviderFactory) Create(opts options.DynamicOptions) (ide...
type ldapIdentity (line 92) | type ldapIdentity struct
method GetUserID (line 97) | func (l *ldapIdentity) GetUserID() string {
method GetUsername (line 101) | func (l *ldapIdentity) GetUsername() string {
method GetEmail (line 105) | func (l *ldapIdentity) GetEmail() string {
FILE: pkg/apiserver/authentication/identityprovider/ldap/ldap_test.go
function TestNewLdapProvider (line 19) | func TestNewLdapProvider(t *testing.T) {
function TestLdapProvider_Authenticate (line 61) | func TestLdapProvider_Authenticate(t *testing.T) {
FILE: pkg/apiserver/authentication/identityprovider/oauth_provider.go
type OAuthProvider (line 15) | type OAuthProvider interface
type OAuthProviderFactory (line 20) | type OAuthProviderFactory interface
FILE: pkg/apiserver/authentication/identityprovider/oidc/oidc.go
function init (line 30) | func init() {
type oidcProvider (line 34) | type oidcProvider struct
method IdentityExchangeCallback (line 205) | func (o *oidcProvider) IdentityExchangeCallback(req *http.Request) (id...
type endpoint (line 82) | type endpoint struct
type oidcIdentity (line 99) | type oidcIdentity struct
method GetUserID (line 112) | func (o oidcIdentity) GetUserID() string {
method GetUsername (line 116) | func (o oidcIdentity) GetUsername() string {
method GetEmail (line 120) | func (o oidcIdentity) GetEmail() string {
type oidcProviderFactory (line 124) | type oidcProviderFactory struct
method Type (line 127) | func (f *oidcProviderFactory) Type() string {
method Create (line 131) | func (f *oidcProviderFactory) Create(opts options.DynamicOptions) (ide...
FILE: pkg/apiserver/authentication/identityprovider/oidc/oidc_test.go
function TestOIDC (line 39) | func TestOIDC(t *testing.T) {
function n (line 196) | func n(pub *rsa.PublicKey) string {
function e (line 200) | func e(pub *rsa.PublicKey) string {
function encode (line 206) | func encode(payload []byte) string {
FILE: pkg/apiserver/authentication/oauth/error.go
type ErrorType (line 11) | type ErrorType
constant InvalidClient (line 26) | InvalidClient ErrorType = "invalid_client"
constant InvalidRequest (line 32) | InvalidRequest ErrorType = "invalid_request"
constant InvalidGrant (line 39) | InvalidGrant ErrorType = "invalid_grant"
constant UnsupportedGrantType (line 43) | UnsupportedGrantType ErrorType = "unsupported_grant_type"
constant UnsupportedResponseType (line 47) | UnsupportedResponseType ErrorType = "unsupported_response_type"
constant UnauthorizedClient (line 51) | UnauthorizedClient ErrorType = "unauthorized_client"
constant InvalidScope (line 55) | InvalidScope ErrorType = "invalid_scope"
constant LoginRequired (line 61) | LoginRequired ErrorType = "login_required"
constant InteractionRequired (line 67) | InteractionRequired ErrorType = "interaction_required"
constant ServerError (line 75) | ServerError ErrorType = "server_error"
function NewError (line 78) | func NewError(errorType ErrorType, description string) *Error {
function NewInvalidRequest (line 85) | func NewInvalidRequest(description string) *Error {
function NewInvalidScope (line 92) | func NewInvalidScope(description string) *Error {
function NewInvalidClient (line 99) | func NewInvalidClient(description string) *Error {
function NewInvalidGrant (line 106) | func NewInvalidGrant(description string) *Error {
function NewServerError (line 113) | func NewServerError(description string) *Error {
type Error (line 124) | type Error struct
method Error (line 138) | func (e *Error) Error() string {
FILE: pkg/apiserver/authentication/oauth/oauth_client.go
constant GrantMethodAuto (line 28) | GrantMethodAuto = "auto"
constant GrantMethodPrompt (line 29) | GrantMethodPrompt = "prompt"
constant GrantMethodDeny (line 30) | GrantMethodDeny = "deny"
constant ConfigTypeOAuthClient (line 32) | ConfigTypeOAuthClient = "oauthclient"
constant SecretTypeOAuthClient (line 33) | SecretTypeOAuthClient = "config.kubesphere.io/" + ConfigTypeOAuthClient
constant SecretDataKey (line 34) | SecretDataKey = "configuration.yaml"
type Client (line 45) | type Client struct
method ResolveRedirectURL (line 162) | func (c *Client) ResolveRedirectURL(expectURL string) (*url.URL, error) {
method IsValidScope (line 193) | func (c *Client) IsValidScope(requestedScope string) bool {
type ClientGetter (line 84) | type ClientGetter interface
function NewOAuthClientGetter (line 89) | func NewOAuthClientGetter(reader client.Reader) ClientGetter {
type oauthClientGetter (line 93) | type oauthClientGetter struct
method ListOAuthClients (line 97) | func (o *oauthClientGetter) ListOAuthClients(ctx context.Context) ([]*...
method GetOAuthClient (line 120) | func (o *oauthClientGetter) GetOAuthClient(ctx context.Context, name s...
function ValidateClient (line 137) | func ValidateClient(client Client) error {
function filterValidRedirectURIs (line 212) | func filterValidRedirectURIs(redirectURIs []string) []string {
function UnmarshalFrom (line 225) | func UnmarshalFrom(secret *v1.Secret) (*Client, error) {
function MarshalInto (line 233) | func MarshalInto(client *Client, secret *v1.Secret) error {
FILE: pkg/apiserver/authentication/oauth/oauth_client_test.go
function TestMarshalInto (line 17) | func TestMarshalInto(t *testing.T) {
FILE: pkg/apiserver/authentication/oauth/oidc.go
constant ScopeOpenID (line 17) | ScopeOpenID = "openid"
constant ScopeEmail (line 19) | ScopeEmail = "email"
constant ScopeProfile (line 23) | ScopeProfile = "profile"
constant ResponseTypeCode (line 24) | ResponseTypeCode = "code"
constant ResponseTypeIDToken (line 25) | ResponseTypeIDToken = "id_token"
constant ResponseTypeToken (line 26) | ResponseTypeToken = "token"
constant GrantTypePassword (line 27) | GrantTypePassword = "password"
constant GrantTypeRefreshToken (line 28) | GrantTypeRefreshToken = "refresh_token"
constant GrantTypeCode (line 29) | GrantTypeCode = "code"
constant GrantTypeAuthorizationCode (line 30) | GrantTypeAuthorizationCode = "authorization_code"
constant GrantTypeOTP (line 31) | GrantTypeOTP = "otp"
function IsValidScopes (line 37) | func IsValidScopes(scopes []string) bool {
function IsValidResponseTypes (line 46) | func IsValidResponseTypes(responseTypes []string) bool {
FILE: pkg/apiserver/authentication/oauth/oidc_test.go
function TestIsValidResponseTypes (line 11) | func TestIsValidResponseTypes(t *testing.T) {
function TestIsValidScopes (line 40) | func TestIsValidScopes(t *testing.T) {
FILE: pkg/apiserver/authentication/oauth/options.go
type GrantHandlerType (line 15) | type GrantHandlerType
type MappingMethod (line 16) | type MappingMethod
type IdentityProviderType (line 17) | type IdentityProviderType
constant MappingMethodAuto (line 20) | MappingMethodAuto MappingMethod = "auto"
constant MappingMethodLookup (line 23) | MappingMethodLookup MappingMethod = "lookup"
constant MappingMethodMixed (line 26) | MappingMethodMixed MappingMethod = "mixed"
type IssuerOptions (line 29) | type IssuerOptions struct
type IdentityProviderOptions (line 67) | type IdentityProviderOptions struct
type Token (line 94) | type Token struct
function NewIssuerOptions (line 115) | func NewIssuerOptions() *IssuerOptions {
FILE: pkg/apiserver/authentication/options.go
type Options (line 23) | type Options struct
method Validate (line 56) | func (options *Options) Validate() []error {
method AddFlags (line 67) | func (options *Options) AddFlags(fs *pflag.FlagSet, s *Options) {
function NewOptions (line 45) | func NewOptions() *Options {
FILE: pkg/apiserver/authentication/request/anonymous/anonymous.go
type Authenticator (line 17) | type Authenticator struct
method AuthenticateRequest (line 23) | func (a *Authenticator) AuthenticateRequest(req *http.Request) (*authe...
function NewAuthenticator (line 19) | func NewAuthenticator() authenticator.Request {
FILE: pkg/apiserver/authentication/request/anonymous/anonymous_test.go
function TestNewAuthenticator (line 18) | func TestNewAuthenticator(t *testing.T) {
function TestAuthenticator_AuthenticateRequest (line 37) | func TestAuthenticator_AuthenticateRequest(t *testing.T) {
FILE: pkg/apiserver/authentication/request/basictoken/basic_token.go
type Password (line 29) | type Password interface
type Authenticator (line 33) | type Authenticator struct
method AuthenticateRequest (line 43) | func (a *Authenticator) AuthenticateRequest(req *http.Request) (*authe...
function New (line 37) | func New(auth Password) *Authenticator {
FILE: pkg/apiserver/authentication/request/bearertoken/bearertoken.go
type Authenticator (line 29) | type Authenticator struct
method AuthenticateRequest (line 39) | func (a *Authenticator) AuthenticateRequest(req *http.Request) (*authe...
function New (line 33) | func New(auth authenticator.Token) *Authenticator {
FILE: pkg/apiserver/authentication/request/bearertoken/bearertoken_test.go
function TestAuthenticateRequest (line 32) | func TestAuthenticateRequest(t *testing.T) {
function TestAuthenticateRequestTokenInvalid (line 47) | func TestAuthenticateRequestTokenInvalid(t *testing.T) {
function TestAuthenticateRequestTokenInvalidCustomError (line 62) | func TestAuthenticateRequestTokenInvalidCustomError(t *testing.T) {
function TestAuthenticateRequestTokenError (line 78) | func TestAuthenticateRequestTokenError(t *testing.T) {
function TestAuthenticateRequestBadValue (line 90) | func TestAuthenticateRequestBadValue(t *testing.T) {
function TestBearerToken (line 111) | func TestBearerToken(t *testing.T) {
FILE: pkg/apiserver/authentication/token/issuer.go
constant AccessToken (line 30) | AccessToken Type = "access_token"
constant RefreshToken (line 31) | RefreshToken Type = "refresh_token"
constant StaticToken (line 32) | StaticToken Type = "static_token"
constant AuthorizationCode (line 33) | AuthorizationCode Type = "code"
constant IDToken (line 34) | IDToken Type = "id_token"
constant headerKeyID (line 35) | headerKeyID string = "kid"
constant headerAlgorithm (line 36) | headerAlgorithm string = "alg"
type Type (line 39) | type Type
type IssueRequest (line 41) | type IssueRequest struct
type VerifiedResponse (line 47) | type VerifiedResponse struct
type Keys (line 53) | type Keys struct
type Issuer (line 59) | type Issuer interface
type Claims (line 70) | type Claims struct
type issuer (line 100) | type issuer struct
method IssueTo (line 111) | func (s *issuer) IssueTo(request *IssueRequest) (string, error) {
method Verify (line 165) | func (s *issuer) Verify(token string) (*VerifiedResponse, error) {
method Keys (line 203) | func (s *issuer) Keys() *Keys {
method keyFunc (line 207) | func (s *issuer) keyFunc(token *jwt.Token) (i interface{}, err error) {
function loadPrivateKey (line 219) | func loadPrivateKey(data []byte) (*rsa.PrivateKey, error) {
function generatePrivateKeyData (line 231) | func generatePrivateKeyData() ([]byte, error) {
function loadSignKey (line 246) | func loadSignKey(config *oauth.IssuerOptions) (*rsa.PrivateKey, string, ...
function NewIssuer (line 285) | func NewIssuer(config *oauth.IssuerOptions) (Issuer, error) {
function fnv32a (line 313) | func fnv32a(data []byte) uint32 {
FILE: pkg/apiserver/authentication/token/issuer_test.go
constant privateKeyData (line 23) | privateKeyData = `
function TestNewIssuer (line 53) | func TestNewIssuer(t *testing.T) {
function TestNewIssuerGenerateSignKey (line 96) | func TestNewIssuerGenerateSignKey(t *testing.T) {
function Test_issuer_IssueTo (line 116) | func Test_issuer_IssueTo(t *testing.T) {
function Test_issuer_Verify (line 217) | func Test_issuer_Verify(t *testing.T) {
function Test_issuer_keyFunc (line 287) | func Test_issuer_keyFunc(t *testing.T) {
FILE: pkg/apiserver/authorization/authorizer/interfaces.go
type Attributes (line 33) | type Attributes interface
type Authorizer (line 97) | type Authorizer interface
type AuthorizerFunc (line 101) | type AuthorizerFunc
method Authorize (line 103) | func (f AuthorizerFunc) Authorize(a Attributes) (Decision, string, err...
type RuleResolver (line 108) | type RuleResolver interface
type RequestAttributesGetter (line 114) | type RequestAttributesGetter interface
type AttributesRecord (line 119) | type AttributesRecord struct
method GetFieldSelector (line 136) | func (a AttributesRecord) GetFieldSelector() (fields.Requirements, err...
method GetLabelSelector (line 140) | func (a AttributesRecord) GetLabelSelector() (labels.Requirements, err...
method GetUser (line 144) | func (a AttributesRecord) GetUser() user.Info {
method GetVerb (line 148) | func (a AttributesRecord) GetVerb() string {
method IsReadOnly (line 152) | func (a AttributesRecord) IsReadOnly() bool {
method GetCluster (line 156) | func (a AttributesRecord) GetCluster() string {
method GetWorkspace (line 160) | func (a AttributesRecord) GetWorkspace() string {
method GetNamespace (line 164) | func (a AttributesRecord) GetNamespace() string {
method GetResource (line 168) | func (a AttributesRecord) GetResource() string {
method GetSubresource (line 172) | func (a AttributesRecord) GetSubresource() string {
method GetName (line 176) | func (a AttributesRecord) GetName() string {
method GetAPIGroup (line 180) | func (a AttributesRecord) GetAPIGroup() string {
method GetAPIVersion (line 184) | func (a AttributesRecord) GetAPIVersion() string {
method IsResourceRequest (line 188) | func (a AttributesRecord) IsResourceRequest() bool {
method IsKubernetesRequest (line 192) | func (a AttributesRecord) IsKubernetesRequest() bool {
method GetPath (line 196) | func (a AttributesRecord) GetPath() string {
method GetResourceScope (line 200) | func (a AttributesRecord) GetResourceScope() string {
type Decision (line 204) | type Decision
constant DecisionDeny (line 208) | DecisionDeny Decision = iota
constant DecisionAllow (line 210) | DecisionAllow
constant DecisionNoOpinion (line 213) | DecisionNoOpinion
constant VerbList (line 218) | VerbList = "list"
constant VerbCreate (line 220) | VerbCreate = "create"
constant VerbGet (line 222) | VerbGet = "get"
constant VerbWatch (line 224) | VerbWatch = "watch"
constant VerbDelete (line 226) | VerbDelete = "delete"
FILE: pkg/apiserver/authorization/authorizer/rule.go
type ResourceRuleInfo (line 19) | type ResourceRuleInfo interface
type DefaultResourceRuleInfo (line 31) | type DefaultResourceRuleInfo struct
method GetVerbs (line 38) | func (i *DefaultResourceRuleInfo) GetVerbs() []string {
method GetAPIGroups (line 42) | func (i *DefaultResourceRuleInfo) GetAPIGroups() []string {
method GetResources (line 46) | func (i *DefaultResourceRuleInfo) GetResources() []string {
method GetResourceNames (line 50) | func (i *DefaultResourceRuleInfo) GetResourceNames() []string {
type NonResourceRuleInfo (line 54) | type NonResourceRuleInfo interface
type DefaultNonResourceRuleInfo (line 62) | type DefaultNonResourceRuleInfo struct
method GetVerbs (line 67) | func (i *DefaultNonResourceRuleInfo) GetVerbs() []string {
method GetNonResourceURLs (line 71) | func (i *DefaultNonResourceRuleInfo) GetNonResourceURLs() []string {
FILE: pkg/apiserver/authorization/authorizerfactory/builtin.go
type alwaysAllowAuthorizer (line 28) | type alwaysAllowAuthorizer struct
method Authorize (line 30) | func (alwaysAllowAuthorizer) Authorize(authorizer.Attributes) (authori...
function NewAlwaysAllowAuthorizer (line 34) | func NewAlwaysAllowAuthorizer() *alwaysAllowAuthorizer {
type alwaysDenyAuthorizer (line 41) | type alwaysDenyAuthorizer struct
method Authorize (line 43) | func (alwaysDenyAuthorizer) Authorize(a authorizer.Attributes) (decisi...
function NewAlwaysDenyAuthorizer (line 47) | func NewAlwaysDenyAuthorizer() *alwaysDenyAuthorizer {
FILE: pkg/apiserver/authorization/authorizerfactory/builtin_test.go
function TestNewAlwaysAllowAuthorizer (line 27) | func TestNewAlwaysAllowAuthorizer(t *testing.T) {
function TestNewAlwaysDenyAuthorizer (line 34) | func TestNewAlwaysDenyAuthorizer(t *testing.T) {
FILE: pkg/apiserver/authorization/options.go
type Options (line 18) | type Options struct
method AddFlags (line 32) | func (o *Options) AddFlags(fs *pflag.FlagSet, s *Options) {
method Validate (line 36) | func (o *Options) Validate() []error {
function NewOptions (line 22) | func NewOptions() *Options {
FILE: pkg/apiserver/authorization/path/path.go
function NewAuthorizer (line 30) | func NewAuthorizer(alwaysAllowPaths []string) (authorizer.Authorizer, er...
FILE: pkg/apiserver/authorization/path/path_test.go
function TestNewAuthorizer (line 25) | func TestNewAuthorizer(t *testing.T) {
FILE: pkg/apiserver/authorization/rbac/evaluation_helpers.go
function RoleRefGroupKind (line 29) | func RoleRefGroupKind(roleRef rbacv1.RoleRef) schema.GroupKind {
function VerbMatches (line 33) | func VerbMatches(rule *rbacv1.PolicyRule, requestedVerb string) bool {
function APIGroupMatches (line 46) | func APIGroupMatches(rule *rbacv1.PolicyRule, requestedGroup string) bool {
function ResourceMatches (line 59) | func ResourceMatches(rule *rbacv1.PolicyRule, combinedRequestedResource,...
function ResourceNameMatches (line 87) | func ResourceNameMatches(rule *rbacv1.PolicyRule, requestedName string) ...
function NonResourceURLMatches (line 101) | func NonResourceURLMatches(rule *rbacv1.PolicyRule, requestedURL string)...
function SubjectsStrings (line 118) | func SubjectsStrings(subjects []rbacv1.Subject) ([]string, []string, []s...
function String (line 143) | func String(r rbacv1.PolicyRule) string {
function CompactString (line 148) | func CompactString(r rbacv1.PolicyRule) string {
type SortableRuleSlice (line 175) | type SortableRuleSlice
method Len (line 177) | func (s SortableRuleSlice) Len() int { return len(s) }
method Swap (line 178) | func (s SortableRuleSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
method Less (line 179) | func (s SortableRuleSlice) Less(i, j int) bool {
FILE: pkg/apiserver/authorization/rbac/rbac.go
constant defaultRegoQuery (line 44) | defaultRegoQuery = "data.authz.allow"
constant defaultRegoFileName (line 45) | defaultRegoFileName = "authz.rego"
type Authorizer (line 48) | type Authorizer struct
method Authorize (line 93) | func (r *Authorizer) Authorize(requestAttributes authorizer.Attributes...
method rulesFor (line 198) | func (r *Authorizer) rulesFor(requestAttributes authorizer.Attributes)...
method visitRulesFor (line 204) | func (r *Authorizer) visitRulesFor(requestAttributes authorizer.Attrib...
type authorizingVisitor (line 53) | type authorizingVisitor struct
method visit (line 61) | func (v *authorizingVisitor) visit(source fmt.Stringer, regoPolicy str...
type ruleAccumulator (line 78) | type ruleAccumulator struct
method visit (line 83) | func (r *ruleAccumulator) visit(_ fmt.Stringer, _ string, rule *rbacv1...
function NewRBACAuthorizer (line 152) | func NewRBACAuthorizer(am am.AccessManagementInterface) *Authorizer {
function ruleAllows (line 156) | func ruleAllows(requestAttributes authorizer.Attributes, rule *rbacv1.Po...
function regoPolicyAllows (line 173) | func regoPolicyAllows(requestAttributes authorizer.Attributes, regoPolic...
function appliesTo (line 348) | func appliesTo(user user.Info, bindingSubjects []rbacv1.Subject, namespa...
function appliesToUser (line 357) | func appliesToUser(user user.Info, subject rbacv1.Subject, namespace str...
type globalRoleBindingDescriber (line 391) | type globalRoleBindingDescriber struct
method String (line 396) | func (d *globalRoleBindingDescriber) String() string {
type clusterRoleBindingDescriber (line 405) | type clusterRoleBindingDescriber struct
method String (line 410) | func (d *clusterRoleBindingDescriber) String() string {
type workspaceRoleBindingDescriber (line 419) | type workspaceRoleBindingDescriber struct
method String (line 424) | func (d *workspaceRoleBindingDescriber) String() string {
type roleBindingDescriber (line 433) | type roleBindingDescriber struct
method String (line 438) | func (d *roleBindingDescriber) String() string {
function describeSubject (line 447) | func describeSubject(s *rbacv1.Subject, bindingNamespace string) string {
FILE: pkg/apiserver/authorization/rbac/rbac_test.go
type StaticRoles (line 45) | type StaticRoles struct
method GetRole (line 57) | func (r *StaticRoles) GetRole(namespace, name string) (*iamv1beta1.Rol...
method GetClusterRole (line 69) | func (r *StaticRoles) GetClusterRole(name string) (*iamv1beta1.Cluster...
method ListRoleBindings (line 78) | func (r *StaticRoles) ListRoleBindings(namespace string) ([]*iamv1beta...
method ListClusterRoleBindings (line 93) | func (r *StaticRoles) ListClusterRoleBindings() ([]*iamv1beta1.Cluster...
function hashOf (line 98) | func hashOf(p rbacv1.PolicyRule) string {
type byHash (line 112) | type byHash
method Len (line 114) | func (b byHash) Len() int { return len(b) }
method Less (line 115) | func (b byHash) Less(i, j int) bool { return hashOf(b[i]) < hashOf(b[j...
method Swap (line 116) | func (b byHash) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
function TestRBACAuthorizer (line 118) | func TestRBACAuthorizer(t *testing.T) {
function TestRBACAuthorizerMakeDecision (line 327) | func TestRBACAuthorizerMakeDecision(t *testing.T) {
function newMockRBACAuthorizer (line 869) | func newMockRBACAuthorizer(staticRoles *StaticRoles) (*Authorizer, error) {
function TestAppliesTo (line 931) | func TestAppliesTo(t *testing.T) {
FILE: pkg/apiserver/authorization/union/union.go
type unionAuthzHandler (line 39) | type unionAuthzHandler
method Authorize (line 47) | func (authzHandler unionAuthzHandler) Authorize(a authorizer.Attribute...
function New (line 42) | func New(authorizationHandlers ...authorizer.Authorizer) authorizer.Auth...
type unionAuthzRulesHandler (line 74) | type unionAuthzRulesHandler
method RulesFor (line 82) | func (authzHandler unionAuthzRulesHandler) RulesFor(user user.Info, na...
function NewRuleResolvers (line 77) | func NewRuleResolvers(authorizationHandlers ...authorizer.RuleResolver) ...
FILE: pkg/apiserver/authorization/union/union_test.go
type mockAuthzHandler (line 30) | type mockAuthzHandler struct
method Authorize (line 35) | func (mock *mockAuthzHandler) Authorize(a authorizer.Attributes) (auth...
function TestAuthorizationSecondPasses (line 39) | func TestAuthorizationSecondPasses(t *testing.T) {
function TestAuthorizationFirstPasses (line 50) | func TestAuthorizationFirstPasses(t *testing.T) {
function TestAuthorizationNonePasses (line 61) | func TestAuthorizationNonePasses(t *testing.T) {
function TestAuthorizationError (line 72) | func TestAuthorizationError(t *testing.T) {
type mockAuthzRuleHandler (line 83) | type mockAuthzRuleHandler struct
method RulesFor (line 89) | func (mock *mockAuthzRuleHandler) RulesFor(user user.Info, namespace s...
function TestAuthorizationResourceRules (line 96) | func TestAuthorizationResourceRules(t *testing.T) {
function TestAuthorizationNonResourceRules (line 160) | func TestAuthorizationNonResourceRules(t *testing.T) {
function getResourceRules (line 199) | func getResourceRules(infos []authorizer.ResourceRuleInfo) []authorizer....
function getNonResourceRules (line 212) | func getNonResourceRules(infos []authorizer.NonResourceRuleInfo) []autho...
function TestAuthorizationUnequivocalDeny (line 223) | func TestAuthorizationUnequivocalDeny(t *testing.T) {
FILE: pkg/apiserver/filters/apiservice.go
type apiService (line 29) | type apiService struct
method ServeHTTP (line 38) | func (s *apiService) ServeHTTP(w http.ResponseWriter, req *http.Reques...
method handleProxyRequest (line 70) | func (s *apiService) handleProxyRequest(apiService extensionsv1alpha1....
function WithAPIService (line 34) | func WithAPIService(next http.Handler, cache cache.Cache) http.Handler {
FILE: pkg/apiserver/filters/auditing.go
type auditingFilter (line 19) | type auditingFilter struct
method ServeHTTP (line 31) | func (a *auditingFilter) ServeHTTP(w http.ResponseWriter, req *http.Re...
function WithAuditing (line 24) | func WithAuditing(next http.Handler, auditing auditing.Auditing) http.Ha...
FILE: pkg/apiserver/filters/authentication.go
type authnFilter (line 24) | type authnFilter struct
method ServeHTTP (line 45) | func (a *authnFilter) ServeHTTP(w http.ResponseWriter, req *http.Reque...
function WithAuthentication (line 33) | func WithAuthentication(next http.Handler, authenticator authenticator.R...
FILE: pkg/apiserver/filters/authorization.go
type authzFilter (line 23) | type authzFilter struct
method ServeHTTP (line 43) | func (a *authzFilter) ServeHTTP(w http.ResponseWriter, req *http.Reque...
function WithAuthorization (line 30) | func WithAuthorization(next http.Handler, authorizers authorizer.Authori...
function getAuthorizerAttributes (line 65) | func getAuthorizerAttributes(ctx context.Context) (authorizer.Attributes...
FILE: pkg/apiserver/filters/dynamicresource.go
type DynamicResourceHandler (line 33) | type DynamicResourceHandler struct
method HandleServiceError (line 45) | func (d *DynamicResourceHandler) HandleServiceError(serviceError restf...
function NewDynamicResourceHandle (line 38) | func NewDynamicResourceHandle(serviceErrorHandleFallback restful.Service...
FILE: pkg/apiserver/filters/filters.go
type metaResponseWriter (line 28) | type metaResponseWriter struct
method Unwrap (line 34) | func (r *metaResponseWriter) Unwrap() http.ResponseWriter {
method WriteHeader (line 45) | func (r *metaResponseWriter) WriteHeader(code int) {
method Header (line 50) | func (r *metaResponseWriter) Header() http.Header {
method Write (line 54) | func (r *metaResponseWriter) Write(b []byte) (int, error) {
method Hijack (line 63) | func (r *metaResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, er...
function newMetaResponseWriter (line 38) | func newMetaResponseWriter(w http.ResponseWriter) *metaResponseWriter {
function WithGlobalFilter (line 71) | func WithGlobalFilter(handler http.Handler) http.Handler {
FILE: pkg/apiserver/filters/jsbundle.go
type jsBundle (line 32) | type jsBundle struct
method ServeHTTP (line 41) | func (s *jsBundle) ServeHTTP(w http.ResponseWriter, req *http.Request) {
method rawFromRemote (line 100) | func (s *jsBundle) rawFromRemote(endpoint extensionsv1alpha1.Endpoint,...
method rawContent (line 128) | func (s *jsBundle) rawContent(base64EncodedData []byte, w http.Respons...
method rawFromConfigMap (line 137) | func (s *jsBundle) rawFromConfigMap(configMapRef *extensionsv1alpha1.C...
method rawFromSecret (line 156) | func (s *jsBundle) rawFromSecret(secretRef *extensionsv1alpha1.SecretK...
function WithJSBundle (line 37) | func WithJSBundle(next http.Handler, cache cache.Cache) http.Handler {
FILE: pkg/apiserver/filters/kubeapiserver.go
type kubeAPIProxy (line 27) | type kubeAPIProxy struct
method ServeHTTP (line 51) | func (k kubeAPIProxy) ServeHTTP(w http.ResponseWriter, req *http.Reque...
function WithKubeAPIServer (line 35) | func WithKubeAPIServer(next http.Handler, config *rest.Config, options *...
FILE: pkg/apiserver/filters/multicluster.go
constant proxyURLFormat (line 34) | proxyURLFormat = "/api/v1/namespaces/kubesphere-system/services/:ks-apis...
type multiclusterDispatcher (line 36) | type multiclusterDispatcher struct
method ServeHTTP (line 56) | func (m *multiclusterDispatcher) ServeHTTP(w http.ResponseWriter, req ...
method resolveCluster (line 160) | func (m *multiclusterDispatcher) resolveCluster(name string) (*cluster...
function WithMulticluster (line 44) | func WithMulticluster(next http.Handler, clusterClient clusterclient.Int...
type statusCodeChangeTransport (line 174) | type statusCodeChangeTransport struct
method RoundTrip (line 178) | func (rt *statusCodeChangeTransport) RoundTrip(req *http.Request) (*ht...
FILE: pkg/apiserver/filters/requestinfo.go
function WithRequestInfo (line 19) | func WithRequestInfo(next http.Handler, resolver request.RequestInfoReso...
FILE: pkg/apiserver/filters/responder.go
type responder (line 20) | type responder struct
method Error (line 22) | func (r *responder) Error(w http.ResponseWriter, req *http.Request, er...
FILE: pkg/apiserver/filters/reverseproxy.go
type reverseProxy (line 35) | type reverseProxy struct
method ServeHTTP (line 45) | func (s *reverseProxy) ServeHTTP(w http.ResponseWriter, req *http.Requ...
method match (line 87) | func (s *reverseProxy) match(matcher extensionsv1alpha1.Matcher, req *...
method handleProxyRequest (line 101) | func (s *reverseProxy) handleProxyRequest(reverseProxy extensionsv1alp...
function WithReverseProxy (line 41) | func WithReverseProxy(next http.Handler, cache cache.Cache) http.Handler {
function removeHeader (line 230) | func removeHeader(header http.Header, key string) {
function addOrReplaceHeader (line 243) | func addOrReplaceHeader(header http.Header, keyValues string, replace bo...
type responseWriterWrapper (line 260) | type responseWriterWrapper struct
method WriteHeader (line 266) | func (rww *responseWriterWrapper) WriteHeader(status int) {
method Write (line 285) | func (rww *responseWriterWrapper) Write(d []byte) (int, error) {
FILE: pkg/apiserver/metrics/metrics.go
function init (line 56) | func init() {
function versionGet (line 60) | func versionGet() apimachineryversion.Info {
function registerMetrics (line 75) | func registerMetrics() {
function Install (line 84) | func Install(c *restful.Container) {
FILE: pkg/apiserver/options/options.go
type Options (line 23) | type Options struct
FILE: pkg/apiserver/query/field.go
type Field (line 9) | type Field
type Value (line 10) | type Value
constant FieldName (line 13) | FieldName = "name"
constant FieldNameAndAlias (line 14) | FieldNameAndAlias = "nameAndAlias"
constant FieldNames (line 15) | FieldNames = "names"
constant FieldUID (line 16) | FieldUID = "uid"
constant FieldCreationTimeStamp (line 17) | FieldCreationTimeStamp = "creationTimestamp"
constant FieldCreateTime (line 18) | FieldCreateTime = "createTime"
constant FieldLastUpdateTimestamp (line 19) | FieldLastUpdateTimestamp = "lastUpdateTimestamp"
constant FieldUpdateTime (line 20) | FieldUpdateTime = "updateTime"
constant FieldLabel (line 21) | FieldLabel = "label"
constant FieldAnnotation (line 22) | FieldAnnotation = "annotation"
constant FieldNamespace (line 23) | FieldNamespace = "namespace"
constant FieldStatus (line 24) | FieldStatus = "status"
constant FieldOwnerReference (line 25) | FieldOwnerReference = "ownerReference"
constant FieldOwnerKind (line 26) | FieldOwnerKind = "ownerKind"
FILE: pkg/apiserver/query/types.go
constant ParameterName (line 19) | ParameterName = "name"
constant ParameterLabelSelector (line 20) | ParameterLabelSelector = "labelSelector"
constant ParameterFieldSelector (line 21) | ParameterFieldSelector = "fieldSelector"
constant ParameterPage (line 22) | ParameterPage = "page"
constant ParameterLimit (line 23) | ParameterLimit = "limit"
constant ParameterOrderBy (line 24) | ParameterOrderBy = "sortBy"
constant ParameterAscending (line 25) | ParameterAscending = "ascending"
type Query (line 29) | type Query struct
method Selector (line 62) | func (q *Query) Selector() labels.Selector {
method AppendLabelSelector (line 70) | func (q *Query) AppendLabelSelector(ls map[string]string) error {
type Pagination (line 44) | type Pagination struct
method GetValidPagination (line 79) | func (p *Pagination) GetValidPagination(total int) (startIndex, endInd...
function newPagination (line 55) | func newPagination(limit int, offset int) *Pagination {
function New (line 100) | func New() *Query {
type Filter (line 109) | type Filter struct
function ParseQueryParameter (line 114) | func ParseQueryParameter(request *restful.Request) *Query {
function defaultString (line 154) | func defaultString(value, defaultValue string) string {
FILE: pkg/apiserver/query/types_test.go
function TestParseQueryParameter (line 18) | func TestParseQueryParameter(t *testing.T) {
FILE: pkg/apiserver/request/context.go
type key (line 28) | type key
constant userKey (line 32) | userKey key = iota
function WithValue (line 36) | func WithValue(parent context.Context, key interface{}, val interface{})...
function WithUser (line 41) | func WithUser(parent context.Context, user user.Info) context.Context {
function UserFrom (line 46) | func UserFrom(ctx context.Context) (user.Info, bool) {
FILE: pkg/apiserver/request/context_test.go
function TestUserContext (line 29) | func TestUserContext(t *testing.T) {
FILE: pkg/apiserver/request/requestinfo.go
constant VerbCreate (line 33) | VerbCreate = "create"
constant VerbGet (line 34) | VerbGet = "get"
constant VerbList (line 35) | VerbList = "list"
constant VerbUpdate (line 36) | VerbUpdate = "update"
constant VerbDelete (line 37) | VerbDelete = "delete"
constant VerbWatch (line 38) | VerbWatch = "watch"
constant VerbPatch (line 39) | VerbPatch = "patch"
type RequestInfoResolver (line 42) | type RequestInfoResolver interface
type RequestInfo (line 62) | type RequestInfo struct
type RequestInfoFactory (line 84) | type RequestInfoFactory struct
method NewRequestInfo (line 117) | func (r *RequestInfoFactory) NewRequestInfo(req *http.Request) (*Reque...
method resolveResourceScope (line 347) | func (r *RequestInfoFactory) resolveResourceScope(request RequestInfo)...
method isGlobalScopeResource (line 367) | func (r *RequestInfoFactory) isGlobalScopeResource(apiGroup, resource ...
type requestInfoKeyType (line 314) | type requestInfoKeyType
constant requestInfoKey (line 319) | requestInfoKey requestInfoKeyType = iota
function WithRequestInfo (line 321) | func WithRequestInfo(parent context.Context, info *RequestInfo) context....
function RequestInfoFrom (line 325) | func RequestInfoFrom(ctx context.Context) (*RequestInfo, bool) {
function splitPath (line 331) | func splitPath(path string) []string {
constant GlobalScope (line 340) | GlobalScope = "Global"
constant ClusterScope (line 341) | ClusterScope = "Cluster"
constant WorkspaceScope (line 342) | WorkspaceScope = "Workspace"
constant NamespaceScope (line 343) | NamespaceScope = "Namespace"
constant workspaceSelectorPrefix (line 344) | workspaceSelectorPrefix = constants.WorkspaceLabelKey + "="
FILE: pkg/apiserver/request/requestinfo_test.go
function newTestRequestInfoResolver (line 16) | func newTestRequestInfoResolver() RequestInfoResolver {
function TestRequestInfoFactory_NewRequestInfo (line 25) | func TestRequestInfoFactory_NewRequestInfo(t *testing.T) {
FILE: pkg/apiserver/rest/interface.go
type Handler (line 11) | type Handler interface
FILE: pkg/apiserver/runtime/runtime.go
constant ApiRootPath (line 17) | ApiRootPath = "/kapis"
type ContainerBuilder (line 23) | type ContainerBuilder
method AddToContainer (line 43) | func (cb *ContainerBuilder) AddToContainer(c *restful.Container) error {
method Register (line 52) | func (cb *ContainerBuilder) Register(funcs ...func(*restful.Container)...
constant MimeMergePatchJson (line 25) | MimeMergePatchJson = "application/merge-patch+json"
constant MimeJsonPatchJson (line 26) | MimeJsonPatchJson = "application/json-patch+json"
constant MimeMultipartFormData (line 27) | MimeMultipartFormData = "multipart/form-data"
function init (line 29) | func init() {
function NewWebService (line 34) | func NewWebService(gv schema.GroupVersion) *restful.WebService {
FILE: pkg/componenthelper/auth/rbac/clusterrole_interface.go
type ClusterRoleRuleOwner (line 15) | type ClusterRoleRuleOwner struct
method GetRuleOwnerScope (line 19) | func (c ClusterRoleRuleOwner) GetRuleOwnerScope() string {
method GetObject (line 23) | func (c ClusterRoleRuleOwner) GetObject() runtime.Object {
method GetNamespace (line 27) | func (c ClusterRoleRuleOwner) GetNamespace() string {
method GetName (line 31) | func (c ClusterRoleRuleOwner) GetName() string {
method GetLabels (line 35) | func (c ClusterRoleRuleOwner) GetLabels() map[string]string {
method SetLabels (line 39) | func (c ClusterRoleRuleOwner) SetLabels(label map[string]string) {
method GetAnnotations (line 43) | func (c ClusterRoleRuleOwner) GetAnnotations() map[string]string {
method SetAnnotations (line 47) | func (c ClusterRoleRuleOwner) SetAnnotations(annotation map[string]str...
method GetRules (line 51) | func (c ClusterRoleRuleOwner) GetRules() []rbacv1.PolicyRule {
method SetRules (line 55) | func (c ClusterRoleRuleOwner) SetRules(rules []rbacv1.PolicyRule) {
method GetAggregationRule (line 59) | func (c ClusterRoleRuleOwner) GetAggregationRule() *iamv1beta1.Aggrega...
method SetAggregationRule (line 63) | func (c ClusterRoleRuleOwner) SetAggregationRule(aggregationRoleTempla...
method GetRegoPolicy (line 67) | func (c ClusterRoleRuleOwner) GetRegoPolicy() string {
method SetRegoPolicy (line 74) | func (c ClusterRoleRuleOwner) SetRegoPolicy(rego string) {
method DeepCopyRuleOwner (line 81) | func (c ClusterRoleRuleOwner) DeepCopyRuleOwner() RuleOwner {
FILE: pkg/componenthelper/auth/rbac/globalrole_interfaces.go
type GlobalRoleRuleOwner (line 15) | type GlobalRoleRuleOwner struct
method GetRuleOwnerScope (line 19) | func (g GlobalRoleRuleOwner) GetRuleOwnerScope() string {
method GetObject (line 23) | func (g GlobalRoleRuleOwner) GetObject() runtime.Object {
method GetNamespace (line 27) | func (g GlobalRoleRuleOwner) GetNamespace() string {
method GetName (line 31) | func (g GlobalRoleRuleOwner) GetName() string {
method GetLabels (line 35) | func (g GlobalRoleRuleOwner) GetLabels() map[string]string {
method SetLabels (line 39) | func (g GlobalRoleRuleOwner) SetLabels(m map[string]string) {
method GetAnnotations (line 43) | func (g GlobalRoleRuleOwner) GetAnnotations() map[string]string {
method SetAnnotations (line 47) | func (g GlobalRoleRuleOwner) SetAnnotations(m map[string]string) {
method GetRules (line 51) | func (g GlobalRoleRuleOwner) GetRules() []rbacv1.PolicyRule {
method SetRules (line 55) | func (g GlobalRoleRuleOwner) SetRules(rules []rbacv1.PolicyRule) {
method GetAggregationRule (line 59) | func (g GlobalRoleRuleOwner) GetAggregationRule() *iamv1beta1.Aggregat...
method SetAggregationRule (line 63) | func (g GlobalRoleRuleOwner) SetAggregationRule(aggregationRoleTemplat...
method DeepCopyRuleOwner (line 67) | func (g GlobalRoleRuleOwner) DeepCopyRuleOwner() RuleOwner {
method GetRegoPolicy (line 71) | func (g GlobalRoleRuleOwner) GetRegoPolicy() string {
method SetRegoPolicy (line 78) | func (g GlobalRoleRuleOwner) SetRegoPolicy(rego string) {
FILE: pkg/componenthelper/auth/rbac/helper.go
constant defaultRegoFileName (line 27) | defaultRegoFileName = "authz.rego"
constant AggregateRoleTemplateFailed (line 30) | AggregateRoleTemplateFailed = "AggregateRoleTemplateFailed"
constant MessageResourceSynced (line 31) | MessageResourceSynced = "Aggregating roleTemplates successfully"
type Helper (line 34) | type Helper struct
method aggregateRoleTemplateRule (line 42) | func (h *Helper) aggregateRoleTemplateRule(roleTemplates []iamv1beta1....
method aggregateRoleTemplateRegoPolicy (line 57) | func (h *Helper) aggregateRoleTemplateRegoPolicy(roleTemplates []iamv1...
method getRoleTemplates (line 99) | func (h *Helper) getRoleTemplates(ctx context.Context, owner RuleOwner...
method AggregationRole (line 134) | func (h *Helper) AggregationRole(ctx context.Context, ruleOwner RuleOw...
function NewHelper (line 38) | func NewHelper(c client.Client) *Helper {
function ruleExists (line 196) | func ruleExists(haystack []rbacv1.PolicyRule, needle rbacv1.PolicyRule) ...
function regoPolicyCover (line 201) | func regoPolicyCover(owner, servant string) (bool, error) {
function SquashRules (line 224) | func SquashRules(deep int, rules []rbacv1.PolicyRule) []rbacv1.PolicyRule {
function mergeRules (line 251) | func mergeRules(base, rule rbacv1.PolicyRule) rbacv1.PolicyRule {
function merge (line 264) | func merge(base, rule []string) []string {
function containRules (line 273) | func containRules(base, rule []string) bool {
function equalRules (line 286) | func equalRules(base, rule []string) bool {
FILE: pkg/componenthelper/auth/rbac/helper_test.go
function TestSquashRules (line 16) | func TestSquashRules(t *testing.T) {
FILE: pkg/componenthelper/auth/rbac/interface.go
type RuleOwner (line 15) | type RuleOwner interface
FILE: pkg/componenthelper/auth/rbac/policy_comparator.go
function Covers (line 18) | func Covers(ownerRules, servantRules []rbacv1.PolicyRule) (bool, []rbacv...
function BreakdownRule (line 49) | func BreakdownRule(rule rbacv1.PolicyRule) []rbacv1.PolicyRule {
function has (line 77) | func has(set []string, ele string) bool {
function hasAll (line 86) | func hasAll(set, contains []string) bool {
function resourceCoversAll (line 99) | func resourceCoversAll(setResources, coversResources []string) bool {
function nonResourceURLsCoversAll (line 124) | func nonResourceURLsCoversAll(set, covers []string) bool {
function nonResourceURLCovers (line 140) | func nonResourceURLCovers(ownerPath, subPath string) bool {
function ruleCovers (line 149) | func ruleCovers(ownerRule, subRule rbacv1.PolicyRule) bool {
FILE: pkg/componenthelper/auth/rbac/role_interfaces.go
type RoleRuleOwner (line 15) | type RoleRuleOwner struct
method GetRuleOwnerScope (line 19) | func (r RoleRuleOwner) GetRuleOwnerScope() string {
method GetObject (line 23) | func (r RoleRuleOwner) GetObject() runtime.Object {
method GetNamespace (line 27) | func (r RoleRuleOwner) GetNamespace() string {
method GetName (line 31) | func (r RoleRuleOwner) GetName() string {
method GetLabels (line 35) | func (r RoleRuleOwner) GetLabels() map[string]string {
method SetLabels (line 39) | func (r RoleRuleOwner) SetLabels(m map[string]string) {
method GetAnnotations (line 43) | func (r RoleRuleOwner) GetAnnotations() map[string]string {
method SetAnnotations (line 47) | func (r RoleRuleOwner) SetAnnotations(m map[string]string) {
method GetRules (line 51) | func (r RoleRuleOwner) GetRules() []rbacv1.PolicyRule {
method SetRules (line 55) | func (r RoleRuleOwner) SetRules(rules []rbacv1.PolicyRule) {
method GetAggregationRule (line 59) | func (r RoleRuleOwner) GetAggregationRule() *iamv1beta1.AggregationRol...
method SetAggregationRule (line 63) | func (r RoleRuleOwner) SetAggregationRule(i *iamv1beta1.AggregationRol...
method GetRegoPolicy (line 67) | func (r RoleRuleOwner) GetRegoPolicy() string {
method SetRegoPolicy (line 74) | func (r RoleRuleOwner) SetRegoPolicy(rego string) {
method DeepCopyRuleOwner (line 81) | func (r RoleRuleOwner) DeepCopyRuleOwner() RuleOwner {
FILE: pkg/componenthelper/auth/rbac/workspacerole_interfaces.go
type WorkspaceRoleRuleOwner (line 15) | type WorkspaceRoleRuleOwner struct
method GetRuleOwnerScope (line 19) | func (w WorkspaceRoleRuleOwner) GetRuleOwnerScope() string {
method GetObject (line 23) | func (w WorkspaceRoleRuleOwner) GetObject() runtime.Object {
method GetNamespace (line 27) | func (w WorkspaceRoleRuleOwner) GetNamespace() string {
method GetName (line 31) | func (w WorkspaceRoleRuleOwner) GetName() string {
method GetLabels (line 35) | func (w WorkspaceRoleRuleOwner) GetLabels() map[string]string {
method SetLabels (line 39) | func (w WorkspaceRoleRuleOwner) SetLabels(m map[string]string) {
method GetAnnotations (line 43) | func (w WorkspaceRoleRuleOwner) GetAnnotations() map[string]string {
method SetAnnotations (line 47) | func (w WorkspaceRoleRuleOwner) SetAnnotations(m map[string]string) {
method GetRules (line 51) | func (w WorkspaceRoleRuleOwner) GetRules() []rbacv1.PolicyRule {
method SetRules (line 55) | func (w WorkspaceRoleRuleOwner) SetRules(rules []rbacv1.PolicyRule) {
method GetAggregationRule (line 59) | func (w WorkspaceRoleRuleOwner) GetAggregationRule() *iamv1beta1.Aggre...
method SetAggregationRule (line 63) | func (w WorkspaceRoleRuleOwner) SetAggregationRule(i *iamv1beta1.Aggre...
method GetRegoPolicy (line 67) | func (w WorkspaceRoleRuleOwner) GetRegoPolicy() string {
method SetRegoPolicy (line 74) | func (w WorkspaceRoleRuleOwner) SetRegoPolicy(rego string) {
method DeepCopyRuleOwner (line 81) | func (w WorkspaceRoleRuleOwner) DeepCopyRuleOwner() RuleOwner {
FILE: pkg/config/config.go
constant defaultConfigurationName (line 66) | defaultConfigurationName = "kubesphere"
constant defaultConfigurationPath (line 69) | defaultConfigurationPath = "/etc/kubesphere"
constant envPrefix (line 71) | envPrefix = defaultConfigurationName
type config (line 74) | type config struct
method loadFromDisk (line 79) | func (c *config) loadFromDisk() (*Config, error) {
function defaultConfig (line 90) | func defaultConfig() *config {
type Config (line 109) | type Config struct
function New (line 127) | func New() *Config {
function TryLoadFromDisk (line 148) | func TryLoadFromDisk() (*Config, error) {
function FromConfigMap (line 153) | func FromConfigMap(cm *corev1.ConfigMap) (*Config, error) {
FILE: pkg/config/config_test.go
function newTestConfig (line 30) | func newTestConfig() (*Config, error) {
function saveTestConfig (line 50) | func saveTestConfig(t *testing.T, conf *Config) {
function cleanTestConfig (line 61) | func cleanTestConfig(t *testing.T) {
function TestGet (line 75) | func TestGet(t *testing.T) {
FILE: pkg/config/options.go
type ExperimentalOptions (line 9) | type ExperimentalOptions struct
function NewExperimentalOptions (line 13) | func NewExperimentalOptions() *ExperimentalOptions {
FILE: pkg/constants/constants.go
constant SystemWorkspace (line 12) | SystemWorkspace = "system-workspace"
constant KubeSystemNamespace (line 13) | KubeSystemNamespace = "kube-system"
constant KubeSphereNamespace (line 14) | KubeSphereNamespace = "kubesphere-system"
constant KubeSphereAPIServerName (line 15) | KubeSphereAPIServerName = "ks-apiserver"
constant KubeSphereConfigName (line 16) | KubeSphereConfigName = "kubesphere-config"
constant KubeSphereConfigMapDataKey (line 17) | KubeSphereConfigMapDataKey = "kubesphere.yaml"
constant KubectlPodNamePrefix (line 18) | KubectlPodNamePrefix = "ks-managed-kubectl"
constant ProtectedResourceLabel (line 20) | ProtectedResourceLabel = "kubesphere.io/protected-resource"
constant WorkspaceLabelKey (line 21) | WorkspaceLabelKey = "kubesphere.io/workspace"
constant DisplayNameAnnotationKey (line 22) | DisplayNameAnnotationKey = "kubesphere.io/alias-name"
constant DescriptionAnnotationKey (line 23) | DescriptionAnnotationKey = "kubesphere.io/description"
constant CreatorAnnotationKey (line 24) | CreatorAnnotationKey = "kubesphere.io/creator"
constant UsernameLabelKey (line 25) | UsernameLabelKey = "kubesphere.io/username"
constant GenericConfigTypeLabel (line 26) | GenericConfigTypeLabel = "config.kubesphere.io/type"
constant KubectlPodLabel (line 27) | KubectlPodLabel = "kubesphere.io/kubectl-pod"
constant ConfigHashAnnotation (line 28) | ConfigHashAnnotation = "kubesphere.io/config-hash"
constant KubeSphereManagedLabel (line 29) | KubeSphereManagedLabel = "kubesphere.io/managed"
constant DeletionPropagationAnnotation (line 30) | DeletionPropagationAnnotation = "kubesphere.io/deletion-propagation"
constant CascadingDeletionFinalizer (line 31) | CascadingDeletionFinalizer = "kubesphere.io/cascading-deletion"
constant KubeSphereConfigGroup (line 33) | KubeSphereConfigGroup = "config.kubesphere.io"
constant SecretTypeGenericPlatformConfig (line 34) | SecretTypeGenericPlatformConfig corev1.SecretType = KubeSphereConfigGrou...
constant GenericPlatformConfigNameFmt (line 35) | GenericPlatformConfigNameFmt = "io.kubesphere.confi...
constant GenericPlatformConfigFileName (line 36) | GenericPlatformConfigFileName = "configuration.yaml"
constant SecretTypeClusterConnectionConfig (line 38) | SecretTypeClusterConnectionConfig corev1.SecretType = KubeSphereConfigGr...
constant ClusterConnectionConfigFileName (line 39) | ClusterConnectionConfigFileName = "configuration.yaml"
FILE: pkg/controller/application/appcategory_controller.go
constant categoryController (line 34) | categoryController = "app-category"
constant categoryFinalizer (line 35) | categoryFinalizer = "categories.application.kubesphere.io"
type AppCategoryReconciler (line 41) | type AppCategoryReconciler struct
method Name (line 46) | func (r *AppCategoryReconciler) Name() string {
method Enabled (line 50) | func (r *AppCategoryReconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 54) | func (r *AppCategoryReconciler) SetupWithManager(mgr *kscontroller.Man...
method Reconcile (line 77) | func (r *AppCategoryReconciler) Reconcile(ctx context.Context, req ctr...
method ensureUncategorizedCategory (line 130) | func (r *AppCategoryReconciler) ensureUncategorizedCategory() error {
FILE: pkg/controller/application/apprelease_controller.go
constant helminstallerController (line 46) | helminstallerController = "apprelease-helminstaller"
constant HelmReleaseFinalizer (line 47) | HelmReleaseFinalizer = "helmrelease.application.kubesphere.io"
constant verificationAgain (line 54) | verificationAgain = 5
constant timeoutVerificationAgain (line 55) | timeoutVerificationAgain = 600
constant timeoutMaxRecheck (line 56) | timeoutMaxRecheck = 4
type AppReleaseReconciler (line 115) | type AppReleaseReconciler struct
method Name (line 59) | func (r *AppReleaseReconciler) Name() string {
method Enabled (line 63) | func (r *AppReleaseReconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 67) | func (r *AppReleaseReconciler) SetupWithManager(mgr *controller.Manage...
method mapper (line 99) | func (r *AppReleaseReconciler) mapper(ctx context.Context, o client.Ob...
method Reconcile (line 124) | func (r *AppReleaseReconciler) Reconcile(ctx context.Context, req ctrl...
method checkJob (line 309) | func (r *AppReleaseReconciler) checkJob(ctx context.Context, apprls *a...
method removeAll (line 341) | func (r *AppReleaseReconciler) removeAll(ctx context.Context, apprls *...
method getClusterDynamicClient (line 378) | func (r *AppReleaseReconciler) getClusterDynamicClient(clusterName str...
method getClusterInfo (line 397) | func (r *AppReleaseReconciler) getClusterInfo(clusterName string) ([]b...
method updateStatus (line 411) | func (r *AppReleaseReconciler) updateStatus(ctx context.Context, apprl...
FILE: pkg/controller/application/apprelease_webhook.go
type ReleaseWebhook (line 31) | type ReleaseWebhook struct
method Name (line 35) | func (a *ReleaseWebhook) Name() string {
method SetupWithManager (line 39) | func (a *ReleaseWebhook) SetupWithManager(mgr *kscontroller.Manager) e...
method Enabled (line 45) | func (a *ReleaseWebhook) Enabled(clusterRole string) bool {
method ValidateCreate (line 49) | func (a *ReleaseWebhook) ValidateCreate(ctx context.Context, obj runti...
method ValidateUpdate (line 53) | func (a *ReleaseWebhook) ValidateUpdate(ctx context.Context, oldObj, n...
method ValidateDelete (line 57) | func (a *ReleaseWebhook) ValidateDelete(ctx context.Context, obj runti...
method validateAppVersionState (line 61) | func (a *ReleaseWebhook) validateAppVersionState(ctx context.Context, ...
FILE: pkg/controller/application/appversion_contrlller.go
constant appVersionController (line 32) | appVersionController = "appversion"
type AppVersionReconciler (line 38) | type AppVersionReconciler struct
method Name (line 45) | func (r *AppVersionReconciler) Name() string {
method Enabled (line 49) | func (r *AppVersionReconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 53) | func (r *AppVersionReconciler) SetupWithManager(mgr *kscontroller.Mana...
method Reconcile (line 67) | func (r *AppVersionReconciler) Reconcile(ctx context.Context, req ctrl...
method deleteFile (line 91) | func (r *AppVersionReconciler) deleteFile(ctx context.Context, appVers...
FILE: pkg/controller/application/delete_predicate.go
type DeletePredicate (line 14) | type DeletePredicate struct
method Update (line 18) | func (DeletePredicate) Update(e event.UpdateEvent) bool {
method Create (line 22) | func (DeletePredicate) Create(_ event.CreateEvent) bool {
method Delete (line 26) | func (DeletePredicate) Delete(_ event.DeleteEvent) bool {
method Generic (line 30) | func (DeletePredicate) Generic(_ event.GenericEvent) bool {
FILE: pkg/controller/application/executor.go
method uninstall (line 24) | func (r *AppReleaseReconciler) uninstall(ctx context.Context, rls *appv2...
method jobStatus (line 44) | func (r *AppReleaseReconciler) jobStatus(job *batchv1.Job) (active, comp...
method createOrUpgradeAppRelease (line 51) | func (r *AppReleaseReconciler) createOrUpgradeAppRelease(ctx context.Con...
method getExecutor (line 93) | func (r *AppReleaseReconciler) getExecutor(apprls *appv2.ApplicationRele...
method getYamlInstaller (line 102) | func (r *AppReleaseReconciler) getYamlInstaller(runClient client.Client,...
method getHelmExecutor (line 138) | func (r *AppReleaseReconciler) getHelmExecutor(apprls *appv2.Application...
method cleanJob (line 161) | func (r *AppReleaseReconciler) cleanJob(ctx context.Context, apprls *app...
method cleanStore (line 203) | func (r *AppReleaseReconciler) cleanStore(ctx context.Context, apprls *a...
FILE: pkg/controller/application/helm_repo_controller.go
constant helmRepoController (line 41) | helmRepoController = "helmrepo-controller"
type RepoReconciler (line 46) | type RepoReconciler struct
method Name (line 54) | func (r *RepoReconciler) Name() string {
method Enabled (line 58) | func (r *RepoReconciler) Enabled(clusterRole string) bool {
method mapper (line 62) | func (r *RepoReconciler) mapper(ctx context.Context, o client.Object) ...
method SetupWithManager (line 78) | func (r *RepoReconciler) SetupWithManager(mgr *kscontroller.Manager) (...
method UpdateStatus (line 99) | func (r *RepoReconciler) UpdateStatus(ctx context.Context, helmRepo *a...
method skipSync (line 116) | func (r *RepoReconciler) skipSync(helmRepo *appv2.Repo) (bool, error) {
method Reconcile (line 156) | func (r *RepoReconciler) Reconcile(ctx context.Context, request reconc...
method repoParseRequest (line 282) | func (r *RepoReconciler) repoParseRequest(ctx context.Context, version...
function filterVersions (line 135) | func filterVersions(versions []*helmrepo.ChartVersion) []*helmrepo.Chart...
function generateVRequest (line 358) | func generateVRequest(helmRepo *appv2.Repo, ver *helmrepo.ChartVersion, ...
FILE: pkg/controller/application/predicate.go
type IgnoreAnnotationChangePredicate (line 13) | type IgnoreAnnotationChangePredicate struct
method Create (line 17) | func (p IgnoreAnnotationChangePredicate) Create(e event.CreateEvent) b...
method Delete (line 21) | func (p IgnoreAnnotationChangePredicate) Delete(e event.DeleteEvent) b...
method Update (line 25) | func (p IgnoreAnnotationChangePredicate) Update(e event.UpdateEvent) b...
method Generic (line 30) | func (p IgnoreAnnotationChangePredicate) Generic(e event.GenericEvent)...
FILE: pkg/controller/certificatesigningrequest/certificatesigningrequest_controller.go
constant controllerName (line 35) | controllerName = "csr"
constant userKubeConfigSecretNameFormat (line 36) | userKubeConfigSecretNameFormat = "kubeconfig-%s"
constant kubeconfigFileName (line 37) | kubeconfigFileName = "config"
constant privateKeyAnnotation (line 38) | privateKeyAnnotation = "kubesphere.io/private-key"
type Reconciler (line 44) | type Reconciler struct
method Name (line 49) | func (r *Reconciler) Name() string {
method SetupWithManager (line 53) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 73) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method Approve (line 102) | func (r *Reconciler) Approve(csr *certificatesv1.CertificateSigningReq...
method UpdateKubeConfig (line 126) | func (r *Reconciler) UpdateKubeConfig(ctx context.Context, username st...
function applyCert (line 140) | func applyCert(secret *corev1.Secret, csr *certificatesv1.CertificateSig...
FILE: pkg/controller/cluster/cluster_controller.go
constant controllerName (line 61) | controllerName = "cluster"
constant installAction (line 62) | installAction = "install"
constant upgradeAction (line 63) | upgradeAction = "upgrade"
constant reInstallAction (line 64) | reInstallAction = "reinstall"
constant initializedAnnotation (line 68) | initializedAnnotation = "kubesphere.io/initialized"
constant installJobAnnotation (line 69) | installJobAnnotation = "kubesphere.io/install-core-jobname"
constant ksCoreActionAnnotation (line 70) | ksCoreActionAnnotation = "kubesphere.io/ks-core-action"
type Reconciler (line 107) | type Reconciler struct
method Name (line 99) | func (r *Reconciler) Name() string {
method Enabled (line 103) | func (r *Reconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 120) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method NeedLeaderElection (line 185) | func (r *Reconciler) NeedLeaderElection() bool {
method Start (line 189) | func (r *Reconciler) Start(ctx context.Context) error {
method createHostClusterIfNotExists (line 199) | func (r *Reconciler) createHostClusterIfNotExists() error {
method Reconcile (line 236) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method syncClusterLabel (line 351) | func (r *Reconciler) syncClusterLabel(ctx context.Context, cluster *cl...
method needInstall (line 388) | func (r *Reconciler) needInstall(ctx context.Context, member *clusterv...
method reconcileMemberCluster (line 437) | func (r *Reconciler) reconcileMemberCluster(ctx context.Context, clust...
method syncClusterName (line 488) | func (r *Reconciler) syncClusterName(ctx context.Context, cluster *clu...
method checkIfClusterIsHostCluster (line 513) | func (r *Reconciler) checkIfClusterIsHostCluster(clusterKubeSystemUID ...
method tryFetchKubeSphereVersion (line 517) | func (r *Reconciler) tryFetchKubeSphereVersion(ctx context.Context, cl...
method updateClusterReadyCondition (line 555) | func (r *Reconciler) updateClusterReadyCondition(ctx context.Context, ...
method updateClusterCondition (line 581) | func (r *Reconciler) updateClusterCondition(cluster *clusterv1alpha1.C...
method syncKubeSphereVersion (line 598) | func (r *Reconciler) syncKubeSphereVersion(ctx context.Context, cluste...
method syncKubernetesVersion (line 610) | func (r *Reconciler) syncKubernetesVersion(ctx context.Context, cluste...
method syncClusterMembers (line 640) | func (r *Reconciler) syncClusterMembers(ctx context.Context, cluster *...
method cleanup (line 705) | func (r *Reconciler) cleanup(ctx context.Context, cluster *clusterv1al...
method createClusterAdmin (line 725) | func (r *Reconciler) createClusterAdmin(ctx context.Context, cluster *...
method unbindWorkspaceTemplate (line 782) | func (r *Reconciler) unbindWorkspaceTemplate(ctx context.Context, clus...
method installOrUpgradeKSCoreInMemberCluster (line 811) | func (r *Reconciler) installOrUpgradeKSCoreInMemberCluster(ctx context...
type clusterChangedPredicate (line 157) | type clusterChangedPredicate struct
method Update (line 162) | func (c clusterChangedPredicate) Update(e event.UpdateEvent) bool {
FILE: pkg/controller/cluster/cluster_webhook.go
constant webhookName (line 27) | webhookName = "cluster-webhook"
type Webhook (line 40) | type Webhook struct
method Name (line 29) | func (v *Webhook) Name() string {
method Enabled (line 33) | func (v *Webhook) Enabled(clusterRole string) bool {
method SetupWithManager (line 43) | func (v *Webhook) SetupWithManager(mgr *kscontroller.Manager) error {
method ValidateCreate (line 50) | func (v *Webhook) ValidateCreate(ctx context.Context, obj runtime.Obje...
method ValidateUpdate (line 54) | func (v *Webhook) ValidateUpdate(ctx context.Context, oldObj, newObj r...
method ValidateDelete (line 87) | func (v *Webhook) ValidateDelete(ctx context.Context, obj runtime.Obje...
FILE: pkg/controller/cluster/helper.go
constant releaseName (line 30) | releaseName = "ks-core"
function configChanged (line 32) | func configChanged(cluster *clusterv1alpha1.Cluster) bool {
function setConfigHash (line 36) | func setConfigHash(cluster *clusterv1alpha1.Cluster) {
function getKubeSphereConfig (line 47) | func getKubeSphereConfig(ctx context.Context, client runtimeclient.Clien...
function generateChartValueBytes (line 60) | func generateChartValueBytes(chartConfig []byte, jwtSecret string) ([]by...
function getChartBytes (line 86) | func getChartBytes(chartPath string) ([]byte, error) {
FILE: pkg/controller/cluster/kubeconfig.go
method updateKubeConfigExpirationDateCondition (line 39) | func (r *Reconciler) updateKubeConfigExpirationDateCondition(
function parseKubeConfigCert (line 81) | func parseKubeConfigCert(config *rest.Config) (*x509.Certificate, error) {
method renewKubeConfig (line 96) | func (r *Reconciler) renewKubeConfig(
function setKubeSphereSAToken (line 134) | func setKubeSphereSAToken(
function genKubeConfig (line 166) | func genKubeConfig(ctx context.Context, clusterClient client.Client, clu...
function createCSR (line 225) | func createCSR(ctx context.Context, clusterClient client.Client, usernam...
function approveCSR (line 278) | func approveCSR(ctx context.Context, clusterClient client.Client, csr *c...
FILE: pkg/controller/cluster/predicate/predicate.go
type ClusterStatusChangedPredicate (line 17) | type ClusterStatusChangedPredicate struct
method Update (line 21) | func (ClusterStatusChangedPredicate) Update(e event.UpdateEvent) bool {
method Create (line 37) | func (ClusterStatusChangedPredicate) Create(_ event.CreateEvent) bool {
method Delete (line 41) | func (ClusterStatusChangedPredicate) Delete(_ event.DeleteEvent) bool {
method Generic (line 45) | func (ClusterStatusChangedPredicate) Generic(_ event.GenericEvent) bool {
FILE: pkg/controller/cluster/utils/utils.go
function IsClusterReady (line 20) | func IsClusterReady(cluster *clusterv1alpha1.Cluster) bool {
function IsClusterSchedulable (line 29) | func IsClusterSchedulable(cluster *clusterv1alpha1.Cluster) bool {
function IsHostCluster (line 46) | func IsHostCluster(cluster *clusterv1alpha1.Cluster) bool {
function BuildKubeconfigFromRestConfig (line 53) | func BuildKubeconfigFromRestConfig(config *rest.Config) ([]byte, error) {
FILE: pkg/controller/clusterlabel/clusterlabel_controller.go
type Reconciler (line 28) | type Reconciler struct
method Name (line 32) | func (r *Reconciler) Name() string {
method Enabled (line 36) | func (r *Reconciler) Enabled(clusterRole string) bool {
method Reconcile (line 41) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method syncLabelToClusters (line 62) | func (r *Reconciler) syncLabelToClusters(ctx context.Context, label *c...
method deleteLabel (line 96) | func (r *Reconciler) deleteLabel(ctx context.Context, label *clusterv1...
method SetupWithManager (line 116) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
FILE: pkg/controller/clusterrole/clusterrole_controller.go
constant controllerName (line 30) | controllerName = "clusterrole"
constant roleRef (line 31) | roleRef = "iam.kubesphere.io/clusterrole-ref"
type Reconciler (line 37) | type Reconciler struct
method Name (line 44) | func (r *Reconciler) Name() string {
method SetupWithManager (line 48) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 60) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method syncToKubernetes (line 82) | func (r *Reconciler) syncToKubernetes(ctx context.Context, clusterRole...
FILE: pkg/controller/clusterrolebinding/clusterrolebinding_controller.go
constant controllerName (line 29) | controllerName = "clusterrolebinding"
constant roleBindingRef (line 30) | roleBindingRef = "iam.kubesphere.io/clusterrolebinding-ref"
type Reconciler (line 36) | type Reconciler struct
method Name (line 43) | func (r *Reconciler) Name() string {
method SetupWithManager (line 47) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 59) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method syncToKubernetes (line 74) | func (r *Reconciler) syncToKubernetes(ctx context.Context, clusterRole...
FILE: pkg/controller/config/config_webhook.go
constant webhookName (line 70) | webhookName = "kubesphere-config-webhook"
type Webhook (line 76) | type Webhook struct
method ValidateCreate (line 25) | func (w *Webhook) ValidateCreate(ctx context.Context, obj runtime.Obje...
method ValidateUpdate (line 34) | func (w *Webhook) ValidateUpdate(ctx context.Context, oldObj, newObj r...
method ValidateDelete (line 43) | func (w *Webhook) ValidateDelete(ctx context.Context, obj runtime.Obje...
method Default (line 52) | func (w *Webhook) Default(ctx context.Context, obj runtime.Object) err...
method Name (line 72) | func (w *Webhook) Name() string {
method SetupWithManager (line 81) | func (w *Webhook) SetupWithManager(mgr *kscontroller.Manager) error {
FILE: pkg/controller/config/identityprovider/webhook.go
type WebhookHandler (line 24) | type WebhookHandler struct
method Default (line 29) | func (w *WebhookHandler) Default(_ context.Context, secret *corev1.Sec...
method ValidateCreate (line 43) | func (w *WebhookHandler) ValidateCreate(ctx context.Context, secret *c...
method ValidateUpdate (line 65) | func (w *WebhookHandler) ValidateUpdate(_ context.Context, old, new *c...
method ValidateDelete (line 82) | func (w *WebhookHandler) ValidateDelete(_ context.Context, _ *corev1.S...
method ConfigType (line 86) | func (w *WebhookHandler) ConfigType() corev1.SecretType {
method isClientExist (line 90) | func (w *WebhookHandler) isClientExist(ctx context.Context, clientName...
FILE: pkg/controller/config/oauthclient/webhook.go
type WebhookHandler (line 27) | type WebhookHandler struct
method Default (line 32) | func (v *WebhookHandler) Default(_ context.Context, secret *v1.Secret)...
method ValidateCreate (line 50) | func (v *WebhookHandler) ValidateCreate(ctx context.Context, secret *c...
method ValidateUpdate (line 68) | func (v *WebhookHandler) ValidateUpdate(_ context.Context, old, new *c...
method ValidateDelete (line 83) | func (v *WebhookHandler) ValidateDelete(_ context.Context, _ *corev1.S...
method ConfigType (line 87) | func (v *WebhookHandler) ConfigType() corev1.SecretType {
method clientExist (line 110) | func (v *WebhookHandler) clientExist(ctx context.Context, clientName s...
function validate (line 92) | func validate(oc *oauth.Client) (admission.Warnings, error) {
function generatePassword (line 124) | func generatePassword(length int) string {
FILE: pkg/controller/config/webhook_factory.go
type ValidatorInterface (line 17) | type ValidatorInterface interface
type DefaulterInterface (line 24) | type DefaulterInterface interface
type WebhookFactory (line 45) | type WebhookFactory struct
method RegisterValidator (line 29) | func (w *WebhookFactory) RegisterValidator(validator ValidatorInterfac...
method RegisterDefaulter (line 33) | func (w *WebhookFactory) RegisterDefaulter(defaulter DefaulterInterfac...
method GetValidator (line 37) | func (w *WebhookFactory) GetValidator(secretType v1.SecretType) Valida...
method GetDefaulter (line 41) | func (w *WebhookFactory) GetDefaulter(secretType v1.SecretType) Defaul...
function NewWebhookFactory (line 50) | func NewWebhookFactory() *WebhookFactory {
FILE: pkg/controller/controllertest/testing.go
function LoadCrdPath (line 16) | func LoadCrdPath() ([]string, error) {
FILE: pkg/controller/conversion/conversion.go
constant webhookName (line 15) | webhookName = "conversion-webhook"
type Webhook (line 23) | type Webhook struct
method Name (line 17) | func (w *Webhook) Name() string {
method SetupWithManager (line 26) | func (w *Webhook) SetupWithManager(mgr *kscontroller.Manager) error {
FILE: pkg/controller/core/category_controller.go
constant categoryController (line 31) | categoryController = "extension-category"
constant countOfRelatedExtensions (line 32) | countOfRelatedExtensions = "kubesphere.io/count"
type CategoryReconciler (line 46) | type CategoryReconciler struct
method Name (line 38) | func (r *CategoryReconciler) Name() string {
method Enabled (line 42) | func (r *CategoryReconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 52) | func (r *CategoryReconciler) SetupWithManager(mgr *kscontroller.Manage...
method Reconcile (line 78) | func (r *CategoryReconciler) Reconcile(ctx context.Context, req ctrl.R...
FILE: pkg/controller/core/extension_controller.go
constant extensionProtection (line 38) | extensionProtection = "kubesphere.io/extension-protection"
constant extensionController (line 39) | extensionController = "extension"
type ExtensionReconciler (line 53) | type ExtensionReconciler struct
method Name (line 45) | func (r *ExtensionReconciler) Name() string {
method Enabled (line 49) | func (r *ExtensionReconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 59) | func (r *ExtensionReconciler) SetupWithManager(mgr *kscontroller.Manag...
method Reconcile (line 93) | func (r *ExtensionReconciler) Reconcile(ctx context.Context, req ctrl....
method reconcileDelete (line 122) | func (r *ExtensionReconciler) reconcileDelete(ctx context.Context, ext...
method syncExtensionStatus (line 141) | func (r *ExtensionReconciler) syncExtensionStatus(ctx context.Context,...
FILE: pkg/controller/core/extensionversion_controller.go
constant extensionVersionController (line 30) | extensionVersionController = "extensionVersion"
type ExtensionVersionReconciler (line 44) | type ExtensionVersionReconciler struct
method Name (line 36) | func (r *ExtensionVersionReconciler) Name() string {
method Enabled (line 40) | func (r *ExtensionVersionReconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 49) | func (r *ExtensionVersionReconciler) SetupWithManager(mgr *kscontrolle...
method Reconcile (line 58) | func (r *ExtensionVersionReconciler) Reconcile(ctx context.Context, re...
method syncExtensionVersion (line 80) | func (r *ExtensionVersionReconciler) syncExtensionVersion(ctx context....
function needUpdate (line 144) | func needUpdate(version string, versions []corev1alpha1.ExtensionVersion...
FILE: pkg/controller/core/installplan_controller.go
constant installPlanController (line 63) | installPlanController = "installplan"
constant installPlanProtection (line 64) | installPlanProtection = "kubesphere.io/installplan-protection"
constant systemWorkspace (line 65) | systemWorkspace = "system-workspace"
constant agentReleaseFormat (line 66) | agentReleaseFormat = "%s-agent"
constant defaultRoleFormat (line 67) | defaultRoleFormat = "kubesphere:%s:helm-executor"
constant defaultRoleBindingFormat (line 68) | defaultRoleBindingFormat = defaultRoleFormat
constant defaultClusterRoleFormat (line 69) | defaultClusterRoleFormat = "kubesphere:%s:helm-executor"
constant permissionDefinitionFile (line 70) | permissionDefinitionFile = "permissions.yaml"
constant defaultClusterRoleBindingFormat (line 71) | defaultClusterRoleBindingFormat = defaultClusterRoleFormat
constant tagAgent (line 72) | tagAgent = "agent"
constant tagExtension (line 73) | tagExtension = "extension"
constant upgradeSuccessful (line 74) | upgradeSuccessful = "UpgradeSuccessful"
constant upgradeFailed (line 75) | upgradeFailed = "UpgradeFailed"
constant installSuccessful (line 76) | installSuccessful = "InstallSuccessful"
constant installFailed (line 77) | installFailed = "InstallFailed"
constant initialized (line 78) | initialized = "Initialized"
constant uninstallFailed (line 79) | uninstallFailed = "UninstallFailed"
constant typeHelmRelease (line 80) | typeHelmRelease = "helm.sh/release.v1"
constant globalExtensionIngressClassName (line 81) | globalExtensionIngressClassName = "global.extension.ingress.ingressCl...
constant globalExtensionIngressDomainSuffix (line 82) | globalExtensionIngressDomainSuffix = "global.extension.ingress.domainSuf...
constant globalExtensionIngressHTTPPort (line 83) | globalExtensionIngressHTTPPort = "global.extension.ingress.httpPort"
constant globalExtensionIngressHTTPSPort (line 84) | globalExtensionIngressHTTPSPort = "global.extension.ingress.httpsPort"
constant globalNodeSelector (line 85) | globalNodeSelector = "global.nodeSelector"
constant globalImageRegistry (line 86) | globalImageRegistry = "global.imageRegistry"
constant globalClusterName (line 87) | globalClusterName = "global.clusterInfo.name"
constant globalClusterRole (line 88) | globalClusterRole = "global.clusterInfo.role"
constant globalPortalURL (line 89) | globalPortalURL = "global.portal.url"
type InstallPlanReconciler (line 104) | type InstallPlanReconciler struct
method Name (line 95) | func (r *InstallPlanReconciler) Name() string {
method Enabled (line 99) | func (r *InstallPlanReconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 115) | func (r *InstallPlanReconciler) SetupWithManager(mgr *kscontroller.Man...
method Reconcile (line 226) | func (r *InstallPlanReconciler) Reconcile(ctx context.Context, req ctr...
method reconcileDelete (line 299) | func (r *InstallPlanReconciler) reconcileDelete(ctx context.Context, p...
method getHookImageForUninstall (line 386) | func (r *InstallPlanReconciler) getHookImageForUninstall(extensionVers...
method loadChartDataAndCABundle (line 413) | func (r *InstallPlanReconciler) loadChartDataAndCABundle(ctx context.C...
method postRemove (line 497) | func (r *InstallPlanReconciler) postRemove(ctx context.Context, plan *...
method syncExtendedAPIStatus (line 510) | func (r *InstallPlanReconciler) syncExtendedAPIStatus(ctx context.Cont...
method updateInstallPlan (line 529) | func (r *InstallPlanReconciler) updateInstallPlan(ctx context.Context,...
method syncExtensionStatus (line 856) | func (r *InstallPlanReconciler) syncExtensionStatus(ctx context.Contex...
method syncClusterSchedulingStatus (line 898) | func (r *InstallPlanReconciler) syncClusterSchedulingStatus(ctx contex...
method cleanupOutdatedJobsAndConfigMaps (line 946) | func (r *InstallPlanReconciler) cleanupOutdatedJobsAndConfigMaps(ctx c...
method syncInstallPlanStatus (line 983) | func (r *InstallPlanReconciler) syncInstallPlanStatus(ctx context.Cont...
method syncClusterAgentStatus (line 1035) | func (r *InstallPlanReconciler) syncClusterAgentStatus(ctx context.Con...
method installOrUpgradeExtension (line 1091) | func (r *InstallPlanReconciler) installOrUpgradeExtension(ctx context....
method getHookImageForInstall (line 1186) | func (r *InstallPlanReconciler) getHookImageForInstall(extensionVersio...
method getOverrides (line 1200) | func (r *InstallPlanReconciler) getOverrides(mainChart *chart.Chart, t...
method installOrUpgradeClusterAgent (line 1270) | func (r *InstallPlanReconciler) installOrUpgradeClusterAgent(ctx conte...
method uninstallClusterAgent (line 1401) | func (r *InstallPlanReconciler) uninstallClusterAgent(ctx context.Cont...
method newExecutor (line 1487) | func (r *InstallPlanReconciler) newExecutor(plan *corev1alpha1.Install...
method syncInstallationStatus (line 1543) | func (r *InstallPlanReconciler) syncInstallationStatus(ctx context.Con...
method mapper (line 1633) | func (r *InstallPlanReconciler) mapper(ctx context.Context, object cli...
function latestJobCondition (line 397) | func latestJobCondition(job *batchv1.Job) batchv1.JobCondition {
function updateState (line 434) | func updateState(status *corev1alpha1.InstallationStatus, state string, ...
function updateCondition (line 472) | func updateCondition(status *corev1alpha1.InstallationStatus, conditionT...
function createNamespaceIfNotExists (line 559) | func createNamespaceIfNotExists(ctx context.Context, client client.Clien...
function createOrUpdateRole (line 583) | func createOrUpdateRole(ctx context.Context, client client.Client, names...
function createOrUpdateRoleBinding (line 614) | func createOrUpdateRoleBinding(ctx context.Context, client client.Client...
function initTargetNamespace (line 636) | func initTargetNamespace(ctx context.Context, client client.Client, name...
function createOrUpdateServiceAccount (line 665) | func createOrUpdateServiceAccount(ctx context.Context, client client.Cli...
function createOrUpdateClusterRole (line 680) | func createOrUpdateClusterRole(ctx context.Context, client client.Client...
function createOrUpdateClusterRoleBinding (line 699) | func createOrUpdateClusterRoleBinding(ctx context.Context, client client...
function syncJSBundleStatus (line 723) | func syncJSBundleStatus(ctx context.Context, clusterClient client.Client...
function syncAPIServiceStatus (line 755) | func syncAPIServiceStatus(ctx context.Context, clusterClient client.Clie...
function syncReverseProxyStatus (line 790) | func syncReverseProxyStatus(ctx context.Context, clusterClient client.Cl...
function syncExtensionEntryStatus (line 823) | func syncExtensionEntryStatus(ctx context.Context, clusterClient client....
function conditions (line 1260) | func conditions(mainChart *chart.Chart, tag string) []string {
function fixedOptions (line 1383) | func fixedOptions(chartURL string, chartData []byte, helmOptions []helm....
function updateStateAndConditions (line 1520) | func updateStateAndConditions(installationStatus *corev1alpha1.Installat...
function jobStatus (line 1663) | func jobStatus(job *batchv1.Job) (active, completed, failed bool) {
type contextKeyExtensionVersion (line 1673) | type contextKeyExtensionVersion struct
type contextKeyExecutor (line 1674) | type contextKeyExecutor struct
type contextKeyHostKubeConfig (line 1675) | type contextKeyHostKubeConfig struct
FILE: pkg/controller/core/installplan_webhook.go
type InstallPlanWebhook (line 34) | type InstallPlanWebhook struct
method Name (line 30) | func (r *InstallPlanWebhook) Name() string {
method Default (line 51) | func (r *InstallPlanWebhook) Default(ctx context.Context, obj runtime....
method ValidateCreate (line 62) | func (r *InstallPlanWebhook) ValidateCreate(ctx context.Context, obj r...
method ValidateUpdate (line 66) | func (r *InstallPlanWebhook) ValidateUpdate(ctx context.Context, _, ne...
method ValidateDelete (line 70) | func (r *InstallPlanWebhook) ValidateDelete(_ context.Context, _ runti...
method validateInstallPlan (line 74) | func (r *InstallPlanWebhook) validateInstallPlan(_ context.Context, in...
method SetupWithManager (line 92) | func (r *InstallPlanWebhook) SetupWithManager(mgr *kscontroller.Manage...
function trimSpace (line 38) | func trimSpace(data string) string {
FILE: pkg/controller/core/repository_controller.go
constant repositoryProtection (line 38) | repositoryProtection = "kubesphere.io/repository-protection"
constant repositoryController (line 39) | repositoryController = "repository"
constant minimumRegistryPollInterval (line 40) | minimumRegistryPollInterval = 15 * time.Minute
constant defaultRegistryPollTimeout (line 41) | defaultRegistryPollTimeout = 2 * time.Minute
constant extensionFileName (line 42) | extensionFileName = "extension.yaml"
type RepositoryReconciler (line 58) | type RepositoryReconciler struct
method Name (line 50) | func (r *RepositoryReconciler) Name() string {
method Enabled (line 54) | func (r *RepositoryReconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 64) | func (r *RepositoryReconciler) SetupWithManager(mgr *kscontroller.Mana...
method Reconcile (line 74) | func (r *RepositoryReconciler) Reconcile(ctx context.Context, req ctrl...
method reconcileDelete (line 98) | func (r *RepositoryReconciler) reconcileDelete(ctx context.Context, re...
method createOrUpdateExtension (line 109) | func (r *RepositoryReconciler) createOrUpdateExtension(ctx context.Con...
method createOrUpdateExtensionVersion (line 140) | func (r *RepositoryReconciler) createOrUpdateExtensionVersion(ctx cont...
method syncExtensionsFromURL (line 171) | func (r *RepositoryReconciler) syncExtensionsFromURL(ctx context.Conte...
method reconcileRepository (line 307) | func (r *RepositoryReconciler) reconcileRepository(ctx context.Context...
method fetchExtensionVersionSpec (line 343) | func (r *RepositoryReconciler) fetchExtensionVersionSpec(ctx context.C...
method removeSuspendedExtensionVersion (line 360) | func (r *RepositoryReconciler) removeSuspendedExtensionVersion(ctx con...
function resolveChartURL (line 289) | func resolveChartURL(version *helmrepo.ChartVersion, repoURL *url.URL) *...
function checkIfSuspended (line 379) | func checkIfSuspended(versions []corev1alpha1.ExtensionVersion, version ...
FILE: pkg/controller/core/util.go
constant ExtensionVersionMaxLength (line 48) | ExtensionVersionMaxLength = validation.LabelValueMaxLength
constant ExtensionNameMaxLength (line 49) | ExtensionNameMaxLength = validation.LabelValueMaxLength
function getRecommendedExtensionVersion (line 51) | func getRecommendedExtensionVersion(versions []corev1alpha1.ExtensionVer...
function matchVersionConstraints (line 85) | func matchVersionConstraints(v corev1alpha1.ExtensionVersion, k8sVersion...
function checkVersionConstraint (line 91) | func checkVersionConstraint(constraint string, version *semver.Version) ...
function filterExtensionVersions (line 108) | func filterExtensionVersions(versions []corev1alpha1.ExtensionVersion, d...
function isReleaseNotFoundError (line 154) | func isReleaseNotFoundError(err error) bool {
function clusterConfig (line 161) | func clusterConfig(sub *corev1alpha1.InstallPlan, clusterName string) []...
function merge (line 173) | func merge(config string, override string) []byte {
function mergeValues (line 205) | func mergeValues(dest map[string]interface{}, src map[string]interface{}...
function usesPermissions (line 231) | func usesPermissions(mainChart *chart.Chart) (rbacv1.ClusterRole, rbacv1...
function hasCluster (line 266) | func hasCluster(clusters []clusterv1alpha1.Cluster, clusterName string) ...
function versionChanged (line 275) | func versionChanged(plan *corev1alpha1.InstallPlan, cluster string) bool {
function configChanged (line 289) | func configChanged(sub *corev1alpha1.InstallPlan, cluster string) bool {
function createHelmCredential (line 304) | func createHelmCredential(repo *corev1alpha1.Repository) (helm.RepoCrede...
function fetchExtensionVersionSpec (line 316) | func fetchExtensionVersionSpec(ctx context.Context, client client.Reader...
function fetchChartData (line 363) | func fetchChartData(ctx context.Context, client client.Reader, extension...
function fetchChartDataFromConfigMap (line 402) | func fetchChartDataFromConfigMap(ctx context.Context, client client.Read...
function fetchRepository (line 414) | func fetchRepository(ctx context.Context, client client.Reader, repoName...
function createTransport (line 425) | func createTransport(repo *corev1alpha1.Repository, serverName string) (...
function createGetterOptions (line 445) | func createGetterOptions(repo *corev1alpha1.Repository, transport *http....
function createChartGetter (line 453) | func createChartGetter(scheme string, opts []getter.Option) (getter.Gett...
function getChartData (line 464) | func getChartData(chartGetter getter.Getter, url string) ([]byte, error) {
function isValidExtensionVersion (line 477) | func isValidExtensionVersion(version string) []string {
function isValidExtensionName (line 491) | func isValidExtensionName(name string) []string {
FILE: pkg/controller/core/util_test.go
function TestGetRecommendedExtensionVersion (line 21) | func TestGetRecommendedExtensionVersion(t *testing.T) {
function TestFilterExtensionVersions (line 122) | func TestFilterExtensionVersions(t *testing.T) {
FILE: pkg/controller/extension/apiservice_webhook.go
type APIServiceWebhook (line 30) | type APIServiceWebhook struct
method Name (line 26) | func (r *APIServiceWebhook) Name() string {
method ValidateCreate (line 34) | func (r *APIServiceWebhook) ValidateCreate(ctx context.Context, obj ru...
method ValidateUpdate (line 38) | func (r *APIServiceWebhook) ValidateUpdate(ctx context.Context, oldObj...
method ValidateDelete (line 42) | func (r *APIServiceWebhook) ValidateDelete(ctx context.Context, obj ru...
method validateAPIService (line 46) | func (r *APIServiceWebhook) validateAPIService(ctx context.Context, se...
method SetupWithManager (line 61) | func (r *APIServiceWebhook) SetupWithManager(mgr *kscontroller.Manager...
FILE: pkg/controller/extension/extensionentry_webhook.go
type ExtensionEntryWebhook (line 33) | type ExtensionEntryWebhook struct
method Name (line 29) | func (r *ExtensionEntryWebhook) Name() string {
method ValidateCreate (line 37) | func (r *ExtensionEntryWebhook) ValidateCreate(ctx context.Context, ob...
method ValidateUpdate (line 41) | func (r *ExtensionEntryWebhook) ValidateUpdate(ctx context.Context, ol...
method ValidateDelete (line 45) | func (r *ExtensionEntryWebhook) ValidateDelete(ctx context.Context, ob...
method validateExtensionEntry (line 49) | func (r *ExtensionEntryWebhook) validateExtensionEntry(ctx context.Con...
method SetupWithManager (line 126) | func (r *ExtensionEntryWebhook) SetupWithManager(mgr *kscontroller.Man...
FILE: pkg/controller/extension/jsbundle_webhook.go
type JSBundleWebhook (line 31) | type JSBundleWebhook struct
method Name (line 35) | func (r *JSBundleWebhook) Name() string {
method Enabled (line 39) | func (r *JSBundleWebhook) Enabled(clusterRole string) bool {
method SetupWithManager (line 43) | func (r *JSBundleWebhook) SetupWithManager(mgr *kscontroller.Manager) ...
method Default (line 54) | func (r *JSBundleWebhook) Default(_ context.Context, obj runtime.Objec...
method ValidateCreate (line 63) | func (r *JSBundleWebhook) ValidateCreate(ctx context.Context, obj runt...
method ValidateUpdate (line 67) | func (r *JSBundleWebhook) ValidateUpdate(ctx context.Context, _, newOb...
method ValidateDelete (line 71) | func (r *JSBundleWebhook) ValidateDelete(_ context.Context, _ runtime....
method validateJSBundle (line 75) | func (r *JSBundleWebhook) validateJSBundle(ctx context.Context, jsBund...
FILE: pkg/controller/extension/reverseproxy_webhook.go
type ReverseProxyWebhook (line 31) | type ReverseProxyWebhook struct
method Name (line 27) | func (r *ReverseProxyWebhook) Name() string {
method SetupWithManager (line 35) | func (r *ReverseProxyWebhook) SetupWithManager(mgr *kscontroller.Manag...
method ValidateCreate (line 43) | func (r *ReverseProxyWebhook) ValidateCreate(ctx context.Context, obj ...
method ValidateUpdate (line 47) | func (r *ReverseProxyWebhook) ValidateUpdate(ctx context.Context, oldO...
method ValidateDelete (line 51) | func (r *ReverseProxyWebhook) ValidateDelete(ctx context.Context, obj ...
method validateReverseProxy (line 55) | func (r *ReverseProxyWebhook) validateReverseProxy(ctx context.Context...
FILE: pkg/controller/globalrole/globalrole_controller.go
constant controllerName (line 39) | controllerName = "globalrole"
constant finalizer (line 40) | finalizer = "finalizers.kubesphere.io/globalroles"
type Reconciler (line 54) | type Reconciler struct
method Name (line 46) | func (r *Reconciler) Name() string {
method Enabled (line 50) | func (r *Reconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 62) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method mapper (line 81) | func (r *Reconciler) mapper(ctx context.Context, o client.Object) []re...
method Reconcile (line 98) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method deleteRelatedResources (line 139) | func (r *Reconciler) deleteRelatedResources(ctx context.Context, globa...
method multiClusterSync (line 174) | func (r *Reconciler) multiClusterSync(ctx context.Context, globalRole ...
method syncGlobalRole (line 200) | func (r *Reconciler) syncGlobalRole(ctx context.Context, cluster clust...
FILE: pkg/controller/globalrolebinding/globalrolebinding_controller.go
constant controllerName (line 41) | controllerName = "globalrolebinding"
constant finalizer (line 42) | finalizer = "finalizers.kubesphere.io/globalrolebindings"
type Reconciler (line 48) | type Reconciler struct
method Name (line 55) | func (r *Reconciler) Name() string {
method Enabled (line 59) | func (r *Reconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 63) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method mapper (line 81) | func (r *Reconciler) mapper(ctx context.Context, o client.Object) []re...
method Reconcile (line 98) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method deleteRelatedResources (line 135) | func (r *Reconciler) deleteRelatedResources(ctx context.Context, globa...
method assignClusterAdminRole (line 170) | func (r *Reconciler) assignClusterAdminRole(ctx context.Context, clust...
method multiClusterSync (line 207) | func (r *Reconciler) multiClusterSync(ctx context.Context, globalRoleB...
method syncGlobalRoleBinding (line 230) | func (r *Reconciler) syncGlobalRoleBinding(ctx context.Context, cluste...
FILE: pkg/controller/group/group_controller.go
constant controllerName (line 28) | controllerName = "group"
constant finalizer (line 29) | finalizer = "finalizers.kubesphere.io/groups"
type Reconciler (line 32) | type Reconciler struct
method SetupWithManager (line 38) | func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error {
method Reconcile (line 53) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method deleteGroupBindings (line 95) | func (r *Reconciler) deleteGroupBindings(ctx context.Context, group *i...
method deleteRoleBindings (line 108) | func (r *Reconciler) deleteRoleBindings(ctx context.Context, group *ia...
FILE: pkg/controller/groupbinding/groupbinding_controller.go
constant controllerName (line 30) | controllerName = "groupbinding"
constant finalizer (line 31) | finalizer = "finalizers.kubesphere.io/groupsbindings"
type Reconciler (line 34) | type Reconciler struct
method SetupWithManager (line 40) | func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error {
method Reconcile (line 58) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method unbindUser (line 100) | func (r *Reconciler) unbindUser(ctx context.Context, groupBinding *iam...
method bindUser (line 113) | func (r *Reconciler) bindUser(ctx context.Context, groupBinding *iamv1...
method updateUserGroups (line 125) | func (r *Reconciler) updateUserGroups(ctx context.Context, groupBindin...
method patchUser (line 155) | func (r *Reconciler) patchUser(ctx context.Context, user *iamv1beta1.U...
FILE: pkg/controller/job/job_controller.go
constant revisionsAnnotationKey (line 30) | revisionsAnnotationKey = "revisions"
constant controllerName (line 31) | controllerName = "job-revision"
type Reconciler (line 37) | type Reconciler struct
method Name (line 41) | func (r *Reconciler) Name() string {
method SetupWithManager (line 45) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 62) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method makeRevision (line 80) | func (r *Reconciler) makeRevision(ctx context.Context, job *batchv1.Jo...
method getRevisions (line 120) | func (r *Reconciler) getRevisions(job *batchv1.Job) (JobRevisions, err...
method getCurrentRevision (line 133) | func (r *Reconciler) getCurrentRevision(item *batchv1.Job) JobRevision {
FILE: pkg/controller/job/job_controller_test.go
function newJob (line 22) | func newJob(name string, spec batchv1.JobSpec) *batchv1.Job {
function TestAddAnnotation (line 33) | func TestAddAnnotation(t *testing.T) {
FILE: pkg/controller/job/types.go
constant Running (line 12) | Running = "running"
constant Failed (line 13) | Failed = "failed"
constant Unfinished (line 14) | Unfinished = "unfinished"
constant Completed (line 15) | Completed = "completed"
constant Pause (line 16) | Pause = "pause"
type JobRevisions (line 19) | type JobRevisions
type JobRevision (line 21) | type JobRevision struct
FILE: pkg/controller/k8sapplication/condition.go
function setReadyCondition (line 12) | func setReadyCondition(appStatus *appv1beta1.ApplicationStatus, reason, ...
function setNotReadyCondition (line 17) | func setNotReadyCondition(appStatus *appv1beta1.ApplicationStatus, reaso...
function setReadyUnknownCondition (line 22) | func setReadyUnknownCondition(appStatus *appv1beta1.ApplicationStatus, r...
function setErrorCondition (line 27) | func setErrorCondition(appStatus *appv1beta1.ApplicationStatus, reason, ...
function clearErrorCondition (line 32) | func clearErrorCondition(appStatus *appv1beta1.ApplicationStatus) {
function setCondition (line 36) | func setCondition(appStatus *appv1beta1.ApplicationStatus, ctype appv1be...
function addCondition (line 61) | func addCondition(appStatus *appv1beta1.ApplicationStatus, ctype appv1be...
FILE: pkg/controller/k8sapplication/k8sapplication_controller.go
constant controllerName (line 42) | controllerName = "k8sapplication"
type Reconciler (line 48) | type Reconciler struct
method Name (line 55) | func (r *Reconciler) Name() string {
method SetupWithManager (line 59) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 112) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method updateComponents (line 150) | func (r *Reconciler) updateComponents(ctx context.Context, app *appv1b...
method getNewApplicationStatus (line 164) | func (r *Reconciler) getNewApplicationStatus(ctx context.Context, app ...
method fetchComponentListResources (line 192) | func (r *Reconciler) fetchComponentListResources(ctx context.Context, ...
method setOwnerRefForResources (line 226) | func (r *Reconciler) setOwnerRefForResources(ctx context.Context, owne...
method objectStatuses (line 255) | func (r *Reconciler) objectStatuses(_ context.Context, resources []*un...
method updateApplicationStatus (line 289) | func (r *Reconciler) updateApplicationStatus(ctx context.Context, nn t...
function aggregateReady (line 276) | func aggregateReady(objectStatuses []appv1beta1.ObjectStatus) (bool, int) {
function isApp (line 306) | func isApp(obs ...metav1.Object) bool {
FILE: pkg/controller/k8sapplication/status.go
constant StatusReady (line 19) | StatusReady = "Ready"
constant StatusInProgress (line 20) | StatusInProgress = "InProgress"
constant StatusUnknown (line 21) | StatusUnknown = "Unknown"
constant StatusDisabled (line 22) | StatusDisabled = "Disabled"
function status (line 25) | func status(u *unstructured.Unstructured) (string, error) {
function statusFromStandardConditions (line 54) | func statusFromStandardConditions(u *unstructured.Unstructured) (string,...
function stsStatus (line 79) | func stsStatus(u *unstructured.Unstructured) (string, error) {
function deploymentStatus (line 95) | func deploymentStatus(u *unstructured.Unstructured) (string, error) {
function replicasetStatus (line 135) | func replicasetStatus(u *unstructured.Unstructured) (string, error) {
function daemonsetStatus (line 161) | func daemonsetStatus(u *unstructured.Unstructured) (string, error) {
function pvcStatus (line 176) | func pvcStatus(u *unstructured.Unstructured) (string, error) {
function serviceStatus (line 189) | func serviceStatus(u *unstructured.Unstructured) (string, error) {
function podStatus (line 205) | func podStatus(u *unstructured.Unstructured) (string, error) {
function pdbStatus (line 220) | func pdbStatus(u *unstructured.Unstructured) (string, error) {
function replicationControllerStatus (line 233) | func replicationControllerStatus(u *unstructured.Unstructured) (string, ...
function jobStatus (line 248) | func jobStatus(u *unstructured.Unstructured) (string, error) {
function hasEmptyIngressIP (line 262) | func hasEmptyIngressIP(ingress []corev1.LoadBalancerIngress) bool {
function isEmpty (line 271) | func isEmpty(s string) bool {
function getConditionOfType (line 275) | func getConditionOfType(u *unstructured.Unstructured, conditionType stri...
FILE: pkg/controller/k8sapplication/utils.go
constant AppLabel (line 16) | AppLabel = "app"
constant VersionLabel (line 17) | VersionLabel = "version"
constant ApplicationNameLabel (line 18) | ApplicationNameLabel = "app.kubernetes.io/name"
constant ApplicationVersionLabel (line 19) | ApplicationVersionLabel = "app.kubernetes.io/version"
function NormalizeVersionName (line 39) | func NormalizeVersionName(version string) string {
function GetApplictionName (line 46) | func GetApplictionName(lbs map[string]string) string {
function GetComponentName (line 54) | func GetComponentName(meta *v1.ObjectMeta) string {
function GetComponentVersion (line 61) | func GetComponentVersion(meta *v1.ObjectMeta) string {
function ExtractApplicationLabels (line 68) | func ExtractApplicationLabels(meta *v1.ObjectMeta) map[string]string {
function IsApplicationComponent (line 82) | func IsApplicationComponent(lbs map[string]string) bool {
function IsAppComponent (line 94) | func IsAppComponent(lbs map[string]string) bool {
FILE: pkg/controller/ksserviceaccount/pod_injector.go
constant AnnotationServiceAccountName (line 31) | AnnotationServiceAccountName = "kubesphere.io/serviceaccount-name"
constant ServiceAccountVolumeName (line 32) | ServiceAccountVolumeName = "kubesphere-service-account"
constant VolumeMountPath (line 33) | VolumeMountPath = "/var/run/secrets/kubesphere.io/serviceac...
constant caCertName (line 34) | caCertName = "kubesphere-root-ca.crt"
constant caCertKey (line 35) | caCertKey = "ca.crt"
constant webhookName (line 38) | webhookName = "service-account-injector"
type Webhook (line 46) | type Webhook struct
method Name (line 40) | func (w *Webhook) Name() string {
method SetupWithManager (line 49) | func (w *Webhook) SetupWithManager(mgr *kscontroller.Manager) error {
type PodInjector (line 62) | type PodInjector struct
method Handle (line 70) | func (i *PodInjector) Handle(ctx context.Context, req admission.Reques...
method injectServiceAccountTokenAndCACert (line 119) | func (i *PodInjector) injectServiceAccountTokenAndCACert(ctx context.C...
method createCertConfigMap (line 203) | func (i *PodInjector) createCertConfigMap(ctx context.Context, namespa...
FILE: pkg/controller/ksserviceaccount/serviceaccount_controller.go
constant controllerName (line 38) | controllerName = "ks-serviceaccount"
constant finalizer (line 39) | finalizer = "finalizers.kubesphere.io/serviceaccount"
constant messageCreateSecretSuccessfully (line 40) | messageCreateSecretSuccessfully = "Create token secret successfully"
constant reasonInvalidSecret (line 41) | reasonInvalidSecret = "InvalidSecret"
type Reconciler (line 50) | type Reconciler struct
method Name (line 46) | func (r *Reconciler) Name() string {
method SetupWithManager (line 57) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 76) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method createTokenSecret (line 133) | func (r *Reconciler) createTokenSecret(ctx context.Context, sa *corev1...
method deleteSecretToken (line 146) | func (r *Reconciler) deleteSecretToken(ctx context.Context, sa *corev1...
method checkAllSecret (line 166) | func (r *Reconciler) checkAllSecret(ctx context.Context, sa *corev1alp...
method checkSecretToken (line 184) | func (r *Reconciler) checkSecretToken(secret *v1.Secret, subjectName s...
method checkServiceAccountRefPod (line 194) | func (r *Reconciler) checkServiceAccountRefPod(ctx context.Context, sa...
method rolloutRestartPod (line 223) | func (r *Reconciler) rolloutRestartPod(ctx context.Context, pod *v1.Po...
FILE: pkg/controller/kubeconfig/kubeconfig_controller.go
constant controllerName (line 43) | controllerName = "kubeconfig"
constant residual (line 44) | residual = 30 * 24 * time.Hour
type Reconciler (line 51) | type Reconciler struct
method Name (line 57) | func (r *Reconciler) Name() string {
method SetupWithManager (line 61) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 78) | func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Requ...
method UpdateSecret (line 95) | func (r *Reconciler) UpdateSecret(ctx context.Context, secret *corev1....
method isValid (line 168) | func (r *Reconciler) isValid(secret *corev1.Secret) bool {
method createCSR (line 206) | func (r *Reconciler) createCSR(ctx context.Context, username string) e...
method createServiceAccount (line 267) | func (r *Reconciler) createServiceAccount(ctx context.Context, usernam...
FILE: pkg/controller/kubectl/kubectl.go
constant controllerName (line 25) | controllerName = "kubectl"
type Reconciler (line 27) | type Reconciler struct
method Name (line 34) | func (r *Reconciler) Name() string {
method NeedLeaderElection (line 38) | func (r *Reconciler) NeedLeaderElection() bool {
method SetupWithManager (line 42) | func (r *Reconciler) SetupWithManager(mgr *controller.Manager) error {
method Start (line 50) | func (r *Reconciler) Start(ctx context.Context) error {
method reconcile (line 59) | func (r *Reconciler) reconcile(ctx context.Context) error {
FILE: pkg/controller/kubectl/lease/lease.go
type Operator (line 22) | type Operator struct
method Create (line 32) | func (o *Operator) Create(ctx context.Context, owner *corev1.Pod) error {
method Renew (line 65) | func (o *Operator) Renew(ctx context.Context, namespace, name string) ...
function NewOperator (line 26) | func NewOperator(client kubernetes.Interface) *Operator {
FILE: pkg/controller/loginrecord/loginrecord_controller.go
constant controllerName (line 34) | controllerName = "loginrecord"
type Reconciler (line 39) | type Reconciler struct
method Name (line 46) | func (r *Reconciler) Name() string {
method Enabled (line 50) | func (r *Reconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 54) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 75) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method updateUserLastLoginTime (line 125) | func (r *Reconciler) updateUserLastLoginTime(ctx context.Context, user...
method shrinkEntriesFor (line 136) | func (r *Reconciler) shrinkEntriesFor(ctx context.Context, user *iamv1...
method userForLoginRecord (line 158) | func (r *Reconciler) userForLoginRecord(ctx context.Context, loginReco...
FILE: pkg/controller/loginrecord/loginrecord_controller_test.go
function TestLoginRecordController (line 27) | func TestLoginRecordController(t *testing.T) {
function newLoginRecord (line 32) | func newLoginRecord(username string) *iamv1beta1.LoginRecord {
function newUser (line 52) | func newUser(username string) *iamv1beta1.User {
FILE: pkg/controller/manager.go
constant SyncFailed (line 24) | SyncFailed = "SyncFailed"
constant Synced (line 25) | Synced = "Synced"
constant MessageResourceSynced (line 26) | MessageResourceSynced = "Synced successfully"
type Controller (line 29) | type Controller interface
type Hideable (line 34) | type Hideable interface
type ClusterSelector (line 38) | type ClusterSelector interface
type Manager (line 42) | type Manager struct
method Run (line 53) | func (mgr *Manager) Run(ctx context.Context, registry Registry) error {
type IsControllerEnabled (line 51) | type IsControllerEnabled
function Register (line 77) | func Register(controller Controller) error {
type Registry (line 87) | type Registry
method Keys (line 89) | func (r Registry) Keys() []string {
FILE: pkg/controller/namespace/namespace_controller.go
constant controllerName (line 36) | controllerName = "namespace"
type Reconciler (line 43) | type Reconciler struct
method Name (line 49) | func (r *Reconciler) Name() string {
method SetupWithManager (line 53) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 69) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method initRoles (line 122) | func (r *Reconciler) initRoles(ctx context.Context, namespace *corev1....
method initCreatorRoleBinding (line 159) | func (r *Reconciler) initCreatorRoleBinding(ctx context.Context, names...
method cleanUp (line 196) | func (r *Reconciler) cleanUp(ctx context.Context, namespace *corev1.Na...
FILE: pkg/controller/namespace/namespace_controller_suite_test.go
function TestNamespaceController (line 40) | func TestNamespaceController(t *testing.T) {
FILE: pkg/controller/namespace/namespace_controller_test.go
constant timeout (line 28) | timeout = time.Second * 30
constant interval (line 29) | interval = time.Second * 1
FILE: pkg/controller/openapi/config.go
function EnrichSwaggerObject (line 16) | func EnrichSwaggerObject(swo *spec.Swagger) {
FILE: pkg/controller/openapi/openapi_controller.go
type Controller (line 24) | type Controller struct
method WatchOpenAPIChanges (line 30) | func (c *Controller) WatchOpenAPIChanges(ctx context.Context, cache ru...
function NewController (line 26) | func NewController() *Controller {
FILE: pkg/controller/options/options.go
type Options (line 25) | type Options struct
type HelmExecutorOptions (line 38) | type HelmExecutorOptions struct
type ResourceRequirements (line 47) | type ResourceRequirements struct
function NewHelmExecutorOptions (line 52) | func NewHelmExecutorOptions() *HelmExecutorOptions {
type ExtensionIngressOptions (line 61) | type ExtensionIngressOptions struct
type ExtensionOptions (line 68) | type ExtensionOptions struct
function NewExtensionOptions (line 74) | func NewExtensionOptions() *ExtensionOptions {
type KubeSphereOptions (line 78) | type KubeSphereOptions struct
function NewKubeSphereOptions (line 82) | func NewKubeSphereOptions() *KubeSphereOptions {
FILE: pkg/controller/quota/accessor.go
type accessor (line 28) | type accessor struct
method UpdateQuotaStatus (line 49) | func (a *accessor) UpdateQuotaStatus(newQuota *corev1.ResourceQuota) e...
method checkCache (line 102) | func (a *accessor) checkCache(resourceQuota *quotav1alpha2.ResourceQuo...
method GetQuotas (line 116) | func (a *accessor) GetQuotas(namespaceName string) ([]corev1.ResourceQ...
method waitForReadyResourceQuotaNames (line 155) | func (a *accessor) waitForReadyResourceQuotaNames(namespaceName string...
method waitForReadyNamespacedResourceQuotas (line 173) | func (a *accessor) waitForReadyNamespacedResourceQuotas(namespaceName ...
function newQuotaAccessor (line 38) | func newQuotaAccessor(client client.Client) *accessor {
FILE: pkg/controller/quota/lockfactory.go
type LockFactory (line 14) | type LockFactory interface
type DefaultLockFactory (line 18) | type DefaultLockFactory struct
method GetLock (line 28) | func (f *DefaultLockFactory) GetLock(key string) sync.Locker {
method getExistingLock (line 41) | func (f *DefaultLockFactory) getExistingLock(key string) (sync.Locker,...
function NewDefaultLockFactory (line 24) | func NewDefaultLockFactory() *DefaultLockFactory {
FILE: pkg/controller/quota/resourcequota_controller.go
constant controllerName (line 45) | controllerName = "resourcequota"
constant DefaultResyncPeriod (line 46) | DefaultResyncPeriod = 5 * time.Minute
constant DefaultMaxConcurrentReconciles (line 47) | DefaultMaxConcurrentReconciles = 8
type Reconciler (line 54) | type Reconciler struct
method Name (line 68) | func (r *Reconciler) Name() string {
method SetupWithManager (line 72) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method mapper (line 145) | func (r *Reconciler) mapper(ctx context.Context, h client.Object) []re...
method Reconcile (line 174) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method bindWorkspace (line 196) | func (r *Reconciler) bindWorkspace(resourceQuota *quotav1alpha2.Resour...
method syncQuotaForNamespaces (line 223) | func (r *Reconciler) syncQuotaForNamespaces(originalQuota *quotav1alph...
FILE: pkg/controller/quota/resourcequota_webhook.go
constant numEvaluatorThreads (line 38) | numEvaluatorThreads = 10
type ResourceQuotaAdmission (line 41) | type ResourceQuotaAdmission struct
method Handle (line 77) | func (r *ResourceQuotaAdmission) Handle(ctx context.Context, req webho...
method lockAquisition (line 116) | func (r *ResourceQuotaAdmission) lockAquisition(quotas []corev1.Resour...
constant webhookName (line 55) | webhookName = "resource-quota-webhook"
type Webhook (line 63) | type Webhook struct
method Name (line 57) | func (w *Webhook) Name() string {
method SetupWithManager (line 66) | func (w *Webhook) SetupWithManager(mgr *kscontroller.Manager) error {
type ByName (line 110) | type ByName
method Len (line 112) | func (v ByName) Len() int { return len(v) }
method Swap (line 113) | func (v ByName) Swap(i, j int) { v[i], v[j] = v[j], v[i] }
method Less (line 114) | func (v ByName) Less(i, j int) bool { return v[i].Name < v[j].Name }
function convertToAdmissionAttributes (line 134) | func convertToAdmissionAttributes(req admission.Request) (admissionapi.A...
FILE: pkg/controller/quota/util.go
function getResourceQuotasStatusByNamespace (line 21) | func getResourceQuotasStatusByNamespace(namespaceStatuses quotav1alpha2....
function removeResourceQuotasStatusByNamespace (line 31) | func removeResourceQuotasStatusByNamespace(namespaceStatuses *quotav1alp...
function insertResourceQuotasStatus (line 43) | func insertResourceQuotasStatus(namespaceStatuses *quotav1alpha2.Resourc...
function resourceQuotaNamesFor (line 62) | func resourceQuotaNamesFor(ctx context.Context, client client.Client, na...
FILE: pkg/controller/resourceprotection/resource_protection_webhook.go
constant webhookName (line 24) | webhookName = "resource-protection-webhook"
type Webhook (line 30) | type Webhook struct
method Name (line 26) | func (w *Webhook) Name() string {
method SetupWithManager (line 34) | func (w *Webhook) SetupWithManager(mgr *kscontroller.Manager) error {
method Handle (line 40) | func (w *Webhook) Handle(ctx context.Context, req admission.Request) a...
FILE: pkg/controller/role/role_controller.go
constant controllerName (line 28) | controllerName = "role"
constant roleRef (line 29) | roleRef = "iam.kubesphere.io/role-ref"
type Reconciler (line 34) | type Reconciler struct
method Name (line 41) | func (r *Reconciler) Name() string {
method SetupWithManager (line 45) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 56) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method syncToKubernetes (line 77) | func (r *Reconciler) syncToKubernetes(ctx context.Context, role *iamv1...
FILE: pkg/controller/rolebinding/rolebinding_controller.go
constant controllerName (line 30) | controllerName = "rolebinding"
constant roleBindingRef (line 31) | roleBindingRef = "iam.kubesphere.io/rolebinding-ref"
type Reconciler (line 36) | type Reconciler struct
method Name (line 42) | func (r *Reconciler) Name() string {
method SetupWithManager (line 46) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 56) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method syncToKubernetes (line 71) | func (r *Reconciler) syncToKubernetes(ctx context.Context, roleBinding...
FILE: pkg/controller/roletemplate/roletemplate_controller.go
constant autoAggregateIndexKey (line 30) | autoAggregateIndexKey = ".metadata.annotations[iam.kubesphere.io/auto-ag...
constant autoAggregationLabel (line 31) | autoAggregationLabel = "iam.kubesphere.io/auto-aggregate"
constant controllerName (line 32) | controllerName = "roletemplate"
constant reasonFailedSync (line 33) | reasonFailedSync = "FailedInjectRoleTemplate"
constant messageResourceSynced (line 34) | messageResourceSynced = "RoleTemplate injected successfully"
type Reconciler (line 40) | type Reconciler struct
method Name (line 46) | func (r *Reconciler) Name() string {
method SetupWithManager (line 51) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 75) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method injectRoleTemplateToRuleOwner (line 89) | func (r *Reconciler) injectRoleTemplateToRuleOwner(ctx context.Context...
method aggregateGlobalRoles (line 117) | func (r *Reconciler) aggregateGlobalRoles(ctx context.Context, roleTem...
method aggregateWorkspaceRoles (line 131) | func (r *Reconciler) aggregateWorkspaceRoles(ctx context.Context, role...
method aggregateClusterRoles (line 146) | func (r *Reconciler) aggregateClusterRoles(ctx context.Context, roleTe...
method aggregateRoles (line 161) | func (r *Reconciler) aggregateRoles(ctx context.Context, roleTemplate ...
method aggregate (line 177) | func (r *Reconciler) aggregate(ctx context.Context, ruleOwner rbachelp...
function globalRoleIndexByAnnotation (line 215) | func globalRoleIndexByAnnotation(obj client.Object) []string {
function workspaceRoleIndexByAnnotation (line 223) | func workspaceRoleIndexByAnnotation(obj client.Object) []string {
function clusterRoleIndexByAnnotation (line 231) | func clusterRoleIndexByAnnotation(obj client.Object) []string {
function roleIndexByAnnotation (line 239) | func roleIndexByAnnotation(obj client.Object) []string {
FILE: pkg/controller/secret/serviceaccount_secret_controller.go
constant serviceAccountSecretController (line 31) | serviceAccountSecretController = "serviceaccount-secret"
constant serviceAccountUsernameFormat (line 32) | serviceAccountUsernameFormat = corev1alpha1.ServiceAccountGroup + ":%s...
type ServiceAccountSecretReconciler (line 38) | type ServiceAccountSecretReconciler struct
method Name (line 45) | func (r *ServiceAccountSecretReconciler) Name() string {
method SetupWithManager (line 49) | func (r *ServiceAccountSecretReconciler) SetupWithManager(mgr *kscontr...
method Reconcile (line 66) | func (r *ServiceAccountSecretReconciler) Reconcile(ctx context.Context...
method issueTokenTo (line 108) | func (r *ServiceAccountSecretReconciler) issueTokenTo(sa *corev1alpha1...
FILE: pkg/controller/serviceaccount/serviceaccount_controller.go
constant controllerName (line 31) | controllerName = "serviceaccount"
type Reconciler (line 37) | type Reconciler struct
method Name (line 43) | func (r *Reconciler) Name() string {
method SetupWithManager (line 47) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 61) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method getReferenceRole (line 78) | func (r *Reconciler) getReferenceRole(ctx context.Context, roleName, n...
method CreateOrUpdateRoleBinding (line 90) | func (r *Reconciler) CreateOrUpdateRoleBinding(ctx context.Context, lo...
FILE: pkg/controller/serviceaccount/serviceaccount_controller_test.go
function TestServiceAccountController (line 29) | func TestServiceAccountController(t *testing.T) {
FILE: pkg/controller/serviceaccounttoken/serviceaccount_token_controller.go
constant controllerName (line 35) | controllerName = "service-account-token"
constant userKubeConfigSecretNameFormat (line 36) | userKubeConfigSecretNameFormat = "kubeconfig-%s"
constant kubeconfigFileName (line 37) | kubeconfigFileName = "config"
type Reconciler (line 43) | type Reconciler struct
method Name (line 48) | func (r *Reconciler) Name() string {
method SetupWithManager (line 52) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 74) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method UpdateKubeConfigServiceAccountToken (line 98) | func (r *Reconciler) UpdateKubeConfigServiceAccountToken(ctx context.C...
function applyToken (line 114) | func applyToken(secret *corev1.Secret, token string) *corev1.Secret {
FILE: pkg/controller/storageclass/storageclass_controller.go
constant annotationAllowSnapshot (line 31) | annotationAllowSnapshot = "storageclass.kubesphere.io/allow-snapshot"
constant annotationAllowClone (line 32) | annotationAllowClone = "storageclass.kubesphere.io/allow-clone"
constant controllerName (line 33) | controllerName = "storageclass-capability"
constant pvcCountAnnotation (line 34) | pvcCountAnnotation = "kubesphere.io/pvc-count"
type Reconciler (line 43) | type Reconciler struct
method Name (line 47) | func (r *Reconciler) Name() string {
method SetupWithManager (line 51) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 119) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method hasCSIDriver (line 148) | func (r *Reconciler) hasCSIDriver(ctx context.Context, storageClass *s...
method updateSnapshotAnnotation (line 159) | func (r *Reconciler) updateSnapshotAnnotation(storageClass *storagev1....
method updateCloneVolumeAnnotation (line 168) | func (r *Reconciler) updateCloneVolumeAnnotation(storageClass *storage...
method countPersistentVolumeClaims (line 177) | func (r *Reconciler) countPersistentVolumeClaims(ctx context.Context, ...
FILE: pkg/controller/storageclass/storageclass_controller_test.go
function newStorageClass (line 22) | func newStorageClass(name string, provisioner string) *storagev1.Storage...
function newCSIDriver (line 33) | func newCSIDriver(name string) *storagev1.CSIDriver {
function Test (line 41) | func Test(t *testing.T) {
FILE: pkg/controller/telemetry/options.go
constant ConfigName (line 19) | ConfigName = "io.kubesphere.config.platformconfig.telemetry"
constant ConfigDataKey (line 20) | ConfigDataKey = "configuration.yaml"
type TelemetryOptions (line 24) | type TelemetryOptions struct
function NewTelemetryOptions (line 34) | func NewTelemetryOptions() *TelemetryOptions {
function LoadTelemetryConfig (line 41) | func LoadTelemetryConfig(secret *corev1.Secret) (*TelemetryOptions, erro...
FILE: pkg/controller/telemetry/runnable.go
type runnable (line 21) | type runnable struct
method startTask (line 51) | func (r *runnable) startTask() error {
method UpdateSchedule (line 76) | func (r *runnable) UpdateSchedule(newSchedule string) error {
method Close (line 93) | func (r *runnable) Close() {
function NewRunnable (line 31) | func NewRunnable(ctx context.Context, options *TelemetryOptions, client ...
FILE: pkg/controller/telemetry/telemetry_controller.go
constant ControllerName (line 29) | ControllerName = "telemetry"
type Reconciler (line 47) | type Reconciler struct
method Name (line 35) | func (r *Reconciler) Name() string {
method Enabled (line 39) | func (r *Reconciler) Enabled(clusterRole string) bool {
method Hidden (line 43) | func (r *Reconciler) Hidden() bool {
method SetupWithManager (line 53) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 69) | func (r *Reconciler) Reconcile(ctx context.Context, _ reconcile.Reques...
FILE: pkg/controller/user/user_controller.go
constant controllerName (line 50) | controllerName = "user"
constant finalizer (line 51) | finalizer = "finalizers.kubesphere.io/users"
type Reconciler (line 59) | type Reconciler struct
method Enabled (line 67) | func (r *Reconciler) Enabled(clusterRole string) bool {
method Name (line 71) | func (r *Reconciler) Name() string {
method SetupWithManager (line 75) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method mapper (line 110) | func (r *Reconciler) mapper(ctx context.Context, o client.Object) []re...
method Reconcile (line 127) | func (r *Reconciler) Reconcile(ctx context.Context, req reconcile.Requ...
method encryptPassword (line 184) | func (r *Reconciler) encryptPassword(ctx context.Context, user *iamv1b...
method deleteRelatedResources (line 205) | func (r *Reconciler) deleteRelatedResources(ctx context.Context, user ...
method deleteRelatedResourcesInMemberCluster (line 218) | func (r *Reconciler) deleteRelatedResourcesInMemberCluster(ctx context...
method reconcileUserStatus (line 266) | func (r *Reconciler) reconcileUserStatus(ctx context.Context, user *ia...
method updateGlobalRoleAnnotation (line 333) | func (r *Reconciler) updateGlobalRoleAnnotation(ctx context.Context, u...
method multiClusterSync (line 361) | func (r *Reconciler) multiClusterSync(ctx context.Context, user *iamv1...
method syncKubeConfigSecret (line 384) | func (r *Reconciler) syncKubeConfigSecret(ctx context.Context, cluster...
function encrypt (line 409) | func encrypt(password string) (string, error) {
function isEncrypted (line 415) | func isEncrypted(password string) bool {
FILE: pkg/controller/user/user_controller_test.go
function newUser (line 33) | func newUser(name string) *iamv1beta1.User {
function TestDoNothing (line 48) | func TestDoNothing(t *testing.T) {
FILE: pkg/controller/user/user_webhook.go
constant webhookName (line 23) | webhookName = "user-webhook"
type Webhook (line 32) | type Webhook struct
method Name (line 25) | func (v *Webhook) Name() string {
method SetupWithManager (line 36) | func (v *Webhook) SetupWithManager(mgr *kscontroller.Manager) error {
method Default (line 45) | func (v *Webhook) Default(ctx context.Context, obj runtime.Object) err...
method validate (line 50) | func (v *Webhook) validate(ctx context.Context, obj runtime.Object) (a...
method ValidateCreate (line 72) | func (v *Webhook) ValidateCreate(ctx context.Context, obj runtime.Obje...
method ValidateUpdate (line 76) | func (v *Webhook) ValidateUpdate(ctx context.Context, _, newObj runtim...
method ValidateDelete (line 80) | func (v *Webhook) ValidateDelete(ctx context.Context, obj runtime.Obje...
function emailAlreadyExist (line 84) | func emailAlreadyExist(users iamv1beta1.UserList, user *iamv1beta1.User)...
FILE: pkg/controller/workspace/metrics.go
function init (line 27) | func init() {
FILE: pkg/controller/workspace/workspace_controller.go
constant controllerName (line 32) | controllerName = "workspace"
type Reconciler (line 39) | type Reconciler struct
method Name (line 45) | func (r *Reconciler) Name() string {
method SetupWithManager (line 49) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method Reconcile (line 62) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method workspaceCascadingDeletion (line 107) | func (r *Reconciler) workspaceCascadingDeletion(ctx context.Context, w...
method cleanUpNamespaces (line 121) | func (r *Reconciler) cleanUpNamespaces(ctx context.Context, workspace ...
method deleteNamespaces (line 149) | func (r *Reconciler) deleteNamespaces(ctx context.Context, workspace *...
FILE: pkg/controller/workspace/workspace_controller_suite_test.go
function TestWorkspaceController (line 39) | func TestWorkspaceController(t *testing.T) {
FILE: pkg/controller/workspacerole/workspacerole_controller.go
constant controllerName (line 46) | controllerName = "workspacerole"
constant finalizer (line 47) | finalizer = "finalizers.kubesphere.io/workspaceroles"
type Reconciler (line 58) | type Reconciler struct
method Name (line 53) | func (r *Reconciler) Name() string {
method Enabled (line 66) | func (r *Reconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 70) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method clusterSync (line 91) | func (r *Reconciler) clusterSync(ctx context.Context, o client.Object)...
method workspaceSync (line 116) | func (r *Reconciler) workspaceSync(ctx context.Context, object client....
method Reconcile (line 135) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method deleteRelatedResources (line 179) | func (r *Reconciler) deleteRelatedResources(ctx context.Context, works...
method bindWorkspace (line 214) | func (r *Reconciler) bindWorkspace(ctx context.Context, logger logr.Lo...
method multiClusterSync (line 239) | func (r *Reconciler) multiClusterSync(ctx context.Context, workspaceRo...
method syncWorkspaceRole (line 265) | func (r *Reconciler) syncWorkspaceRole(ctx context.Context, cluster cl...
FILE: pkg/controller/workspacerole/workspacerole_controller_suite_test.go
function TestWorkspaceRoleController (line 44) | func TestWorkspaceRoleController(t *testing.T) {
FILE: pkg/controller/workspacerolebinding/workspacerolebinding_controller.go
constant controllerName (line 50) | controllerName = "workspacerolebinding"
constant finalizer (line 51) | finalizer = "finalizers.kubesphere.io/workspacerolebindings"
type Reconciler (line 62) | type Reconciler struct
method Name (line 57) | func (r *Reconciler) Name() string {
method Start (line 70) | func (r *Reconciler) Start(ctx context.Context) error {
method Enabled (line 105) | func (r *Reconciler) Enabled(clusterRole string) bool {
method SetupWithManager (line 109) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method clusterSync (line 136) | func (r *Reconciler) clusterSync(ctx context.Context, object client.Ob...
method workspaceSync (line 153) | func (r *Reconciler) workspaceSync(ctx context.Context, object client....
method Reconcile (line 173) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method deleteRelatedResources (line 214) | func (r *Reconciler) deleteRelatedResources(ctx context.Context, works...
method multiClusterSync (line 247) | func (r *Reconciler) multiClusterSync(ctx context.Context, workspaceRo...
method syncWorkspaceRoleBinding (line 275) | func (r *Reconciler) syncWorkspaceRoleBinding(ctx context.Context, clu...
method bindWorkspace (line 305) | func (r *Reconciler) bindWorkspace(ctx context.Context, workspaceRoleB...
method CompletelySync (line 328) | func (r *Reconciler) CompletelySync(ctx context.Context, hostCluster, ...
function bindingEqual (line 398) | func bindingEqual(a, b iamv1beta1.WorkspaceRoleBinding) bool {
type SortableSubjectSlice (line 415) | type SortableSubjectSlice
method Len (line 417) | func (s SortableSubjectSlice) Len() int {
method Less (line 421) | func (s SortableSubjectSlice) Less(i, j int) bool {
method Swap (line 425) | func (s SortableSubjectSlice) Swap(i, j int) {
FILE: pkg/controller/workspacerolebinding/workspacerolebinding_controller_suite_test.go
function TestWorkspaceRoleBindingController (line 46) | func TestWorkspaceRoleBindingController(t *testing.T) {
FILE: pkg/controller/workspacetemplate/predicate/predicate.go
type WorkspaceStatusChangedPredicate (line 18) | type WorkspaceStatusChangedPredicate struct
method Update (line 22) | func (WorkspaceStatusChangedPredicate) Update(e event.UpdateEvent) bool {
method Create (line 37) | func (WorkspaceStatusChangedPredicate) Create(_ event.CreateEvent) bool {
method Delete (line 41) | func (WorkspaceStatusChangedPredicate) Delete(_ event.DeleteEvent) bool {
method Generic (line 45) | func (WorkspaceStatusChangedPredicate) Generic(_ event.GenericEvent) b...
FILE: pkg/controller/workspacetemplate/utils/helper.go
function WorkspaceTemplateMatchTargetCluster (line 17) | func WorkspaceTemplateMatchTargetCluster(workspaceTemplate *tenantv1beta...
FILE: pkg/controller/workspacetemplate/workspacetemplate_controller.go
constant controllerName (line 46) | controllerName = "workspacetemplate"
type Reconciler (line 50) | type Reconciler struct
method Enabled (line 57) | func (r *Reconciler) Enabled(clusterRole string) bool {
method Name (line 64) | func (r *Reconciler) Name() string {
method SetupWithManager (line 68) | func (r *Reconciler) SetupWithManager(mgr *kscontroller.Manager) error {
method mapper (line 85) | func (r *Reconciler) mapper(ctx context.Context, o client.Object) []re...
method Reconcile (line 107) | func (r *Reconciler) Reconcile(ctx context.Context, req ctrl.Request) ...
method multiClusterSync (line 158) | func (r *Reconciler) multiClusterSync(ctx context.Context, workspaceTe...
method syncWorkspaceTemplate (line 181) | func (r *Reconciler) syncWorkspaceTemplate(ctx context.Context, cluste...
method initWorkspaceRoles (line 215) | func (r *Reconciler) initWorkspaceRoles(ctx context.Context, workspace...
method initManagerRoleBinding (line 270) | func (r *Reconciler) initManagerRoleBinding(ctx context.Context, works...
method workspaceTemplateCascadingDeletion (line 302) | func (r *Reconciler) workspaceTemplateCascadingDeletion(ctx context.Co...
method workspaceCascadingDeletion (line 331) | func (r *Reconciler) workspaceCascadingDeletion(ctx context.Context, c...
function ensureWorkspaceRoleName (line 261) | func ensureWorkspaceRoleName(workspace, role string) string {
FILE: pkg/controller/workspacetemplate/workspacetemplate_controller_test.go
function newWorkspaceAdmin (line 134) | func newWorkspaceAdmin() iamv1beta1.BuiltinRole {
FILE: pkg/kapis/application/v2/attachments.go
type Attachment (line 24) | type Attachment struct
method DescribeAttachment (line 29) | func (h *appHandler) DescribeAttachment(req *restful.Request, resp *rest...
method CreateAttachment (line 43) | func (h *appHandler) CreateAttachment(req *restful.Request, resp *restfu...
method DeleteAttachments (line 77) | func (h *appHandler) DeleteAttachments(req *restful.Request, resp *restf...
FILE: pkg/kapis/application/v2/crd2cr.go
method exampleCr (line 22) | func (h *appHandler) exampleCr(req *restful.Request, resp *restful.Respo...
function convertCRDToCR (line 38) | func convertCRDToCR(crd v1.CustomResourceDefinition) (dstCr unstructured...
function generateProps (line 65) | func generateProps(selectedVersion *v1.CustomResourceDefinitionVersion, ...
function getDefaultValue (line 74) | func getDefaultValue(value v1.JSONSchemaProps) any {
function parseObject (line 100) | func parseObject(obj map[string]v1.JSONSchemaProps) map[string]any {
FILE: pkg/kapis/application/v2/errors.go
method conflictedDone (line 22) | func (h *appHandler) conflictedDone(req *restful.Request, resp *restful....
method checkConflicted (line 36) | func (h *appHandler) checkConflicted(req *restful.Request, pathParam str...
function requestDone (line 58) | func requestDone(err error, resp *restful.Response) bool {
FILE: pkg/kapis/application/v2/handler_app.go
constant maxFileSize (line 40) | maxFileSize = 1 * 1024 * 1024
method CreateOrUpdateApp (line 42) | func (h *appHandler) CreateOrUpdateApp(req *restful.Request, resp *restf...
function parseUpload (line 89) | func parseUpload(req *restful.Request) (createAppRequest application.App...
method ListApps (line 131) | func (h *appHandler) ListApps(req *restful.Request, resp *restful.Respon...
method DescribeApp (line 170) | func (h *appHandler) DescribeApp(req *restful.Request, resp *restful.Res...
method DeleteApp (line 183) | func (h *appHandler) DeleteApp(req *restful.Request, resp *restful.Respo...
method DoAppAction (line 206) | func (h *appHandler) DoAppAction(req *restful.Request, resp *restful.Res...
method PatchApp (line 302) | func (h *appHandler) PatchApp(req *restful.Request, resp *restful.Respon...
FILE: pkg/kapis/application/v2/handler_apprls.go
method CreateOrUpdateAppRls (line 37) | func (h *appHandler) CreateOrUpdateAppRls(req *restful.Request, resp *re...
method DescribeAppRls (line 105) | func (h *appHandler) DescribeAppRls(req *restful.Request, resp *restful....
method getRealTimeYaml (line 141) | func (h *appHandler) getRealTimeYaml(ctx context.Context, req *restful.R...
method getRealTimeHelm (line 181) | func (h *appHandler) getRealTimeHelm(ctx context.Context, req *restful.R...
function errorRealTime (line 235) | func errorRealTime(utd *unstructured.Unstructured, msg string) json.RawM...
method DeleteAppRls (line 249) | func (h *appHandler) DeleteAppRls(req *restful.Request, resp *restful.Re...
method ListAppRls (line 264) | func (h *appHandler) ListAppRls(req *restful.Request, resp *restful.Resp...
FILE: pkg/kapis/application/v2/handler_appversion.go
constant appVersionQueryParameterVersionName (line 46) | appVersionQueryParameterVersionName query.Field = "versionName"
method CreateOrUpdateAppVersion (line 49) | func (h *appHandler) CreateOrUpdateAppVersion(req *restful.Request, resp...
method DeleteAppVersion (line 112) | func (h *appHandler) DeleteAppVersion(req *restful.Request, resp *restfu...
method DescribeAppVersion (line 122) | func (h *appHandler) DescribeAppVersion(req *restful.Request, resp *rest...
method ListAppVersions (line 134) | func (h *appHandler) ListAppVersions(req *restful.Request, resp *restful...
method GetAppVersionPackage (line 182) | func (h *appHandler) GetAppVersionPackage(req *restful.Request, resp *re...
method GetAppVersionFiles (line 202) | func (h *appHandler) GetAppVersionFiles(req *restful.Request, resp *rest...
method AppVersionAction (line 228) | func (h *appHandler) AppVersionAction(req *restful.Request, resp *restfu...
function DoAppVersionAction (line 257) | func DoAppVersionAction(ctx context.Context, versionId string, actionReq...
function checkAppStatus (line 290) | func checkAppStatus(ctx context.Context, appID, action string, client ru...
method ListReviews (line 330) | func (h *appHandler) ListReviews(req *restful.Request, resp *restful.Res...
function ListAppVersions (line 363) | func ListAppVersions(obj runtime.Object, req *restful.Request) (listResu...
function omitManagedFields (line 376) | func omitManagedFields(o runtime.Object) error {
function compareAppVersion (line 385) | func compareAppVersion(left runtime.Object, right runtime.Object, query ...
FILE: pkg/kapis/application/v2/handler_category.go
method CreateOrUpdateCategory (line 26) | func (h *appHandler) CreateOrUpdateCategory(req *restful.Request, resp *...
method DeleteCategory (line 58) | func (h *appHandler) DeleteCategory(req *restful.Request, resp *restful....
method DescribeCategory (line 83) | func (h *appHandler) DescribeCategory(req *restful.Request, resp *restfu...
method ListCategories (line 96) | func (h *appHandler) ListCategories(req *restful.Request, resp *restful....
FILE: pkg/kapis/application/v2/handler_repo.go
method CreateOrUpdateRepo (line 33) | func (h *appHandler) CreateOrUpdateRepo(req *restful.Request, resp *rest...
method DeleteRepo (line 109) | func (h *appHandler) DeleteRepo(req *restful.Request, resp *restful.Resp...
method ManualSync (line 121) | func (h *appHandler) ManualSync(req *restful.Request, resp *restful.Resp...
method DescribeRepo (line 139) | func (h *appHandler) DescribeRepo(req *restful.Request, resp *restful.Re...
method ListRepos (line 153) | func (h *appHandler) ListRepos(req *restful.Request, resp *restful.Respo...
method ListRepoEvents (line 173) | func (h *appHandler) ListRepoEvents(req *restful.Request, resp *restful....
FILE: pkg/kapis/application/v2/operator.go
method AppCrList (line 26) | func (h *appHandler) AppCrList(req *restful.Request, resp *restful.Respo...
method CreateOrUpdateCR (line 54) | func (h *appHandler) CreateOrUpdateCR(req *restful.Request, resp *restfu...
method DescribeAppCr (line 94) | func (h *appHandler) DescribeAppCr(req *restful.Request, resp *restful.R...
method DeleteAppCr (line 119) | func (h *appHandler) DeleteAppCr(req *restful.Request, resp *restful.Res...
FILE: pkg/kapis/application/v2/register.go
type appHandler (line 27) | type appHandler struct
method AddToContainer (line 59) | func (h *appHandler) AddToContainer(c *restful.Container) (err error) {
function NewHandler (line 35) | func NewHandler(cacheClient runtimeclient.Client, clusterClient clusterc...
function NewFakeHandler (line 44) | func NewFakeHandler() rest.Handler {
type funcInfo (line 48) | type funcInfo struct
FILE: pkg/kapis/application/v2/utils.go
constant Status (line 37) | Status = "status"
function parseRequest (line 40) | func parseRequest(createRequest application.AppRequest, validate bool) (...
function parseHelmRequest (line 50) | func parseHelmRequest(createRequest application.AppRequest, validate boo...
function getCrdInfo (line 72) | func getCrdInfo(createRequest application.AppRequest, chartPack *chart.C...
function readYaml (line 109) | func readYaml(data []byte) (yamlList [][]byte, err error) {
function fillEmptyFields (line 129) | func fillEmptyFields(createRequest *application.AppRequest, chartPack *c...
method getCluster (line 163) | func (h *appHandler) getCluster(req *restful.Request, clusterName string...
FILE: pkg/kapis/cluster/v1alpha1/handler.go
constant defaultTimeout (line 36) | defaultTimeout = 10 * time.Second
type handler (line 38) | type handler struct
method updateKubeConfig (line 43) | func (h *handler) updateKubeConfig(request *restful.Request, response ...
method validateCluster (line 125) | func (h *handler) validateCluster(request *restful.Request, response *...
method validateKubeConfig (line 181) | func (h *handler) validateKubeConfig(ctx context.Context, clusterName ...
method validateMemberClusterConfiguration (line 222) | func (h *handler) validateMemberClusterConfiguration(ctx context.Conte...
method getMemberClusterConfig (line 241) | func (h *handler) getMemberClusterConfig(ctx context.Context, clientSe...
method getHostClusterConfig (line 251) | func (h *handler) getHostClusterConfig(ctx context.Context) (*config.C...
method visibilityAuth (line 262) | func (h *handler) visibilityAuth(req *restful.Request, resp *restful.R...
function clusterIsManaged (line 168) | func clusterIsManaged(ctx context.Context, client kubernetes.Interface) ...
function validateKubeSphereAPIServer (line 205) | func validateKubeSphereAPIServer(ctx context.Context, clusterClient kube...
FILE: pkg/kapis/cluster/v1alpha1/handler_test.go
function TestValidateKubeConfig (line 160) | func TestValidateKubeConfig(t *testing.T) {
function TestValidateMemberClusterConfiguration (line 210) | func TestValidateMemberClusterConfiguration(t *testing.T) {
function addMemberClusterResource (line 270) | func addMemberClusterResource(targetCm *corev1.ConfigMap, t *testing.T) {
FILE: pkg/kapis/cluster/v1alpha1/label_handler.go
function labelExists (line 26) | func labelExists(req apiv1alpha1.CreateLabelRequest, labels *clusterv1al...
method createLabels (line 35) | func (h *handler) createLabels(request *restful.Request, response *restf...
method updateLabel (line 74) | func (h *handler) updateLabel(request *restful.Request, response *restfu...
method deleteLabels (line 136) | func (h *handler) deleteLabels(request *restful.Request, response *restf...
method bindingClusters (line 157) | func (h *handler) bindingClusters(request *restful.Request, response *re...
method listLabelGroups (line 181) | func (h *handler) listLabelGroups(request *restful.Request, response *re...
FILE: pkg/kapis/cluster/v1alpha1/register.go
constant GroupName (line 27) | GroupName = "cluster.kubesphere.io"
function NewHandler (line 32) | func NewHandler(cacheClient runtimeclient.Client) rest.Handler {
function NewFakeHandler (line 38) | func NewFakeHandler() rest.Handler {
method AddToContainer (line 42) | func (h *handler) AddToContainer(container *restful.Container) error {
FILE: pkg/kapis/config/v1alpha2/handler.go
constant themeConfigurationName (line 38) | themeConfigurationName = "platform-configuration-theme"
constant GenericPlatformConfigurationKind (line 39) | GenericPlatformConfigurationKind = "GenericPlatformConfiguration"
constant ClusterConnectionConfigurationKind (line 40) | ClusterConnectionConfigurationKind = "ClusterConnectionConfiguration"
type GenericPlatformConfiguration (line 43) | type GenericPlatformConfiguration struct
method ConvertToSecret (line 376) | func (c *GenericPlatformConfiguration) ConvertToSecret() *corev1.Secret {
method ConvertFromSecret (line 395) | func (c *GenericPlatformConfiguration) ConvertFromSecret(secret *corev...
function NewHandler (line 50) | func NewHandler(config *options.Options, client client.Client) rest.Hand...
function NewFakeHandler (line 58) | func NewFakeHandler() rest.Handler {
type handler (line 62) | type handler struct
method updateThemeConfiguration (line 70) | func (h *handler) updateThemeConfiguration(req *restful.Request, resp ...
method getThemeConfiguration (line 93) | func (h *handler) getThemeConfiguration(req *restful.Request, resp *re...
method getOAuthConfiguration (line 114) | func (h *handler) getOAuthConfiguration(req *restful.Request, resp *re...
method listClusterConnectionConfiguration (line 136) | func (h *handler) listClusterConnectionConfiguration(req *restful.Requ...
method getClusterConnectionConfiguration (line 169) | func (h *handler) getClusterConnectionConfiguration(req *restful.Reque...
method getConfigz (line 208) | func (h *handler) getConfigz(_ *restful.Request, response *restful.Res...
method getPlatformConfiguration (line 212) | func (h *handler) getPlatformConfiguration(request *restful.Request, r...
method createPlatformConfiguration (line 240) | func (h *handler) createPlatformConfiguration(request *restful.Request...
method patchPlatformConfiguration (line 272) | func (h *handler) patchPlatformConfiguration(request *restful.Request,...
method updatePlatformConfiguration (line 335) | func (h *handler) updatePlatformConfiguration(request *restful.Request...
method deletePlatformConfiguration (line 354) | func (h *handler) deletePlatformConfiguration(request *restful.Request...
type ThemeConfiguration (line 68) | type ThemeConfiguration
type OAuthConfiguration (line 108) | type OAuthConfiguration struct
type ClusterConnectionConfiguration (line 129) | type ClusterConnectionConfiguration struct
FILE: pkg/kapis/config/v1alpha2/register.go
constant GroupName (line 20) | GroupName = "config.kubesphere.io"
constant Version (line 21) | Version = "v1alpha2"
constant APIVersion (line 22) | APIVersion = GroupName + "/" + Version
method AddToContainer (line 27) | func (h *handler) AddToContainer(c *restful.Container) error {
FILE: pkg/kapis/gateway/v1alpha2/handler.go
constant MasterLabel (line 27) | MasterLabel = "node-role.kubernetes.io/control-plane"
constant SvcNameAnnotation (line 28) | SvcNameAnnotation = "gateway.kubesphere.io/service-name"
type handler (line 31) | type handler struct
method ListIngressClassScopes (line 35) | func (h *handler) ListIngressClassScopes(req *restful.Request, resp *r...
method getMasterNodeIp (line 95) | func (h *handler) getMasterNodeIp(ctx context.Context) []string {
method setStatus (line 119) | func (h *handler) setStatus(ctx context.Context, ics *v1alpha2.Ingress...
function Selector (line 87) | func Selector(s string) labels.Selector {
FILE: pkg/kapis/gateway/v1alpha2/register.go
constant GroupName (line 23) | GroupName = "gateway.kubesphere.io"
constant Version (line 24) | Version = "v1alpha2"
function NewHandler (line 29) | func NewHandler(cache runtimeclient.Reader) rest.Handler {
function NewFakeHandler (line 35) | func NewFakeHandler() rest.Handler {
method AddToContainer (line 39) | func (h *handler) AddToContainer(container *restful.Container) error {
FILE: pkg/kapis/generic/generic.go
type genericProxy (line 25) | type genericProxy struct
method SetProxyDesprecated (line 55) | func (g *genericProxy) SetProxyDesprecated() {
method AddToContainer (line 61) | func (g *genericProxy) AddToContainer(container *restful.Container) er...
method handler (line 92) | func (g *genericProxy) handler(request *restful.Request, response *res...
method makeURL (line 103) | func (g *genericProxy) makeURL(request *restful.Request) *url.URL {
function NewGenericProxy (line 39) | func NewGenericProxy(endpoint string, groupName string, version string) ...
type errorResponder (line 117) | type errorResponder struct
method Error (line 119) | func (e *errorResponder) Error(w http.ResponseWriter, req *http.Reques...
FILE: pkg/kapis/generic/generic_test.go
function TestNewGenericProxy (line 22) | func TestNewGenericProxy(t *testing.T) {
FILE: pkg/kapis/iam/v1beta1/handler.go
type Member (line 37) | type Member struct
type GroupMember (line 42) | type GroupMember struct
type PasswordReset (line 47) | type PasswordReset struct
type TOTOAuthKeyBind (line 52) | type TOTOAuthKeyBind struct
type TOTPAuthKey (line 57) | type TOTPAuthKey struct
type handler (line 61) | type handler struct
method DescribeUser (line 75) | func (h *handler) DescribeUser(request *restful.Request, response *res...
method ListUsers (line 90) | func (h *handler) ListUsers(request *restful.Request, response *restfu...
method listUserByGlobalRole (line 111) | func (h *handler) listUserByGlobalRole(roleName string) (*api.ListResu...
method CreateUser (line 132) | func (h *handler) CreateUser(req *restful.Request, resp *restful.Respo...
method UpdateUser (line 182) | func (h *handler) UpdateUser(request *restful.Request, response *restf...
method updateGlobalRoleBinding (line 216) | func (h *handler) updateGlobalRoleBinding(operator authuser.Info, user...
method ModifyPassword (line 245) | func (h *handler) ModifyPassword(request *restful.Request, response *r...
method DeleteUser (line 297) | func (h *handler) DeleteUser(request *restful.Request, response *restf...
method ListUserLoginRecords (line 309) | func (h *handler) ListUserLoginRecords(request *restful.Request, respo...
method ListClusterMembers (line 320) | func (h *handler) ListClusterMembers(request *restful.Request, respons...
method ListWorkspaceMembers (line 353) | func (h *handler) ListWorkspaceMembers(request *restful.Request, respo...
method ListNamespaceMembers (line 386) | func (h *handler) ListNamespaceMembers(request *restful.Request, respo...
method CreateClusterMembers (line 420) | func (h *handler) CreateClusterMembers(request *restful.Request, respo...
method RemoveClusterMember (line 439) | func (h *handler) RemoveClusterMember(request *restful.Request, respon...
method CreateNamespaceMembers (line 451) | func (h *handler) CreateNamespaceMembers(request *restful.Request, res...
method RemoveNamespaceMember (line 473) | func (h *handler) RemoveNamespaceMember(request *restful.Request, resp...
method ListRoleTemplateOfUser (line 486) | func (h *handler) ListRoleTemplateOfUser(request *restful.Request, res...
method CreateSubjectAccessReview (line 584) | func (h *handler) CreateSubjectAccessReview(request *restful.Request, ...
method handleList (line 626) | func (h *handler) handleList(list iamv1beta1.SubjectAccessReviewList) ...
method handleSingle (line 656) | func (h *handler) handleSingle(review iamv1beta1.SubjectAccessReview) ...
method CreateWorkspaceMembers (line 705) | func (h *handler) CreateWorkspaceMembers(request *restful.Request, res...
method RemoveWorkspaceMember (line 726) | func (h *handler) RemoveWorkspaceMember(request *restful.Request, resp...
method DescribeWorkspaceMember (line 739) | func (h *handler) DescribeWorkspaceMember(request *restful.Request, re...
method UpdateWorkspaceMember (line 761) | func (h *handler) UpdateWorkspaceMember(request *restful.Request, resp...
method UpdateClusterMember (line 795) | func (h *handler) UpdateClusterMember(request *restful.Request, respon...
method UpdateNamespaceMember (line 829) | func (h *handler) UpdateNamespaceMember(request *restful.Request, resp...
function NewHandler (line 67) | func NewHandler(im im.IdentityManagementInterface, am am.AccessManagemen...
function NewFakeHandler (line 71) | func NewFakeHandler() rest.Handler {
function prepareAttribute (line 671) | func prepareAttribute(subjectAccessReview iamv1beta1.SubjectAccessReview...
function NewErrMemberNotExist (line 864) | func NewErrMemberNotExist(username string) error {
function NewErrIncorrectUsername (line 868) | func NewErrIncorrectUsername(username string) error {
FILE: pkg/kapis/iam/v1beta1/register.go
method AddToContainer (line 25) | func (h *handler) AddToContainer(container *restful.Container) error {
FILE: pkg/kapis/oauth/handler.go
constant KindTokenReview (line 39) | KindTokenReview = "TokenReview"
constant internalServerErrorMessage (line 40) | internalServerErrorMessage = "An internal server error occurred while pr...
type Spec (line 43) | type Spec struct
type Status (line 47) | type Status struct
type TokenReview (line 52) | type TokenReview struct
method Validate (line 64) | func (request *TokenReview) Validate() error {
type LoginRequest (line 59) | type LoginRequest struct
type ProviderMetadata (line 72) | type ProviderMetadata struct
type handler (line 105) | type handler struct
method tokenReview (line 139) | func (h *handler) tokenReview(req *restful.Request, resp *restful.Resp...
method discovery (line 171) | func (h *handler) discovery(_ *restful.Request, response *restful.Resp...
method keys (line 196) | func (h *handler) keys(_ *restful.Request, response *restful.Response) {
method authorize (line 204) | func (h *handler) authorize(req *restful.Request, response *restful.Re...
method oauthCallback (line 334) | func (h *handler) oauthCallback(req *restful.Request, response *restfu...
method token (line 362) | func (h *handler) token(req *restful.Request, response *restful.Respon...
method passwordGrant (line 421) | func (h *handler) passwordGrant(req *restful.Request, response *restfu...
method issueTokenTo (line 475) | func (h *handler) issueTokenTo(user user.Info, client *oauth.Client) (...
method refreshTokenGrant (line 515) | func (h *handler) refreshTokenGrant(req *restful.Request, response *re...
method codeGrant (line 561) | func (h *handler) codeGran
Copy disabled (too large)
Download .json
Condensed preview — 11805 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (17,154K chars).
[
{
"path": ".gitattributes",
"chars": 270,
"preview": "pkg/cmd/api/spec/api.swagger.json linguist-generated=true\npkg/cmd/api/spec/static.go linguist-generated=true\npkg/client/"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 1252,
"preview": "---\nname: Bug report\nlabels: [\"kind/bug\"]\nabout: Create a report to help us improve\n---\n\n<!--\nYou don't need to remove t"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 2030,
"preview": "---\nname: Feature Request\nabout: Have a good idea? Please don't hesitate to write it down, describe the new feature.\n---"
},
{
"path": ".github/ISSUE_TEMPLATE/installation_failure.md",
"chars": 997,
"preview": "---\nname: Installation Issue\nabout: Create an issue to help us improve installation\n---\n\n## English only!\n\n**注意!GitHub I"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 1967,
"preview": "<!-- Thanks for sending a pull request! Here are some tips for you:\n\n1. If you want **faster** PR reviews, read how: htt"
},
{
"path": ".github/release-drafter.yml",
"chars": 944,
"preview": "# Configuration for Release Drafter: https://github.com/toolmantim/release-drafter\r\nname-template: 'v$NEXT_PATCH_VERSION"
},
{
"path": ".github/stale.yml",
"chars": 845,
"preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 90\n# Number of days of inactivity before a "
},
{
"path": ".github/workflows/build-multiarch.yaml",
"chars": 4176,
"preview": "name: BuildContainerImage\n\non:\n push:\n branches:\n - 'master'\n - 'release-*'\n tags:\n - 'v*'\n workf"
},
{
"path": ".github/workflows/e2e-test.yml",
"chars": 1020,
"preview": "name: e2e\n\non:\n schedule:\n # run e2e test every 4 hours\n - cron: 0 */4 * * *\n workflow_dispatch:\njobs:\n build:\n"
},
{
"path": ".github/workflows/issue_comment_webhook.yml",
"chars": 1603,
"preview": "name: Issue Comment WeCom Webhook\n\non:\n issues:\n types: [opened, edited]\n issue_comment:\n types: [created, edite"
},
{
"path": ".github/workflows/kind/kind.yaml",
"chars": 250,
"preview": "kind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nnodes:\n- role: control-plane\n image: kindest/node:v1.21.1\n extraMount"
},
{
"path": ".github/workflows/nightly-builds.yml",
"chars": 1411,
"preview": "name: NightlyBuild\n\non:\n schedule:\n # This is a UTC time\n - cron: \"0 16 * * *\"\n # Keep it only for test purpose,"
},
{
"path": ".github/workflows/release-drafter.yml",
"chars": 259,
"preview": "name: Release Drafter\r\n\r\non:\r\n push:\r\n branches:\r\n - master\r\n\r\njobs:\r\n update_release_draft:\r\n runs-on: ubu"
},
{
"path": ".github/workflows/sync-helm-chart.yaml",
"chars": 2234,
"preview": "name: SyncHelmChart\n\non:\n workflow_dispatch:\n push:\n paths:\n - 'config/ks-core/**'\n branches:\n - 'mast"
},
{
"path": ".gitignore",
"chars": 539,
"preview": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n*.a\n\n# Test binary, build with `go test -c`\n*.test\n\n"
},
{
"path": ".go-version",
"chars": 6,
"preview": "1.24.3"
},
{
"path": ".licenserc.yaml",
"chars": 609,
"preview": "# Copyright 2025 The KubeSphere Authors.\n# SPDX-License-Identifier: LicenseRef-KubeSphere-Open-Source\nheader:\n license:"
},
{
"path": "CHANGELOG/CHANGELOG-3.3.1.md",
"chars": 9714,
"preview": "- [v3.3.1](#v331)\n - [DevOps](#devops)\n - [Enhancements & Updates](#enhancements--updates)\n - [Bug Fixes](#bug-fi"
},
{
"path": "CHANGELOG/CHANGELOG-3.3.2.md",
"chars": 7776,
"preview": "- [v3.3.2](#v332)\n - [DevOps](#devops)\n - [Enhancements \\& Upgrades](#enhancements--upgrades)\n - [Bug Fixes](#bug"
},
{
"path": "CHANGELOG/CHANGELOG-3.3.md",
"chars": 15904,
"preview": "- [v3.3.0](#v330)\n - [DevOps](#devops)\n - [Network](#network)\n - [App Store](#app-store)\n - [Multi-tenancy & Multi-c"
},
{
"path": "CHANGELOG/CHANGELOG-3.4.0.md",
"chars": 12816,
"preview": "- [v3.4.0](#v340)\n - [DevOps](#devops)\n - [Enhancements \\& Updates](#enhancements--updates)\n - [Bug Fixes](#bug-f"
},
{
"path": "CHANGELOG/CHANGELOG-3.4.1.md",
"chars": 8420,
"preview": "- [v3.4.1](#v341)\n - [App Store](#app-store)\n - [Bug Fixes](#bug-fixes)\n - [Console](#console)\n - [Bug Fixes](#b"
},
{
"path": "CHANGELOG/CHANGELOG-4.1.1.md",
"chars": 8802,
"preview": "# v4.1.1\n\n## KubeSphere\n\n### Features\n\n* Refactor based on the new microkernel architecture of KubeSphere LuBan.\n* Intro"
},
{
"path": "CONTRIBUTING.md",
"chars": 128,
"preview": "# Guide\n\nThis [document](https://github.com/kubesphere/community) walks you through how to get started contributing Kube"
},
{
"path": "LICENSE",
"chars": 2004,
"preview": "# KubeSphere Open Source License\n\nKubeSphere is licensed under the Apache License 2.0, with the following additional con"
},
{
"path": "LICENSES/LICENSE",
"chars": 2242,
"preview": "================================================================================\n= KubeSphere licensed under: =\n\n# KubeS"
},
{
"path": "LICENSES/vendor/cel.dev/expr/LICENSE",
"chars": 11463,
"preview": "= vendor/cel.dev/expr licensed under: =\n\n\n Apache License\n Ver"
},
{
"path": "LICENSES/vendor/code.cloudfoundry.org/bytefmt/LICENSE",
"chars": 11495,
"preview": "= vendor/code.cloudfoundry.org/bytefmt licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/dario.cat/mergo/LICENSE",
"chars": 1645,
"preview": "= vendor/dario.cat/mergo licensed under: =\n\nCopyright (c) 2013 Dario Castañé. All rights reserved.\nCopyright (c) 2012 Th"
},
{
"path": "LICENSES/vendor/github.com/AdaLogics/go-fuzz-headers/LICENSE",
"chars": 11510,
"preview": "= vendor/github.com/AdaLogics/go-fuzz-headers licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/Azure/go-ansiterm/LICENSE",
"chars": 1225,
"preview": "= vendor/github.com/Azure/go-ansiterm licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Microsoft Corporation"
},
{
"path": "LICENSES/vendor/github.com/Azure/go-ntlmssp/LICENSE",
"chars": 1211,
"preview": "= vendor/github.com/Azure/go-ntlmssp licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2016 Microsoft\n\nPermission "
},
{
"path": "LICENSES/vendor/github.com/BurntSushi/toml/LICENSE",
"chars": 1212,
"preview": "= vendor/github.com/BurntSushi/toml licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 TOML authors\n\nPermissio"
},
{
"path": "LICENSES/vendor/github.com/MakeNowJust/heredoc/LICENSE",
"chars": 1230,
"preview": "= vendor/github.com/MakeNowJust/heredoc licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2019 TSUYUSATO Kits"
},
{
"path": "LICENSES/vendor/github.com/Masterminds/goutils/LICENSE",
"chars": 11503,
"preview": "= vendor/github.com/Masterminds/goutils licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/Masterminds/semver/v3/LICENSE",
"chars": 1227,
"preview": "= vendor/github.com/Masterminds/semver/v3 licensed under: =\n\nCopyright (C) 2014-2019, Matt Butcher and Matt Farina\n\nPerm"
},
{
"path": "LICENSES/vendor/github.com/Masterminds/sprig/v3/LICENSE",
"chars": 1207,
"preview": "= vendor/github.com/Masterminds/sprig/v3 licensed under: =\n\nCopyright (C) 2013-2020 Masterminds\n\nPermission is hereby gr"
},
{
"path": "LICENSES/vendor/github.com/Masterminds/squirrel/LICENSE",
"chars": 1328,
"preview": "= vendor/github.com/Masterminds/squirrel licensed under: =\n\nMIT License\n\nSquirrel: The Masterminds\nCopyright (c) 2014-20"
},
{
"path": "LICENSES/vendor/github.com/Microsoft/go-winio/LICENSE",
"chars": 1216,
"preview": "= vendor/github.com/Microsoft/go-winio licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Microsoft\n\nPermissio"
},
{
"path": "LICENSES/vendor/github.com/NYTimes/gziphandler/LICENSE",
"chars": 11502,
"preview": "= vendor/github.com/NYTimes/gziphandler licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/ProtonMail/go-crypto/LICENSE",
"chars": 1622,
"preview": "= vendor/github.com/ProtonMail/go-crypto licensed under: =\n\nCopyright (c) 2009 The Go Authors. All rights reserved.\n\nRed"
},
{
"path": "LICENSES/vendor/github.com/agnivade/levenshtein/LICENSE",
"chars": 1230,
"preview": "= vendor/github.com/agnivade/levenshtein licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Agniva De Sarker\n\n"
},
{
"path": "LICENSES/vendor/github.com/antlr4-go/antlr/v4/LICENSE",
"chars": 1619,
"preview": "= vendor/github.com/antlr4-go/antlr/v4 licensed under: =\n\nCopyright (c) 2012-2023 The ANTLR Project. All rights reserved"
},
{
"path": "LICENSES/vendor/github.com/asaskevich/govalidator/LICENSE",
"chars": 1232,
"preview": "= vendor/github.com/asaskevich/govalidator licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014-2020 Alex Saskev"
},
{
"path": "LICENSES/vendor/github.com/aws/aws-sdk-go/LICENSE",
"chars": 11493,
"preview": "= vendor/github.com/aws/aws-sdk-go licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/beorn7/perks/LICENSE",
"chars": 1185,
"preview": "= vendor/github.com/beorn7/perks licensed under: =\n\nCopyright (C) 2013 Blake Mizerany\n\nPermission is hereby granted, fre"
},
{
"path": "LICENSES/vendor/github.com/blang/semver/v4/LICENSE",
"chars": 1236,
"preview": "= vendor/github.com/blang/semver/v4 licensed under: =\n\nThe MIT License\n\nCopyright (c) 2014 Benedikt Lang <github at bene"
},
{
"path": "LICENSES/vendor/github.com/cenkalti/backoff/v5/LICENSE",
"chars": 1217,
"preview": "= vendor/github.com/cenkalti/backoff/v5 licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Cenk Altı\n\nPermissi"
},
{
"path": "LICENSES/vendor/github.com/cespare/xxhash/v2/LICENSE",
"chars": 1209,
"preview": "= vendor/github.com/cespare/xxhash/v2 licensed under: =\n\nCopyright (c) 2016 Caleb Spare\n\nMIT License\n\nPermission is here"
},
{
"path": "LICENSES/vendor/github.com/chai2010/gettext-go/LICENSE",
"chars": 1640,
"preview": "= vendor/github.com/chai2010/gettext-go licensed under: =\n\nCopyright 2013 ChaiShushan <chaishushan{AT}gmail.com>. All ri"
},
{
"path": "LICENSES/vendor/github.com/cloudflare/circl/LICENSE",
"chars": 3163,
"preview": "= vendor/github.com/cloudflare/circl licensed under: =\n\nCopyright (c) 2019 Cloudflare. All rights reserved.\n\nRedistribut"
},
{
"path": "LICENSES/vendor/github.com/containerd/containerd/LICENSE",
"chars": 10910,
"preview": "= vendor/github.com/containerd/containerd licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/containerd/errdefs/LICENSE",
"chars": 10904,
"preview": "= vendor/github.com/containerd/errdefs licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/containerd/errdefs/pkg/LICENSE",
"chars": 10908,
"preview": "= vendor/github.com/containerd/errdefs/pkg licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/containerd/log/LICENSE",
"chars": 10896,
"preview": "= vendor/github.com/containerd/log licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/containerd/platforms/LICENSE",
"chars": 10908,
"preview": "= vendor/github.com/containerd/platforms licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/containerd/stargz-snapshotter/estargz/LICENSE",
"chars": 11535,
"preview": "= vendor/github.com/containerd/stargz-snapshotter/estargz licensed under: =\n\n\n Apache Li"
},
{
"path": "LICENSES/vendor/github.com/coreos/go-oidc/v3/LICENSE",
"chars": 11462,
"preview": "= vendor/github.com/coreos/go-oidc/v3 licensed under: =\n\nApache License\n Version 2.0, January "
},
{
"path": "LICENSES/vendor/github.com/coreos/go-semver/LICENSE",
"chars": 11493,
"preview": "= vendor/github.com/coreos/go-semver licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/coreos/go-systemd/v22/LICENSE",
"chars": 10418,
"preview": "= vendor/github.com/coreos/go-systemd/v22 licensed under: =\n\nApache License\nVersion 2.0, January 2004\nhttp://www.apache."
},
{
"path": "LICENSES/vendor/github.com/cyphar/filepath-securejoin/LICENSE",
"chars": 1703,
"preview": "= vendor/github.com/cyphar/filepath-securejoin licensed under: =\n\nCopyright (C) 2014-2015 Docker Inc & Go Authors. All r"
},
{
"path": "LICENSES/vendor/github.com/davecgh/go-spew/LICENSE",
"chars": 899,
"preview": "= vendor/github.com/davecgh/go-spew licensed under: =\n\nISC License\n\nCopyright (c) 2012-2016 Dave Collins <dave@davec.nam"
},
{
"path": "LICENSES/vendor/github.com/distribution/reference/LICENSE",
"chars": 11472,
"preview": "= vendor/github.com/distribution/reference licensed under: =\n\nApache License\n Version 2.0, Jan"
},
{
"path": "LICENSES/vendor/github.com/docker/cli/LICENSE",
"chars": 10888,
"preview": "= vendor/github.com/docker/cli licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/docker/distribution/LICENSE",
"chars": 11466,
"preview": "= vendor/github.com/docker/distribution licensed under: =\n\nApache License\n Version 2.0, Januar"
},
{
"path": "LICENSES/vendor/github.com/docker/docker/LICENSE",
"chars": 10894,
"preview": "= vendor/github.com/docker/docker licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/docker/docker-credential-helpers/LICENSE",
"chars": 1225,
"preview": "= vendor/github.com/docker/docker-credential-helpers licensed under: =\n\nCopyright (c) 2016 David Calavera\n\nPermission is"
},
{
"path": "LICENSES/vendor/github.com/docker/go-connections/LICENSE",
"chars": 10905,
"preview": "= vendor/github.com/docker/go-connections licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/docker/go-metrics/LICENSE",
"chars": 10902,
"preview": "= vendor/github.com/docker/go-metrics licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/docker/go-units/LICENSE",
"chars": 10893,
"preview": "= vendor/github.com/docker/go-units licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/emicklei/go-restful/v3/LICENSE",
"chars": 1222,
"preview": "= vendor/github.com/emicklei/go-restful/v3 licensed under: =\n\nCopyright (c) 2012,2013 Ernest Micklei\n\nMIT License\n\nPermi"
},
{
"path": "LICENSES/vendor/github.com/emicklei/go-restful-openapi/v2/LICENSE",
"chars": 1233,
"preview": "= vendor/github.com/emicklei/go-restful-openapi/v2 licensed under: =\n\nCopyright (c) 2017 Ernest Micklei\n\nMIT License\n\nPe"
},
{
"path": "LICENSES/vendor/github.com/emirpasic/gods/LICENSE",
"chars": 2279,
"preview": "= vendor/github.com/emirpasic/gods licensed under: =\n\nCopyright (c) 2015, Emir Pasic\nAll rights reserved.\n\nRedistributio"
},
{
"path": "LICENSES/vendor/github.com/evanphx/json-patch/LICENSE",
"chars": 1634,
"preview": "= vendor/github.com/evanphx/json-patch licensed under: =\n\nCopyright (c) 2014, Evan Phoenix\nAll rights reserved.\n\nRedistr"
},
{
"path": "LICENSES/vendor/github.com/evanphx/json-patch/v5/LICENSE",
"chars": 1637,
"preview": "= vendor/github.com/evanphx/json-patch/v5 licensed under: =\n\nCopyright (c) 2014, Evan Phoenix\nAll rights reserved.\n\nRedi"
},
{
"path": "LICENSES/vendor/github.com/exponent-io/jsonpath/LICENSE",
"chars": 1227,
"preview": "= vendor/github.com/exponent-io/jsonpath licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Exponent Labs LLC\n"
},
{
"path": "LICENSES/vendor/github.com/fatih/color/LICENSE",
"chars": 1207,
"preview": "= vendor/github.com/fatih/color licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Fatih Arslan\n\nPermission is"
},
{
"path": "LICENSES/vendor/github.com/felixge/httpsnoop/LICENSE",
"chars": 1241,
"preview": "= vendor/github.com/felixge/httpsnoop licensed under: =\n\nCopyright (c) 2016 Felix Geisendörfer (felix@debuggable.com)\n\n "
},
{
"path": "LICENSES/vendor/github.com/fsnotify/fsnotify/LICENSE",
"chars": 1666,
"preview": "= vendor/github.com/fsnotify/fsnotify licensed under: =\n\nCopyright © 2012 The Go Authors. All rights reserved.\nCopyright"
},
{
"path": "LICENSES/vendor/github.com/fxamacker/cbor/v2/LICENSE",
"chars": 1213,
"preview": "= vendor/github.com/fxamacker/cbor/v2 licensed under: =\n\nMIT License\n\nCopyright (c) 2019-present Faye Amacker\n\nPermissio"
},
{
"path": "LICENSES/vendor/github.com/go-asn1-ber/asn1-ber/LICENSE",
"chars": 1302,
"preview": "= vendor/github.com/go-asn1-ber/asn1-ber licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2011-2015 Michael Mitto"
},
{
"path": "LICENSES/vendor/github.com/go-errors/errors/LICENSE",
"chars": 1216,
"preview": "= vendor/github.com/go-errors/errors licensed under: =\n\nCopyright (c) 2015 Conrad Irwin <conrad@bugsnag.com>\n\nPermission"
},
{
"path": "LICENSES/vendor/github.com/go-git/gcfg/LICENSE",
"chars": 1647,
"preview": "= vendor/github.com/go-git/gcfg licensed under: =\n\nCopyright (c) 2012 Péter Surányi. Portions Copyright (c) 2009 The Go\n"
},
{
"path": "LICENSES/vendor/github.com/go-git/go-billy/v5/LICENSE",
"chars": 11494,
"preview": "= vendor/github.com/go-git/go-billy/v5 licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-git/go-git/v5/LICENSE",
"chars": 11491,
"preview": "= vendor/github.com/go-git/go-git/v5 licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-gorp/gorp/v3/LICENSE",
"chars": 1232,
"preview": "= vendor/github.com/go-gorp/gorp/v3 licensed under: =\n\n(The MIT License)\n\nCopyright (c) 2012 James Cooper <james@bitmech"
},
{
"path": "LICENSES/vendor/github.com/go-ini/ini/LICENSE",
"chars": 10376,
"preview": "= vendor/github.com/go-ini/ini licensed under: =\n\nApache License\nVersion 2.0, January 2004\nhttp://www.apache.org/license"
},
{
"path": "LICENSES/vendor/github.com/go-jose/go-jose/v4/LICENSE",
"chars": 11497,
"preview": "= vendor/github.com/go-jose/go-jose/v4 licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-ldap/ldap/v3/LICENSE",
"chars": 1288,
"preview": "= vendor/github.com/go-ldap/ldap/v3 licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2011-2015 Michael Mitton (mm"
},
{
"path": "LICENSES/vendor/github.com/go-logr/logr/LICENSE",
"chars": 11484,
"preview": "= vendor/github.com/go-logr/logr licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-logr/stdr/LICENSE",
"chars": 11484,
"preview": "= vendor/github.com/go-logr/stdr licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/analysis/LICENSE",
"chars": 11499,
"preview": "= vendor/github.com/go-openapi/analysis licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/errors/LICENSE",
"chars": 11495,
"preview": "= vendor/github.com/go-openapi/errors licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/jsonpointer/LICENSE",
"chars": 11505,
"preview": "= vendor/github.com/go-openapi/jsonpointer licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/jsonreference/LICENSE",
"chars": 11509,
"preview": "= vendor/github.com/go-openapi/jsonreference licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/loads/LICENSE",
"chars": 11493,
"preview": "= vendor/github.com/go-openapi/loads licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/spec/LICENSE",
"chars": 11491,
"preview": "= vendor/github.com/go-openapi/spec licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE",
"chars": 11495,
"preview": "= vendor/github.com/go-openapi/strfmt licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/swag/LICENSE",
"chars": 11491,
"preview": "= vendor/github.com/go-openapi/swag licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-openapi/validate/LICENSE",
"chars": 11499,
"preview": "= vendor/github.com/go-openapi/validate licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/go-redis/redis/LICENSE",
"chars": 1449,
"preview": "= vendor/github.com/go-redis/redis licensed under: =\n\nCopyright (c) 2013 The github.com/go-redis/redis Authors.\nAll righ"
},
{
"path": "LICENSES/vendor/github.com/go-task/slim-sprig/v3/LICENSE",
"chars": 1209,
"preview": "= vendor/github.com/go-task/slim-sprig/v3 licensed under: =\n\nCopyright (C) 2013-2020 Masterminds\n\nPermission is hereby g"
},
{
"path": "LICENSES/vendor/github.com/go-viper/mapstructure/v2/LICENSE",
"chars": 1236,
"preview": "= vendor/github.com/go-viper/mapstructure/v2 licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Mitchell Hashi"
},
{
"path": "LICENSES/vendor/github.com/gobuffalo/flect/LICENSE",
"chars": 1210,
"preview": "= vendor/github.com/gobuffalo/flect licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2019 Mark Bates\n\nPermission "
},
{
"path": "LICENSES/vendor/github.com/gobwas/glob/LICENSE",
"chars": 1206,
"preview": "= vendor/github.com/gobwas/glob licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2016 Sergey Kamardin\n\nPermission"
},
{
"path": "LICENSES/vendor/github.com/gogo/protobuf/LICENSE",
"chars": 1810,
"preview": "= vendor/github.com/gogo/protobuf licensed under: =\n\nCopyright (c) 2013, The GoGo Authors. All rights reserved.\n\nProtoco"
},
{
"path": "LICENSES/vendor/github.com/golang/example/LICENSE",
"chars": 11489,
"preview": "= vendor/github.com/golang/example licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/golang/glog/LICENSE",
"chars": 10398,
"preview": "= vendor/github.com/golang/glog licensed under: =\n\nApache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licens"
},
{
"path": "LICENSES/vendor/github.com/golang/groupcache/LICENSE",
"chars": 10410,
"preview": "= vendor/github.com/golang/groupcache licensed under: =\n\nApache License\nVersion 2.0, January 2004\nhttp://www.apache.org/"
},
{
"path": "LICENSES/vendor/github.com/golang/protobuf/LICENSE",
"chars": 1613,
"preview": "= vendor/github.com/golang/protobuf licensed under: =\n\nCopyright 2010 The Go Authors. All rights reserved.\n\nRedistribut"
},
{
"path": "LICENSES/vendor/github.com/golang-jwt/jwt/v4/LICENSE",
"chars": 1237,
"preview": "= vendor/github.com/golang-jwt/jwt/v4 licensed under: =\n\nCopyright (c) 2012 Dave Grijalva\nCopyright (c) 2021 golang-jwt "
},
{
"path": "LICENSES/vendor/github.com/google/btree/LICENSE",
"chars": 11485,
"preview": "= vendor/github.com/google/btree licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/google/cel-go/LICENSE",
"chars": 13182,
"preview": "= vendor/github.com/google/cel-go licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/google/gnostic-models/LICENSE",
"chars": 11504,
"preview": "= vendor/github.com/google/gnostic-models licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/google/go-cmp/LICENSE",
"chars": 1608,
"preview": "= vendor/github.com/google/go-cmp licensed under: =\n\nCopyright (c) 2017 The Go Authors. All rights reserved.\n\nRedistribu"
},
{
"path": "LICENSES/vendor/github.com/google/go-containerregistry/LICENSE",
"chars": 11514,
"preview": "= vendor/github.com/google/go-containerregistry licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/google/gofuzz/LICENSE",
"chars": 11487,
"preview": "= vendor/github.com/google/gofuzz licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/google/gops/LICENSE",
"chars": 1604,
"preview": "= vendor/github.com/google/gops licensed under: =\n\nCopyright (c) 2016 The Go Authors. All rights reserved.\n\nRedistributi"
},
{
"path": "LICENSES/vendor/github.com/google/pprof/LICENSE",
"chars": 11485,
"preview": "= vendor/github.com/google/pprof licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/google/shlex/LICENSE",
"chars": 11485,
"preview": "= vendor/github.com/google/shlex licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/google/uuid/LICENSE",
"chars": 1605,
"preview": "= vendor/github.com/google/uuid licensed under: =\n\nCopyright (c) 2009,2014 Google Inc. All rights reserved.\n\nRedistribut"
},
{
"path": "LICENSES/vendor/github.com/gorilla/mux/LICENSE",
"chars": 1606,
"preview": "= vendor/github.com/gorilla/mux licensed under: =\n\nCopyright (c) 2023 The Gorilla Authors. All rights reserved.\n\nRedistr"
},
{
"path": "LICENSES/vendor/github.com/gorilla/websocket/LICENSE",
"chars": 1449,
"preview": "= vendor/github.com/gorilla/websocket licensed under: =\n\nCopyright (c) 2013 The Gorilla WebSocket Authors. All rights re"
},
{
"path": "LICENSES/vendor/github.com/gosuri/uitable/LICENSE",
"chars": 1211,
"preview": "= vendor/github.com/gosuri/uitable licensed under: =\n\nMIT License\n===========\n\nCopyright (c) 2015, Greg Osuri\n\nPermissio"
},
{
"path": "LICENSES/vendor/github.com/gregjones/httpcache/LICENSE",
"chars": 1219,
"preview": "= vendor/github.com/gregjones/httpcache licensed under: =\n\nCopyright © 2012 Greg Jones (greg.jones@gmail.com)\n\nPermissio"
},
{
"path": "LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/LICENSE",
"chars": 11509,
"preview": "= vendor/github.com/grpc-ecosystem/go-grpc-prometheus licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/grpc-ecosystem/grpc-gateway/v2/LICENSE",
"chars": 1674,
"preview": "= vendor/github.com/grpc-ecosystem/grpc-gateway/v2 licensed under: =\n\nCopyright (c) 2015, Gengo, Inc.\nAll rights reserve"
},
{
"path": "LICENSES/vendor/github.com/hashicorp/errwrap/LICENSE",
"chars": 16022,
"preview": "= vendor/github.com/hashicorp/errwrap licensed under: =\n\nMozilla Public License, version 2.0\n\n1. Definitions\n\n1.1. “Cont"
},
{
"path": "LICENSES/vendor/github.com/hashicorp/go-multierror/LICENSE",
"chars": 16033,
"preview": "= vendor/github.com/hashicorp/go-multierror licensed under: =\n\nMozilla Public License, version 2.0\n\n1. Definitions\n\n1.1."
},
{
"path": "LICENSES/vendor/github.com/huandu/xstrings/LICENSE",
"chars": 1208,
"preview": "= vendor/github.com/huandu/xstrings licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Huan Du\n\nPermission is "
},
{
"path": "LICENSES/vendor/github.com/inconshreveable/mousetrap/LICENSE",
"chars": 11513,
"preview": "= vendor/github.com/inconshreveable/mousetrap licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/jbenet/go-context/LICENSE",
"chars": 1220,
"preview": "= vendor/github.com/jbenet/go-context licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Juan Batiz-Benet\n\nPer"
},
{
"path": "LICENSES/vendor/github.com/jmespath/go-jmespath/LICENSE",
"chars": 702,
"preview": "= vendor/github.com/jmespath/go-jmespath licensed under: =\n\nCopyright 2015 James Saryerwinnie\n\nLicensed under the Apache"
},
{
"path": "LICENSES/vendor/github.com/jmoiron/sqlx/LICENSE",
"chars": 1204,
"preview": "= vendor/github.com/jmoiron/sqlx licensed under: =\n\n Copyright (c) 2013, Jason Moiron\n\n Permission is hereby granted, fr"
},
{
"path": "LICENSES/vendor/github.com/josharian/intern/LICENSE",
"chars": 1215,
"preview": "= vendor/github.com/josharian/intern licensed under: =\n\nMIT License\n\nCopyright (c) 2019 Josh Bleecher Snyder\n\nPermission"
},
{
"path": "LICENSES/vendor/github.com/json-iterator/go/LICENSE",
"chars": 1205,
"preview": "= vendor/github.com/json-iterator/go licensed under: =\n\nMIT License\n\nCopyright (c) 2016 json-iterator\n\nPermission is her"
},
{
"path": "LICENSES/vendor/github.com/kevinburke/ssh_config/LICENSE",
"chars": 2446,
"preview": "= vendor/github.com/kevinburke/ssh_config licensed under: =\n\nCopyright (c) 2017 Kevin Burke.\n\nPermission is hereby grant"
},
{
"path": "LICENSES/vendor/github.com/klauspost/compress/LICENSE",
"chars": 16872,
"preview": "= vendor/github.com/klauspost/compress licensed under: =\n\nCopyright (c) 2012 The Go Authors. All rights reserved.\nCopyri"
},
{
"path": "LICENSES/vendor/github.com/kylelemons/godebug/LICENSE",
"chars": 11497,
"preview": "= vendor/github.com/kylelemons/godebug licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/lann/builder/LICENSE",
"chars": 1200,
"preview": "= vendor/github.com/lann/builder licensed under: =\n\nMIT License\n\nCopyright (c) 2014-2015 Lann Martin\n\nPermission is here"
},
{
"path": "LICENSES/vendor/github.com/lann/ps/LICENSE",
"chars": 1178,
"preview": "= vendor/github.com/lann/ps licensed under: =\n\nCopyright (c) 2013 Michael Hendricks\n\nPermission is hereby granted, free "
},
{
"path": "LICENSES/vendor/github.com/lib/pq/LICENSE",
"chars": 1228,
"preview": "= vendor/github.com/lib/pq licensed under: =\n\nCopyright (c) 2011-2013, 'pq' Contributors\nPortions Copyright (C) 2011 Bla"
},
{
"path": "LICENSES/vendor/github.com/liggitt/tabwriter/LICENSE",
"chars": 1616,
"preview": "= vendor/github.com/liggitt/tabwriter licensed under: =\n\nCopyright (c) 2009 The Go Authors. All rights reserved.\n\nRedist"
},
{
"path": "LICENSES/vendor/github.com/mailru/easyjson/LICENSE",
"chars": 1190,
"preview": "= vendor/github.com/mailru/easyjson licensed under: =\n\nCopyright (c) 2016 Mail.Ru Group\n\nPermission is hereby granted, f"
},
{
"path": "LICENSES/vendor/github.com/mattn/go-colorable/LICENSE",
"chars": 1224,
"preview": "= vendor/github.com/mattn/go-colorable licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2016 Yasuhiro Matsumoto\n\n"
},
{
"path": "LICENSES/vendor/github.com/mattn/go-isatty/LICENSE",
"chars": 1232,
"preview": "= vendor/github.com/mattn/go-isatty licensed under: =\n\nCopyright (c) Yasuhiro MATSUMOTO <mattn.jp@gmail.com>\n\nMIT Licens"
},
{
"path": "LICENSES/vendor/github.com/mattn/go-runewidth/LICENSE",
"chars": 1224,
"preview": "= vendor/github.com/mattn/go-runewidth licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2016 Yasuhiro Matsumoto\n\n"
},
{
"path": "LICENSES/vendor/github.com/mitchellh/copystructure/LICENSE",
"chars": 1234,
"preview": "= vendor/github.com/mitchellh/copystructure licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Mitchell Hashim"
},
{
"path": "LICENSES/vendor/github.com/mitchellh/go-homedir/LICENSE",
"chars": 1228,
"preview": "= vendor/github.com/mitchellh/go-homedir licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Mitchell Hashimoto"
},
{
"path": "LICENSES/vendor/github.com/mitchellh/go-wordwrap/LICENSE",
"chars": 1233,
"preview": "= vendor/github.com/mitchellh/go-wordwrap licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Mitchell Hashimot"
},
{
"path": "LICENSES/vendor/github.com/mitchellh/mapstructure/LICENSE",
"chars": 1232,
"preview": "= vendor/github.com/mitchellh/mapstructure licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Mitchell Hashimo"
},
{
"path": "LICENSES/vendor/github.com/mitchellh/reflectwalk/LICENSE",
"chars": 1230,
"preview": "= vendor/github.com/mitchellh/reflectwalk licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Mitchell Hashimot"
},
{
"path": "LICENSES/vendor/github.com/moby/docker-image-spec/LICENSE",
"chars": 11504,
"preview": "= vendor/github.com/moby/docker-image-spec licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/moby/locker/LICENSE",
"chars": 10889,
"preview": "= vendor/github.com/moby/locker licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/moby/spdystream/LICENSE",
"chars": 11491,
"preview": "= vendor/github.com/moby/spdystream licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/moby/term/LICENSE",
"chars": 10886,
"preview": "= vendor/github.com/moby/term licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/modern-go/concurrent/LICENSE",
"chars": 11500,
"preview": "= vendor/github.com/modern-go/concurrent licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/modern-go/reflect2/LICENSE",
"chars": 11496,
"preview": "= vendor/github.com/modern-go/reflect2 licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/monochromegane/go-gitignore/LICENSE",
"chars": 1240,
"preview": "= vendor/github.com/monochromegane/go-gitignore licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) [2015] [go-gitig"
},
{
"path": "LICENSES/vendor/github.com/munnerz/goautoneg/LICENSE",
"chars": 1683,
"preview": "= vendor/github.com/munnerz/goautoneg licensed under: =\n\nCopyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights r"
},
{
"path": "LICENSES/vendor/github.com/mxk/go-flowrate/LICENSE",
"chars": 1647,
"preview": "= vendor/github.com/mxk/go-flowrate licensed under: =\n\nCopyright (c) 2014 The Go-FlowRate Authors. All rights reserved.\n"
},
{
"path": "LICENSES/vendor/github.com/oklog/ulid/LICENSE",
"chars": 11480,
"preview": "= vendor/github.com/oklog/ulid licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/oliveagle/jsonpath/LICENSE",
"chars": 1213,
"preview": "= vendor/github.com/oliveagle/jsonpath licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 oliver\n\nPermission i"
},
{
"path": "LICENSES/vendor/github.com/onsi/ginkgo/v2/LICENSE",
"chars": 1193,
"preview": "= vendor/github.com/onsi/ginkgo/v2 licensed under: =\n\nCopyright (c) 2013-2014 Onsi Fakhouri\n\nPermission is hereby grante"
},
{
"path": "LICENSES/vendor/github.com/onsi/gomega/LICENSE",
"chars": 1187,
"preview": "= vendor/github.com/onsi/gomega licensed under: =\n\nCopyright (c) 2013-2014 Onsi Fakhouri\n\nPermission is hereby granted, "
},
{
"path": "LICENSES/vendor/github.com/open-policy-agent/opa/LICENSE",
"chars": 11503,
"preview": "= vendor/github.com/open-policy-agent/opa licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/opencontainers/go-digest/LICENSE",
"chars": 10952,
"preview": "= vendor/github.com/opencontainers/go-digest licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/opencontainers/image-spec/LICENSE",
"chars": 10920,
"preview": "= vendor/github.com/opencontainers/image-spec licensed under: =\n\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/pelletier/go-toml/v2/LICENSE",
"chars": 1244,
"preview": "= vendor/github.com/pelletier/go-toml/v2 licensed under: =\n\nThe MIT License (MIT)\n\ngo-toml v2\nCopyright (c) 2021 - 2023 "
},
{
"path": "LICENSES/vendor/github.com/peterbourgon/diskv/LICENSE",
"chars": 1201,
"preview": "= vendor/github.com/peterbourgon/diskv licensed under: =\n\nCopyright (c) 2011-2012 Peter Bourgon\n\nPermission is hereby gr"
},
{
"path": "LICENSES/vendor/github.com/pjbgf/sha1cd/LICENSE",
"chars": 11462,
"preview": "= vendor/github.com/pjbgf/sha1cd licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/pkg/errors/LICENSE",
"chars": 1435,
"preview": "= vendor/github.com/pkg/errors licensed under: =\n\nCopyright (c) 2015, Dave Cheney <dave@cheney.net>\nAll rights reserved."
},
{
"path": "LICENSES/vendor/github.com/pmezard/go-difflib/LICENSE",
"chars": 1584,
"preview": "= vendor/github.com/pmezard/go-difflib licensed under: =\n\nCopyright (c) 2013, Patrick Mezard\nAll rights reserved.\n\nRedis"
},
{
"path": "LICENSES/vendor/github.com/prometheus/client_golang/LICENSE",
"chars": 11508,
"preview": "= vendor/github.com/prometheus/client_golang licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/prometheus/client_model/LICENSE",
"chars": 11506,
"preview": "= vendor/github.com/prometheus/client_model licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/prometheus/common/LICENSE",
"chars": 11494,
"preview": "= vendor/github.com/prometheus/common licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/prometheus/procfs/LICENSE",
"chars": 11494,
"preview": "= vendor/github.com/prometheus/procfs licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/rcrowley/go-metrics/LICENSE",
"chars": 1657,
"preview": "= vendor/github.com/rcrowley/go-metrics licensed under: =\n\nCopyright 2012 Richard Crowley. All rights reserved.\n\nRedistr"
},
{
"path": "LICENSES/vendor/github.com/rivo/uniseg/LICENSE",
"chars": 1201,
"preview": "= vendor/github.com/rivo/uniseg licensed under: =\n\nMIT License\n\nCopyright (c) 2019 Oliver Kuederle\n\nPermission is hereby"
},
{
"path": "LICENSES/vendor/github.com/robfig/cron/v3/LICENSE",
"chars": 1223,
"preview": "= vendor/github.com/robfig/cron/v3 licensed under: =\n\nCopyright (C) 2012 Rob Figueiredo\nAll Rights Reserved.\n\nMIT LICENS"
},
{
"path": "LICENSES/vendor/github.com/rubenv/sql-migrate/LICENSE",
"chars": 1241,
"preview": "= vendor/github.com/rubenv/sql-migrate licensed under: =\n\nMIT License\n\nCopyright (C) 2014-2021 by Ruben Vermeersch <rube"
},
{
"path": "LICENSES/vendor/github.com/russross/blackfriday/v2/LICENSE",
"chars": 1568,
"preview": "= vendor/github.com/russross/blackfriday/v2 licensed under: =\n\nBlackfriday is distributed under the Simplified BSD Licen"
},
{
"path": "LICENSES/vendor/github.com/sagikazarmark/locafero/LICENSE",
"chars": 1233,
"preview": "= vendor/github.com/sagikazarmark/locafero licensed under: =\n\nCopyright (c) 2023 Márk Sági-Kazár <mark.sagikazar@gmail.c"
},
{
"path": "LICENSES/vendor/github.com/sergi/go-diff/LICENSE",
"chars": 1220,
"preview": "= vendor/github.com/sergi/go-diff licensed under: =\n\nCopyright (c) 2012-2016 The go-diff Authors. All rights reserved.\n\n"
},
{
"path": "LICENSES/vendor/github.com/shopspring/decimal/LICENSE",
"chars": 2384,
"preview": "= vendor/github.com/shopspring/decimal licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Spring, Inc.\n\nPermis"
},
{
"path": "LICENSES/vendor/github.com/sirupsen/logrus/LICENSE",
"chars": 1215,
"preview": "= vendor/github.com/sirupsen/logrus licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Simon Eskildsen\n\nPermis"
},
{
"path": "LICENSES/vendor/github.com/skeema/knownhosts/LICENSE",
"chars": 11494,
"preview": "= vendor/github.com/skeema/knownhosts licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/sony/sonyflake/LICENSE",
"chars": 1210,
"preview": "= vendor/github.com/sony/sonyflake licensed under: =\n\nThe MIT License (MIT)\n\nCopyright 2015 Sony Corporation\n\nPermission"
},
{
"path": "LICENSES/vendor/github.com/sourcegraph/conc/LICENSE",
"chars": 1203,
"preview": "= vendor/github.com/sourcegraph/conc licensed under: =\n\nMIT License\n\nCopyright (c) 2023 Sourcegraph\n\nPermission is hereb"
},
{
"path": "LICENSES/vendor/github.com/speps/go-hashids/LICENSE",
"chars": 1190,
"preview": "= vendor/github.com/speps/go-hashids licensed under: =\n\nCopyright (c) 2014 Remi Gillig\n\nPermission is hereby granted, fr"
},
{
"path": "LICENSES/vendor/github.com/spf13/afero/LICENSE",
"chars": 10269,
"preview": "= vendor/github.com/spf13/afero licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/spf13/cast/LICENSE",
"chars": 1202,
"preview": "= vendor/github.com/spf13/cast licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Steve Francia\n\nPermission is"
},
{
"path": "LICENSES/vendor/github.com/spf13/cobra/LICENSE",
"chars": 10269,
"preview": "= vendor/github.com/spf13/cobra licensed under: =\n\n Apache License\n "
},
{
"path": "LICENSES/vendor/github.com/spf13/pflag/LICENSE",
"chars": 1656,
"preview": "= vendor/github.com/spf13/pflag licensed under: =\n\nCopyright (c) 2012 Alex Ogier. All rights reserved.\nCopyright (c) 201"
},
{
"path": "LICENSES/vendor/github.com/spf13/viper/LICENSE",
"chars": 1204,
"preview": "= vendor/github.com/spf13/viper licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Steve Francia\n\nPermission i"
},
{
"path": "LICENSES/vendor/github.com/stoewer/go-strcase/LICENSE",
"chars": 1252,
"preview": "= vendor/github.com/stoewer/go-strcase licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2017, Adrian Stoewer <adr"
},
{
"path": "LICENSES/vendor/github.com/stretchr/testify/LICENSE",
"chars": 1238,
"preview": "= vendor/github.com/stretchr/testify licensed under: =\n\nMIT License\n\nCopyright (c) 2012-2020 Mat Ryer, Tyler Bunnell and"
},
{
"path": "LICENSES/vendor/github.com/subosito/gotenv/LICENSE",
"chars": 1215,
"preview": "= vendor/github.com/subosito/gotenv licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2013 Alif Rachmawadi\n\nPermis"
},
{
"path": "LICENSES/vendor/github.com/tchap/go-patricia/v2/LICENSE",
"chars": 1221,
"preview": "= vendor/github.com/tchap/go-patricia/v2 licensed under: =\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 The AUTHORS\n\nPermi"
},
{
"path": "LICENSES/vendor/github.com/vbatts/tar-split/LICENSE",
"chars": 1637,
"preview": "= vendor/github.com/vbatts/tar-split licensed under: =\n\nCopyright (c) 2015 Vincent Batts, Raleigh, NC, USA\n\nAll rights r"
}
]
// ... and 11605 more files (download for full content)
About this extraction
This page contains the full source code of the kubesphere/kubesphere GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 11805 files (113.9 MB), approximately 4.7M tokens, and a symbol index with 18996 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.