기톱 좀비
0.0.9
이 간단한 도구는 GitOps(flux2)를 통해 관리되지 않는 Kubernetes 리소스를 찾는 데 도움이 됩니다.
gitops-zombies는 클러스터에 설치된 모든 API를 검색하고 Kustomization 또는 HelmRelease의 일부가 아닌 리소스를 식별합니다. 또한 다음과 같은 사실을 인정합니다.
상위 리소스가 소유한 리소스를 무시합니다(예: 배포로 생성된 Pod).
동적이라고 간주되는 리소스(메트릭, 임대, 이벤트, 엔드포인트 등)를 무시합니다.
apiserver 자체에서 생성된 리소스(예: 기본 rbac)를 필터링합니다.
helm 또는 ServiceAccount 토큰을 포함하여 다른 당사자가 관리하는 비밀을 필터링합니다.
참조된 HelmRelease 또는 Kustomization이 존재하는지 확인합니다.
리소스가 여전히 Kutomization 인벤토리의 일부인지 확인합니다.
클러스터 간 사용자 정의 지원
brew tap raffis/gitops-zombies brew install gitops-zombies
gitops-zombies
고급 호출에는 동적이라고 간주되는 특정 리소스를 제외하기 위해 다음과 같은 필터가 포함될 수 있습니다(기본 제공 제외 제외).
gitops-zombies --context staging -l app.kubernetes.io/managed-by!=kops,app.kubernetes.io/name!=velero,io.cilium.k8s.policy.cluster!=default
또한 이름을 기준으로 일부 특정 리소스를 제외할 수도 있습니다. 이는 YAML 구성을 통해 달성할 수 있습니다.
---apiVersion: gitopszombies/v1kind: ConfigexcludeResources: - 이름 : 기본값 api버전: v1 종류: ServiceAccount- 이름: velero-capi-backup-.* 네임스페이스: velero api버전: velero.io/v1 종류: 백업 클러스터: 관리
Finds all kubernetes resources from all installed apis on a kubernetes cluste and evaluates whether they are managed by a flux kustomization or a helmrelease. Usage: gitops-zombies [flags] Flags: --add_dir_header If true, adds the file directory to the header of the log messages --alsologtostderr log to standard error as well as files (no effect when -logtostderr=true) --as string Username to impersonate for the operation. User could be a regular user or a service account in a namespace. --as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups. --as-uid string UID to impersonate for the operation. --cache-dir string Default cache directory (default "~/.kube/cache") --certificate-authority string Path to a cert file for the certificate authority --client-certificate string Path to a client certificate file for TLS --client-key string Path to a client key file for TLS --cluster string The name of the kubeconfig cluster to use --config string Config file (default "~/.gitops-zombies.yaml") --context string The name of the kubeconfig context to use --disable-compression If true, opt-out of response compression for all requests to the server --exclude-cluster strings Exclude cluster from zombie detection (default none) --fail Exit with an exit code > 0 if zombies are detected -h, --help help for gitops-zombies -a, --include-all Includes resources which are considered dynamic resources --insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure --kubeconfig string Path to the kubeconfig file to use for CLI requests. --log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0) --log_dir string If non-empty, write log files in this directory (no effect when -logtostderr=true) --log_file string If non-empty, use this log file (no effect when -logtostderr=true) --log_file_max_size uint Defines the maximum size a log file can grow to (no effect when -logtostderr=true). Unit is megabytes. If the value is 0, the maximum file size is unlimited. (default 1800) --logtostderr log to standard error instead of files (default true) -n, --namespace string If present, the namespace scope for this CLI request --no-stream Display discovered resources at the end instead of live --one_output If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true) -o, --output string Output format. One of: (json, yaml, name, go-template, go-template-file, template, templatefile, jsonpath, jsonpath-as-json, jsonpath-file, custom-columns, custom-columns-file, wide). See custom columns [https://kubernetes.io/docs/reference/kubectl/overview/#custom-columns], golang template [http://golang.org/pkg/text/template/#pkg-overview] and jsonpath template [https://kubernetes.io/docs/reference/kubectl/jsonpath/]. --request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0") -l, --selector string Label selector (Is used for all apis) -s, --server string The address and port of the Kubernetes API server --skip_headers If true, avoid header prefixes in the log messages --skip_log_headers If true, avoid headers when opening log files (no effect when -logtostderr=true) --stderrthreshold severity logs at or above this threshold go to stderr when writing to files and stderr (no effect when -logtostderr=true or -alsologtostderr=false) (default 2) --tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used --token string Bearer token for authentication to the API server --user string The name of the kubeconfig user to use -v, --v Level number for the log level verbosity --version Print version and exit --vmodule moduleSpec comma-separated list of pattern=N settings for file-filtered logging