diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 72411362..c0728ddb 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -5,10 +5,10 @@ updates:
schedule:
interval: "daily"
reviewers:
- - "weaveworks/pesto"
+ - "@bigkevmcd"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
reviewers:
- - "weaveworks/pesto"
+ - "@bigkevmcd"
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 9783bfd1..14c78e15 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -32,24 +32,27 @@ jobs:
run: git config --global url."https://${GITHUB_BUILD_USERNAME}:${GITHUB_BUILD_TOKEN}@github.com".insteadOf "https://github.com"
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
+ uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0
with:
- go-version: 1.20.x
+ go-version: 1.22.x
cache: true
- name: Test
run: make test
+ - name: e2e Tests
+ run: make e2e-tests
+
build-docs:
runs-on: ubuntu-latest
permissions:
contents: read # for actions/checkout to fetch code
steps:
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0 # for git describe
ref: ${{ github.event.pull_request.head.sha || github.sha }}
@@ -74,7 +77,7 @@ jobs:
packages: write
steps:
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0 # for git describe
ref: ${{ github.event.pull_request.head.sha || github.sha }}
@@ -84,7 +87,7 @@ jobs:
run: echo "::set-output name=VERSION::$(make version)"
- name: Log in to the Container registry
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -92,7 +95,7 @@ jobs:
- name: Extract metadata (tags, labels) for Docker
id: meta
- uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c # v5.5.0
+ uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96 # v5.6.1
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
@@ -102,11 +105,8 @@ jobs:
GITHUB_BUILD_TOKEN: ${{ secrets.BUILD_BOT_PERSONAL_ACCESS_TOKEN }}
run: git config --global url."https://${GITHUB_BUILD_USERNAME}:${GITHUB_BUILD_TOKEN}@github.com".insteadOf "https://github.com"
- - name: go mod vendor
- run: go mod vendor
-
- name: Build and push Docker image
- uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5.1.0
+ uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991 # v6.13.0
with:
context: .
push: true
@@ -123,26 +123,20 @@ jobs:
contents: read # for actions/checkout to fetch code
steps:
- name: Checkout
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0 # for git describe
ref: ${{ github.event.pull_request.head.sha || github.sha }}
- - name: Configure git for private modules
- env:
- GITHUB_BUILD_USERNAME: ${{ secrets.BUILD_BOT_USER }}
- GITHUB_BUILD_TOKEN: ${{ secrets.BUILD_BOT_PERSONAL_ACCESS_TOKEN }}
- run: git config --global url."https://${GITHUB_BUILD_USERNAME}:${GITHUB_BUILD_TOKEN}@github.com".insteadOf "https://github.com"
-
- name: Install Helm
run: |
wget --no-verbose https://get.helm.sh/helm-v3.12.1-linux-amd64.tar.gz
- tar -zxvf helm-v3.12.1-linux-amd64.tar.gz
+ tar -zxvf helm-v3.14.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm version
- name: Login to GitHub Container Registry
- uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
registry: ghcr.io
username: ${{ github.actor }}
diff --git a/Dockerfile b/Dockerfile
index bbd5735b..497ceed9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,14 +1,11 @@
# Build the manager binary
-FROM golang:1.20 as builder
-ARG TARGETOS
-ARG TARGETARCH
+FROM golang:1.23 as builder
ARG VERSION
WORKDIR /workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
-COPY vendor vendor
# Copy the go source
COPY main.go main.go
@@ -17,12 +14,7 @@ COPY api/ api/
COPY controllers/ controllers/
COPY pkg/ pkg/
-# Build
-# the GOARCH has not a default value to allow the binary be built according to the host where the command
-# was called. For example, if we call make docker-build in a local env which has the Apple Silicon M1 SO
-# the docker BUILDPLATFORM arg will be linux/arm64 when for Apple x86 it will be linux/amd64. Therefore,
-# by leaving it empty we can ensure that the container and binary shipped on it will have the same platform.
-RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o manager -ldflags "-X main.Version=${VERSION}" main.go version.go
+RUN CGO_ENABLED=0 GOOS=linux go build -a -o manager -ldflags "-X main.Version=${VERSION}" main.go version.go
# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
diff --git a/Makefile b/Makefile
index 09d01e57..46157c4f 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ CHART_VERSION := $(shell echo $(VERSION) | sed 's/^v//')
# Image URL to use all building/pushing image targets
IMG ?= ghcr.io/weaveworks/gitopssets-controller:${VERSION}
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
-ENVTEST_K8S_VERSION = 1.25.0
+ENVTEST_K8S_VERSION = 1.31.0
GEN_API_REF_DOCS_VERSION ?= e327d0730470cbd61b06300f81c5fcf91c23c113
CHART_REGISTRY ?= ghcr.io/weaveworks/charts
@@ -63,7 +63,7 @@ vet: ## Run go vet against code.
.PHONY: test
test: manifests generate fmt vet envtest ## Run tests.
- KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test ./... -coverprofile cover.out
+ KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test $(go list ./... | grep -v tests\/e2e) -coverprofile cover.out
.PHONY: e2e-tests
e2e-tests: manifests generate fmt vet envtest ## Run tests.
@@ -80,11 +80,6 @@ build: manifests generate fmt vet ## Build manager binary.
run: manifests generate fmt vet ## Run a controller from your host.
go run ./main.go ./version.go ${RUN_ARGS}
-.PHONY: vendor
-vendor: ## Update vendor directory.
- go mod tidy
- go mod vendor
-
version:
@echo $(VERSION)
@@ -92,7 +87,7 @@ version:
# (i.e. docker build --platform linux/arm64 ). However, you must enable docker buildKit for it.
# More info: https://docs.docker.com/develop/develop-images/build_enhancements/
.PHONY: docker-build
-docker-build: test vendor ## Build docker image with the manager.
+docker-build: ## Build docker image with the manager.
docker build -t ${IMG} --build-arg VERSION=${VERSION} .
.PHONY: docker-push
@@ -158,7 +153,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest
## Tool Versions
KUSTOMIZE_VERSION ?= v3.8.7
-CONTROLLER_TOOLS_VERSION ?= v0.10.0
+CONTROLLER_TOOLS_VERSION ?= v0.16.1
KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
.PHONY: kustomize
@@ -238,4 +233,4 @@ echo "Downloading $(2)" ;\
GOBIN=$(PROJECT_DIR)/bin go install $(2) ;\
rm -rf $$TMP_DIR ;\
}
-endef
\ No newline at end of file
+endef
diff --git a/PROJECT b/PROJECT
index 40523415..2510847d 100644
--- a/PROJECT
+++ b/PROJECT
@@ -1,16 +1,16 @@
-domain: weave.works
+domain: gitops.pro
layout:
- go.kubebuilder.io/v3
projectName: gitopssets-controller
-repo: github.com/weaveworks/gitopssets-controller
+repo: github.com/gitops-tools/gitopssets-controller
resources:
- api:
crdVersion: v1
namespaced: true
controller: true
- domain: weave.works
+ domain: gitops.pro
group: templates
kind: GitOpsSet
- path: github.com/weaveworks/gitopssets-controller/api/v1alpha1
+ path: github.com/gitops-tools/gitopssets-controller/api/v1alpha1
version: v1alpha1
version: "3"
diff --git a/README.md b/README.md
index ba2ca05d..0f449f92 100644
--- a/README.md
+++ b/README.md
@@ -126,4 +126,4 @@ More information can be found via the [Kubebuilder Documentation](https://book.k
## License
-Copyright 2023.
+Copyright 2025.
diff --git a/api/v1alpha1/doc.go b/api/v1alpha1/doc.go
index 8d5684f3..6c8247a4 100644
--- a/api/v1alpha1/doc.go
+++ b/api/v1alpha1/doc.go
@@ -1,3 +1,3 @@
// Package v1alpha1 contains API Schema definitions for the gitopssets v1alpha1 API group
-// +groupName=templates.weave.works
+// +groupName=sets.gitops.pro
package v1alpha1
diff --git a/api/v1alpha1/gitopsset_types.go b/api/v1alpha1/gitopsset_types.go
index ea828736..d4ab5758 100644
--- a/api/v1alpha1/gitopsset_types.go
+++ b/api/v1alpha1/gitopsset_types.go
@@ -2,7 +2,6 @@ package v1alpha1
import (
"github.com/fluxcd/pkg/apis/meta"
- corev1 "k8s.io/api/core/v1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
@@ -10,7 +9,14 @@ import (
// GitOpsSetFinalizer is the finalizer added to GitOpsSets to allow us to clean
// up resources.
-const GitOpsSetFinalizer = "finalizers.templates.weave.works"
+const GitOpsSetFinalizer = "finalizers.sets.gitops.pro"
+
+// LocalObjectReference contains enough information to locate the referenced Kubernetes resource object.
+type LocalObjectReference struct {
+ // Name of the referent.
+ // +required
+ Name string `json:"name"`
+}
// GitOpsSetTemplate describes a resource to create
type GitOpsSetTemplate struct {
@@ -73,7 +79,7 @@ type PullRequestGenerator struct {
// Reference to Secret in same namespace with a field "password" which is an
// auth token that can query the Git Provider API.
- SecretRef *corev1.LocalObjectReference `json:"secretRef,omitempty"`
+ SecretRef *LocalObjectReference `json:"secretRef,omitempty"`
// Labels is used to filter the PRs that you want to target.
// This may be applied on the server.
@@ -137,7 +143,7 @@ type APIClientGenerator struct {
// Reference to Secret in same namespace with a field "caFile" which
// provides the Certificate Authority to trust when making API calls.
- SecretRef *corev1.LocalObjectReference `json:"secretRef,omitempty"`
+ SecretRef *LocalObjectReference `json:"secretRef,omitempty"`
}
// HeadersReference references either a Secret or ConfigMap to be used for
diff --git a/api/v1alpha1/groupversion_info.go b/api/v1alpha1/groupversion_info.go
index 0f9c419a..971fd001 100644
--- a/api/v1alpha1/groupversion_info.go
+++ b/api/v1alpha1/groupversion_info.go
@@ -1,6 +1,6 @@
// Package v1alpha1 contains API Schema definitions for the templates v1alpha1 API group
// +kubebuilder:object:generate=true
-// +groupName=templates.weave.works
+// +groupName=sets.gitops.pro
package v1alpha1
import (
@@ -10,7 +10,7 @@ import (
var (
// GroupVersion is group version used to register these objects
- GroupVersion = schema.GroupVersion{Group: "templates.weave.works", Version: "v1alpha1"}
+ GroupVersion = schema.GroupVersion{Group: "sets.gitops.pro", Version: "v1alpha1"}
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go
index 0daf46c1..a42f91f8 100644
--- a/api/v1alpha1/zz_generated.deepcopy.go
+++ b/api/v1alpha1/zz_generated.deepcopy.go
@@ -1,8 +1,7 @@
//go:build !ignore_autogenerated
-// +build !ignore_autogenerated
/*
-Copyright 2023.
+Copyright 2025.
*/
// Code generated by controller-gen. DO NOT EDIT.
@@ -10,7 +9,6 @@ Copyright 2023.
package v1alpha1
import (
- corev1 "k8s.io/api/core/v1"
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@@ -32,7 +30,7 @@ func (in *APIClientGenerator) DeepCopyInto(out *APIClientGenerator) {
}
if in.SecretRef != nil {
in, out := &in.SecretRef, &out.SecretRef
- *out = new(corev1.LocalObjectReference)
+ *out = new(LocalObjectReference)
**out = **in
}
}
@@ -402,6 +400,21 @@ func (in *ListGenerator) DeepCopy() *ListGenerator {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.
+func (in *LocalObjectReference) DeepCopy() *LocalObjectReference {
+ if in == nil {
+ return nil
+ }
+ out := new(LocalObjectReference)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MatrixGenerator) DeepCopyInto(out *MatrixGenerator) {
*out = *in
@@ -455,7 +468,7 @@ func (in *PullRequestGenerator) DeepCopyInto(out *PullRequestGenerator) {
out.Interval = in.Interval
if in.SecretRef != nil {
in, out := &in.SecretRef, &out.SecretRef
- *out = new(corev1.LocalObjectReference)
+ *out = new(LocalObjectReference)
**out = **in
}
if in.Labels != nil {
diff --git a/cmd/gitopssets-cli/main.go b/cmd/gitopssets-cli/main.go
index 8bf0e6e8..1c6e6375 100644
--- a/cmd/gitopssets-cli/main.go
+++ b/cmd/gitopssets-cli/main.go
@@ -1,8 +1,8 @@
package main
import (
+ "github.com/gitops-tools/gitopssets-controller/pkg/cmd"
"github.com/spf13/cobra"
- "github.com/weaveworks/gitopssets-controller/pkg/cmd"
)
func main() {
diff --git a/config/crd/bases/templates.weave.works_gitopssets.yaml b/config/crd/bases/sets.gitops.pro_gitopssets.yaml
similarity index 60%
rename from config/crd/bases/templates.weave.works_gitopssets.yaml
rename to config/crd/bases/sets.gitops.pro_gitopssets.yaml
index f82b32f7..5ff4c106 100644
--- a/config/crd/bases/templates.weave.works_gitopssets.yaml
+++ b/config/crd/bases/sets.gitops.pro_gitopssets.yaml
@@ -3,11 +3,10 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.10.0
- creationTimestamp: null
- name: gitopssets.templates.weave.works
+ controller-gen.kubebuilder.io/version: v0.16.1
+ name: gitopssets.sets.gitops.pro
spec:
- group: templates.weave.works
+ group: sets.gitops.pro
names:
kind: GitOpsSet
listKind: GitOpsSetList
@@ -33,14 +32,19 @@ spec:
description: GitOpsSet is the Schema for the gitopssets API
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
@@ -55,23 +59,27 @@ spec:
for this GitOpsSet.
properties:
apiClient:
- description: APIClientGenerator defines a generator that queries
- an API endpoint and uses that to generate data.
+ description: |-
+ APIClientGenerator defines a generator that queries an API endpoint and uses
+ that to generate data.
properties:
body:
- description: "Body is set as the body in a POST request.
- \n If set, this will configure the Method to be POST automatically."
+ description: |-
+ Body is set as the body in a POST request.
+
+ If set, this will configure the Method to be POST automatically.
x-kubernetes-preserve-unknown-fields: true
endpoint:
description: This is the API endpoint to use.
pattern: ^(http|https)://
type: string
headersRef:
- description: "HeadersRef allows optional configuration of
- a Secret or ConfigMap to add additional headers to an
- outgoing request. \n For example, a Secret with a key
- Authorization: Bearer abc123 could be used to configure
- an authorization header."
+ description: |-
+ HeadersRef allows optional configuration of a Secret or ConfigMap to add
+ additional headers to an outgoing request.
+
+ For example, a Secret with a key Authorization: Bearer abc123 could be
+ used to configure an authorization header.
properties:
kind:
description: The resource kind to get headers from.
@@ -91,9 +99,12 @@ spec:
description: The interval at which to poll the API endpoint.
type: string
jsonPath:
- description: "JSONPath is string that is used to modify
- the result of the API call. \n This can be used to extract
- a repeating element from a response. https://kubernetes.io/docs/reference/kubectl/jsonpath/"
+ description: |-
+ JSONPath is string that is used to modify the result of the API
+ call.
+
+ This can be used to extract a repeating element from a response.
+ https://kubernetes.io/docs/reference/kubectl/jsonpath/
type: string
method:
default: GET
@@ -104,41 +115,45 @@ spec:
- POST
type: string
secretRef:
- description: Reference to Secret in same namespace with
- a field "caFile" which provides the Certificate Authority
- to trust when making API calls.
+ description: |-
+ Reference to Secret in same namespace with a field "caFile" which
+ provides the Certificate Authority to trust when making API calls.
properties:
name:
- description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- TODO: Add other useful fields. apiVersion, kind, uid?'
+ description: Name of the referent.
type: string
+ required:
+ - name
type: object
- x-kubernetes-map-type: atomic
singleElement:
- description: "SingleElement means generate a single element
- with the result of the API call. \n When true, the response
- must be a JSON object and will be returned as a single
- element, i.e. only one element will be generated containing
- the entire object."
+ description: |-
+ SingleElement means generate a single element with the result of the API
+ call.
+
+ When true, the response must be a JSON object and will be returned as a
+ single element, i.e. only one element will be generated containing the
+ entire object.
type: boolean
required:
- interval
type: object
cluster:
- description: ClusterGenerator defines a generator that queries
- the cluster API for relevant clusters.
+ description: |-
+ ClusterGenerator defines a generator that queries the cluster API for
+ relevant clusters.
properties:
selector:
- description: "Selector is used to filter the clusters that
- you want to target. \n If no selector is provided, no
- clusters will be matched."
+ description: |-
+ Selector is used to filter the clusters that you want to target.
+
+ If no selector is provided, no clusters will be matched.
properties:
matchExpressions:
description: matchExpressions is a list of label selector
requirements. The requirements are ANDed.
items:
- description: A label selector requirement is a selector
- that contains values, a key, and an operator that
+ description: |-
+ A label selector requirement is a selector that contains values, a key, and an operator that
relates the key and values.
properties:
key:
@@ -146,39 +161,40 @@ spec:
applies to.
type: string
operator:
- description: operator represents a key's relationship
- to a set of values. Valid operators are In,
- NotIn, Exists and DoesNotExist.
+ description: |-
+ operator represents a key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string values.
- If the operator is In or NotIn, the values array
- must be non-empty. If the operator is Exists
- or DoesNotExist, the values array must be empty.
- This array is replaced during a strategic merge
- patch.
+ description: |-
+ values is an array of string values. If the operator is In or NotIn,
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
+ the values array must be empty. This array is replaced during a strategic
+ merge patch.
items:
type: string
type: array
+ x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
+ x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value} pairs.
- A single {key,value} in the matchLabels map is equivalent
- to an element of matchExpressions, whose key field
- is "key", the operator is "In", and the values array
- contains only "value". The requirements are ANDed.
+ description: |-
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
type: object
config:
- description: ConfigGenerator loads a referenced ConfigMap or
+ description: |-
+ ConfigGenerator loads a referenced ConfigMap or
Secret from the Cluster and makes it available as a resource.
properties:
kind:
@@ -199,12 +215,13 @@ spec:
a Flux GitRepository resource.
properties:
directories:
- description: Directories is a set of rules for identifying
- directories to be generated.
+ description: |-
+ Directories is a set of rules for identifying directories to be
+ generated.
items:
- description: RepositoryGeneratorDirectoryItem stores the
- information about a specific directory to be generated
- from.
+ description: |-
+ RepositoryGeneratorDirectoryItem stores the information about a specific
+ directory to be generated from.
properties:
exclude:
type: boolean
@@ -251,37 +268,39 @@ spec:
type: array
type: object
matrix:
- description: MatrixGenerator defines a matrix that combines
- generators. The matrix is a cartesian product of the generators.
+ description: |-
+ MatrixGenerator defines a matrix that combines generators.
+ The matrix is a cartesian product of the generators.
properties:
generators:
description: Generators is a list of generators to be combined.
items:
- description: GitOpsSetNestedGenerator describes the generators
- usable by the MatrixGenerator. This is a subset of the
- generators allowed by the GitOpsSetGenerator because
- the CRD format doesn't support recursive declarations.
+ description: |-
+ GitOpsSetNestedGenerator describes the generators usable by the MatrixGenerator.
+ This is a subset of the generators allowed by the GitOpsSetGenerator because the CRD format doesn't support recursive declarations.
properties:
apiClient:
- description: APIClientGenerator defines a generator
- that queries an API endpoint and uses that to generate
- data.
+ description: |-
+ APIClientGenerator defines a generator that queries an API endpoint and uses
+ that to generate data.
properties:
body:
- description: "Body is set as the body in a POST
- request. \n If set, this will configure the
- Method to be POST automatically."
+ description: |-
+ Body is set as the body in a POST request.
+
+ If set, this will configure the Method to be POST automatically.
x-kubernetes-preserve-unknown-fields: true
endpoint:
description: This is the API endpoint to use.
pattern: ^(http|https)://
type: string
headersRef:
- description: "HeadersRef allows optional configuration
- of a Secret or ConfigMap to add additional headers
- to an outgoing request. \n For example, a Secret
- with a key Authorization: Bearer abc123 could
- be used to configure an authorization header."
+ description: |-
+ HeadersRef allows optional configuration of a Secret or ConfigMap to add
+ additional headers to an outgoing request.
+
+ For example, a Secret with a key Authorization: Bearer abc123 could be
+ used to configure an authorization header.
properties:
kind:
description: The resource kind to get headers
@@ -303,10 +322,12 @@ spec:
API endpoint.
type: string
jsonPath:
- description: "JSONPath is string that is used
- to modify the result of the API call. \n This
- can be used to extract a repeating element from
- a response. https://kubernetes.io/docs/reference/kubectl/jsonpath/"
+ description: |-
+ JSONPath is string that is used to modify the result of the API
+ call.
+
+ This can be used to extract a repeating element from a response.
+ https://kubernetes.io/docs/reference/kubectl/jsonpath/
type: string
method:
default: GET
@@ -317,91 +338,88 @@ spec:
- POST
type: string
secretRef:
- description: Reference to Secret in same namespace
- with a field "caFile" which provides the Certificate
- Authority to trust when making API calls.
+ description: |-
+ Reference to Secret in same namespace with a field "caFile" which
+ provides the Certificate Authority to trust when making API calls.
properties:
name:
- description: 'Name of the referent. More info:
- https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- TODO: Add other useful fields. apiVersion,
- kind, uid?'
+ description: Name of the referent.
type: string
+ required:
+ - name
type: object
- x-kubernetes-map-type: atomic
singleElement:
- description: "SingleElement means generate a single
- element with the result of the API call. \n
- When true, the response must be a JSON object
- and will be returned as a single element, i.e.
- only one element will be generated containing
- the entire object."
+ description: |-
+ SingleElement means generate a single element with the result of the API
+ call.
+
+ When true, the response must be a JSON object and will be returned as a
+ single element, i.e. only one element will be generated containing the
+ entire object.
type: boolean
required:
- interval
type: object
cluster:
- description: ClusterGenerator defines a generator
- that queries the cluster API for relevant clusters.
+ description: |-
+ ClusterGenerator defines a generator that queries the cluster API for
+ relevant clusters.
properties:
selector:
- description: "Selector is used to filter the clusters
- that you want to target. \n If no selector is
- provided, no clusters will be matched."
+ description: |-
+ Selector is used to filter the clusters that you want to target.
+
+ If no selector is provided, no clusters will be matched.
properties:
matchExpressions:
description: matchExpressions is a list of
label selector requirements. The requirements
are ANDed.
items:
- description: A label selector requirement
- is a selector that contains values, a
- key, and an operator that relates the
- key and values.
+ description: |-
+ A label selector requirement is a selector that contains values, a key, and an operator that
+ relates the key and values.
properties:
key:
description: key is the label key that
the selector applies to.
type: string
operator:
- description: operator represents a key's
- relationship to a set of values. Valid
- operators are In, NotIn, Exists and
- DoesNotExist.
+ description: |-
+ operator represents a key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
- description: values is an array of string
- values. If the operator is In or NotIn,
- the values array must be non-empty.
- If the operator is Exists or DoesNotExist,
- the values array must be empty. This
- array is replaced during a strategic
+ description: |-
+ values is an array of string values. If the operator is In or NotIn,
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
+ the values array must be empty. This array is replaced during a strategic
merge patch.
items:
type: string
type: array
+ x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
+ x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
- description: matchLabels is a map of {key,value}
- pairs. A single {key,value} in the matchLabels
- map is equivalent to an element of matchExpressions,
- whose key field is "key", the operator is
- "In", and the values array contains only
- "value". The requirements are ANDed.
+ description: |-
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
x-kubernetes-map-type: atomic
type: object
config:
- description: ConfigGenerator loads a referenced ConfigMap
- or Secret from the Cluster and makes it available
- as a resource.
+ description: |-
+ ConfigGenerator loads a referenced ConfigMap or
+ Secret from the Cluster and makes it available as a resource.
properties:
kind:
description: Kind of the referent.
@@ -421,12 +439,13 @@ spec:
files in a Flux GitRepository resource.
properties:
directories:
- description: Directories is a set of rules for
- identifying directories to be generated.
+ description: |-
+ Directories is a set of rules for identifying directories to be
+ generated.
items:
- description: RepositoryGeneratorDirectoryItem
- stores the information about a specific directory
- to be generated from.
+ description: |-
+ RepositoryGeneratorDirectoryItem stores the information about a specific
+ directory to be generated from.
properties:
exclude:
type: boolean
@@ -476,22 +495,23 @@ spec:
type: array
type: object
name:
- description: Name is an optional field that will be
- used to prefix the values generated by the nested
- generators, this allows multiple generators of the
- same type in a single Matrix generator.
+ description: |-
+ Name is an optional field that will be used to prefix the values generated
+ by the nested generators, this allows multiple generators of the same
+ type in a single Matrix generator.
type: string
ociRepository:
description: OCIRepositoryGenerator generates from
files in a Flux OCIRepository resource.
properties:
directories:
- description: Directories is a set of rules for
- identifying directories to be generated.
+ description: |-
+ Directories is a set of rules for identifying directories to be
+ generated.
items:
- description: RepositoryGeneratorDirectoryItem
- stores the information about a specific directory
- to be generated from.
+ description: |-
+ RepositoryGeneratorDirectoryItem stores the information about a specific
+ directory to be generated from.
properties:
exclude:
type: boolean
@@ -523,9 +543,9 @@ spec:
type: string
type: object
pullRequests:
- description: PullRequestGenerator defines a generator
- that queries a Git hosting service for relevant
- PRs.
+ description: |-
+ PullRequestGenerator defines a generator that queries a Git hosting service
+ for relevant PRs.
properties:
driver:
description: Determines which git-api protocol
@@ -536,38 +556,37 @@ spec:
- bitbucketserver
type: string
forks:
- description: Fork is used to filter out forks
- from the target PRs if false, or to include
- forks if true
+ description: |-
+ Fork is used to filter out forks from the target PRs if false,
+ or to include forks if true
type: boolean
interval:
description: The interval at which to check for
repository updates.
type: string
labels:
- description: Labels is used to filter the PRs
- that you want to target. This may be applied
- on the server.
+ description: |-
+ Labels is used to filter the PRs that you want to target.
+ This may be applied on the server.
items:
type: string
type: array
repo:
- description: This should be the Repo you want
- to query. e.g. my-org/my-repo
+ description: |-
+ This should be the Repo you want to query.
+ e.g. my-org/my-repo
type: string
secretRef:
- description: Reference to Secret in same namespace
- with a field "password" which is an auth token
- that can query the Git Provider API.
+ description: |-
+ Reference to Secret in same namespace with a field "password" which is an
+ auth token that can query the Git Provider API.
properties:
name:
- description: 'Name of the referent. More info:
- https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- TODO: Add other useful fields. apiVersion,
- kind, uid?'
+ description: Name of the referent.
type: string
+ required:
+ - name
type: object
- x-kubernetes-map-type: atomic
serverURL:
description: This is the API endpoint to use.
pattern: ^https://
@@ -580,11 +599,13 @@ spec:
type: object
type: array
singleElement:
- description: "SingleElement means generate a single element
- with the result of the merged generator elements. \n When
- true, the matrix elements will be merged to a single element,
- with whatever prefixes they have. It's recommended that
- you use the Name field to separate out elements."
+ description: |-
+ SingleElement means generate a single element with the result of the
+ merged generator elements.
+
+ When true, the matrix elements will be merged to a single element, with
+ whatever prefixes they have.
+ It's recommended that you use the Name field to separate out elements.
type: boolean
type: object
ociRepository:
@@ -592,12 +613,13 @@ spec:
a Flux OCIRepository resource.
properties:
directories:
- description: Directories is a set of rules for identifying
- directories to be generated.
+ description: |-
+ Directories is a set of rules for identifying directories to be
+ generated.
items:
- description: RepositoryGeneratorDirectoryItem stores the
- information about a specific directory to be generated
- from.
+ description: |-
+ RepositoryGeneratorDirectoryItem stores the information about a specific
+ directory to be generated from.
properties:
exclude:
type: boolean
@@ -628,8 +650,9 @@ spec:
type: string
type: object
pullRequests:
- description: PullRequestGenerator defines a generator that queries
- a Git hosting service for relevant PRs.
+ description: |-
+ PullRequestGenerator defines a generator that queries a Git hosting service
+ for relevant PRs.
properties:
driver:
description: Determines which git-api protocol to use.
@@ -639,34 +662,37 @@ spec:
- bitbucketserver
type: string
forks:
- description: Fork is used to filter out forks from the target
- PRs if false, or to include forks if true
+ description: |-
+ Fork is used to filter out forks from the target PRs if false,
+ or to include forks if true
type: boolean
interval:
description: The interval at which to check for repository
updates.
type: string
labels:
- description: Labels is used to filter the PRs that you want
- to target. This may be applied on the server.
+ description: |-
+ Labels is used to filter the PRs that you want to target.
+ This may be applied on the server.
items:
type: string
type: array
repo:
- description: This should be the Repo you want to query.
+ description: |-
+ This should be the Repo you want to query.
e.g. my-org/my-repo
type: string
secretRef:
- description: Reference to Secret in same namespace with
- a field "password" which is an auth token that can query
- the Git Provider API.
+ description: |-
+ Reference to Secret in same namespace with a field "password" which is an
+ auth token that can query the Git Provider API.
properties:
name:
- description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
- TODO: Add other useful fields. apiVersion, kind, uid?'
+ description: Name of the referent.
type: string
+ required:
+ - name
type: object
- x-kubernetes-map-type: atomic
serverURL:
description: This is the API endpoint to use.
pattern: ^https://
@@ -679,16 +705,19 @@ spec:
type: object
type: array
serviceAccountName:
- description: The name of the Kubernetes service account to impersonate
+ description: |-
+ The name of the Kubernetes service account to impersonate
when reconciling this Kustomization.
type: string
suspend:
- description: Suspend tells the controller to suspend the reconciliation
- of this GitOpsSet.
+ description: |-
+ Suspend tells the controller to suspend the reconciliation of this
+ GitOpsSet.
type: boolean
templates:
- description: Templates are a set of YAML templates that are rendered
- into resources from the data supplied by the generators.
+ description: |-
+ Templates are a set of YAML templates that are rendered into resources
+ from the data supplied by the generators.
items:
description: GitOpsSetTemplate describes a resource to create
properties:
@@ -697,9 +726,10 @@ spec:
type: object
x-kubernetes-preserve-unknown-fields: true
repeat:
- description: Repeat is a JSONPath string defining that the template
- content should be repeated for each of the matching elements
- in the JSONPath expression. https://kubernetes.io/docs/reference/kubectl/jsonpath/
+ description: |-
+ Repeat is a JSONPath string defining that the template content should be
+ repeated for each of the matching elements in the JSONPath expression.
+ https://kubernetes.io/docs/reference/kubectl/jsonpath/
type: string
required:
- content
@@ -712,43 +742,35 @@ spec:
conditions:
description: Conditions holds the conditions for the GitOpsSet
items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
properties:
lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
@@ -763,10 +785,6 @@ spec:
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -779,8 +797,9 @@ spec:
type: object
type: array
inventory:
- description: Inventory contains the list of Kubernetes resource object
- references that have been successfully applied
+ description: |-
+ Inventory contains the list of Kubernetes resource object references that
+ have been successfully applied
properties:
entries:
description: Entries of Kubernetes resource object references.
@@ -789,8 +808,9 @@ spec:
to locate a resource within a cluster.
properties:
id:
- description: ID is the string representation of the Kubernetes
- resource object's metadata, in the format '___'.
+ description: |-
+ ID is the string representation of the Kubernetes resource object's metadata,
+ in the format '___'.
type: string
v:
description: Version is the API version of the Kubernetes
@@ -803,13 +823,15 @@ spec:
type: array
type: object
lastHandledReconcileAt:
- description: LastHandledReconcileAt holds the value of the most recent
- reconcile request value, so a change of the annotation value can
- be detected.
+ description: |-
+ LastHandledReconcileAt holds the value of the most recent
+ reconcile request value, so a change of the annotation value
+ can be detected.
type: string
observedGeneration:
- description: ObservedGeneration is the last observed generation of
- the HelmRepository object.
+ description: |-
+ ObservedGeneration is the last observed generation of the HelmRepository
+ object.
format: int64
type: integer
type: object
diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml
index 803780f1..3caac936 100644
--- a/config/crd/kustomization.yaml
+++ b/config/crd/kustomization.yaml
@@ -2,7 +2,7 @@
# since it depends on service name and namespace that are out of this kustomize package.
# It should be run by config/default
resources:
-- bases/templates.weave.works_gitopssets.yaml
+- bases/sets.gitops.pro_gitopssets.yaml
#+kubebuilder:scaffold:crdkustomizeresource
patchesStrategicMerge:
diff --git a/config/crd/patches/cainjection_in_gitopssets.yaml b/config/crd/patches/cainjection_in_gitopssets.yaml
index b6075b54..1dcdd075 100644
--- a/config/crd/patches/cainjection_in_gitopssets.yaml
+++ b/config/crd/patches/cainjection_in_gitopssets.yaml
@@ -4,4 +4,4 @@ kind: CustomResourceDefinition
metadata:
annotations:
cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME)
- name: gitopssets.templates.weave.works
+ name: gitopssets.sets.gitops.pro
diff --git a/config/crd/patches/webhook_in_gitopssets.yaml b/config/crd/patches/webhook_in_gitopssets.yaml
index 5d8c8758..1a5a1950 100644
--- a/config/crd/patches/webhook_in_gitopssets.yaml
+++ b/config/crd/patches/webhook_in_gitopssets.yaml
@@ -2,7 +2,7 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
- name: gitopssets.templates.weave.works
+ name: gitopssets.sets.gitops.pro
spec:
conversion:
strategy: Webhook
diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml
index 1590bfdd..742c79d5 100644
--- a/config/manager/kustomization.yaml
+++ b/config/manager/kustomization.yaml
@@ -4,5 +4,5 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: controller
- newName: ghcr.io/weaveworks/gitopssets-controller
+ newName: ghcr.io/gitops-tools/gitopssets-controller
newTag: latest
diff --git a/config/rbac/gitopsset_editor_role.yaml b/config/rbac/gitopsset_editor_role.yaml
index c50b5bd2..f21402b7 100644
--- a/config/rbac/gitopsset_editor_role.yaml
+++ b/config/rbac/gitopsset_editor_role.yaml
@@ -12,7 +12,7 @@ metadata:
name: gitopsset-editor-role
rules:
- apiGroups:
- - templates.weave.works
+ - sets.gitops.pro
resources:
- gitopssets
verbs:
@@ -24,7 +24,7 @@ rules:
- update
- watch
- apiGroups:
- - templates.weave.works
+ - sets.gitops.pro
resources:
- gitopssets/status
verbs:
diff --git a/config/rbac/gitopsset_viewer_role.yaml b/config/rbac/gitopsset_viewer_role.yaml
index 0ec4bd32..621a2488 100644
--- a/config/rbac/gitopsset_viewer_role.yaml
+++ b/config/rbac/gitopsset_viewer_role.yaml
@@ -12,7 +12,7 @@ metadata:
name: gitopsset-viewer-role
rules:
- apiGroups:
- - templates.weave.works
+ - sets.gitops.pro
resources:
- gitopssets
verbs:
@@ -20,7 +20,7 @@ rules:
- list
- watch
- apiGroups:
- - templates.weave.works
+ - sets.gitops.pro
resources:
- gitopssets/status
verbs:
diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml
index b7ab2027..0be750f1 100644
--- a/config/rbac/role.yaml
+++ b/config/rbac/role.yaml
@@ -2,13 +2,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
- creationTimestamp: null
name: manager-role
rules:
- apiGroups:
- ""
resources:
- configmaps
+ - secrets
verbs:
- get
- list
@@ -20,14 +20,6 @@ rules:
verbs:
- create
- patch
-- apiGroups:
- - ""
- resources:
- - secrets
- verbs:
- - get
- - list
- - watch
- apiGroups:
- ""
resources:
@@ -51,23 +43,7 @@ rules:
- list
- watch
- apiGroups:
- - source.toolkit.fluxcd.io
- resources:
- - gitrepositories
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - source.toolkit.fluxcd.io
- resources:
- - ocirepositories
- verbs:
- - get
- - list
- - watch
-- apiGroups:
- - templates.weave.works
+ - sets.gitops.pro
resources:
- gitopssets
verbs:
@@ -79,16 +55,25 @@ rules:
- update
- watch
- apiGroups:
- - templates.weave.works
+ - sets.gitops.pro
resources:
- gitopssets/finalizers
verbs:
- update
- apiGroups:
- - templates.weave.works
+ - sets.gitops.pro
resources:
- gitopssets/status
verbs:
- get
- patch
- update
+- apiGroups:
+ - source.toolkit.fluxcd.io
+ resources:
+ - gitrepositories
+ - ocirepositories
+ verbs:
+ - get
+ - list
+ - watch
diff --git a/config/samples/templates_v1alpha1_gitopsset.yaml b/config/samples/templates_v1alpha1_gitopsset.yaml
index 85192c52..29d50e61 100644
--- a/config/samples/templates_v1alpha1_gitopsset.yaml
+++ b/config/samples/templates_v1alpha1_gitopsset.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/contrib/pipelines/pipelines.yaml b/contrib/pipelines/pipelines.yaml
index 17672a90..8d6e4ea5 100644
--- a/contrib/pipelines/pipelines.yaml
+++ b/contrib/pipelines/pipelines.yaml
@@ -1,5 +1,5 @@
---
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: pipeline-gitopssets
@@ -87,4 +87,4 @@ spec:
kind: Pipeline
sourceRef:
kind: GitRepository
- name: flux-system
\ No newline at end of file
+ name: flux-system
diff --git a/contrib/prometheus/dynamic-memory-reservations.yaml b/contrib/prometheus/dynamic-memory-reservations.yaml
index 2a01b5f5..f29e93bd 100644
--- a/contrib/prometheus/dynamic-memory-reservations.yaml
+++ b/contrib/prometheus/dynamic-memory-reservations.yaml
@@ -1,5 +1,5 @@
---
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: dynamic-memory-reservations
@@ -36,4 +36,4 @@ spec:
sourceRef:
kind: GitRepository
name: flux-system
- namespace: flux-system
\ No newline at end of file
+ namespace: flux-system
diff --git a/controllers/gitopsset_controller.go b/controllers/gitopsset_controller.go
index af7a7bb2..6d594597 100644
--- a/controllers/gitopsset_controller.go
+++ b/controllers/gitopsset_controller.go
@@ -13,7 +13,8 @@ import (
"github.com/fluxcd/pkg/runtime/conditions"
runtimeCtrl "github.com/fluxcd/pkg/runtime/controller"
"github.com/fluxcd/pkg/runtime/predicates"
- sourcev1 "github.com/fluxcd/source-controller/api/v1beta2"
+ sourcev1 "github.com/fluxcd/source-controller/api/v1"
+ sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
"github.com/gitops-tools/pkg/sets"
"github.com/go-logr/logr"
corev1 "k8s.io/api/core/v1"
@@ -34,10 +35,10 @@ import (
"sigs.k8s.io/controller-runtime/pkg/predicate"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/controllers/templates"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
clustersv1 "github.com/weaveworks/cluster-controller/api/v1alpha1"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
)
var accessor = meta.NewAccessor()
@@ -83,9 +84,9 @@ func (r *GitOpsSetReconciler) event(obj *templatesv1.GitOpsSet, severity, msg st
r.EventRecorder.Event(obj, eventType, reason, msg)
}
-//+kubebuilder:rbac:groups=templates.weave.works,resources=gitopssets,verbs=get;list;watch;create;update;patch;delete
-//+kubebuilder:rbac:groups=templates.weave.works,resources=gitopssets/status,verbs=get;update;patch
-//+kubebuilder:rbac:groups=templates.weave.works,resources=gitopssets/finalizers,verbs=update
+//+kubebuilder:rbac:groups=sets.gitops.pro,resources=gitopssets,verbs=get;list;watch;create;update;patch;delete
+//+kubebuilder:rbac:groups=sets.gitops.pro,resources=gitopssets/status,verbs=get;update;patch
+//+kubebuilder:rbac:groups=sets.gitops.pro,resources=gitopssets/finalizers,verbs=update
//+kubebuilder:rbac:groups=source.toolkit.fluxcd.io,resources=gitrepositories,verbs=get;list;watch
//+kubebuilder:rbac:groups=source.toolkit.fluxcd.io,resources=ocirepositories,verbs=get;list;watch
//+kubebuilder:rbac:groups="",resources=secrets,verbs=get;list;watch
@@ -116,7 +117,11 @@ func (r *GitOpsSetReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
if !controllerutil.ContainsFinalizer(&gitOpsSet, templatesv1.GitOpsSetFinalizer) {
controllerutil.AddFinalizer(&gitOpsSet, templatesv1.GitOpsSetFinalizer)
- return ctrl.Result{Requeue: true}, r.Update(ctx, &gitOpsSet)
+ if err := r.Update(ctx, &gitOpsSet); err != nil {
+ return ctrl.Result{}, err
+ }
+
+ return ctrl.Result{Requeue: true}, nil
}
// Skip reconciliation if the GitOpsSet is suspended.
@@ -376,7 +381,7 @@ func (r *GitOpsSetReconciler) SetupWithManager(mgr ctrl.Manager) error {
if r.Generators["OCIRepository"] != nil {
builder.Watches(
- &sourcev1.OCIRepository{},
+ &sourcev1beta2.OCIRepository{},
handler.EnqueueRequestsFromMapFunc(r.ociRepositoryToGitOpsSet),
)
}
diff --git a/controllers/gitopsset_controller_test.go b/controllers/gitopsset_controller_test.go
index 3dda867e..020cdac3 100644
--- a/controllers/gitopsset_controller_test.go
+++ b/controllers/gitopsset_controller_test.go
@@ -11,6 +11,7 @@ import (
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1beta2"
"github.com/fluxcd/pkg/apis/meta"
fluxMeta "github.com/fluxcd/pkg/apis/meta"
+ sourcev1 "github.com/fluxcd/source-controller/api/v1"
sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
"github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
@@ -30,12 +31,12 @@ import (
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/envtest"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/gitrepository"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/list"
+ "github.com/gitops-tools/gitopssets-controller/test"
clustersv1 "github.com/weaveworks/cluster-controller/api/v1alpha1"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/gitrepository"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/list"
- "github.com/weaveworks/gitopssets-controller/test"
)
var kustomizationGVK = schema.GroupVersionKind{
@@ -77,6 +78,7 @@ func TestReconciliation(t *testing.T) {
test.AssertNoError(t, clientgoscheme.AddToScheme(scheme))
test.AssertNoError(t, templatesv1.AddToScheme(scheme))
test.AssertNoError(t, sourcev1beta2.AddToScheme(scheme))
+ test.AssertNoError(t, sourcev1.AddToScheme(scheme))
k8sClient, err := client.New(cfg, client.Options{Scheme: scheme})
test.AssertNoError(t, err)
@@ -333,8 +335,8 @@ func TestReconciliation(t *testing.T) {
"testing": "newVersion",
}
k.ObjectMeta.Labels = map[string]string{
- "templates.weave.works/name": "demo-set",
- "templates.weave.works/namespace": "default",
+ "sets.gitops.pro/name": "demo-set",
+ "sets.gitops.pro/namespace": "default",
}
k.Spec.Path = "./templated/clusters/engineering-dev/"
k.Spec.KubeConfig = &meta.KubeConfigReference{SecretRef: meta.SecretKeyReference{Name: "engineering-dev"}}
@@ -393,8 +395,8 @@ func TestReconciliation(t *testing.T) {
}
wantCM := test.NewConfigMap(func(c *corev1.ConfigMap) {
c.ObjectMeta.Labels = map[string]string{
- "templates.weave.works/name": "demo-set",
- "templates.weave.works/namespace": "default",
+ "sets.gitops.pro/name": "demo-set",
+ "sets.gitops.pro/namespace": "default",
}
c.Data = map[string]string{
"testing": "test-value1",
@@ -430,8 +432,8 @@ func TestReconciliation(t *testing.T) {
wantCM = test.NewConfigMap(func(c *corev1.ConfigMap) {
c.ObjectMeta.Labels = map[string]string{
- "templates.weave.works/name": "demo-set",
- "templates.weave.works/namespace": "default",
+ "sets.gitops.pro/name": "demo-set",
+ "sets.gitops.pro/namespace": "default",
}
c.Data = map[string]string{
"testing": "test-value2",
@@ -676,8 +678,8 @@ func TestReconciliation(t *testing.T) {
}
wantUpdated := test.MakeTestKustomization(nsn("default", "engineering-dev-demo"), func(k *kustomizev1.Kustomization) {
k.ObjectMeta.Labels = map[string]string{
- "templates.weave.works/name": "demo-set",
- "templates.weave.works/namespace": "default",
+ "sets.gitops.pro/name": "demo-set",
+ "sets.gitops.pro/namespace": "default",
}
k.Spec.Path = "./templated/clusters/engineering-dev/"
k.Spec.Force = true
diff --git a/controllers/templates/renderer.go b/controllers/templates/renderer.go
index eed2db71..626d8d91 100644
--- a/controllers/templates/renderer.go
+++ b/controllers/templates/renderer.go
@@ -18,8 +18,8 @@ import (
"k8s.io/client-go/util/jsonpath"
syaml "sigs.k8s.io/yaml"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
)
// TemplateDelimiterAnnotation can be added to a Template to change the Go
@@ -28,7 +28,7 @@ import (
// It's assumed to be a string with "left,right"
// By default the delimiters are the standard Go templating delimiters:
// {{ and }}.
-const TemplateDelimiterAnnotation string = "templates.weave.works/delimiters"
+const TemplateDelimiterAnnotation string = "sets.gitops.pro/delimiters"
var templateFuncs template.FuncMap = makeTemplateFunctions()
@@ -171,8 +171,8 @@ func renderTemplateParams(index int, tmpl templatesv1.GitOpsSetTemplate, params
// Add source labels
labels := map[string]string{
- "templates.weave.works/name": gs.GetName(),
- "templates.weave.works/namespace": gs.GetNamespace(),
+ "sets.gitops.pro/name": gs.GetName(),
+ "sets.gitops.pro/namespace": gs.GetNamespace(),
}
renderedLabels := uns.GetLabels()
diff --git a/controllers/templates/renderer_test.go b/controllers/templates/renderer_test.go
index 1b16a4d5..aeded35b 100644
--- a/controllers/templates/renderer_test.go
+++ b/controllers/templates/renderer_test.go
@@ -18,11 +18,11 @@ import (
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/intstr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/list"
- "github.com/weaveworks/gitopssets-controller/pkg/setup"
- "github.com/weaveworks/gitopssets-controller/test"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/list"
+ "github.com/gitops-tools/gitopssets-controller/pkg/setup"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
const (
@@ -51,13 +51,13 @@ func TestRender(t *testing.T) {
want: []*unstructured.Unstructured{
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-dev-demo"), setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-prod-demo"), setClusterIP("192.168.100.20"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-prod"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-preprod-demo"), setClusterIP("192.168.150.30"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-preprod"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
},
},
{
@@ -80,7 +80,7 @@ func TestRender(t *testing.T) {
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineeringdev-demo"),
setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
},
},
{
@@ -91,7 +91,7 @@ func TestRender(t *testing.T) {
setOptions: []func(*templatesv1.GitOpsSet){
func(s *templatesv1.GitOpsSet) {
s.ObjectMeta.Annotations = map[string]string{
- "templates.weave.works/delimiters": "$[,]",
+ "sets.gitops.pro/delimiters": "$[,]",
}
s.Spec.Templates = []templatesv1.GitOpsSetTemplate{
{
@@ -111,7 +111,7 @@ func TestRender(t *testing.T) {
test.ToUnstructured(t, makeTestService(nsn("demo", "engineering-demo"),
setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": string("engineering")}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": string("test-gitops-set"), "templates.weave.works/namespace": string("demo")}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": string("test-gitops-set"), "sets.gitops.pro/namespace": string("demo")}))),
},
},
{
@@ -139,16 +139,16 @@ func TestRender(t *testing.T) {
want: []*unstructured.Unstructured{
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-dev-demo1"), setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-dev-demo2"), setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-prod-demo1"), setClusterIP("192.168.100.20"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-prod"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-prod-demo2"), setClusterIP("192.168.100.20"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-prod"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
},
},
{
@@ -170,8 +170,8 @@ func TestRender(t *testing.T) {
want: []*unstructured.Unstructured{
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-dev-demo1"), setClusterIP("192.168.0.252"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set",
- "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set",
+ "sets.gitops.pro/namespace": testNS}))),
},
},
{
@@ -199,11 +199,11 @@ func TestRender(t *testing.T) {
want: []*unstructured.Unstructured{
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-dev-demo1"), setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
test.ToUnstructured(t, makeTestNamespace("testing1-engineering-dev",
- addLabels[*corev1.Namespace](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Namespace](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
test.ToUnstructured(t, makeTestNamespace("testing2-engineering-dev",
- addLabels[*corev1.Namespace](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Namespace](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
},
},
{
@@ -231,7 +231,7 @@ func TestRender(t *testing.T) {
want: []*unstructured.Unstructured{
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-dev-demo1"), setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
},
},
{
@@ -253,8 +253,8 @@ func TestRender(t *testing.T) {
},
want: []*unstructured.Unstructured{
test.ToUnstructured(t, makeTestNamespace("nested-cluster", addLabels[*corev1.Namespace](map[string]string{
- "templates.weave.works/name": "test-gitops-set",
- "templates.weave.works/namespace": "demo",
+ "sets.gitops.pro/name": "test-gitops-set",
+ "sets.gitops.pro/namespace": "demo",
},
))),
},
@@ -271,7 +271,7 @@ func TestRender(t *testing.T) {
{
Content: runtime.RawExtension{
Raw: mustMarshalJSON(t, makeTestService(types.NamespacedName{Name: "{{ .Element.env }}-demo1", Namespace: testNS},
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/test": "test-value"}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/test": "test-value"}))),
},
},
}
@@ -280,10 +280,10 @@ func TestRender(t *testing.T) {
want: []*unstructured.Unstructured{
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-dev-demo1"), setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS, "templates.weave.works/test": "test-value"}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS, "sets.gitops.pro/test": "test-value"}))),
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-prod-demo1"), setClusterIP("192.168.100.20"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-prod"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS, "templates.weave.works/test": "test-value"}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS, "sets.gitops.pro/test": "test-value"}))),
},
},
{
@@ -298,7 +298,7 @@ func TestRender(t *testing.T) {
{
Content: runtime.RawExtension{
Raw: mustMarshalJSON(t, makeTestService(types.NamespacedName{Name: "{{ .Element.env }}-demo1", Namespace: testNS},
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/namespace": "new-ns"}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/namespace": "new-ns"}))),
},
},
}
@@ -307,10 +307,10 @@ func TestRender(t *testing.T) {
want: []*unstructured.Unstructured{
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-dev-demo1"), setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": "new-ns"}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": "new-ns"}))),
test.ToUnstructured(t, makeTestService(nsn(testNS, "engineering-prod-demo1"), setClusterIP("192.168.100.20"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering-prod"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": "new-ns"}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": "new-ns"}))),
},
},
{
@@ -333,7 +333,7 @@ func TestRender(t *testing.T) {
test.ToUnstructured(t, makeTestService(nsn("testing", "defaulted-demo"),
setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": testNS}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": testNS}))),
},
},
{
@@ -358,7 +358,7 @@ func TestRender(t *testing.T) {
test.ToUnstructured(t, makeTestService(nsn("template-ns", "testing-no-ns"),
setClusterIP("192.168.50.50"),
addAnnotations(map[string]string{"app.kubernetes.io/instance": "engineering dev"}),
- addLabels[*corev1.Service](map[string]string{"templates.weave.works/name": "test-gitops-set", "templates.weave.works/namespace": "template-ns"}))),
+ addLabels[*corev1.Service](map[string]string{"sets.gitops.pro/name": "test-gitops-set", "sets.gitops.pro/namespace": "template-ns"}))),
},
},
{
@@ -369,7 +369,7 @@ func TestRender(t *testing.T) {
setOptions: []func(*templatesv1.GitOpsSet){
func(s *templatesv1.GitOpsSet) {
s.ObjectMeta.Annotations = map[string]string{
- "templates.weave.works/delimiters": "${{,}}",
+ "sets.gitops.pro/delimiters": "${{,}}",
}
s.Spec.Templates = []templatesv1.GitOpsSetTemplate{
{
@@ -389,8 +389,8 @@ func TestRender(t *testing.T) {
"name": "engineering-dev-demo",
"namespace": "demo",
"labels": map[string]interface{}{
- "templates.weave.works/name": "test-gitops-set",
- "templates.weave.works/namespace": "demo",
+ "sets.gitops.pro/name": "test-gitops-set",
+ "sets.gitops.pro/namespace": "demo",
},
},
"spec": map[string]interface{}{
@@ -413,7 +413,7 @@ func TestRender(t *testing.T) {
setOptions: []func(*templatesv1.GitOpsSet){
func(s *templatesv1.GitOpsSet) {
s.ObjectMeta.Annotations = map[string]string{
- "templates.weave.works/delimiters": "${{,}}",
+ "sets.gitops.pro/delimiters": "${{,}}",
}
s.Spec.Templates = []templatesv1.GitOpsSetTemplate{
{
@@ -432,8 +432,8 @@ func TestRender(t *testing.T) {
"name": "engineering-dev-demo",
"namespace": "demo",
"labels": map[string]interface{}{
- "templates.weave.works/name": "test-gitops-set",
- "templates.weave.works/namespace": "demo",
+ "sets.gitops.pro/name": "test-gitops-set",
+ "sets.gitops.pro/namespace": "demo",
},
},
"spec": map[string]interface{}{
@@ -454,7 +454,7 @@ func TestRender(t *testing.T) {
setOptions: []func(*templatesv1.GitOpsSet){
func(s *templatesv1.GitOpsSet) {
s.ObjectMeta.Annotations = map[string]string{
- "templates.weave.works/delimiters": "((,))",
+ "sets.gitops.pro/delimiters": "((,))",
}
s.Spec.Templates = []templatesv1.GitOpsSetTemplate{
{
@@ -474,8 +474,8 @@ func TestRender(t *testing.T) {
"name": "testing-demo",
"namespace": "demo",
"labels": map[string]interface{}{
- "templates.weave.works/name": "test-gitops-set",
- "templates.weave.works/namespace": "demo",
+ "sets.gitops.pro/name": "test-gitops-set",
+ "sets.gitops.pro/namespace": "demo",
},
},
"spec": map[string]interface{}{
diff --git a/controllers/templates/testdata/template-with-element-index-rendered.yaml b/controllers/templates/testdata/template-with-element-index-rendered.yaml
index a1075f84..44c74ec2 100644
--- a/controllers/templates/testdata/template-with-element-index-rendered.yaml
+++ b/controllers/templates/testdata/template-with-element-index-rendered.yaml
@@ -4,21 +4,21 @@ apiVersion: v1
metadata:
name: ns-0-engineering-dev
labels:
- templates.weave.works/name: namespaces-from-elements
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: namespaces-from-elements
+ sets.gitops.pro/namespace: wge
---
kind: Namespace
apiVersion: v1
metadata:
name: ns-1-engineering-prod
labels:
- templates.weave.works/name: namespaces-from-elements
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: namespaces-from-elements
+ sets.gitops.pro/namespace: wge
---
kind: Namespace
apiVersion: v1
metadata:
name: ns-2-engineering-preprod
labels:
- templates.weave.works/name: namespaces-from-elements
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: namespaces-from-elements
+ sets.gitops.pro/namespace: wge
diff --git a/controllers/templates/testdata/template-with-element-index.yaml b/controllers/templates/testdata/template-with-element-index.yaml
index 0bc533cf..5123069d 100644
--- a/controllers/templates/testdata/template-with-element-index.yaml
+++ b/controllers/templates/testdata/template-with-element-index.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/controllers/templates/testdata/template-with-repeat-index-rendered.yaml b/controllers/templates/testdata/template-with-repeat-index-rendered.yaml
index 5a982ff8..df4ea865 100644
--- a/controllers/templates/testdata/template-with-repeat-index-rendered.yaml
+++ b/controllers/templates/testdata/template-with-repeat-index-rendered.yaml
@@ -5,8 +5,8 @@ data:
kind: ConfigMap
metadata:
labels:
- templates.weave.works/name: config-maps
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: config-maps
+ sets.gitops.pro/namespace: wge
name: team1-team
namespace: wge
---
@@ -16,8 +16,8 @@ data:
kind: ConfigMap
metadata:
labels:
- templates.weave.works/name: config-maps
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: config-maps
+ sets.gitops.pro/namespace: wge
name: team2-team
namespace: wge
---
@@ -27,8 +27,8 @@ data:
kind: ConfigMap
metadata:
labels:
- templates.weave.works/name: config-maps
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: config-maps
+ sets.gitops.pro/namespace: wge
name: c1-customer
namespace: wge
---
@@ -38,8 +38,8 @@ data:
kind: ConfigMap
metadata:
labels:
- templates.weave.works/name: config-maps
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: config-maps
+ sets.gitops.pro/namespace: wge
name: c2-customer
namespace: wge
---
@@ -49,8 +49,8 @@ data:
kind: ConfigMap
metadata:
labels:
- templates.weave.works/name: config-maps
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: config-maps
+ sets.gitops.pro/namespace: wge
name: team4-team
namespace: wge
---
@@ -60,8 +60,8 @@ data:
kind: ConfigMap
metadata:
labels:
- templates.weave.works/name: config-maps
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: config-maps
+ sets.gitops.pro/namespace: wge
name: team5-team
namespace: wge
---
@@ -71,8 +71,8 @@ data:
kind: ConfigMap
metadata:
labels:
- templates.weave.works/name: config-maps
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: config-maps
+ sets.gitops.pro/namespace: wge
name: c4-customer
namespace: wge
---
@@ -82,7 +82,7 @@ data:
kind: ConfigMap
metadata:
labels:
- templates.weave.works/name: config-maps
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: config-maps
+ sets.gitops.pro/namespace: wge
name: c5-customer
namespace: wge
diff --git a/controllers/templates/testdata/template-with-repeat-index.yaml b/controllers/templates/testdata/template-with-repeat-index.yaml
index a7f05746..ca891dc2 100644
--- a/controllers/templates/testdata/template-with-repeat-index.yaml
+++ b/controllers/templates/testdata/template-with-repeat-index.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/controllers/templates/testdata/template-with-top-level-elements-rendered.yaml b/controllers/templates/testdata/template-with-top-level-elements-rendered.yaml
index 0f423ba6..f440afbd 100644
--- a/controllers/templates/testdata/template-with-top-level-elements-rendered.yaml
+++ b/controllers/templates/testdata/template-with-top-level-elements-rendered.yaml
@@ -4,13 +4,13 @@ apiVersion: v1
metadata:
name: ns-0-engineering-dev
labels:
- templates.weave.works/name: namespaces-from-elements
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: namespaces-from-elements
+ sets.gitops.pro/namespace: wge
---
kind: Namespace
apiVersion: v1
metadata:
name: ns-1-engineering-prod
labels:
- templates.weave.works/name: namespaces-from-elements
- templates.weave.works/namespace: wge
+ sets.gitops.pro/name: namespaces-from-elements
+ sets.gitops.pro/namespace: wge
diff --git a/controllers/templates/testdata/template-with-top-level-elements.yaml b/controllers/templates/testdata/template-with-top-level-elements.yaml
index 3f714f63..d20c7909 100644
--- a/controllers/templates/testdata/template-with-top-level-elements.yaml
+++ b/controllers/templates/testdata/template-with-top-level-elements.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/docs/README.md b/docs/README.md
index 69da3b34..e869fe1f 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -24,7 +24,7 @@ with the `reconcile.fluxcd.io/requestedAt` annotation.
The simplest generator is the `List` generator.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: gitopsset-sample
@@ -53,7 +53,7 @@ Templates are Kubernetes resources in YAML format.
Each template is rendered for each element generated by the generators.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: gitopsset-sample
@@ -110,7 +110,7 @@ It can be desirable to repeat a template for a repeated element in a generated
value.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: repeated-gitopsset-sample
@@ -157,12 +157,12 @@ The default delimiters for the template engine are `{{` and `}}`, which is the s
These can be changed by adding an annotation to the `GitOpsSet`:
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: gitopsset-sample
annotations:
- templates.weave.works/delimiters: "${{,}}"
+ sets.gitops.pro/delimiters: "${{,}}"
```
Changing the delimiters can useful for:
@@ -181,12 +181,12 @@ In yaml `{{` is invalid syntax and needs to be quoted. If you need to provide a
Unquoted values allow you to include objects in your templates too.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: gitopsset-sample
annotations:
- templates.weave.works/delimiters: "${{,}}"
+ sets.gitops.pro/delimiters: "${{,}}"
spec:
generators:
- list:
@@ -248,7 +248,7 @@ The generator operates in two different ways, you can parse files (YAML or JSON)
#### Generation from files
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: repository-sample
@@ -297,7 +297,7 @@ For security reasons, you need to explicitly list out the files that the generat
#### Generation from directories
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -339,7 +339,7 @@ Each generated element has two keys, `.Element.Directory` which will be a repo-r
It is also possible to exclude paths from the generated list, for example, if you do not want to generate for a directory you can exclude it with:
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: repository-sample
@@ -372,7 +372,7 @@ The `OCIRepository` generator operates in exactly the same way as the [GitReposi
#### Generation from files
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: oci-repository-sample
@@ -412,7 +412,7 @@ It does only require read-only access, but all API tokens should be guarded as c
_There have been many security compromises using API access tokens, do not let this happen to you!_
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: pull-requests-sample
@@ -498,7 +498,7 @@ The matrix generator doesn't generate resources by itself. It combines the resul
generation from other generators e.g.:
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: matrix-sample
@@ -545,7 +545,7 @@ This will result in three sets of generated parameters, which are a combination
These can be referenced in the templates, note that all keys in the merged generators from the Matrix are contained in the `Element` scope.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: matrix-sample
@@ -593,7 +593,7 @@ field, if you have two, they will collide.
You can provide a name for the generator in the Matrix:
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: matrix-sample
@@ -664,7 +664,7 @@ A matrix generator will normally generate a cartesian result, but you can also
generate a single result.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: single-element-matrix-sample
@@ -792,7 +792,7 @@ curl \
This can be translated into...
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -885,7 +885,7 @@ Not all APIs return an array of JSON objects, sometimes it's nested within a res
You can use JSONPath to extract the fields from this data...
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -911,7 +911,7 @@ Another piece of functionality in the APIClient generator is the ability to POST
JSON to the API.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -945,7 +945,7 @@ The JSON body sent will look like this:
Instead of using the JSONPath to extract from a complex structure, you can configure the result to be a single element.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -972,7 +972,7 @@ If the API endpoint you are accessing requires a custom CA you can provide this
via the secret field.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -1013,7 +1013,7 @@ The cluster generator generates from in-cluster GitOpsCluster resources.
For example, this `GitOpsSet` will generate a `Kustomization` resource for each cluster matching the [Label selector](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/).
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: cluster-sample
@@ -1053,7 +1053,7 @@ The following fields are generated for each GitOpsCluster.
If the selector is not provided, all clusters from all namespaces will be returned:
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: cluster-sample
@@ -1065,7 +1065,7 @@ spec:
Otherwise if the selector is empty, no clusters will be generated:
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: cluster-sample
@@ -1090,7 +1090,7 @@ The generated elements have the following fields:
This can be used simply, to create a deployment with an image...or, combined with a Matrix generator, to manage multiple workloads with the same image.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: imagepolicy-example
@@ -1114,7 +1114,7 @@ In this example, a `ConfigMap` is generated containing the latest image whenever
Combined in a Matrix, like this, it will generate two `ConfigMaps` with the values.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: imagepolicy-matrix-example
@@ -1198,7 +1198,7 @@ data:
```
And the GitOpsSet below
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: config-sample
@@ -1225,7 +1225,7 @@ As with the other generators, the `Config` generator can be combined with other
This will generate two `ConfigMaps` with the values.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: imagepolicy-matrix-example
@@ -1360,7 +1360,7 @@ It is not recommended that you create a role with blanket permissions, under the
You can configure the service-account that is used to create resources.
```yaml
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: matrix-sample
diff --git a/docs/api/gitopsset.md b/docs/api/gitopsset.md
index 2825df79..8d0ab951 100644
--- a/docs/api/gitopsset.md
+++ b/docs/api/gitopsset.md
@@ -1,16 +1,16 @@
Packages:
-templates.weave.works/v1alpha1
+sets.gitops.pro/v1alpha1
Package v1alpha1 contains API Schema definitions for the gitopssets v1alpha1 API group
Resource Types:
-GitOpsSet
+GitOpsSet
GitOpsSet is the Schema for the gitopssets API
@@ -26,7 +26,7 @@ Resource Types:
apiVersion
string
-templates.weave.works/v1alpha1
+sets.gitops.pro/v1alpha1
|
@@ -56,7 +56,7 @@ Refer to the Kubernetes API documentation for the fields of the
spec
-
+
GitOpsSetSpec
@@ -83,7 +83,7 @@ GitOpsSet.
|
generators
-
+
[]GitOpsSetGenerator
@@ -96,7 +96,7 @@ GitOpsSet.
|
templates
-
+
[]GitOpsSetTemplate
@@ -127,7 +127,7 @@ when reconciling this Kustomization.
|
status
-
+
GitOpsSetStatus
@@ -137,12 +137,12 @@ GitOpsSetStatus
|
-APIClientGenerator
+APIClientGenerator
(Appears on:
-GitOpsSetGenerator,
-GitOpsSetNestedGenerator)
+GitOpsSetGenerator,
+GitOpsSetNestedGenerator)
APIClientGenerator defines a generator that queries an API endpoint and uses
that to generate data.
@@ -208,7 +208,7 @@ call.
headersRef
-
+
HeadersReference
@@ -256,8 +256,8 @@ entire object.
|
secretRef
-
-Kubernetes core/v1.LocalObjectReference
+
+LocalObjectReference
|
@@ -268,12 +268,12 @@ provides the Certificate Authority to trust when making API calls.
-ClusterGenerator
+ClusterGenerator
(Appears on:
-GitOpsSetGenerator,
-GitOpsSetNestedGenerator)
+GitOpsSetGenerator,
+GitOpsSetNestedGenerator)
ClusterGenerator defines a generator that queries the cluster API for
relevant clusters.
@@ -302,12 +302,12 @@ Kubernetes meta/v1.LabelSelector
-ConfigGenerator
+ConfigGenerator
(Appears on:
-GitOpsSetGenerator,
-GitOpsSetNestedGenerator)
+GitOpsSetGenerator,
+GitOpsSetNestedGenerator)
ConfigGenerator loads a referenced ConfigMap or
Secret from the Cluster and makes it available as a resource.
@@ -343,11 +343,11 @@ string
-GitOpsSetGenerator
+GitOpsSetGenerator
(Appears on:
-GitOpsSetSpec)
+GitOpsSetSpec)
GitOpsSetGenerator is the top-level set of generators for this GitOpsSet.
@@ -362,7 +362,7 @@ string
list
-
+
ListGenerator
@@ -374,7 +374,7 @@ ListGenerator
|
pullRequests
-
+
PullRequestGenerator
@@ -386,7 +386,7 @@ PullRequestGenerator
|
gitRepository
-
+
GitRepositoryGenerator
@@ -398,7 +398,7 @@ GitRepositoryGenerator
|
ociRepository
-
+
OCIRepositoryGenerator
@@ -410,7 +410,7 @@ OCIRepositoryGenerator
|
matrix
-
+
MatrixGenerator
@@ -422,7 +422,7 @@ MatrixGenerator
|
cluster
-
+
ClusterGenerator
@@ -434,7 +434,7 @@ ClusterGenerator
|
apiClient
-
+
APIClientGenerator
@@ -446,7 +446,7 @@ APIClientGenerator
|
imagePolicy
-
+
ImagePolicyGenerator
@@ -458,7 +458,7 @@ ImagePolicyGenerator
|
config
-
+
ConfigGenerator
@@ -468,11 +468,11 @@ ConfigGenerator
|
-GitOpsSetNestedGenerator
+GitOpsSetNestedGenerator
(Appears on:
-MatrixGenerator)
+MatrixGenerator)
GitOpsSetNestedGenerator describes the generators usable by the MatrixGenerator.
This is a subset of the generators allowed by the GitOpsSetGenerator because the CRD format doesn’t support recursive declarations.
@@ -502,7 +502,7 @@ type in a single Matrix generator.
list
-
+
ListGenerator
@@ -514,7 +514,7 @@ ListGenerator
|
gitRepository
-
+
GitRepositoryGenerator
@@ -526,7 +526,7 @@ GitRepositoryGenerator
|
ociRepository
-
+
OCIRepositoryGenerator
@@ -538,7 +538,7 @@ OCIRepositoryGenerator
|
pullRequests
-
+
PullRequestGenerator
@@ -550,7 +550,7 @@ PullRequestGenerator
|
cluster
-
+
ClusterGenerator
@@ -562,7 +562,7 @@ ClusterGenerator
|
apiClient
-
+
APIClientGenerator
@@ -574,7 +574,7 @@ APIClientGenerator
|
imagePolicy
-
+
ImagePolicyGenerator
@@ -586,7 +586,7 @@ ImagePolicyGenerator
|
config
-
+
ConfigGenerator
@@ -596,11 +596,11 @@ ConfigGenerator
-GitOpsSetSpec
+GitOpsSetSpec
(Appears on:
-GitOpsSet)
+GitOpsSet)
GitOpsSetSpec defines the desired state of GitOpsSet
-GitOpsSetStatus
+GitOpsSetStatus
(Appears on:
-GitOpsSet)
+GitOpsSet)
GitOpsSetStatus defines the observed state of GitOpsSet
@@ -727,7 +727,7 @@ object.
inventory
-
+
ResourceInventory
@@ -740,11 +740,11 @@ have been successfully applied
|
-GitOpsSetTemplate
+GitOpsSetTemplate
(Appears on:
-GitOpsSetSpec)
+GitOpsSetSpec)
GitOpsSetTemplate describes a resource to create
@@ -783,12 +783,12 @@ k8s.io/apimachinery/pkg/runtime.RawExtension
-GitRepositoryGenerator
+GitRepositoryGenerator
(Appears on:
-GitOpsSetGenerator,
-GitOpsSetNestedGenerator)
+GitOpsSetGenerator,
+GitOpsSetNestedGenerator)
GitRepositoryGenerator generates from files in a Flux GitRepository resource.
-
(Appears on:
-APIClientGenerator)
+APIClientGenerator)
HeadersReference references either a Secret or ConfigMap to be used for
additional request headers.
@@ -879,12 +879,12 @@ string
-ImagePolicyGenerator
+ImagePolicyGenerator
(Appears on:
-GitOpsSetGenerator,
-GitOpsSetNestedGenerator)
+GitOpsSetGenerator,
+GitOpsSetNestedGenerator)
ImagePolicyGenerator generates from the ImagePolicy.
@@ -908,12 +908,12 @@ string
-ListGenerator
+ListGenerator
(Appears on:
-GitOpsSetGenerator,
-GitOpsSetNestedGenerator)
+GitOpsSetGenerator,
+GitOpsSetNestedGenerator)
ListGenerator generates from a hard-coded list.
@@ -938,11 +938,40 @@ string
-MatrixGenerator
+LocalObjectReference
(Appears on:
-GitOpsSetGenerator)
+APIClientGenerator,
+PullRequestGenerator)
+
+LocalObjectReference contains enough information to locate the referenced Kubernetes resource object.
+
+
+
+Field |
+Description |
+
+
+
+
+
+name
+
+string
+
+ |
+
+ Name of the referent.
+ |
+
+
+
+MatrixGenerator
+
+
+(Appears on:
+GitOpsSetGenerator)
MatrixGenerator defines a matrix that combines generators.
The matrix is a cartesian product of the generators.
@@ -958,7 +987,7 @@ The matrix is a cartesian product of the generators.
|
generators
-
+
[]GitOpsSetNestedGenerator
@@ -985,12 +1014,12 @@ It’s recommended that you use the Name field to separate out elements.
-OCIRepositoryGenerator
+OCIRepositoryGenerator
(Appears on:
-GitOpsSetGenerator,
-GitOpsSetNestedGenerator)
+GitOpsSetGenerator,
+GitOpsSetNestedGenerator)
OCIRepositoryGenerator generates from files in a Flux OCIRepository resource.
-PullRequestGenerator
+PullRequestGenerator
(Appears on:
-GitOpsSetGenerator,
-GitOpsSetNestedGenerator)
+GitOpsSetGenerator,
+GitOpsSetNestedGenerator)
PullRequestGenerator defines a generator that queries a Git hosting service
for relevant PRs.
@@ -1110,8 +1139,8 @@ e.g. my-org/my-repo
|
secretRef
-
-Kubernetes core/v1.LocalObjectReference
+
+LocalObjectReference
|
@@ -1148,12 +1177,12 @@ or to include forks if true
-RepositoryGeneratorDirectoryItem
+RepositoryGeneratorDirectoryItem
(Appears on:
-GitRepositoryGenerator,
-OCIRepositoryGenerator)
+GitRepositoryGenerator,
+OCIRepositoryGenerator)
RepositoryGeneratorDirectoryItem stores the information about a specific
directory to be generated from.
@@ -1187,12 +1216,12 @@ bool
-RepositoryGeneratorFileItem
+RepositoryGeneratorFileItem
(Appears on:
-GitRepositoryGenerator,
-OCIRepositoryGenerator)
+GitRepositoryGenerator,
+OCIRepositoryGenerator)
RepositoryGeneratorFileItem defines a path to a file to be parsed when generating.
@@ -1216,11 +1245,11 @@ string
-ResourceInventory
+ResourceInventory
(Appears on:
-GitOpsSetStatus)
+GitOpsSetStatus)
ResourceInventory contains a list of Kubernetes resource object references that have been applied by a Kustomization.
@@ -1235,7 +1264,7 @@ string
entries
-
+
[]ResourceRef
@@ -1246,11 +1275,11 @@ string
|
-ResourceRef
+ResourceRef
(Appears on:
-ResourceInventory)
+ResourceInventory)
ResourceRef contains the information necessary to locate a resource within a cluster.
diff --git a/examples/apiclient/api-client-generator.yaml b/examples/apiclient/api-client-generator.yaml
index 2cc30d30..edf48e45 100644
--- a/examples/apiclient/api-client-generator.yaml
+++ b/examples/apiclient/api-client-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -16,7 +16,7 @@ spec:
templates:
- content:
kind: Kustomization
- apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
+ apiVersion: kustomize.toolkit.fluxcd.io/v1
metadata:
name: "{{ .Element.env }}-demo"
labels:
diff --git a/examples/base/go-demo-gitrepository.yaml b/examples/base/go-demo-gitrepository.yaml
index c68b4cbe..07b1ced3 100644
--- a/examples/base/go-demo-gitrepository.yaml
+++ b/examples/base/go-demo-gitrepository.yaml
@@ -1,4 +1,4 @@
-apiVersion: source.toolkit.fluxcd.io/v1beta1
+apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: go-demo-repo
diff --git a/examples/cluster-generator/cluster-generator.yaml b/examples/cluster-generator/cluster-generator.yaml
index 19086084..3d5493d4 100644
--- a/examples/cluster-generator/cluster-generator.yaml
+++ b/examples/cluster-generator/cluster-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/config/config-generator.yaml b/examples/config/config-generator.yaml
index 5746e594..5bf1dad0 100644
--- a/examples/config/config-generator.yaml
+++ b/examples/config/config-generator.yaml
@@ -1,5 +1,5 @@
---
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/gitrepository-with-dirs/repository-generator.yaml b/examples/gitrepository-with-dirs/repository-generator.yaml
index 73524661..fe13f370 100644
--- a/examples/gitrepository-with-dirs/repository-generator.yaml
+++ b/examples/gitrepository-with-dirs/repository-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/gitrepository/repository-generator.yaml b/examples/gitrepository/repository-generator.yaml
index 1d7562d6..14036ac1 100644
--- a/examples/gitrepository/repository-generator.yaml
+++ b/examples/gitrepository/repository-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/imagepolicy/imagepolicy-generator.yaml b/examples/imagepolicy/imagepolicy-generator.yaml
index c57c58ba..042e10f5 100644
--- a/examples/imagepolicy/imagepolicy-generator.yaml
+++ b/examples/imagepolicy/imagepolicy-generator.yaml
@@ -1,5 +1,5 @@
---
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -33,7 +33,7 @@ spec:
cluster: "{{ .Element.cluster }}"
version: "{{ .Element.version }}"
---
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/list-generator/list-generator.yaml b/examples/list-generator/list-generator.yaml
index 59e5ba64..35256740 100644
--- a/examples/list-generator/list-generator.yaml
+++ b/examples/list-generator/list-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/matrix-generator/matrix-generator.yaml b/examples/matrix-generator/matrix-generator.yaml
index 49503510..24649901 100644
--- a/examples/matrix-generator/matrix-generator.yaml
+++ b/examples/matrix-generator/matrix-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/matrix-generator/matrix-single-element.yaml b/examples/matrix-generator/matrix-single-element.yaml
index 231f8678..183382f3 100644
--- a/examples/matrix-generator/matrix-single-element.yaml
+++ b/examples/matrix-generator/matrix-single-element.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/ocirepository/oci-repository-generator.yaml b/examples/ocirepository/oci-repository-generator.yaml
index b358ab5f..05a27a76 100644
--- a/examples/ocirepository/oci-repository-generator.yaml
+++ b/examples/ocirepository/oci-repository-generator.yaml
@@ -1,5 +1,5 @@
---
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/examples/pull-requests/pull-requests-generator.yaml b/examples/pull-requests/pull-requests-generator.yaml
index 0eceee9a..e9c79c76 100644
--- a/examples/pull-requests/pull-requests-generator.yaml
+++ b/examples/pull-requests/pull-requests-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -19,7 +19,7 @@ spec:
forks: false
templates:
- content:
- apiVersion: source.toolkit.fluxcd.io/v1beta2
+ apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: "pr-{{ .Element.Number }}-gitrepository"
diff --git a/examples/repeated-list/repeated-list-generator.yaml b/examples/repeated-list/repeated-list-generator.yaml
index bbd9bbd0..91c8f3ef 100644
--- a/examples/repeated-list/repeated-list-generator.yaml
+++ b/examples/repeated-list/repeated-list-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
name: repeated-gitopsset-sample
diff --git a/examples/serviceaccount/list-generator.yaml b/examples/serviceaccount/list-generator.yaml
index fbed46c5..301c7cad 100644
--- a/examples/serviceaccount/list-generator.yaml
+++ b/examples/serviceaccount/list-generator.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/go.mod b/go.mod
index 5593fcd5..8226c1d7 100644
--- a/go.mod
+++ b/go.mod
@@ -1,138 +1,140 @@
-module github.com/weaveworks/gitopssets-controller
+module github.com/gitops-tools/gitopssets-controller
-go 1.20
+go 1.23.0
+
+toolchain go1.23.4
require (
- dario.cat/mergo v1.0.0
- github.com/Masterminds/sprig/v3 v3.2.3
- github.com/cyphar/filepath-securejoin v0.2.4
- github.com/fluxcd/image-reflector-controller/api v0.31.1
- github.com/fluxcd/kustomize-controller/api v1.2.1
- github.com/fluxcd/pkg/apis/event v0.6.0
- github.com/fluxcd/pkg/apis/meta v1.2.0
- github.com/fluxcd/pkg/http/fetch v0.8.0
- github.com/fluxcd/pkg/runtime v0.43.3
- github.com/fluxcd/pkg/tar v0.4.0
- github.com/fluxcd/source-controller/api v1.2.3
- github.com/gitops-tools/pkg v0.1.0
- github.com/go-logr/logr v1.4.1
+ dario.cat/mergo v1.0.1
+ github.com/Masterminds/sprig/v3 v3.3.0
+ github.com/cyphar/filepath-securejoin v0.4.1
+ github.com/fluxcd/image-reflector-controller/api v0.33.0
+ github.com/fluxcd/kustomize-controller/api v1.4.0
+ github.com/fluxcd/pkg/apis/event v0.16.0
+ github.com/fluxcd/pkg/apis/meta v1.10.0
+ github.com/fluxcd/pkg/http/fetch v0.15.0
+ github.com/fluxcd/pkg/runtime v0.53.0
+ github.com/fluxcd/pkg/tar v0.11.0
+ github.com/fluxcd/source-controller/api v1.4.1
+ github.com/gitops-tools/pkg v0.2.0
+ github.com/go-logr/logr v1.4.2
github.com/go-logr/zapr v1.3.0
github.com/google/go-cmp v0.6.0
github.com/google/go-containerregistry v0.12.0
- github.com/jenkins-x/go-scm v1.14.21
- github.com/onsi/gomega v1.30.0
- github.com/spf13/cobra v1.8.0
- github.com/spf13/pflag v1.0.5
- github.com/stretchr/testify v1.8.4
+ github.com/jenkins-x/go-scm v1.14.55
+ github.com/onsi/gomega v1.36.2
+ github.com/spf13/cobra v1.8.1
+ github.com/spf13/pflag v1.0.6
+ github.com/stretchr/testify v1.10.0
github.com/weaveworks/cluster-controller v1.6.0
- go.uber.org/zap v1.26.0
- golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb
- k8s.io/api v0.28.4
- k8s.io/apiextensions-apiserver v0.28.4
- k8s.io/apimachinery v0.28.4
- k8s.io/client-go v0.28.4
- sigs.k8s.io/cli-utils v0.35.0
- sigs.k8s.io/controller-runtime v0.16.3
+ go.uber.org/zap v1.27.0
+ golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa
+ k8s.io/api v0.32.1
+ k8s.io/apiextensions-apiserver v0.32.1
+ k8s.io/apimachinery v0.32.1
+ k8s.io/client-go v0.32.1
+ sigs.k8s.io/cli-utils v0.37.2
+ sigs.k8s.io/controller-runtime v0.20.1
sigs.k8s.io/yaml v1.4.0
)
require (
code.gitea.io/sdk/gitea v0.14.0 // indirect
+ fortio.org/safecast v1.0.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
github.com/MakeNowJust/heredoc v1.0.0 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
- github.com/Masterminds/semver/v3 v3.2.0 // indirect
+ github.com/Masterminds/semver/v3 v3.3.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
- github.com/bluekeyes/go-gitdiff v0.7.1 // indirect
- github.com/cespare/xxhash/v2 v2.2.0 // indirect
+ github.com/blang/semver/v4 v4.0.0 // indirect
+ github.com/bluekeyes/go-gitdiff v0.8.0 // indirect
+ github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/chai2010/gettext-go v1.0.2 // indirect
- github.com/davecgh/go-spew v1.1.1 // indirect
- github.com/emicklei/go-restful/v3 v3.11.0 // indirect
- github.com/evanphx/json-patch v5.7.0+incompatible // indirect
- github.com/evanphx/json-patch/v5 v5.7.0 // indirect
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
+ github.com/emicklei/go-restful/v3 v3.12.1 // indirect
+ github.com/evanphx/json-patch/v5 v5.9.11 // indirect
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect
- github.com/fluxcd/cli-utils v0.36.0-flux.2 // indirect
- github.com/fluxcd/pkg/apis/acl v0.1.0 // indirect
- github.com/fluxcd/pkg/apis/kustomize v1.2.0 // indirect
- github.com/fsnotify/fsnotify v1.7.0 // indirect
+ github.com/fluxcd/cli-utils v0.36.0-flux.12 // indirect
+ github.com/fluxcd/pkg/apis/acl v0.6.0 // indirect
+ github.com/fluxcd/pkg/apis/kustomize v1.9.0 // indirect
+ github.com/fsnotify/fsnotify v1.8.0 // indirect
+ github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-errors/errors v1.5.1 // indirect
- github.com/go-openapi/jsonpointer v0.20.0 // indirect
- github.com/go-openapi/jsonreference v0.20.2 // indirect
- github.com/go-openapi/swag v0.22.4 // indirect
+ github.com/go-openapi/jsonpointer v0.21.0 // indirect
+ github.com/go-openapi/jsonreference v0.21.0 // indirect
+ github.com/go-openapi/swag v0.23.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
- github.com/golang/protobuf v1.5.3 // indirect
- github.com/google/btree v1.1.2 // indirect
- github.com/google/gnostic-models v0.6.8 // indirect
+ github.com/golang/protobuf v1.5.4 // indirect
+ github.com/google/btree v1.1.3 // indirect
+ github.com/google/gnostic-models v0.6.9 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
- github.com/google/uuid v1.4.0 // indirect
+ github.com/google/uuid v1.6.0 // indirect
+ github.com/gorilla/websocket v1.5.3 // indirect
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
- github.com/hashicorp/go-retryablehttp v0.7.5 // indirect
+ github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
github.com/hashicorp/go-version v1.3.0 // indirect
- github.com/huandu/xstrings v1.3.3 // indirect
- github.com/imdario/mergo v0.3.16 // indirect
+ github.com/huandu/xstrings v1.5.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
- github.com/klauspost/cpuid/v2 v2.2.5 // indirect
+ github.com/klauspost/compress v1.17.11 // indirect
+ github.com/klauspost/cpuid/v2 v2.2.9 // indirect
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
- github.com/mailru/easyjson v0.7.7 // indirect
- github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
+ github.com/mailru/easyjson v0.9.0 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
- github.com/moby/spdystream v0.2.0 // indirect
+ github.com/moby/spdystream v0.5.0 // indirect
github.com/moby/term v0.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
+ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
- github.com/opencontainers/go-digest/blake3 v0.0.0-20231025023718-d50d2fec9c98 // indirect
+ github.com/opencontainers/go-digest/blake3 v0.0.0-20240426182413-22b78e47854a // indirect
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
github.com/pkg/errors v0.9.1 // indirect
- github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/prometheus/client_golang v1.17.0 // indirect
- github.com/prometheus/client_model v0.5.0 // indirect
- github.com/prometheus/common v0.45.0 // indirect
- github.com/prometheus/procfs v0.12.0 // indirect
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
+ github.com/prometheus/client_golang v1.20.5 // indirect
+ github.com/prometheus/client_model v0.6.1 // indirect
+ github.com/prometheus/common v0.62.0 // indirect
+ github.com/prometheus/procfs v0.15.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
- github.com/shopspring/decimal v1.3.1 // indirect
+ github.com/shopspring/decimal v1.4.0 // indirect
github.com/shurcooL/githubv4 v0.0.0-20190718010115-4ba037080260 // indirect
github.com/shurcooL/graphql v0.0.0-20181231061246-d48a9a75455f // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
- github.com/spf13/cast v1.5.1 // indirect
+ github.com/spf13/cast v1.7.0 // indirect
+ github.com/x448/float16 v0.8.4 // indirect
github.com/xlab/treeprint v1.2.0 // indirect
- github.com/zeebo/blake3 v0.2.3 // indirect
- go.starlark.net v0.0.0-20231121155337-90ade8b19d09 // indirect
+ github.com/zeebo/blake3 v0.2.4 // indirect
go.uber.org/multierr v1.11.0 // indirect
- golang.org/x/crypto v0.17.0 // indirect
- golang.org/x/net v0.19.0 // indirect
- golang.org/x/oauth2 v0.15.0 // indirect
- golang.org/x/sync v0.5.0 // indirect
- golang.org/x/sys v0.15.0 // indirect
- golang.org/x/term v0.15.0 // indirect
- golang.org/x/text v0.14.0 // indirect
- golang.org/x/time v0.5.0 // indirect
+ golang.org/x/crypto v0.32.0 // indirect
+ golang.org/x/net v0.34.0 // indirect
+ golang.org/x/oauth2 v0.25.0 // indirect
+ golang.org/x/sync v0.10.0 // indirect
+ golang.org/x/sys v0.29.0 // indirect
+ golang.org/x/term v0.28.0 // indirect
+ golang.org/x/text v0.21.0 // indirect
+ golang.org/x/time v0.9.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
- google.golang.org/appengine v1.6.8 // indirect
- google.golang.org/protobuf v1.31.0 // indirect
- gopkg.in/evanphx/json-patch.v5 v5.7.0 // indirect
+ google.golang.org/protobuf v1.36.4 // indirect
+ gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
- gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/cli-runtime v0.28.4 // indirect
- k8s.io/component-base v0.28.4 // indirect
- k8s.io/klog/v2 v2.110.1 // indirect
- k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 // indirect
- k8s.io/kubectl v0.28.4 // indirect
- k8s.io/utils v0.0.0-20231127182322-b307cd553661 // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/kustomize/api v0.16.0 // indirect
- sigs.k8s.io/kustomize/kyaml v0.16.0 // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+ k8s.io/cli-runtime v0.32.1 // indirect
+ k8s.io/component-base v0.32.1 // indirect
+ k8s.io/klog/v2 v2.130.1 // indirect
+ k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect
+ k8s.io/kubectl v0.32.1 // indirect
+ k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect
+ sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
+ sigs.k8s.io/kustomize/api v0.19.0 // indirect
+ sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect
+ sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect
)
// Replace digest lib to master to gather access to BLAKE3.
diff --git a/go.sum b/go.sum
index 4d703a26..bc4f0492 100644
--- a/go.sum
+++ b/go.sum
@@ -1,100 +1,106 @@
code.gitea.io/sdk/gitea v0.14.0 h1:m4J352I3p9+bmJUfS+g0odeQzBY/5OXP91Gv6D4fnJ0=
code.gitea.io/sdk/gitea v0.14.0/go.mod h1:89WiyOX1KEcvjP66sRHdu0RafojGo60bT9UqW17VbWs=
-dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
-dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
-github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic=
+dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
+dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
+fortio.org/safecast v1.0.0 h1:dr3131WPX8iS1pTf76+39WeXbTrerDYLvi9s7Oi3wiY=
+fortio.org/safecast v1.0.0/go.mod h1:xZmcPk3vi4kuUFf+tq4SvnlVdwViqf6ZSZl91Jr9Jdg=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ=
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
-github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g=
-github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
-github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA=
-github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM=
+github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0=
+github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
+github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs=
+github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
+github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bluekeyes/go-gitdiff v0.7.1 h1:graP4ElLRshr8ecu0UtqfNTCHrtSyZd3DABQm/DWesQ=
-github.com/bluekeyes/go-gitdiff v0.7.1/go.mod h1:QpfYYO1E0fTVHVZAZKiRjtSGY9823iCdvGXBcEzHGbM=
-github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
-github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
+github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
+github.com/bluekeyes/go-gitdiff v0.8.0 h1:Nn1wfw3/XeKoc3lWk+2bEXGUHIx36kj80FM1gVcBk+o=
+github.com/bluekeyes/go-gitdiff v0.8.0/go.mod h1:WWAk1Mc6EgWarCrPFO+xeYlujPu98VuLW3Tu+B/85AE=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA=
-github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
-github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
-github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
-github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
+github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
+github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s=
+github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
-github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU=
+github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI=
github.com/evanphx/json-patch v5.7.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc=
-github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
+github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU=
+github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM=
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4=
github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc=
-github.com/fluxcd/cli-utils v0.36.0-flux.2 h1:7nlXfAJ7iaDF34IdbyId+wBf7beL2qvzDBLmVBJSDVo=
-github.com/fluxcd/cli-utils v0.36.0-flux.2/go.mod h1:TQtgRf9OjQBzE5FJ9UDV6WNz9Po3pzAtk3NQmQEN5l8=
-github.com/fluxcd/image-reflector-controller/api v0.31.1 h1:nc44G0JjLgSvqglJSiXQJZcrRw+eY01j7fHRUDB3FMw=
-github.com/fluxcd/image-reflector-controller/api v0.31.1/go.mod h1:KopMbC92Cw2ypZZeMytzTLr3EfOj2hoL6MizrdpBDhc=
-github.com/fluxcd/kustomize-controller/api v1.2.1 h1:+WgQOU7jpqz9bA4djPWmaeYAp9cG7c/TdcIYku3Jrzk=
-github.com/fluxcd/kustomize-controller/api v1.2.1/go.mod h1:0Kgc4uYnr5jCm4H8JwArkR0v4WTmXeX/9KgoDbxluVc=
-github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q=
-github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8=
-github.com/fluxcd/pkg/apis/event v0.6.0 h1:AUaeee1CGWb65BLqVximHXG8Gcu6vWuYONIq6tVpjgo=
-github.com/fluxcd/pkg/apis/event v0.6.0/go.mod h1:OEzWcX/oPbMmkCvC9QGoK27JXFvUZgBhLD+zgxZe47A=
-github.com/fluxcd/pkg/apis/kustomize v1.2.0 h1:vkVs+OumxaWso0jNCqdgFFfMHdh+qtZhykTkjl7OgmA=
-github.com/fluxcd/pkg/apis/kustomize v1.2.0/go.mod h1:VF7tR/WuVFeum+HaMTHwp+eCtsHiiQlY6ihgqtAnW/M=
-github.com/fluxcd/pkg/apis/meta v1.2.0 h1:O766PzGAdMdQKybSflGL8oV0+GgCNIkdsxfalRyzeO8=
-github.com/fluxcd/pkg/apis/meta v1.2.0/go.mod h1:fU/Az9AoVyIxC0oI4ihG0NVMNnvrcCzdEym3wxjIQsc=
-github.com/fluxcd/pkg/http/fetch v0.8.0 h1:GWiX93y6JaoS0Bm2qy0fo2OeY3xTXP8dME/Ce1iEt8A=
-github.com/fluxcd/pkg/http/fetch v0.8.0/go.mod h1:Rj2b8OVDgbPzeLxt+goa9+qDJDAwC7+jNdgyXsaBglQ=
-github.com/fluxcd/pkg/runtime v0.43.3 h1:z6umKKONWvuxy0TWbeDUJOI30FTbS1P7QrK2J+NjLsM=
-github.com/fluxcd/pkg/runtime v0.43.3/go.mod h1:dhhNV45B3tekg7qPzATFTuWOulvUzMoO1bV+vc2pSts=
-github.com/fluxcd/pkg/tar v0.4.0 h1:SuXpfXBIcSJ5R/yqQi2CBxBmV/i/LH0agqNAh2PWBZg=
-github.com/fluxcd/pkg/tar v0.4.0/go.mod h1:SyJBaQvuv2VA/rv4d1OHhCV6R8+9QKc9np193EzNHBc=
-github.com/fluxcd/pkg/testserver v0.5.0 h1:n/Iskk0tXNt2AgIgjz9qeFK/VhEXGfqeazABXZmO2Es=
-github.com/fluxcd/source-controller/api v1.2.3 h1:71mXv3Qg9HEhcpqOq1ObmoE+P/HuZNaAvxfI7dqZMo8=
-github.com/fluxcd/source-controller/api v1.2.3/go.mod h1:5gaIVVH7hgb8p3HKFp8P6hGmZEC8fKSt4EcrG3g5vZI=
-github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
-github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
-github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
-github.com/gitops-tools/pkg v0.1.0 h1:atKTGUjGEEvkSX+HGCzI76rHRB84+nr77ll8kyJY3Nk=
-github.com/gitops-tools/pkg v0.1.0/go.mod h1:c+ZMQS6qVn3+HfJ3Hl04ARo7zxD30ackJnV60UlLC5s=
+github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
+github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
+github.com/fluxcd/cli-utils v0.36.0-flux.12 h1:8cD6SmaKa/lGo0KCu0XWiGrXJMLMBQwSsnoP0cG+Gjw=
+github.com/fluxcd/cli-utils v0.36.0-flux.12/go.mod h1:Nb/zMqsJAzjz4/HIsEc2LTqxC6eC0rV26t4hkJT/F9o=
+github.com/fluxcd/image-reflector-controller/api v0.33.0 h1:9EqxdtK8V+GcHA0anGh4ec6Kp55rVur4rlR9E0P495w=
+github.com/fluxcd/image-reflector-controller/api v0.33.0/go.mod h1:BXMR6jCw/VzYS8utplzLx0G1mc3H+56xuQVal5qgfo0=
+github.com/fluxcd/kustomize-controller/api v1.4.0 h1:QReBAuNAlrAez4aLkbYjVlWDCIZABFsKPgRa9W05VCQ=
+github.com/fluxcd/kustomize-controller/api v1.4.0/go.mod h1:z1SD5EJS+vbGmF6B17x8aJfT5nnzGVEQ+3WGquOmhwA=
+github.com/fluxcd/pkg/apis/acl v0.6.0 h1:rllf5uQLzTow81ZCslkQ6LPpDNqVQr6/fWaNksdUEtc=
+github.com/fluxcd/pkg/apis/acl v0.6.0/go.mod h1:IVDZx3MAoDWjlLrJHMF9Z27huFuXAEQlnbWw0M6EcTs=
+github.com/fluxcd/pkg/apis/event v0.16.0 h1:ffKc/3erowPnh72lFszz7sPQhLZ7bhqNrq+pu1Pb+JE=
+github.com/fluxcd/pkg/apis/event v0.16.0/go.mod h1:D/QQi5lHT9/Ur3OMFLJO71D4KDQHbJ5s8dQV3h1ZAT0=
+github.com/fluxcd/pkg/apis/kustomize v1.9.0 h1:SJpT1CK58AnTvCpDKeGfMNA0Xud/4VReZNvPe8XkTxo=
+github.com/fluxcd/pkg/apis/kustomize v1.9.0/go.mod h1:AZl2GU03oPVue6SUivdiIYd/3mvF94j7t1G2JO26d4s=
+github.com/fluxcd/pkg/apis/meta v1.10.0 h1:rqbAuyl5ug7A5jjRf/rNwBXmNl6tJ9wG2iIsriwnQUk=
+github.com/fluxcd/pkg/apis/meta v1.10.0/go.mod h1:n7NstXHDaleAUMajcXTVkhz0MYkvEXy1C/eLI/t1xoI=
+github.com/fluxcd/pkg/http/fetch v0.15.0 h1:AJ1JuE2asuK4QMfbHjxctFURke5FvZtyljjI1Qv4ArQ=
+github.com/fluxcd/pkg/http/fetch v0.15.0/go.mod h1:feTESfETKU14jq+e/Ce8QnMBTCh9O79bLMSMe5t55fQ=
+github.com/fluxcd/pkg/runtime v0.53.0 h1:IgDSLVQtgyXvZWIeDy1I+0EgzgUHNwEegSyI5UMObhw=
+github.com/fluxcd/pkg/runtime v0.53.0/go.mod h1:8vkIhS1AhkmjC98LRm5xM+CRG5KySFTXpJWk+ZdtT4I=
+github.com/fluxcd/pkg/tar v0.11.0 h1:pjf/rzr6HNAPiuxT59mtba9tfBtdNiSQ/UqduG8vZ2I=
+github.com/fluxcd/pkg/tar v0.11.0/go.mod h1:+kiP25NqibWMpFWgizyPEMqnMJIux7bCgEy+4pfxyI4=
+github.com/fluxcd/pkg/testserver v0.9.0 h1:UD6gyT1KXXbl5BbuE7o+UdxKeuYd7/CePAUdULokJbc=
+github.com/fluxcd/pkg/testserver v0.9.0/go.mod h1:dqpWALgSYdcmPS9OXq165s4OjUexVysl++EZJ8uZVkw=
+github.com/fluxcd/source-controller/api v1.4.1 h1:zV01D7xzHOXWbYXr36lXHWWYS7POARsjLt61Nbh3kVY=
+github.com/fluxcd/source-controller/api v1.4.1/go.mod h1:gSjg57T+IG66SsBR0aquv+DFrm4YyBNpKIJVDnu3Ya8=
+github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
+github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
+github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
+github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
+github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
+github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
+github.com/gitops-tools/pkg v0.2.0 h1:YAyTKuLaHkP19cIWjXDbAqdvGXokDpcy8DcRtta9zwI=
+github.com/gitops-tools/pkg v0.2.0/go.mod h1:O07f01ZC6aQ4iWukGF9LLgwa8bRe5U2yhJOuTrjKNk8=
github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk=
github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
-github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
-github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
-github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
-github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
-github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ=
-github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA=
-github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
-github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
-github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
-github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
-github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
-github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
+github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
+github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
+github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
+github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
+github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
+github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
+github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
+github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
-github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU=
-github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
-github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
-github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
+github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
+github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
+github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
+github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw=
+github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
@@ -103,65 +109,65 @@ github.com/google/go-containerregistry v0.12.0/go.mod h1:sdIK+oHQO7B93xI8UweYdl8
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec=
+github.com/google/pprof v0.0.0-20250128161936-077ca0a936bf h1:BvBLUD2hkvLI3dJTJMiopAq8/wp43AAZKTP7qdpptbU=
+github.com/google/pprof v0.0.0-20250128161936-077ca0a936bf/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
-github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
-github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
+github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
+github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
-github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI=
-github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
-github.com/hashicorp/go-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M=
-github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8=
+github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
+github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
+github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU=
+github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk=
github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go-version v1.3.0 h1:McDWVJIU/y+u1BRV06dPaLfLCaT7fUTJLp5r04x7iNw=
github.com/hashicorp/go-version v1.3.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
-github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4=
-github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
-github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
+github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
+github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/jenkins-x/go-scm v1.14.21 h1:jXHg8vHXQnEj2vV0YcNIYMTTvFg4cEtMbVimtmmYke8=
-github.com/jenkins-x/go-scm v1.14.21/go.mod h1:hE3p9HN+S6GNrunLq0RfNv75kA5KJCrD9GNyfhgWu6Y=
+github.com/jenkins-x/go-scm v1.14.55 h1:bNBt2vjhkOouU1DLEXYUjuVtDpDLv8BTBtF1nb819nE=
+github.com/jenkins-x/go-scm v1.14.55/go.mod h1:1RPxLZndnvu31XhFZ+RTvXiHmMX70HkQ17bRupTQxGs=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c=
-github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
-github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
-github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
+github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
+github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY=
+github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
-github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
-github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
-github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
-github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
+github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
+github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
+github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
+github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
-github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
-github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=
-github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
+github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
+github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -173,203 +179,176 @@ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/onsi/ginkgo/v2 v2.13.2 h1:Bi2gGVkfn6gQcjNjZJVO8Gf0FHzMPf2phUei9tejVMs=
-github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8=
-github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
+github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
+github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
+github.com/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU=
+github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk=
+github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
+github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
github.com/opencontainers/go-digest v1.0.1-0.20220411205349-bde1400a84be h1:f2PlhC9pm5sqpBZFvnAoKj+KzXRzbjFMA+TqXfJdgho=
github.com/opencontainers/go-digest v1.0.1-0.20220411205349-bde1400a84be/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
-github.com/opencontainers/go-digest/blake3 v0.0.0-20231025023718-d50d2fec9c98 h1:LTxrNWOPwquJy9Cu3oz6QHJIO5M5gNyOZtSybXdyLA4=
-github.com/opencontainers/go-digest/blake3 v0.0.0-20231025023718-d50d2fec9c98/go.mod h1:kqQaIc6bZstKgnGpL7GD5dWoLKbA6mH1Y9ULjGImBnM=
+github.com/opencontainers/go-digest/blake3 v0.0.0-20240426182413-22b78e47854a h1:xwooQrLddjfeKhucuLS4ElD3TtuuRwF8QWC9eHrnbxY=
+github.com/opencontainers/go-digest/blake3 v0.0.0-20240426182413-22b78e47854a/go.mod h1:kqQaIc6bZstKgnGpL7GD5dWoLKbA6mH1Y9ULjGImBnM=
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q=
-github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY=
-github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
-github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
-github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM=
-github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY=
-github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
-github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
-github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
+github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
+github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
+github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
+github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
+github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=
+github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I=
+github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
+github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
-github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
-github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
-github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
+github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
+github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
+github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
+github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
github.com/shurcooL/githubv4 v0.0.0-20190718010115-4ba037080260 h1:xKXiRdBUtMVp64NaxACcyX4kvfmHJ9KrLU+JvyB1mdM=
github.com/shurcooL/githubv4 v0.0.0-20190718010115-4ba037080260/go.mod h1:hAF0iLZy4td2EX+/8Tw+4nodhlMrwN3HupfaXj3zkGo=
github.com/shurcooL/graphql v0.0.0-20181231061246-d48a9a75455f h1:tygelZueB1EtXkPI6mQ4o9DQ0+FKW41hTbunoXZCTqk=
github.com/shurcooL/graphql v0.0.0-20181231061246-d48a9a75455f/go.mod h1:AuYgA5Kyo4c7HfUmvRGs/6rGlMMV/6B1bVnB9JxJEEg=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
-github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
-github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48=
-github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
-github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
-github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
+github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
+github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
+github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
+github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
+github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
-github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
+github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
-github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/weaveworks/cluster-controller v1.6.0 h1:lPYAD9kgV3QwC1vslQ5RuqA/awoAOZo2PeH/ou+qaMo=
github.com/weaveworks/cluster-controller v1.6.0/go.mod h1:x441gDOG1WfxZ7bzQz5OFph5RbU11SQC+INtNOyHd9w=
+github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
+github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=
github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/zeebo/assert v1.1.0 h1:hU1L1vLTHsnO8x8c9KAR5GmM5QscxHg5RNU5z5qbUWY=
github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
-github.com/zeebo/blake3 v0.2.3 h1:TFoLXsjeXqRNFxSbk35Dk4YtszE/MQQGK10BH4ptoTg=
-github.com/zeebo/blake3 v0.2.3/go.mod h1:mjJjZpnsyIVtVgTOSpJ9vmRE4wgDeyt2HU3qXvvKCaQ=
+github.com/zeebo/blake3 v0.2.4 h1:KYQPkhpRtcqh0ssGYcKLG1JYvddkEA8QwCM/yBqhaZI=
+github.com/zeebo/blake3 v0.2.4/go.mod h1:7eeQ6d2iXWRGF6npfaxl2CU+xy2Fjo2gxeyZGCRUjcE=
github.com/zeebo/pcg v1.0.1 h1:lyqfGeWiv4ahac6ttHs+I5hwtH/+1mrhlCtVNQM2kHo=
github.com/zeebo/pcg v1.0.1/go.mod h1:09F0S9iiKrwn9rlI5yjLkmrug154/YRW6KnnXVDM/l4=
-go.starlark.net v0.0.0-20231121155337-90ade8b19d09 h1:hzy3LFnSN8kuQK8h9tHl4ndF6UruMj47OqwqsS+/Ai4=
-go.starlark.net v0.0.0-20231121155337-90ade8b19d09/go.mod h1:LcLNIzVOMp4oV+uusnpk+VU+SzXaJakUuBjoCSWH5dM=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
+go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
-go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
+go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
+go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
-golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
-golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
-golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb h1:c0vyKkb6yr3KR7jEfJaOSv4lG7xPkbN6r52aJz1d8a8=
-golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
+golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
+golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
+golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa h1:ELnwvuAXPNtPk1TJRuGkI9fDTwym6AYBu0qzT8AcHdI=
+golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
-golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
-golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
-golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ=
-golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM=
+golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
+golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
+golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
+golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
-golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
+golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
-golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
-golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
-golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
+golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
+golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
+golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
+golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
+golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
+golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
-golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM=
+golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
+golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
-google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
-google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
-google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.36.4 h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM=
+google.golang.org/protobuf v1.36.4/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/evanphx/json-patch.v5 v5.7.0 h1:dGKGylPlZ/jus2g1YqhhyzfH0gPy2R8/MYUpW/OslTY=
-gopkg.in/evanphx/json-patch.v5 v5.7.0/go.mod h1:/kvTRh1TVm5wuM6OkHxqXtE/1nUZZpihg29RtuIyfvk=
+gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
+gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY=
+gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-k8s.io/api v0.28.4 h1:8ZBrLjwosLl/NYgv1P7EQLqoO8MGQApnbgH8tu3BMzY=
-k8s.io/api v0.28.4/go.mod h1:axWTGrY88s/5YE+JSt4uUi6NMM+gur1en2REMR7IRj0=
-k8s.io/apiextensions-apiserver v0.28.4 h1:AZpKY/7wQ8n+ZYDtNHbAJBb+N4AXXJvyZx6ww6yAJvU=
-k8s.io/apiextensions-apiserver v0.28.4/go.mod h1:pgQIZ1U8eJSMQcENew/0ShUTlePcSGFq6dxSxf2mwPM=
-k8s.io/apimachinery v0.28.4 h1:zOSJe1mc+GxuMnFzD4Z/U1wst50X28ZNsn5bhgIIao8=
-k8s.io/apimachinery v0.28.4/go.mod h1:wI37ncBvfAoswfq626yPTe6Bz1c22L7uaJ8dho83mgg=
-k8s.io/cli-runtime v0.28.4 h1:IW3aqSNFXiGDllJF4KVYM90YX4cXPGxuCxCVqCD8X+Q=
-k8s.io/cli-runtime v0.28.4/go.mod h1:MLGRB7LWTIYyYR3d/DOgtUC8ihsAPA3P8K8FDNIqJ0k=
-k8s.io/client-go v0.28.4 h1:Np5ocjlZcTrkyRJ3+T3PkXDpe4UpatQxj85+xjaD2wY=
-k8s.io/client-go v0.28.4/go.mod h1:0VDZFpgoZfelyP5Wqu0/r/TRYcLYuJ2U1KEeoaPa1N4=
-k8s.io/component-base v0.28.4 h1:c/iQLWPdUgI90O+T9TeECg8o7N3YJTiuz2sKxILYcYo=
-k8s.io/component-base v0.28.4/go.mod h1:m9hR0uvqXDybiGL2nf/3Lf0MerAfQXzkfWhUY58JUbU=
-k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0=
-k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo=
-k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8 h1:vzKzxN5uyJZLY8HL1/OovW7BJefnsBIWt8T7Gjh2boQ=
-k8s.io/kube-openapi v0.0.0-20231206194836-bf4651e18aa8/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA=
-k8s.io/kubectl v0.28.4 h1:gWpUXW/T7aFne+rchYeHkyB8eVDl5UZce8G4X//kjUQ=
-k8s.io/kubectl v0.28.4/go.mod h1:CKOccVx3l+3MmDbkXtIUtibq93nN2hkDR99XDCn7c/c=
-k8s.io/utils v0.0.0-20231127182322-b307cd553661 h1:FepOBzJ0GXm8t0su67ln2wAZjbQ6RxQGZDnzuLcrUTI=
-k8s.io/utils v0.0.0-20231127182322-b307cd553661/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-sigs.k8s.io/cli-utils v0.35.0 h1:dfSJaF1W0frW74PtjwiyoB4cwdRygbHnC7qe7HF0g/Y=
-sigs.k8s.io/cli-utils v0.35.0/go.mod h1:ITitykCJxP1vaj1Cew/FZEaVJ2YsTN9Q71m02jebkoE=
-sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4=
-sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/kustomize/api v0.16.0 h1:/zAR4FOQDCkgSDmVzV2uiFbuy9bhu3jEzthrHCuvm1g=
-sigs.k8s.io/kustomize/api v0.16.0/go.mod h1:MnFZ7IP2YqVyVwMWoRxPtgl/5hpA+eCCrQR/866cm5c=
-sigs.k8s.io/kustomize/kyaml v0.16.0 h1:6J33uKSoATlKZH16unr2XOhDI+otoe2sR3M8PDzW3K0=
-sigs.k8s.io/kustomize/kyaml v0.16.0/go.mod h1:xOK/7i+vmE14N2FdFyugIshB8eF6ALpy7jI87Q2nRh4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
+k8s.io/api v0.32.1 h1:f562zw9cy+GvXzXf0CKlVQ7yHJVYzLfL6JAS4kOAaOc=
+k8s.io/api v0.32.1/go.mod h1:/Yi/BqkuueW1BgpoePYBRdDYfjPF5sgTr5+YqDZra5k=
+k8s.io/apiextensions-apiserver v0.32.1 h1:hjkALhRUeCariC8DiVmb5jj0VjIc1N0DREP32+6UXZw=
+k8s.io/apiextensions-apiserver v0.32.1/go.mod h1:sxWIGuGiYov7Io1fAS2X06NjMIk5CbRHc2StSmbaQto=
+k8s.io/apimachinery v0.32.1 h1:683ENpaCBjma4CYqsmZyhEzrGz6cjn1MY/X2jB2hkZs=
+k8s.io/apimachinery v0.32.1/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
+k8s.io/cli-runtime v0.32.1 h1:19nwZPlYGJPUDbhAxDIS2/oydCikvKMHsxroKNGA2mM=
+k8s.io/cli-runtime v0.32.1/go.mod h1:NJPbeadVFnV2E7B7vF+FvU09mpwYlZCu8PqjzfuOnkY=
+k8s.io/client-go v0.32.1 h1:otM0AxdhdBIaQh7l1Q0jQpmo7WOFIk5FFa4bg6YMdUU=
+k8s.io/client-go v0.32.1/go.mod h1:aTTKZY7MdxUaJ/KiUs8D+GssR9zJZi77ZqtzcGXIiDg=
+k8s.io/component-base v0.32.1 h1:/5IfJ0dHIKBWysGV0yKTFfacZ5yNV1sulPh3ilJjRZk=
+k8s.io/component-base v0.32.1/go.mod h1:j1iMMHi/sqAHeG5z+O9BFNCF698a1u0186zkjMZQ28w=
+k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
+k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
+k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg=
+k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas=
+k8s.io/kubectl v0.32.1 h1:/btLtXLQUU1rWx8AEvX9jrb9LaI6yeezt3sFALhB8M8=
+k8s.io/kubectl v0.32.1/go.mod h1:sezNuyWi1STk4ZNPVRIFfgjqMI6XMf+oCVLjZen/pFQ=
+k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0=
+k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+sigs.k8s.io/cli-utils v0.37.2 h1:GOfKw5RV2HDQZDJlru5KkfLO1tbxqMoyn1IYUxqBpNg=
+sigs.k8s.io/cli-utils v0.37.2/go.mod h1:V+IZZr4UoGj7gMJXklWBg6t5xbdThFBcpj4MrZuCYco=
+sigs.k8s.io/controller-runtime v0.20.1 h1:JbGMAG/X94NeM3xvjenVUaBjy6Ui4Ogd/J5ZtjZnHaE=
+sigs.k8s.io/controller-runtime v0.20.1/go.mod h1:BrP3w158MwvB3ZbNpaAcIKkHQ7YGpYnzpoSTZ8E14WU=
+sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
+sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
+sigs.k8s.io/kustomize/api v0.19.0 h1:F+2HB2mU1MSiR9Hp1NEgoU2q9ItNOaBJl0I4Dlus5SQ=
+sigs.k8s.io/kustomize/api v0.19.0/go.mod h1:/BbwnivGVcBh1r+8m3tH1VNxJmHSk1PzP5fkP6lbL1o=
+sigs.k8s.io/kustomize/kyaml v0.19.0 h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA=
+sigs.k8s.io/kustomize/kyaml v0.19.0/go.mod h1:FeKD5jEOH+FbZPpqUghBP8mrLjJ3+zD3/rf9NNu1cwY=
+sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk=
+sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff --git a/hack/boilerplate.go.txt b/hack/boilerplate.go.txt
index 9dd792f0..fad42c91 100644
--- a/hack/boilerplate.go.txt
+++ b/hack/boilerplate.go.txt
@@ -1,3 +1,3 @@
/*
-Copyright 2023.
-*/
\ No newline at end of file
+Copyright 2025.
+*/
diff --git a/ideas.md b/ideas.md
new file mode 100644
index 00000000..759e4481
--- /dev/null
+++ b/ideas.md
@@ -0,0 +1,7 @@
+Future ideas for new generators
+
+ * [ ] External generators! Tho', what's the difference between this and the APIClient generator?
+ * [ ] Keycloak generator - Can we talk OpenLDAP too?
+ * [ ] Rancher resources generator
+ * [ ] Generic K8s query generator
+ * [ ] CEL Filtering (branch already exists).
diff --git a/main.go b/main.go
index c5bf6e7d..4bee4931 100644
--- a/main.go
+++ b/main.go
@@ -16,9 +16,9 @@ import (
"github.com/fluxcd/pkg/runtime/metrics"
"github.com/fluxcd/pkg/runtime/pprof"
"github.com/fluxcd/pkg/tar"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/apiclient"
+ "github.com/gitops-tools/gitopssets-controller/pkg/setup"
flag "github.com/spf13/pflag"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/apiclient"
- "github.com/weaveworks/gitopssets-controller/pkg/setup"
corev1 "k8s.io/api/core/v1"
ctrl "sigs.k8s.io/controller-runtime"
ctrlcache "sigs.k8s.io/controller-runtime/pkg/cache"
@@ -27,8 +27,8 @@ import (
"sigs.k8s.io/controller-runtime/pkg/healthz"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/controllers"
)
var (
diff --git a/pkg/cmd/command.go b/pkg/cmd/command.go
index 35d94bf2..4f7a7c51 100644
--- a/pkg/cmd/command.go
+++ b/pkg/cmd/command.go
@@ -23,12 +23,12 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client/fake"
"sigs.k8s.io/yaml"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/apiclient"
- "github.com/weaveworks/gitopssets-controller/pkg/parser"
- "github.com/weaveworks/gitopssets-controller/pkg/setup"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/controllers/templates"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/apiclient"
+ "github.com/gitops-tools/gitopssets-controller/pkg/parser"
+ "github.com/gitops-tools/gitopssets-controller/pkg/setup"
)
// NewGenerateCommand creates and returns a new Command that renders GitOpsSets.
diff --git a/pkg/cmd/command_test.go b/pkg/cmd/command_test.go
index e2fc0e26..4875a3f5 100644
--- a/pkg/cmd/command_test.go
+++ b/pkg/cmd/command_test.go
@@ -4,8 +4,8 @@ import (
"strings"
"testing"
+ "github.com/gitops-tools/gitopssets-controller/pkg/setup"
"github.com/google/go-cmp/cmp"
- "github.com/weaveworks/gitopssets-controller/pkg/setup"
)
func TestRenderGitOpsSet(t *testing.T) {
@@ -24,8 +24,8 @@ metadata:
app.kubernetes.io/instance: dev
app.kubernetes.io/name: go-demo
com.example/team: dev-team
- templates.weave.works/name: gitopsset-sample
- templates.weave.works/namespace: ""
+ sets.gitops.pro/name: gitopsset-sample
+ sets.gitops.pro/namespace: ""
name: dev-demo
namespace: default
spec:
@@ -57,8 +57,8 @@ metadata:
app.kubernetes.io/instance: dev
app.kubernetes.io/name: go-demo
com.example/team: dev-team
- templates.weave.works/name: gitopsset-sample
- templates.weave.works/namespace: ""
+ sets.gitops.pro/name: gitopsset-sample
+ sets.gitops.pro/namespace: ""
name: dev-demo
namespace: default
spec:
@@ -76,8 +76,8 @@ metadata:
app.kubernetes.io/instance: dev
app.kubernetes.io/name: go-demo
com.example/team: dev-team
- templates.weave.works/name: second-gitopsset-sample
- templates.weave.works/namespace: ""
+ sets.gitops.pro/name: second-gitopsset-sample
+ sets.gitops.pro/namespace: ""
name: dev-demo-2
namespace: default
spec:
diff --git a/pkg/cmd/local_client_test.go b/pkg/cmd/local_client_test.go
index 1ca6af0f..525a903e 100644
--- a/pkg/cmd/local_client_test.go
+++ b/pkg/cmd/local_client_test.go
@@ -7,8 +7,8 @@ import (
sourcev1 "github.com/fluxcd/source-controller/api/v1"
"github.com/fluxcd/source-controller/api/v1beta2"
+ "github.com/gitops-tools/gitopssets-controller/test"
"github.com/go-logr/logr"
- "github.com/weaveworks/gitopssets-controller/test"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/pkg/cmd/testdata/list_set.yaml b/pkg/cmd/testdata/list_set.yaml
index efb2d12c..4aae0e1b 100644
--- a/pkg/cmd/testdata/list_set.yaml
+++ b/pkg/cmd/testdata/list_set.yaml
@@ -1,4 +1,4 @@
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/pkg/cmd/testdata/list_sets.yaml b/pkg/cmd/testdata/list_sets.yaml
index a1350b41..477e155a 100644
--- a/pkg/cmd/testdata/list_sets.yaml
+++ b/pkg/cmd/testdata/list_sets.yaml
@@ -1,5 +1,5 @@
---
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
@@ -34,7 +34,7 @@ spec:
kind: GitRepository
name: go-demo-repo
---
-apiVersion: templates.weave.works/v1alpha1
+apiVersion: sets.gitops.pro/v1alpha1
kind: GitOpsSet
metadata:
labels:
diff --git a/controllers/templates/generators/apiclient/api_client.go b/pkg/generators/apiclient/api_client.go
similarity index 98%
rename from controllers/templates/generators/apiclient/api_client.go
rename to pkg/generators/apiclient/api_client.go
index 7664f0dc..82e51c80 100644
--- a/controllers/templates/generators/apiclient/api_client.go
+++ b/pkg/generators/apiclient/api_client.go
@@ -11,9 +11,9 @@ import (
"net/http"
"time"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
"github.com/go-logr/logr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
corev1 "k8s.io/api/core/v1"
"k8s.io/client-go/util/jsonpath"
"sigs.k8s.io/controller-runtime/pkg/client"
diff --git a/controllers/templates/generators/apiclient/api_client_test.go b/pkg/generators/apiclient/api_client_test.go
similarity index 98%
rename from controllers/templates/generators/apiclient/api_client_test.go
rename to pkg/generators/apiclient/api_client_test.go
index 444489e7..e8182c64 100644
--- a/controllers/templates/generators/apiclient/api_client_test.go
+++ b/pkg/generators/apiclient/api_client_test.go
@@ -22,9 +22,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/test"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
var _ generators.Generator = (*APIClientGenerator)(nil)
@@ -190,7 +190,7 @@ func TestGenerate(t *testing.T) {
apiClient: &templatesv1.APIClientGenerator{
Endpoint: ts.URL + "/api/get-testing",
Method: http.MethodGet,
- SecretRef: &corev1.LocalObjectReference{
+ SecretRef: &templatesv1.LocalObjectReference{
Name: "https-ca-credentials",
},
},
diff --git a/controllers/templates/generators/cluster/cluster.go b/pkg/generators/cluster/cluster.go
similarity index 93%
rename from controllers/templates/generators/cluster/cluster.go
rename to pkg/generators/cluster/cluster.go
index d07a87a2..cbb3167d 100644
--- a/controllers/templates/generators/cluster/cluster.go
+++ b/pkg/generators/cluster/cluster.go
@@ -5,10 +5,10 @@ import (
"fmt"
"time"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
"github.com/go-logr/logr"
clustersv1 "github.com/weaveworks/cluster-controller/api/v1alpha1"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/controllers/templates/generators/cluster/cluster_test.go b/pkg/generators/cluster/cluster_test.go
similarity index 96%
rename from controllers/templates/generators/cluster/cluster_test.go
rename to pkg/generators/cluster/cluster_test.go
index 0500ce98..a85d22bd 100644
--- a/controllers/templates/generators/cluster/cluster_test.go
+++ b/pkg/generators/cluster/cluster_test.go
@@ -11,9 +11,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
clustersv1 "github.com/weaveworks/cluster-controller/api/v1alpha1"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
)
func TestClusterGenerator_Generate(t *testing.T) {
diff --git a/controllers/templates/generators/config/config.go b/pkg/generators/config/config.go
similarity index 94%
rename from controllers/templates/generators/config/config.go
rename to pkg/generators/config/config.go
index d57ecb31..93f93d33 100644
--- a/controllers/templates/generators/config/config.go
+++ b/pkg/generators/config/config.go
@@ -5,9 +5,9 @@ import (
"fmt"
"time"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
"github.com/go-logr/logr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/controllers/templates/generators/config/config_test.go b/pkg/generators/config/config_test.go
similarity index 95%
rename from controllers/templates/generators/config/config_test.go
rename to pkg/generators/config/config_test.go
index 359f40fb..7d5294b6 100644
--- a/controllers/templates/generators/config/config_test.go
+++ b/pkg/generators/config/config_test.go
@@ -14,9 +14,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/test"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
func TestGenerate_with_no_Config(t *testing.T) {
diff --git a/controllers/templates/generators/errors.go b/pkg/generators/errors.go
similarity index 100%
rename from controllers/templates/generators/errors.go
rename to pkg/generators/errors.go
diff --git a/controllers/templates/generators/gitrepository/git_repository.go b/pkg/generators/gitrepository/git_repository.go
similarity index 93%
rename from controllers/templates/generators/gitrepository/git_repository.go
rename to pkg/generators/gitrepository/git_repository.go
index d59aee14..c7f2adca 100644
--- a/controllers/templates/generators/gitrepository/git_repository.go
+++ b/pkg/generators/gitrepository/git_repository.go
@@ -5,11 +5,11 @@ import (
"fmt"
"time"
- sourcev1 "github.com/fluxcd/source-controller/api/v1beta2"
+ sourcev1 "github.com/fluxcd/source-controller/api/v1"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/parser"
"github.com/go-logr/logr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/pkg/parser"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/controllers/templates/generators/gitrepository/git_repository_test.go b/pkg/generators/gitrepository/git_repository_test.go
similarity index 93%
rename from controllers/templates/generators/gitrepository/git_repository_test.go
rename to pkg/generators/gitrepository/git_repository_test.go
index 9f9cdbfd..d870e8e7 100644
--- a/controllers/templates/generators/gitrepository/git_repository_test.go
+++ b/pkg/generators/gitrepository/git_repository_test.go
@@ -7,7 +7,6 @@ import (
"github.com/fluxcd/pkg/http/fetch"
"github.com/fluxcd/pkg/tar"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
- sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
"github.com/go-logr/logr"
"github.com/google/go-cmp/cmp"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -15,9 +14,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/test"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
const testRetries int = 3
@@ -199,8 +198,8 @@ func TestGenerate_errors(t *testing.T) {
}
}
-func withArchiveURLAndChecksum(archiveURL, xsum string) func(*sourcev1beta2.GitRepository) {
- return func(gr *sourcev1beta2.GitRepository) {
+func withArchiveURLAndChecksum(archiveURL, xsum string) func(*sourcev1.GitRepository) {
+ return func(gr *sourcev1.GitRepository) {
gr.Status.Artifact = &sourcev1.Artifact{
URL: archiveURL,
Digest: xsum,
@@ -211,7 +210,7 @@ func withArchiveURLAndChecksum(archiveURL, xsum string) func(*sourcev1beta2.GitR
func newFakeClient(t *testing.T, objs ...runtime.Object) client.WithWatch {
t.Helper()
scheme := runtime.NewScheme()
- if err := sourcev1beta2.AddToScheme(scheme); err != nil {
+ if err := sourcev1.AddToScheme(scheme); err != nil {
t.Fatal(err)
}
if err := templatesv1.AddToScheme(scheme); err != nil {
diff --git a/controllers/templates/generators/gitrepository/testdata/directories.tar.gz b/pkg/generators/gitrepository/testdata/directories.tar.gz
similarity index 100%
rename from controllers/templates/generators/gitrepository/testdata/directories.tar.gz
rename to pkg/generators/gitrepository/testdata/directories.tar.gz
diff --git a/controllers/templates/generators/gitrepository/testdata/directories.tar.gz.sum b/pkg/generators/gitrepository/testdata/directories.tar.gz.sum
similarity index 100%
rename from controllers/templates/generators/gitrepository/testdata/directories.tar.gz.sum
rename to pkg/generators/gitrepository/testdata/directories.tar.gz.sum
diff --git a/controllers/templates/generators/gitrepository/testdata/files.tar.gz b/pkg/generators/gitrepository/testdata/files.tar.gz
similarity index 100%
rename from controllers/templates/generators/gitrepository/testdata/files.tar.gz
rename to pkg/generators/gitrepository/testdata/files.tar.gz
diff --git a/controllers/templates/generators/gitrepository/testdata/files.tar.gz.sum b/pkg/generators/gitrepository/testdata/files.tar.gz.sum
similarity index 100%
rename from controllers/templates/generators/gitrepository/testdata/files.tar.gz.sum
rename to pkg/generators/gitrepository/testdata/files.tar.gz.sum
diff --git a/controllers/templates/generators/gitrepository/testdata/json_files.tar.gz b/pkg/generators/gitrepository/testdata/json_files.tar.gz
similarity index 100%
rename from controllers/templates/generators/gitrepository/testdata/json_files.tar.gz
rename to pkg/generators/gitrepository/testdata/json_files.tar.gz
diff --git a/controllers/templates/generators/gitrepository/testdata/json_files.tar.gz.sum b/pkg/generators/gitrepository/testdata/json_files.tar.gz.sum
similarity index 100%
rename from controllers/templates/generators/gitrepository/testdata/json_files.tar.gz.sum
rename to pkg/generators/gitrepository/testdata/json_files.tar.gz.sum
diff --git a/controllers/templates/generators/imagepolicy/image_policy.go b/pkg/generators/imagepolicy/image_policy.go
similarity index 95%
rename from controllers/templates/generators/imagepolicy/image_policy.go
rename to pkg/generators/imagepolicy/image_policy.go
index 01c97127..826895e5 100644
--- a/controllers/templates/generators/imagepolicy/image_policy.go
+++ b/pkg/generators/imagepolicy/image_policy.go
@@ -6,10 +6,10 @@ import (
"time"
imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
"github.com/go-logr/logr"
"github.com/google/go-containerregistry/pkg/name"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/controllers/templates/generators/imagepolicy/image_policy_test.go b/pkg/generators/imagepolicy/image_policy_test.go
similarity index 96%
rename from controllers/templates/generators/imagepolicy/image_policy_test.go
rename to pkg/generators/imagepolicy/image_policy_test.go
index b38882f7..07618126 100644
--- a/controllers/templates/generators/imagepolicy/image_policy_test.go
+++ b/pkg/generators/imagepolicy/image_policy_test.go
@@ -12,9 +12,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/test"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
var _ generators.Generator = (*ImagePolicyGenerator)(nil)
diff --git a/controllers/templates/generators/interface.go b/pkg/generators/interface.go
similarity index 94%
rename from controllers/templates/generators/interface.go
rename to pkg/generators/interface.go
index e43b48cb..54856652 100644
--- a/controllers/templates/generators/interface.go
+++ b/pkg/generators/interface.go
@@ -5,8 +5,8 @@ import (
"errors"
"time"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
"github.com/go-logr/logr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/controllers/templates/generators/list/list.go b/pkg/generators/list/list.go
similarity index 90%
rename from controllers/templates/generators/list/list.go
rename to pkg/generators/list/list.go
index e6a96e6e..ec1677b3 100644
--- a/controllers/templates/generators/list/list.go
+++ b/pkg/generators/list/list.go
@@ -6,9 +6,9 @@ import (
"fmt"
"time"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
"github.com/go-logr/logr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/controllers/templates/generators/list/list_test.go b/pkg/generators/list/list_test.go
similarity index 93%
rename from controllers/templates/generators/list/list_test.go
rename to pkg/generators/list/list_test.go
index d147426d..0c009e1f 100644
--- a/controllers/templates/generators/list/list_test.go
+++ b/pkg/generators/list/list_test.go
@@ -4,11 +4,11 @@ import (
"context"
"testing"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/test"
"github.com/go-logr/logr"
"github.com/google/go-cmp/cmp"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/test"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
)
diff --git a/controllers/templates/generators/matrix/cartesian_test.go b/pkg/generators/matrix/cartesian_test.go
similarity index 99%
rename from controllers/templates/generators/matrix/cartesian_test.go
rename to pkg/generators/matrix/cartesian_test.go
index 180da80b..19ff3d9d 100644
--- a/controllers/templates/generators/matrix/cartesian_test.go
+++ b/pkg/generators/matrix/cartesian_test.go
@@ -3,8 +3,8 @@ package matrix
import (
"testing"
+ "github.com/gitops-tools/gitopssets-controller/test"
"github.com/google/go-cmp/cmp"
- "github.com/weaveworks/gitopssets-controller/test"
)
func TestCartesian(t *testing.T) {
diff --git a/controllers/templates/generators/matrix/matrix.go b/pkg/generators/matrix/matrix.go
similarity index 98%
rename from controllers/templates/generators/matrix/matrix.go
rename to pkg/generators/matrix/matrix.go
index 68a7edb8..feeef44f 100644
--- a/controllers/templates/generators/matrix/matrix.go
+++ b/pkg/generators/matrix/matrix.go
@@ -9,9 +9,9 @@ import (
"time"
"dario.cat/mergo"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
"github.com/go-logr/logr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/controllers/templates/generators/matrix/matrix_test.go b/pkg/generators/matrix/matrix_test.go
similarity index 97%
rename from controllers/templates/generators/matrix/matrix_test.go
rename to pkg/generators/matrix/matrix_test.go
index a20c78d9..690afbb5 100644
--- a/controllers/templates/generators/matrix/matrix_test.go
+++ b/pkg/generators/matrix/matrix_test.go
@@ -9,14 +9,14 @@ import (
"github.com/fluxcd/pkg/tar"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/gitrepository"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/list"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/pullrequests"
+ "github.com/gitops-tools/gitopssets-controller/test"
"github.com/go-logr/logr"
"github.com/google/go-cmp/cmp"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/gitrepository"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/list"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/pullrequests"
- "github.com/weaveworks/gitopssets-controller/test"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
diff --git a/controllers/templates/generators/matrix/testdata/files.tar.gz b/pkg/generators/matrix/testdata/files.tar.gz
similarity index 100%
rename from controllers/templates/generators/matrix/testdata/files.tar.gz
rename to pkg/generators/matrix/testdata/files.tar.gz
diff --git a/controllers/templates/generators/matrix/testdata/files.tar.gz.sum b/pkg/generators/matrix/testdata/files.tar.gz.sum
similarity index 100%
rename from controllers/templates/generators/matrix/testdata/files.tar.gz.sum
rename to pkg/generators/matrix/testdata/files.tar.gz.sum
diff --git a/controllers/templates/generators/matrix/testdata/json_files.tar.gz b/pkg/generators/matrix/testdata/json_files.tar.gz
similarity index 100%
rename from controllers/templates/generators/matrix/testdata/json_files.tar.gz
rename to pkg/generators/matrix/testdata/json_files.tar.gz
diff --git a/controllers/templates/generators/matrix/testdata/json_files.tar.gz.sum b/pkg/generators/matrix/testdata/json_files.tar.gz.sum
similarity index 100%
rename from controllers/templates/generators/matrix/testdata/json_files.tar.gz.sum
rename to pkg/generators/matrix/testdata/json_files.tar.gz.sum
diff --git a/controllers/templates/generators/ocirepository/oci_repository.go b/pkg/generators/ocirepository/oci_repository.go
similarity index 95%
rename from controllers/templates/generators/ocirepository/oci_repository.go
rename to pkg/generators/ocirepository/oci_repository.go
index a295cb1e..92986f47 100644
--- a/controllers/templates/generators/ocirepository/oci_repository.go
+++ b/pkg/generators/ocirepository/oci_repository.go
@@ -6,10 +6,10 @@ import (
"time"
sourcev1 "github.com/fluxcd/source-controller/api/v1beta2"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/parser"
"github.com/go-logr/logr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/pkg/parser"
"sigs.k8s.io/controller-runtime/pkg/client"
)
diff --git a/controllers/templates/generators/ocirepository/oci_repository_test.go b/pkg/generators/ocirepository/oci_repository_test.go
similarity index 96%
rename from controllers/templates/generators/ocirepository/oci_repository_test.go
rename to pkg/generators/ocirepository/oci_repository_test.go
index e5d4edd2..90b0f587 100644
--- a/controllers/templates/generators/ocirepository/oci_repository_test.go
+++ b/pkg/generators/ocirepository/oci_repository_test.go
@@ -15,9 +15,9 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/test"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
const testRetries int = 3
diff --git a/controllers/templates/generators/ocirepository/testdata/directories.tar.gz b/pkg/generators/ocirepository/testdata/directories.tar.gz
similarity index 100%
rename from controllers/templates/generators/ocirepository/testdata/directories.tar.gz
rename to pkg/generators/ocirepository/testdata/directories.tar.gz
diff --git a/controllers/templates/generators/ocirepository/testdata/directories.tar.gz.sum b/pkg/generators/ocirepository/testdata/directories.tar.gz.sum
similarity index 100%
rename from controllers/templates/generators/ocirepository/testdata/directories.tar.gz.sum
rename to pkg/generators/ocirepository/testdata/directories.tar.gz.sum
diff --git a/controllers/templates/generators/ocirepository/testdata/files.tar.gz b/pkg/generators/ocirepository/testdata/files.tar.gz
similarity index 100%
rename from controllers/templates/generators/ocirepository/testdata/files.tar.gz
rename to pkg/generators/ocirepository/testdata/files.tar.gz
diff --git a/controllers/templates/generators/ocirepository/testdata/files.tar.gz.sum b/pkg/generators/ocirepository/testdata/files.tar.gz.sum
similarity index 100%
rename from controllers/templates/generators/ocirepository/testdata/files.tar.gz.sum
rename to pkg/generators/ocirepository/testdata/files.tar.gz.sum
diff --git a/controllers/templates/generators/ocirepository/testdata/json_files.tar.gz b/pkg/generators/ocirepository/testdata/json_files.tar.gz
similarity index 100%
rename from controllers/templates/generators/ocirepository/testdata/json_files.tar.gz
rename to pkg/generators/ocirepository/testdata/json_files.tar.gz
diff --git a/controllers/templates/generators/ocirepository/testdata/json_files.tar.gz.sum b/pkg/generators/ocirepository/testdata/json_files.tar.gz.sum
similarity index 100%
rename from controllers/templates/generators/ocirepository/testdata/json_files.tar.gz.sum
rename to pkg/generators/ocirepository/testdata/json_files.tar.gz.sum
diff --git a/controllers/templates/generators/pullrequests/pull_requests.go b/pkg/generators/pullrequests/pull_requests.go
similarity index 96%
rename from controllers/templates/generators/pullrequests/pull_requests.go
rename to pkg/generators/pullrequests/pull_requests.go
index e0ba4909..7c2cf893 100644
--- a/controllers/templates/generators/pullrequests/pull_requests.go
+++ b/pkg/generators/pullrequests/pull_requests.go
@@ -6,11 +6,11 @@ import (
"strconv"
"time"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
"github.com/go-logr/logr"
"github.com/jenkins-x/go-scm/scm"
"github.com/jenkins-x/go-scm/scm/factory"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
diff --git a/controllers/templates/generators/pullrequests/pull_requests_test.go b/pkg/generators/pullrequests/pull_requests_test.go
similarity index 96%
rename from controllers/templates/generators/pullrequests/pull_requests_test.go
rename to pkg/generators/pullrequests/pull_requests_test.go
index b8909c0d..89ec01e9 100644
--- a/controllers/templates/generators/pullrequests/pull_requests_test.go
+++ b/pkg/generators/pullrequests/pull_requests_test.go
@@ -6,14 +6,14 @@ import (
"testing"
"time"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/test"
"github.com/go-logr/logr"
"github.com/google/go-cmp/cmp"
"github.com/jenkins-x/go-scm/scm"
fakescm "github.com/jenkins-x/go-scm/scm/driver/fake"
"github.com/jenkins-x/go-scm/scm/factory"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/test"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@@ -49,7 +49,7 @@ func TestGenerate(t *testing.T) {
name string
dataFunc func(*fakescm.Data)
initObjs []runtime.Object
- secretRef *corev1.LocalObjectReference
+ secretRef *templatesv1.LocalObjectReference
labels []string
forks bool
clientFactory func(*scm.Client) clientFactoryFunc
@@ -183,7 +183,7 @@ func TestGenerate(t *testing.T) {
Fork: "test-org/my-repo",
}
},
- secretRef: &corev1.LocalObjectReference{
+ secretRef: &templatesv1.LocalObjectReference{
Name: "test-secret",
},
want: []map[string]any{
@@ -331,14 +331,14 @@ func TestGenerate_errors(t *testing.T) {
testCases := []struct {
name string
initObjs []runtime.Object
- secretRef *corev1.LocalObjectReference
+ secretRef *templatesv1.LocalObjectReference
clientFactory func(*scm.Client) clientFactoryFunc
wantErr string
}{
{
name: "generator with missing secret",
clientFactory: defaultClientFactory,
- secretRef: &corev1.LocalObjectReference{
+ secretRef: &templatesv1.LocalObjectReference{
Name: "test-secret",
},
wantErr: `failed to load repository generator credentials: secrets "test-secret" not found`,
@@ -352,7 +352,7 @@ func TestGenerate_errors(t *testing.T) {
}, func(c *corev1.Secret) {
c.Data = map[string][]byte{}
})},
- secretRef: &corev1.LocalObjectReference{
+ secretRef: &templatesv1.LocalObjectReference{
Name: "test-secret",
},
wantErr: `secret default/test-secret does not contain required field 'password'`,
diff --git a/controllers/templates/generators/relevant.go b/pkg/generators/relevant.go
similarity index 100%
rename from controllers/templates/generators/relevant.go
rename to pkg/generators/relevant.go
diff --git a/controllers/templates/generators/relevant_test.go b/pkg/generators/relevant_test.go
similarity index 86%
rename from controllers/templates/generators/relevant_test.go
rename to pkg/generators/relevant_test.go
index 76ac3546..80f5792e 100644
--- a/controllers/templates/generators/relevant_test.go
+++ b/pkg/generators/relevant_test.go
@@ -5,11 +5,11 @@ import (
"reflect"
"testing"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/list"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/matrix"
- "github.com/weaveworks/gitopssets-controller/test"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/list"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/matrix"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
func TestFindRelevantGenerators(t *testing.T) {
diff --git a/pkg/parser/repository_parser.go b/pkg/parser/repository_parser.go
index dfbd7b5f..88eb29d0 100644
--- a/pkg/parser/repository_parser.go
+++ b/pkg/parser/repository_parser.go
@@ -8,9 +8,10 @@ import (
securejoin "github.com/cyphar/filepath-securejoin"
"github.com/go-logr/logr"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
"k8s.io/apimachinery/pkg/util/sets"
"sigs.k8s.io/yaml"
+
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
)
// ArchiveFetcher implementations should get the URL, validate the contents
diff --git a/pkg/parser/repository_parser_test.go b/pkg/parser/repository_parser_test.go
index 0d3e887f..5ea6465a 100644
--- a/pkg/parser/repository_parser_test.go
+++ b/pkg/parser/repository_parser_test.go
@@ -11,8 +11,9 @@ import (
"github.com/fluxcd/pkg/tar"
"github.com/go-logr/logr"
"github.com/google/go-cmp/cmp"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/test"
+
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
func TestGenerateFromFiles(t *testing.T) {
diff --git a/pkg/setup/generators.go b/pkg/setup/generators.go
index ef7d52cf..9501507a 100644
--- a/pkg/setup/generators.go
+++ b/pkg/setup/generators.go
@@ -9,23 +9,24 @@ import (
_ "k8s.io/client-go/plugin/pkg/client/auth"
imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2"
- sourcev1 "github.com/fluxcd/source-controller/api/v1beta2"
+ sourcev1 "github.com/fluxcd/source-controller/api/v1"
+ sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
clustersv1 "github.com/weaveworks/cluster-controller/api/v1alpha1"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/pkg/parser"
"k8s.io/apimachinery/pkg/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/apiclient"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/cluster"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/config"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/gitrepository"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/imagepolicy"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/list"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/matrix"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/ocirepository"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/pullrequests"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/apiclient"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/cluster"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/config"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/gitrepository"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/imagepolicy"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/list"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/matrix"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/ocirepository"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/pullrequests"
+ "github.com/gitops-tools/gitopssets-controller/pkg/parser"
//+kubebuilder:scaffold:imports
)
@@ -42,6 +43,7 @@ func NewSchemeForGenerators(enabledGenerators []string) (*runtime.Scheme, error)
builder := runtime.SchemeBuilder{
clientgoscheme.AddToScheme,
sourcev1.AddToScheme,
+ sourcev1beta2.AddToScheme,
templatesv1.AddToScheme,
}
diff --git a/pkg/setup/generators_test.go b/pkg/setup/generators_test.go
index 125229fe..fb2cb5ce 100644
--- a/pkg/setup/generators_test.go
+++ b/pkg/setup/generators_test.go
@@ -11,10 +11,10 @@ import (
imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2"
sourcev1 "github.com/fluxcd/source-controller/api/v1beta2"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
clustersv1 "github.com/weaveworks/cluster-controller/api/v1alpha1"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/test"
+ "github.com/gitops-tools/gitopssets-controller/test"
)
func TestNewSchemeForGenerators(t *testing.T) {
diff --git a/test/inventory.go b/test/inventory.go
index fc77a8f2..a7a90a12 100644
--- a/test/inventory.go
+++ b/test/inventory.go
@@ -7,7 +7,7 @@ import (
"github.com/google/go-cmp/cmp"
"k8s.io/apimachinery/pkg/runtime"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
)
// AssertInventoryHasItems will ensure that each of the provided objects is
diff --git a/test/resources.go b/test/resources.go
index 09f95f54..ba739795 100644
--- a/test/resources.go
+++ b/test/resources.go
@@ -2,7 +2,7 @@ package test
import (
imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2"
- sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
+ sourcev1 "github.com/fluxcd/source-controller/api/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@@ -76,18 +76,18 @@ func NewSecret(opts ...func(*corev1.Secret)) *corev1.Secret {
}
// NewGitRepository creates and returns a new GitRepository.
-func NewGitRepository(opts ...func(*sourcev1beta2.GitRepository)) *sourcev1beta2.GitRepository {
- gr := &sourcev1beta2.GitRepository{
+func NewGitRepository(opts ...func(*sourcev1.GitRepository)) *sourcev1.GitRepository {
+ gr := &sourcev1.GitRepository{
TypeMeta: metav1.TypeMeta{
- APIVersion: "source.toolkit.fluxcd.io/v1beta2",
+ APIVersion: "source.toolkit.fluxcd.io/v1",
Kind: "GitRepository",
},
ObjectMeta: metav1.ObjectMeta{
Name: "test-repository",
Namespace: testNamespace,
},
- Spec: sourcev1beta2.GitRepositorySpec{
- URL: "https://github.com/weaveworks/gitopssets-controller",
+ Spec: sourcev1.GitRepositorySpec{
+ URL: "https://github.com/gitops-tools/gitopssets-controller",
},
}
diff --git a/tests/e2e/gitopsset_controller_test.go b/tests/e2e/gitopsset_controller_test.go
index c97b4846..bd9359d0 100644
--- a/tests/e2e/gitopsset_controller_test.go
+++ b/tests/e2e/gitopsset_controller_test.go
@@ -21,22 +21,15 @@ import (
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
- "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/client"
- templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/test"
+ templatesv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/test"
clustersv1 "github.com/weaveworks/cluster-controller/api/v1alpha1"
)
-var kustomizationGVK = schema.GroupVersionKind{
- Group: "kustomize.toolkit.fluxcd.io",
- Kind: "Kustomization",
- Version: "v1beta2",
-}
-
func TestReconcilingNewCluster(t *testing.T) {
ctx := context.TODO()
// Create a new GitopsCluster object and ensure it is created
@@ -112,11 +105,11 @@ func TestReconcilingNewCluster(t *testing.T) {
test.AssertNoError(t, testEnv.Get(ctx, client.ObjectKey{Name: "test-gc-demo", Namespace: "default"}, &kust))
wantLabels := map[string]string{
- "app.kubernetes.io/instance": "test-gc",
- "com.example/new": "tricky-label",
- "com.example/team": "engineering",
- "templates.weave.works/name": "demo-set",
- "templates.weave.works/namespace": "default",
+ "app.kubernetes.io/instance": "test-gc",
+ "com.example/new": "tricky-label",
+ "com.example/team": "engineering",
+ "sets.gitops.pro/name": "demo-set",
+ "sets.gitops.pro/namespace": "default",
}
if diff := cmp.Diff(wantLabels, kust.ObjectMeta.Labels); diff != "" {
t.Fatalf("failed to generate labels:\n%s", diff)
diff --git a/tests/e2e/main_test.go b/tests/e2e/main_test.go
index 3f2f7609..816bbaf5 100644
--- a/tests/e2e/main_test.go
+++ b/tests/e2e/main_test.go
@@ -13,25 +13,26 @@ import (
"github.com/fluxcd/pkg/http/fetch"
"github.com/fluxcd/pkg/runtime/testenv"
"github.com/fluxcd/pkg/tar"
- sourcev1 "github.com/fluxcd/source-controller/api/v1beta2"
+ sourcev1 "github.com/fluxcd/source-controller/api/v1"
+ sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
+ "github.com/gitops-tools/gitopssets-controller/test"
clustersv1 "github.com/weaveworks/cluster-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/test"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/client-go/kubernetes/scheme"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
- gitopssetsv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
- "github.com/weaveworks/gitopssets-controller/controllers"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/cluster"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/config"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/gitrepository"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/imagepolicy"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/list"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/matrix"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/ocirepository"
- "github.com/weaveworks/gitopssets-controller/controllers/templates/generators/pullrequests"
+ gitopssetsv1 "github.com/gitops-tools/gitopssets-controller/api/v1alpha1"
+ "github.com/gitops-tools/gitopssets-controller/controllers"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/cluster"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/config"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/gitrepository"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/imagepolicy"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/list"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/matrix"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/ocirepository"
+ "github.com/gitops-tools/gitopssets-controller/pkg/generators/pullrequests"
// +kubebuilder:scaffold:imports
)
@@ -49,6 +50,7 @@ func TestMain(m *testing.M) {
utilruntime.Must(gitopssetsv1.AddToScheme(scheme.Scheme))
utilruntime.Must(clustersv1.AddToScheme(scheme.Scheme))
utilruntime.Must(sourcev1.AddToScheme(scheme.Scheme))
+ utilruntime.Must(sourcev1beta2.AddToScheme(scheme.Scheme))
utilruntime.Must(imagev1.AddToScheme(scheme.Scheme))
utilruntime.Must(kustomizev1.AddToScheme(scheme.Scheme))
fetcher := fetch.NewArchiveFetcher(1, tar.UnlimitedUntarSize, tar.UnlimitedUntarSize, "")
diff --git a/tests/e2e/testdata/crds/image.toolkit.fluxcd.io_imagepolicies.yaml b/tests/e2e/testdata/crds/image.toolkit.fluxcd.io_imagepolicies.yaml
index 74af4e42..915c5d77 100644
--- a/tests/e2e/testdata/crds/image.toolkit.fluxcd.io_imagepolicies.yaml
+++ b/tests/e2e/testdata/crds/image.toolkit.fluxcd.io_imagepolicies.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.12.0
+ controller-gen.kubebuilder.io/version: v0.16.1
name: imagepolicies.image.toolkit.fluxcd.io
spec:
group: image.toolkit.fluxcd.io
@@ -24,39 +24,48 @@ spec:
description: ImagePolicy is the Schema for the imagepolicies API
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
- description: ImagePolicySpec defines the parameters for calculating the
+ description: |-
+ ImagePolicySpec defines the parameters for calculating the
ImagePolicy
properties:
filterTags:
- description: FilterTags enables filtering for only a subset of tags
- based on a set of rules. If no rules are provided, all the tags
- from the repository will be ordered and compared.
+ description: |-
+ FilterTags enables filtering for only a subset of tags based on a set of
+ rules. If no rules are provided, all the tags from the repository will be
+ ordered and compared.
properties:
extract:
- description: Extract allows a capture group to be extracted from
- the specified regular expression pattern, useful before tag
- evaluation.
+ description: |-
+ Extract allows a capture group to be extracted from the specified regular
+ expression pattern, useful before tag evaluation.
type: string
pattern:
- description: Pattern specifies a regular expression pattern used
- to filter for image tags.
+ description: |-
+ Pattern specifies a regular expression pattern used to filter for image
+ tags.
type: string
type: object
imageRepositoryRef:
- description: ImageRepositoryRef points at the object specifying the
- image being scanned
+ description: |-
+ ImageRepositoryRef points at the object specifying the image
+ being scanned
properties:
name:
description: Name of the referent.
@@ -69,8 +78,9 @@ spec:
- name
type: object
policy:
- description: Policy gives the particulars of the policy to be followed
- in selecting the most recent image
+ description: |-
+ Policy gives the particulars of the policy to be followed in
+ selecting the most recent image
properties:
alphabetical:
description: Alphabetical set of rules to use for alphabetical
@@ -78,9 +88,10 @@ spec:
properties:
order:
default: asc
- description: Order specifies the sorting order of the tags.
- Given the letters of the alphabet as tags, ascending order
- would select Z, and descending order would select A.
+ description: |-
+ Order specifies the sorting order of the tags. Given the letters of the
+ alphabet as tags, ascending order would select Z, and descending order
+ would select A.
enum:
- asc
- desc
@@ -92,23 +103,24 @@ spec:
properties:
order:
default: asc
- description: Order specifies the sorting order of the tags.
- Given the integer values from 0 to 9 as tags, ascending
- order would select 9, and descending order would select
- 0.
+ description: |-
+ Order specifies the sorting order of the tags. Given the integer values
+ from 0 to 9 as tags, ascending order would select 9, and descending order
+ would select 0.
enum:
- asc
- desc
type: string
type: object
semver:
- description: SemVer gives a semantic version range to check against
- the tags available.
+ description: |-
+ SemVer gives a semantic version range to check against the tags
+ available.
properties:
range:
- description: Range gives a semver range for the image tag;
- the highest version within the range that's a tag yields
- the latest image.
+ description: |-
+ Range gives a semver range for the image tag; the highest
+ version within the range that's a tag yields the latest image.
type: string
required:
- range
@@ -125,43 +137,35 @@ spec:
properties:
conditions:
items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
properties:
lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
@@ -176,10 +180,6 @@ spec:
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -192,8 +192,9 @@ spec:
type: object
type: array
latestImage:
- description: LatestImage gives the first in the list of images scanned
- by the image repository, when filtered and ordered according to
+ description: |-
+ LatestImage gives the first in the list of images scanned by
+ the image repository, when filtered and ordered according to
the policy.
type: string
observedGeneration:
@@ -215,39 +216,48 @@ spec:
description: ImagePolicy is the Schema for the imagepolicies API
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
- description: ImagePolicySpec defines the parameters for calculating the
+ description: |-
+ ImagePolicySpec defines the parameters for calculating the
ImagePolicy.
properties:
filterTags:
- description: FilterTags enables filtering for only a subset of tags
- based on a set of rules. If no rules are provided, all the tags
- from the repository will be ordered and compared.
+ description: |-
+ FilterTags enables filtering for only a subset of tags based on a set of
+ rules. If no rules are provided, all the tags from the repository will be
+ ordered and compared.
properties:
extract:
- description: Extract allows a capture group to be extracted from
- the specified regular expression pattern, useful before tag
- evaluation.
+ description: |-
+ Extract allows a capture group to be extracted from the specified regular
+ expression pattern, useful before tag evaluation.
type: string
pattern:
- description: Pattern specifies a regular expression pattern used
- to filter for image tags.
+ description: |-
+ Pattern specifies a regular expression pattern used to filter for image
+ tags.
type: string
type: object
imageRepositoryRef:
- description: ImageRepositoryRef points at the object specifying the
- image being scanned
+ description: |-
+ ImageRepositoryRef points at the object specifying the image
+ being scanned
properties:
name:
description: Name of the referent.
@@ -260,8 +270,9 @@ spec:
- name
type: object
policy:
- description: Policy gives the particulars of the policy to be followed
- in selecting the most recent image
+ description: |-
+ Policy gives the particulars of the policy to be followed in
+ selecting the most recent image
properties:
alphabetical:
description: Alphabetical set of rules to use for alphabetical
@@ -269,9 +280,10 @@ spec:
properties:
order:
default: asc
- description: Order specifies the sorting order of the tags.
- Given the letters of the alphabet as tags, ascending order
- would select Z, and descending order would select A.
+ description: |-
+ Order specifies the sorting order of the tags. Given the letters of the
+ alphabet as tags, ascending order would select Z, and descending order
+ would select A.
enum:
- asc
- desc
@@ -283,23 +295,24 @@ spec:
properties:
order:
default: asc
- description: Order specifies the sorting order of the tags.
- Given the integer values from 0 to 9 as tags, ascending
- order would select 9, and descending order would select
- 0.
+ description: |-
+ Order specifies the sorting order of the tags. Given the integer values
+ from 0 to 9 as tags, ascending order would select 9, and descending order
+ would select 0.
enum:
- asc
- desc
type: string
type: object
semver:
- description: SemVer gives a semantic version range to check against
- the tags available.
+ description: |-
+ SemVer gives a semantic version range to check against the tags
+ available.
properties:
range:
- description: Range gives a semver range for the image tag;
- the highest version within the range that's a tag yields
- the latest image.
+ description: |-
+ Range gives a semver range for the image tag; the highest
+ version within the range that's a tag yields the latest image.
type: string
required:
- range
@@ -316,43 +329,35 @@ spec:
properties:
conditions:
items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
properties:
lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
@@ -367,10 +372,6 @@ spec:
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -383,16 +384,18 @@ spec:
type: object
type: array
latestImage:
- description: LatestImage gives the first in the list of images scanned
- by the image repository, when filtered and ordered according to
+ description: |-
+ LatestImage gives the first in the list of images scanned by
+ the image repository, when filtered and ordered according to
the policy.
type: string
observedGeneration:
format: int64
type: integer
observedPreviousImage:
- description: ObservedPreviousImage is the observed previous LatestImage.
- It is used to keep track of the previous and current images.
+ description: |-
+ ObservedPreviousImage is the observed previous LatestImage. It is used
+ to keep track of the previous and current images.
type: string
type: object
type: object
diff --git a/tests/e2e/testdata/crds/source.toolkit.fluxcd.io_gitrepositories.yaml b/tests/e2e/testdata/crds/source.toolkit.fluxcd.io_gitrepositories.yaml
index c0612400..9d01fbd5 100644
--- a/tests/e2e/testdata/crds/source.toolkit.fluxcd.io_gitrepositories.yaml
+++ b/tests/e2e/testdata/crds/source.toolkit.fluxcd.io_gitrepositories.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.12.0
+ controller-gen.kubebuilder.io/version: v0.16.1
name: gitrepositories.source.toolkit.fluxcd.io
spec:
group: source.toolkit.fluxcd.io
@@ -35,42 +35,51 @@ spec:
description: GitRepository is the Schema for the gitrepositories API.
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
- description: GitRepositorySpec specifies the required configuration to
- produce an Artifact for a Git repository.
+ description: |-
+ GitRepositorySpec specifies the required configuration to produce an
+ Artifact for a Git repository.
properties:
ignore:
- description: Ignore overrides the set of excluded patterns in the
- .sourceignore format (which is the same as .gitignore). If not provided,
- a default will be used, consult the documentation for your version
- to find out what those are.
+ description: |-
+ Ignore overrides the set of excluded patterns in the .sourceignore format
+ (which is the same as .gitignore). If not provided, a default will be used,
+ consult the documentation for your version to find out what those are.
type: string
include:
- description: Include specifies a list of GitRepository resources which
- Artifacts should be included in the Artifact produced for this GitRepository.
+ description: |-
+ Include specifies a list of GitRepository resources which Artifacts
+ should be included in the Artifact produced for this GitRepository.
items:
- description: GitRepositoryInclude specifies a local reference to
- a GitRepository which Artifact (sub-)contents must be included,
- and where they should be placed.
+ description: |-
+ GitRepositoryInclude specifies a local reference to a GitRepository which
+ Artifact (sub-)contents must be included, and where they should be placed.
properties:
fromPath:
- description: FromPath specifies the path to copy contents from,
- defaults to the root of the Artifact.
+ description: |-
+ FromPath specifies the path to copy contents from, defaults to the root
+ of the Artifact.
type: string
repository:
- description: GitRepositoryRef specifies the GitRepository which
- Artifact contents must be included.
+ description: |-
+ GitRepositoryRef specifies the GitRepository which Artifact contents
+ must be included.
properties:
name:
description: Name of the referent.
@@ -79,22 +88,33 @@ spec:
- name
type: object
toPath:
- description: ToPath specifies the path to copy contents to,
- defaults to the name of the GitRepositoryRef.
+ description: |-
+ ToPath specifies the path to copy contents to, defaults to the name of
+ the GitRepositoryRef.
type: string
required:
- repository
type: object
type: array
interval:
- description: Interval at which the GitRepository URL is checked for
- updates. This interval is approximate and may be subject to jitter
- to ensure efficient use of resources.
+ description: |-
+ Interval at which the GitRepository URL is checked for updates.
+ This interval is approximate and may be subject to jitter to ensure
+ efficient use of resources.
pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$
type: string
+ provider:
+ description: |-
+ Provider used for authentication, can be 'azure', 'generic'.
+ When not specified, defaults to 'generic'.
+ enum:
+ - generic
+ - azure
+ type: string
proxySecretRef:
- description: ProxySecretRef specifies the Secret containing the proxy
- configuration to use while communicating with the Git server.
+ description: |-
+ ProxySecretRef specifies the Secret containing the proxy configuration
+ to use while communicating with the Git server.
properties:
name:
description: Name of the referent.
@@ -103,29 +123,32 @@ spec:
- name
type: object
recurseSubmodules:
- description: RecurseSubmodules enables the initialization of all submodules
- within the GitRepository as cloned from the URL, using their default
- settings.
+ description: |-
+ RecurseSubmodules enables the initialization of all submodules within
+ the GitRepository as cloned from the URL, using their default settings.
type: boolean
ref:
- description: Reference specifies the Git reference to resolve and
- monitor for changes, defaults to the 'master' branch.
+ description: |-
+ Reference specifies the Git reference to resolve and monitor for
+ changes, defaults to the 'master' branch.
properties:
branch:
description: Branch to check out, defaults to 'master' if no other
field is defined.
type: string
commit:
- description: "Commit SHA to check out, takes precedence over all
- reference fields. \n This can be combined with Branch to shallow
- clone the branch, in which the commit is expected to exist."
+ description: |-
+ Commit SHA to check out, takes precedence over all reference fields.
+
+ This can be combined with Branch to shallow clone the branch, in which
+ the commit is expected to exist.
type: string
name:
- description: "Name of the reference to check out; takes precedence
- over Branch, Tag and SemVer. \n It must be a valid Git reference:
- https://git-scm.com/docs/git-check-ref-format#_description Examples:
- \"refs/heads/main\", \"refs/tags/v0.1.0\", \"refs/pull/420/head\",
- \"refs/merge-requests/1/head\""
+ description: |-
+ Name of the reference to check out; takes precedence over Branch, Tag and SemVer.
+
+ It must be a valid Git reference: https://git-scm.com/docs/git-check-ref-format#_description
+ Examples: "refs/heads/main", "refs/tags/v0.1.0", "refs/pull/420/head", "refs/merge-requests/1/head"
type: string
semver:
description: SemVer tag expression to check out, takes precedence
@@ -136,11 +159,13 @@ spec:
type: string
type: object
secretRef:
- description: SecretRef specifies the Secret containing authentication
- credentials for the GitRepository. For HTTPS repositories the Secret
- must contain 'username' and 'password' fields for basic auth or
- 'bearerToken' field for token auth. For SSH repositories the Secret
- must contain 'identity' and 'known_hosts' fields.
+ description: |-
+ SecretRef specifies the Secret containing authentication credentials for
+ the GitRepository.
+ For HTTPS repositories the Secret must contain 'username' and 'password'
+ fields for basic auth or 'bearerToken' field for token auth.
+ For SSH repositories the Secret must contain 'identity'
+ and 'known_hosts' fields.
properties:
name:
description: Name of the referent.
@@ -149,8 +174,9 @@ spec:
- name
type: object
suspend:
- description: Suspend tells the controller to suspend the reconciliation
- of this GitRepository.
+ description: |-
+ Suspend tells the controller to suspend the reconciliation of this
+ GitRepository.
type: boolean
timeout:
default: 60s
@@ -164,15 +190,18 @@ spec:
pattern: ^(http|https|ssh)://.*$
type: string
verify:
- description: Verification specifies the configuration to verify the
- Git commit signature(s).
+ description: |-
+ Verification specifies the configuration to verify the Git commit
+ signature(s).
properties:
mode:
default: HEAD
- description: "Mode specifies which Git object(s) should be verified.
- \n The variants \"head\" and \"HEAD\" both imply the same thing,
- i.e. verify the commit that the HEAD of the Git repository points
- to. The variant \"head\" solely exists to ensure backwards compatibility."
+ description: |-
+ Mode specifies which Git object(s) should be verified.
+
+ The variants "head" and "HEAD" both imply the same thing, i.e. verify
+ the commit that the HEAD of the Git repository points to. The variant
+ "head" solely exists to ensure backwards compatibility.
enum:
- head
- HEAD
@@ -180,8 +209,9 @@ spec:
- TagAndHEAD
type: string
secretRef:
- description: SecretRef specifies the Secret containing the public
- keys of trusted Git authors.
+ description: |-
+ SecretRef specifies the Secret containing the public keys of trusted Git
+ authors.
properties:
name:
description: Name of the referent.
@@ -210,8 +240,9 @@ spec:
pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$
type: string
lastUpdateTime:
- description: LastUpdateTime is the timestamp corresponding to
- the last update of the Artifact.
+ description: |-
+ LastUpdateTime is the timestamp corresponding to the last update of the
+ Artifact.
format: date-time
type: string
metadata:
@@ -220,24 +251,25 @@ spec:
description: Metadata holds upstream information such as OCI annotations.
type: object
path:
- description: Path is the relative file path of the Artifact. It
- can be used to locate the file in the root of the Artifact storage
- on the local file system of the controller managing the Source.
+ description: |-
+ Path is the relative file path of the Artifact. It can be used to locate
+ the file in the root of the Artifact storage on the local file system of
+ the controller managing the Source.
type: string
revision:
- description: Revision is a human-readable identifier traceable
- in the origin source system. It can be a Git commit SHA, Git
- tag, a Helm chart version, etc.
+ description: |-
+ Revision is a human-readable identifier traceable in the origin source
+ system. It can be a Git commit SHA, Git tag, a Helm chart version, etc.
type: string
size:
description: Size is the number of bytes in the file.
format: int64
type: integer
url:
- description: URL is the HTTP address of the Artifact as exposed
- by the controller managing the Source. It can be used to retrieve
- the Artifact for consumption, e.g. by another controller applying
- the Artifact contents.
+ description: |-
+ URL is the HTTP address of the Artifact as exposed by the controller
+ managing the Source. It can be used to retrieve the Artifact for
+ consumption, e.g. by another controller applying the Artifact contents.
type: string
required:
- lastUpdateTime
@@ -248,43 +280,35 @@ spec:
conditions:
description: Conditions holds the conditions for the GitRepository.
items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
properties:
lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
@@ -299,10 +323,6 @@ spec:
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -315,8 +335,9 @@ spec:
type: object
type: array
includedArtifacts:
- description: IncludedArtifacts contains a list of the last successfully
- included Artifacts as instructed by GitRepositorySpec.Include.
+ description: |-
+ IncludedArtifacts contains a list of the last successfully included
+ Artifacts as instructed by GitRepositorySpec.Include.
items:
description: Artifact represents the output of a Source reconciliation.
properties:
@@ -326,8 +347,9 @@ spec:
pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$
type: string
lastUpdateTime:
- description: LastUpdateTime is the timestamp corresponding to
- the last update of the Artifact.
+ description: |-
+ LastUpdateTime is the timestamp corresponding to the last update of the
+ Artifact.
format: date-time
type: string
metadata:
@@ -337,25 +359,25 @@ spec:
annotations.
type: object
path:
- description: Path is the relative file path of the Artifact.
- It can be used to locate the file in the root of the Artifact
- storage on the local file system of the controller managing
- the Source.
+ description: |-
+ Path is the relative file path of the Artifact. It can be used to locate
+ the file in the root of the Artifact storage on the local file system of
+ the controller managing the Source.
type: string
revision:
- description: Revision is a human-readable identifier traceable
- in the origin source system. It can be a Git commit SHA, Git
- tag, a Helm chart version, etc.
+ description: |-
+ Revision is a human-readable identifier traceable in the origin source
+ system. It can be a Git commit SHA, Git tag, a Helm chart version, etc.
type: string
size:
description: Size is the number of bytes in the file.
format: int64
type: integer
url:
- description: URL is the HTTP address of the Artifact as exposed
- by the controller managing the Source. It can be used to retrieve
- the Artifact for consumption, e.g. by another controller applying
- the Artifact contents.
+ description: |-
+ URL is the HTTP address of the Artifact as exposed by the controller
+ managing the Source. It can be used to retrieve the Artifact for
+ consumption, e.g. by another controller applying the Artifact contents.
type: string
required:
- lastUpdateTime
@@ -365,34 +387,40 @@ spec:
type: object
type: array
lastHandledReconcileAt:
- description: LastHandledReconcileAt holds the value of the most recent
- reconcile request value, so a change of the annotation value can
- be detected.
+ description: |-
+ LastHandledReconcileAt holds the value of the most recent
+ reconcile request value, so a change of the annotation value
+ can be detected.
type: string
observedGeneration:
- description: ObservedGeneration is the last observed generation of
- the GitRepository object.
+ description: |-
+ ObservedGeneration is the last observed generation of the GitRepository
+ object.
format: int64
type: integer
observedIgnore:
- description: ObservedIgnore is the observed exclusion patterns used
- for constructing the source artifact.
+ description: |-
+ ObservedIgnore is the observed exclusion patterns used for constructing
+ the source artifact.
type: string
observedInclude:
- description: ObservedInclude is the observed list of GitRepository
- resources used to produce the current Artifact.
+ description: |-
+ ObservedInclude is the observed list of GitRepository resources used to
+ produce the current Artifact.
items:
- description: GitRepositoryInclude specifies a local reference to
- a GitRepository which Artifact (sub-)contents must be included,
- and where they should be placed.
+ description: |-
+ GitRepositoryInclude specifies a local reference to a GitRepository which
+ Artifact (sub-)contents must be included, and where they should be placed.
properties:
fromPath:
- description: FromPath specifies the path to copy contents from,
- defaults to the root of the Artifact.
+ description: |-
+ FromPath specifies the path to copy contents from, defaults to the root
+ of the Artifact.
type: string
repository:
- description: GitRepositoryRef specifies the GitRepository which
- Artifact contents must be included.
+ description: |-
+ GitRepositoryRef specifies the GitRepository which Artifact contents
+ must be included.
properties:
name:
description: Name of the referent.
@@ -401,20 +429,23 @@ spec:
- name
type: object
toPath:
- description: ToPath specifies the path to copy contents to,
- defaults to the name of the GitRepositoryRef.
+ description: |-
+ ToPath specifies the path to copy contents to, defaults to the name of
+ the GitRepositoryRef.
type: string
required:
- repository
type: object
type: array
observedRecurseSubmodules:
- description: ObservedRecurseSubmodules is the observed resource submodules
+ description: |-
+ ObservedRecurseSubmodules is the observed resource submodules
configuration used to produce the current Artifact.
type: boolean
sourceVerificationMode:
- description: SourceVerificationMode is the last used verification
- mode indicating which Git object(s) have been verified.
+ description: |-
+ SourceVerificationMode is the last used verification mode indicating
+ which Git object(s) have been verified.
type: string
type: object
type: object
@@ -443,14 +474,19 @@ spec:
description: GitRepository is the Schema for the gitrepositories API
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
@@ -462,22 +498,21 @@ spec:
cross-namespace references to this object.
properties:
namespaceSelectors:
- description: NamespaceSelectors is the list of namespace selectors
- to which this ACL applies. Items in this list are evaluated
- using a logical OR operation.
+ description: |-
+ NamespaceSelectors is the list of namespace selectors to which this ACL applies.
+ Items in this list are evaluated using a logical OR operation.
items:
- description: NamespaceSelector selects the namespaces to which
- this ACL applies. An empty map of MatchLabels matches all
- namespaces in a cluster.
+ description: |-
+ NamespaceSelector selects the namespaces to which this ACL applies.
+ An empty map of MatchLabels matches all namespaces in a cluster.
properties:
matchLabels:
additionalProperties:
type: string
- description: MatchLabels is a map of {key,value} pairs.
- A single {key,value} in the matchLabels map is equivalent
- to an element of matchExpressions, whose key field is
- "key", the operator is "In", and the values array contains
- only "value". The requirements are ANDed.
+ description: |-
+ MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
type: array
@@ -486,17 +521,18 @@ spec:
type: object
gitImplementation:
default: go-git
- description: Determines which git client library to use. Defaults
- to go-git, valid values are ('go-git', 'libgit2').
+ description: |-
+ Determines which git client library to use.
+ Defaults to go-git, valid values are ('go-git', 'libgit2').
enum:
- go-git
- libgit2
type: string
ignore:
- description: Ignore overrides the set of excluded patterns in the
- .sourceignore format (which is the same as .gitignore). If not provided,
- a default will be used, consult the documentation for your version
- to find out what those are.
+ description: |-
+ Ignore overrides the set of excluded patterns in the .sourceignore format
+ (which is the same as .gitignore). If not provided, a default will be used,
+ consult the documentation for your version to find out what those are.
type: string
include:
description: Extra git repositories to map into the repository
@@ -529,13 +565,15 @@ spec:
description: The interval at which to check for repository updates.
type: string
recurseSubmodules:
- description: When enabled, after the clone is created, initializes
- all submodules within, using their default settings. This option
- is available only when using the 'go-git' GitImplementation.
+ description: |-
+ When enabled, after the clone is created, initializes all submodules within,
+ using their default settings.
+ This option is available only when using the 'go-git' GitImplementation.
type: boolean
ref:
- description: The Git reference to checkout and monitor for changes,
- defaults to master branch.
+ description: |-
+ The Git reference to checkout and monitor for changes, defaults to
+ master branch.
properties:
branch:
description: The Git branch to checkout, defaults to master.
@@ -553,8 +591,10 @@ spec:
type: string
type: object
secretRef:
- description: The secret name containing the Git credentials. For HTTPS
- repositories the secret must contain username and password fields.
+ description: |-
+ The secret name containing the Git credentials.
+ For HTTPS repositories the secret must contain username and password
+ fields.
For SSH repositories the secret must contain identity and known_hosts
fields.
properties:
@@ -617,65 +657,60 @@ spec:
description: Checksum is the SHA256 checksum of the artifact.
type: string
lastUpdateTime:
- description: LastUpdateTime is the timestamp corresponding to
- the last update of this artifact.
+ description: |-
+ LastUpdateTime is the timestamp corresponding to the last update of this
+ artifact.
format: date-time
type: string
path:
description: Path is the relative file path of this artifact.
type: string
revision:
- description: Revision is a human readable identifier traceable
- in the origin source system. It can be a Git commit SHA, Git
- tag, a Helm index timestamp, a Helm chart version, etc.
+ description: |-
+ Revision is a human readable identifier traceable in the origin source
+ system. It can be a Git commit SHA, Git tag, a Helm index timestamp, a Helm
+ chart version, etc.
type: string
url:
description: URL is the HTTP address of this artifact.
type: string
required:
+ - lastUpdateTime
- path
- url
type: object
conditions:
description: Conditions holds the conditions for the GitRepository.
items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
properties:
lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
@@ -690,10 +725,6 @@ spec:
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -715,38 +746,43 @@ spec:
description: Checksum is the SHA256 checksum of the artifact.
type: string
lastUpdateTime:
- description: LastUpdateTime is the timestamp corresponding to
- the last update of this artifact.
+ description: |-
+ LastUpdateTime is the timestamp corresponding to the last update of this
+ artifact.
format: date-time
type: string
path:
description: Path is the relative file path of this artifact.
type: string
revision:
- description: Revision is a human readable identifier traceable
- in the origin source system. It can be a Git commit SHA, Git
- tag, a Helm index timestamp, a Helm chart version, etc.
+ description: |-
+ Revision is a human readable identifier traceable in the origin source
+ system. It can be a Git commit SHA, Git tag, a Helm index timestamp, a Helm
+ chart version, etc.
type: string
url:
description: URL is the HTTP address of this artifact.
type: string
required:
+ - lastUpdateTime
- path
- url
type: object
type: array
lastHandledReconcileAt:
- description: LastHandledReconcileAt holds the value of the most recent
- reconcile request value, so a change of the annotation value can
- be detected.
+ description: |-
+ LastHandledReconcileAt holds the value of the most recent
+ reconcile request value, so a change of the annotation value
+ can be detected.
type: string
observedGeneration:
description: ObservedGeneration is the last observed generation.
format: int64
type: integer
url:
- description: URL is the download link for the artifact output of the
- last repository sync.
+ description: |-
+ URL is the download link for the artifact output of the last repository
+ sync.
type: string
type: object
type: object
@@ -775,43 +811,49 @@ spec:
description: GitRepository is the Schema for the gitrepositories API.
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
- description: GitRepositorySpec specifies the required configuration to
- produce an Artifact for a Git repository.
+ description: |-
+ GitRepositorySpec specifies the required configuration to produce an
+ Artifact for a Git repository.
properties:
accessFrom:
- description: 'AccessFrom specifies an Access Control List for allowing
- cross-namespace references to this object. NOTE: Not implemented,
- provisional as of https://github.com/fluxcd/flux2/pull/2092'
+ description: |-
+ AccessFrom specifies an Access Control List for allowing cross-namespace
+ references to this object.
+ NOTE: Not implemented, provisional as of https://github.com/fluxcd/flux2/pull/2092
properties:
namespaceSelectors:
- description: NamespaceSelectors is the list of namespace selectors
- to which this ACL applies. Items in this list are evaluated
- using a logical OR operation.
+ description: |-
+ NamespaceSelectors is the list of namespace selectors to which this ACL applies.
+ Items in this list are evaluated using a logical OR operation.
items:
- description: NamespaceSelector selects the namespaces to which
- this ACL applies. An empty map of MatchLabels matches all
- namespaces in a cluster.
+ description: |-
+ NamespaceSelector selects the namespaces to which this ACL applies.
+ An empty map of MatchLabels matches all namespaces in a cluster.
properties:
matchLabels:
additionalProperties:
type: string
- description: MatchLabels is a map of {key,value} pairs.
- A single {key,value} in the matchLabels map is equivalent
- to an element of matchExpressions, whose key field is
- "key", the operator is "In", and the values array contains
- only "value". The requirements are ANDed.
+ description: |-
+ MatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
type: array
@@ -820,35 +862,39 @@ spec:
type: object
gitImplementation:
default: go-git
- description: 'GitImplementation specifies which Git client library
- implementation to use. Defaults to ''go-git'', valid values are
- (''go-git'', ''libgit2''). Deprecated: gitImplementation is deprecated
- now that ''go-git'' is the only supported implementation.'
+ description: |-
+ GitImplementation specifies which Git client library implementation to
+ use. Defaults to 'go-git', valid values are ('go-git', 'libgit2').
+ Deprecated: gitImplementation is deprecated now that 'go-git' is the
+ only supported implementation.
enum:
- go-git
- libgit2
type: string
ignore:
- description: Ignore overrides the set of excluded patterns in the
- .sourceignore format (which is the same as .gitignore). If not provided,
- a default will be used, consult the documentation for your version
- to find out what those are.
+ description: |-
+ Ignore overrides the set of excluded patterns in the .sourceignore format
+ (which is the same as .gitignore). If not provided, a default will be used,
+ consult the documentation for your version to find out what those are.
type: string
include:
- description: Include specifies a list of GitRepository resources which
- Artifacts should be included in the Artifact produced for this GitRepository.
+ description: |-
+ Include specifies a list of GitRepository resources which Artifacts
+ should be included in the Artifact produced for this GitRepository.
items:
- description: GitRepositoryInclude specifies a local reference to
- a GitRepository which Artifact (sub-)contents must be included,
- and where they should be placed.
+ description: |-
+ GitRepositoryInclude specifies a local reference to a GitRepository which
+ Artifact (sub-)contents must be included, and where they should be placed.
properties:
fromPath:
- description: FromPath specifies the path to copy contents from,
- defaults to the root of the Artifact.
+ description: |-
+ FromPath specifies the path to copy contents from, defaults to the root
+ of the Artifact.
type: string
repository:
- description: GitRepositoryRef specifies the GitRepository which
- Artifact contents must be included.
+ description: |-
+ GitRepositoryRef specifies the GitRepository which Artifact contents
+ must be included.
properties:
name:
description: Name of the referent.
@@ -857,8 +903,9 @@ spec:
- name
type: object
toPath:
- description: ToPath specifies the path to copy contents to,
- defaults to the name of the GitRepositoryRef.
+ description: |-
+ ToPath specifies the path to copy contents to, defaults to the name of
+ the GitRepositoryRef.
type: string
required:
- repository
@@ -869,29 +916,32 @@ spec:
pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$
type: string
recurseSubmodules:
- description: RecurseSubmodules enables the initialization of all submodules
- within the GitRepository as cloned from the URL, using their default
- settings.
+ description: |-
+ RecurseSubmodules enables the initialization of all submodules within
+ the GitRepository as cloned from the URL, using their default settings.
type: boolean
ref:
- description: Reference specifies the Git reference to resolve and
- monitor for changes, defaults to the 'master' branch.
+ description: |-
+ Reference specifies the Git reference to resolve and monitor for
+ changes, defaults to the 'master' branch.
properties:
branch:
description: Branch to check out, defaults to 'master' if no other
field is defined.
type: string
commit:
- description: "Commit SHA to check out, takes precedence over all
- reference fields. \n This can be combined with Branch to shallow
- clone the branch, in which the commit is expected to exist."
+ description: |-
+ Commit SHA to check out, takes precedence over all reference fields.
+
+ This can be combined with Branch to shallow clone the branch, in which
+ the commit is expected to exist.
type: string
name:
- description: "Name of the reference to check out; takes precedence
- over Branch, Tag and SemVer. \n It must be a valid Git reference:
- https://git-scm.com/docs/git-check-ref-format#_description Examples:
- \"refs/heads/main\", \"refs/tags/v0.1.0\", \"refs/pull/420/head\",
- \"refs/merge-requests/1/head\""
+ description: |-
+ Name of the reference to check out; takes precedence over Branch, Tag and SemVer.
+
+ It must be a valid Git reference: https://git-scm.com/docs/git-check-ref-format#_description
+ Examples: "refs/heads/main", "refs/tags/v0.1.0", "refs/pull/420/head", "refs/merge-requests/1/head"
type: string
semver:
description: SemVer tag expression to check out, takes precedence
@@ -902,11 +952,13 @@ spec:
type: string
type: object
secretRef:
- description: SecretRef specifies the Secret containing authentication
- credentials for the GitRepository. For HTTPS repositories the Secret
- must contain 'username' and 'password' fields for basic auth or
- 'bearerToken' field for token auth. For SSH repositories the Secret
- must contain 'identity' and 'known_hosts' fields.
+ description: |-
+ SecretRef specifies the Secret containing authentication credentials for
+ the GitRepository.
+ For HTTPS repositories the Secret must contain 'username' and 'password'
+ fields for basic auth or 'bearerToken' field for token auth.
+ For SSH repositories the Secret must contain 'identity'
+ and 'known_hosts' fields.
properties:
name:
description: Name of the referent.
@@ -915,8 +967,9 @@ spec:
- name
type: object
suspend:
- description: Suspend tells the controller to suspend the reconciliation
- of this GitRepository.
+ description: |-
+ Suspend tells the controller to suspend the reconciliation of this
+ GitRepository.
type: boolean
timeout:
default: 60s
@@ -930,8 +983,9 @@ spec:
pattern: ^(http|https|ssh)://.*$
type: string
verify:
- description: Verification specifies the configuration to verify the
- Git commit signature(s).
+ description: |-
+ Verification specifies the configuration to verify the Git commit
+ signature(s).
properties:
mode:
description: Mode specifies what Git object should be verified,
@@ -940,8 +994,9 @@ spec:
- head
type: string
secretRef:
- description: SecretRef specifies the Secret containing the public
- keys of trusted Git authors.
+ description: |-
+ SecretRef specifies the Secret containing the public keys of trusted Git
+ authors.
properties:
name:
description: Name of the referent.
@@ -971,8 +1026,9 @@ spec:
pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$
type: string
lastUpdateTime:
- description: LastUpdateTime is the timestamp corresponding to
- the last update of the Artifact.
+ description: |-
+ LastUpdateTime is the timestamp corresponding to the last update of the
+ Artifact.
format: date-time
type: string
metadata:
@@ -981,24 +1037,25 @@ spec:
description: Metadata holds upstream information such as OCI annotations.
type: object
path:
- description: Path is the relative file path of the Artifact. It
- can be used to locate the file in the root of the Artifact storage
- on the local file system of the controller managing the Source.
+ description: |-
+ Path is the relative file path of the Artifact. It can be used to locate
+ the file in the root of the Artifact storage on the local file system of
+ the controller managing the Source.
type: string
revision:
- description: Revision is a human-readable identifier traceable
- in the origin source system. It can be a Git commit SHA, Git
- tag, a Helm chart version, etc.
+ description: |-
+ Revision is a human-readable identifier traceable in the origin source
+ system. It can be a Git commit SHA, Git tag, a Helm chart version, etc.
type: string
size:
description: Size is the number of bytes in the file.
format: int64
type: integer
url:
- description: URL is the HTTP address of the Artifact as exposed
- by the controller managing the Source. It can be used to retrieve
- the Artifact for consumption, e.g. by another controller applying
- the Artifact contents.
+ description: |-
+ URL is the HTTP address of the Artifact as exposed by the controller
+ managing the Source. It can be used to retrieve the Artifact for
+ consumption, e.g. by another controller applying the Artifact contents.
type: string
required:
- lastUpdateTime
@@ -1009,43 +1066,35 @@ spec:
conditions:
description: Conditions holds the conditions for the GitRepository.
items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
properties:
lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
@@ -1060,10 +1109,6 @@ spec:
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -1076,18 +1121,24 @@ spec:
type: object
type: array
contentConfigChecksum:
- description: "ContentConfigChecksum is a checksum of all the configurations
- related to the content of the source artifact: - .spec.ignore -
- .spec.recurseSubmodules - .spec.included and the checksum of the
- included artifacts observed in .status.observedGeneration version
- of the object. This can be used to determine if the content of the
- included repository has changed. It has the format of `:`,
- for example: `sha256:`. \n Deprecated: Replaced with explicit
- fields for observed artifact content config in the status."
+ description: |-
+ ContentConfigChecksum is a checksum of all the configurations related to
+ the content of the source artifact:
+ - .spec.ignore
+ - .spec.recurseSubmodules
+ - .spec.included and the checksum of the included artifacts
+ observed in .status.observedGeneration version of the object. This can
+ be used to determine if the content of the included repository has
+ changed.
+ It has the format of `:`, for example: `sha256:`.
+
+ Deprecated: Replaced with explicit fields for observed artifact content
+ config in the status.
type: string
includedArtifacts:
- description: IncludedArtifacts contains a list of the last successfully
- included Artifacts as instructed by GitRepositorySpec.Include.
+ description: |-
+ IncludedArtifacts contains a list of the last successfully included
+ Artifacts as instructed by GitRepositorySpec.Include.
items:
description: Artifact represents the output of a Source reconciliation.
properties:
@@ -1097,8 +1148,9 @@ spec:
pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$
type: string
lastUpdateTime:
- description: LastUpdateTime is the timestamp corresponding to
- the last update of the Artifact.
+ description: |-
+ LastUpdateTime is the timestamp corresponding to the last update of the
+ Artifact.
format: date-time
type: string
metadata:
@@ -1108,25 +1160,25 @@ spec:
annotations.
type: object
path:
- description: Path is the relative file path of the Artifact.
- It can be used to locate the file in the root of the Artifact
- storage on the local file system of the controller managing
- the Source.
+ description: |-
+ Path is the relative file path of the Artifact. It can be used to locate
+ the file in the root of the Artifact storage on the local file system of
+ the controller managing the Source.
type: string
revision:
- description: Revision is a human-readable identifier traceable
- in the origin source system. It can be a Git commit SHA, Git
- tag, a Helm chart version, etc.
+ description: |-
+ Revision is a human-readable identifier traceable in the origin source
+ system. It can be a Git commit SHA, Git tag, a Helm chart version, etc.
type: string
size:
description: Size is the number of bytes in the file.
format: int64
type: integer
url:
- description: URL is the HTTP address of the Artifact as exposed
- by the controller managing the Source. It can be used to retrieve
- the Artifact for consumption, e.g. by another controller applying
- the Artifact contents.
+ description: |-
+ URL is the HTTP address of the Artifact as exposed by the controller
+ managing the Source. It can be used to retrieve the Artifact for
+ consumption, e.g. by another controller applying the Artifact contents.
type: string
required:
- lastUpdateTime
@@ -1136,34 +1188,40 @@ spec:
type: object
type: array
lastHandledReconcileAt:
- description: LastHandledReconcileAt holds the value of the most recent
- reconcile request value, so a change of the annotation value can
- be detected.
+ description: |-
+ LastHandledReconcileAt holds the value of the most recent
+ reconcile request value, so a change of the annotation value
+ can be detected.
type: string
observedGeneration:
- description: ObservedGeneration is the last observed generation of
- the GitRepository object.
+ description: |-
+ ObservedGeneration is the last observed generation of the GitRepository
+ object.
format: int64
type: integer
observedIgnore:
- description: ObservedIgnore is the observed exclusion patterns used
- for constructing the source artifact.
+ description: |-
+ ObservedIgnore is the observed exclusion patterns used for constructing
+ the source artifact.
type: string
observedInclude:
- description: ObservedInclude is the observed list of GitRepository
- resources used to to produce the current Artifact.
+ description: |-
+ ObservedInclude is the observed list of GitRepository resources used to
+ to produce the current Artifact.
items:
- description: GitRepositoryInclude specifies a local reference to
- a GitRepository which Artifact (sub-)contents must be included,
- and where they should be placed.
+ description: |-
+ GitRepositoryInclude specifies a local reference to a GitRepository which
+ Artifact (sub-)contents must be included, and where they should be placed.
properties:
fromPath:
- description: FromPath specifies the path to copy contents from,
- defaults to the root of the Artifact.
+ description: |-
+ FromPath specifies the path to copy contents from, defaults to the root
+ of the Artifact.
type: string
repository:
- description: GitRepositoryRef specifies the GitRepository which
- Artifact contents must be included.
+ description: |-
+ GitRepositoryRef specifies the GitRepository which Artifact contents
+ must be included.
properties:
name:
description: Name of the referent.
@@ -1172,21 +1230,24 @@ spec:
- name
type: object
toPath:
- description: ToPath specifies the path to copy contents to,
- defaults to the name of the GitRepositoryRef.
+ description: |-
+ ToPath specifies the path to copy contents to, defaults to the name of
+ the GitRepositoryRef.
type: string
required:
- repository
type: object
type: array
observedRecurseSubmodules:
- description: ObservedRecurseSubmodules is the observed resource submodules
+ description: |-
+ ObservedRecurseSubmodules is the observed resource submodules
configuration used to produce the current Artifact.
type: boolean
url:
- description: URL is the dynamic fetch link for the latest Artifact.
- It is provided on a "best effort" basis, and using the precise GitRepositoryStatus.Artifact
- data is recommended.
+ description: |-
+ URL is the dynamic fetch link for the latest Artifact.
+ It is provided on a "best effort" basis, and using the precise
+ GitRepositoryStatus.Artifact data is recommended.
type: string
type: object
type: object
diff --git a/tests/e2e/testdata/crds/source.toolkit.fluxcd.io_ocirepositories.yaml b/tests/e2e/testdata/crds/source.toolkit.fluxcd.io_ocirepositories.yaml
index b795c8fd..a60b7b41 100644
--- a/tests/e2e/testdata/crds/source.toolkit.fluxcd.io_ocirepositories.yaml
+++ b/tests/e2e/testdata/crds/source.toolkit.fluxcd.io_ocirepositories.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.12.0
+ controller-gen.kubebuilder.io/version: v0.16.1
name: ocirepositories.source.toolkit.fluxcd.io
spec:
group: source.toolkit.fluxcd.io
@@ -35,14 +35,19 @@ spec:
description: OCIRepository is the Schema for the ocirepositories API
properties:
apiVersion:
- description: 'APIVersion defines the versioned schema of this representation
- of an object. Servers should convert recognized schemas to the latest
- internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
- description: 'Kind is a string value representing the REST resource this
- object represents. Servers may infer this from the endpoint the client
- submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
@@ -50,15 +55,22 @@ spec:
description: OCIRepositorySpec defines the desired state of OCIRepository
properties:
certSecretRef:
- description: "CertSecretRef can be given the name of a Secret containing
- either or both of \n - a PEM-encoded client certificate (`tls.crt`)
- and private key (`tls.key`); - a PEM-encoded CA certificate (`ca.crt`)
- \n and whichever are supplied, will be used for connecting to the
- registry. The client cert and key are useful if you are authenticating
- with a certificate; the CA cert is useful if you are using a self-signed
- server certificate. The Secret must be of type `Opaque` or `kubernetes.io/tls`.
- \n Note: Support for the `caFile`, `certFile` and `keyFile` keys
- have been deprecated."
+ description: |-
+ CertSecretRef can be given the name of a Secret containing
+ either or both of
+
+ - a PEM-encoded client certificate (`tls.crt`) and private
+ key (`tls.key`);
+ - a PEM-encoded CA certificate (`ca.crt`)
+
+ and whichever are supplied, will be used for connecting to the
+ registry. The client cert and key are useful if you are
+ authenticating with a certificate; the CA cert is useful if
+ you are using a self-signed server certificate. The Secret must
+ be of type `Opaque` or `kubernetes.io/tls`.
+
+ Note: Support for the `caFile`, `certFile` and `keyFile` keys have
+ been deprecated.
properties:
name:
description: Name of the referent.
@@ -67,36 +79,39 @@ spec:
- name
type: object
ignore:
- description: Ignore overrides the set of excluded patterns in the
- .sourceignore format (which is the same as .gitignore). If not provided,
- a default will be used, consult the documentation for your version
- to find out what those are.
+ description: |-
+ Ignore overrides the set of excluded patterns in the .sourceignore format
+ (which is the same as .gitignore). If not provided, a default will be used,
+ consult the documentation for your version to find out what those are.
type: string
insecure:
description: Insecure allows connecting to a non-TLS HTTP container
registry.
type: boolean
interval:
- description: Interval at which the OCIRepository URL is checked for
- updates. This interval is approximate and may be subject to jitter
- to ensure efficient use of resources.
+ description: |-
+ Interval at which the OCIRepository URL is checked for updates.
+ This interval is approximate and may be subject to jitter to ensure
+ efficient use of resources.
pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$
type: string
layerSelector:
- description: LayerSelector specifies which layer should be extracted
- from the OCI artifact. When not specified, the first layer found
- in the artifact is selected.
+ description: |-
+ LayerSelector specifies which layer should be extracted from the OCI artifact.
+ When not specified, the first layer found in the artifact is selected.
properties:
mediaType:
- description: MediaType specifies the OCI media type of the layer
- which should be extracted from the OCI Artifact. The first layer
- matching this type is selected.
+ description: |-
+ MediaType specifies the OCI media type of the layer
+ which should be extracted from the OCI Artifact. The
+ first layer matching this type is selected.
type: string
operation:
- description: Operation specifies how the selected layer should
- be processed. By default, the layer compressed content is extracted
- to storage. When the operation is set to 'copy', the layer compressed
- content is persisted to storage as it is.
+ description: |-
+ Operation specifies how the selected layer should be processed.
+ By default, the layer compressed content is extracted to storage.
+ When the operation is set to 'copy', the layer compressed content
+ is persisted to storage as it is.
enum:
- extract
- copy
@@ -104,34 +119,54 @@ spec:
type: object
provider:
default: generic
- description: The provider used for authentication, can be 'aws', 'azure',
- 'gcp' or 'generic'. When not specified, defaults to 'generic'.
+ description: |-
+ The provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'.
+ When not specified, defaults to 'generic'.
enum:
- generic
- aws
- azure
- gcp
type: string
+ proxySecretRef:
+ description: |-
+ ProxySecretRef specifies the Secret containing the proxy configuration
+ to use while communicating with the container registry.
+ properties:
+ name:
+ description: Name of the referent.
+ type: string
+ required:
+ - name
+ type: object
ref:
- description: The OCI reference to pull and monitor for changes, defaults
- to the latest tag.
+ description: |-
+ The OCI reference to pull and monitor for changes,
+ defaults to the latest tag.
properties:
digest:
- description: Digest is the image digest to pull, takes precedence
- over SemVer. The value should be in the format 'sha256:'.
+ description: |-
+ Digest is the image digest to pull, takes precedence over SemVer.
+ The value should be in the format 'sha256:'.
type: string
semver:
- description: SemVer is the range of tags to pull selecting the
- latest within the range, takes precedence over Tag.
+ description: |-
+ SemVer is the range of tags to pull selecting the latest within
+ the range, takes precedence over Tag.
+ type: string
+ semverFilter:
+ description: SemverFilter is a regex pattern to filter the tags
+ within the SemVer range.
type: string
tag:
description: Tag is the image tag to pull, defaults to latest.
type: string
type: object
secretRef:
- description: SecretRef contains the secret name containing the registry
- login credentials to resolve image metadata. The secret must be
- of type kubernetes.io/dockerconfigjson.
+ description: |-
+ SecretRef contains the secret name containing the registry login
+ credentials to resolve image metadata.
+ The secret must be of type kubernetes.io/dockerconfigjson.
properties:
name:
description: Name of the referent.
@@ -140,9 +175,10 @@ spec:
- name
type: object
serviceAccountName:
- description: 'ServiceAccountName is the name of the Kubernetes ServiceAccount
- used to authenticate the image pull if the service account has attached
- pull secrets. For more information: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account'
+ description: |-
+ ServiceAccountName is the name of the Kubernetes ServiceAccount used to authenticate
+ the image pull if the service account has attached pull secrets. For more information:
+ https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account
type: string
suspend:
description: This flag tells the controller to suspend the reconciliation
@@ -155,35 +191,39 @@ spec:
pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m))+$
type: string
url:
- description: URL is a reference to an OCI artifact repository hosted
+ description: |-
+ URL is a reference to an OCI artifact repository hosted
on a remote container registry.
pattern: ^oci://.*$
type: string
verify:
- description: Verify contains the secret name containing the trusted
- public keys used to verify the signature and specifies which provider
- to use to check whether OCI image is authentic.
+ description: |-
+ Verify contains the secret name containing the trusted public keys
+ used to verify the signature and specifies which provider to use to check
+ whether OCI image is authentic.
properties:
matchOIDCIdentity:
- description: MatchOIDCIdentity specifies the identity matching
- criteria to use while verifying an OCI artifact which was signed
- using Cosign keyless signing. The artifact's identity is deemed
- to be verified if any of the specified matchers match against
- the identity.
+ description: |-
+ MatchOIDCIdentity specifies the identity matching criteria to use
+ while verifying an OCI artifact which was signed using Cosign keyless
+ signing. The artifact's identity is deemed to be verified if any of the
+ specified matchers match against the identity.
items:
- description: OIDCIdentityMatch specifies options for verifying
- the certificate identity, i.e. the issuer and the subject
- of the certificate.
+ description: |-
+ OIDCIdentityMatch specifies options for verifying the certificate identity,
+ i.e. the issuer and the subject of the certificate.
properties:
issuer:
- description: Issuer specifies the regex pattern to match
- against to verify the OIDC issuer in the Fulcio certificate.
- The pattern must be a valid Go regular expression.
+ description: |-
+ Issuer specifies the regex pattern to match against to verify
+ the OIDC issuer in the Fulcio certificate. The pattern must be a
+ valid Go regular expression.
type: string
subject:
- description: Subject specifies the regex pattern to match
- against to verify the identity subject in the Fulcio certificate.
- The pattern must be a valid Go regular expression.
+ description: |-
+ Subject specifies the regex pattern to match against to verify
+ the identity subject in the Fulcio certificate. The pattern must
+ be a valid Go regular expression.
type: string
required:
- issuer
@@ -196,10 +236,12 @@ spec:
OCI Artifact.
enum:
- cosign
+ - notation
type: string
secretRef:
- description: SecretRef specifies the Kubernetes Secret containing
- the trusted public keys.
+ description: |-
+ SecretRef specifies the Kubernetes Secret containing the
+ trusted public keys.
properties:
name:
description: Name of the referent.
@@ -228,8 +270,9 @@ spec:
pattern: ^[a-z0-9]+(?:[.+_-][a-z0-9]+)*:[a-zA-Z0-9=_-]+$
type: string
lastUpdateTime:
- description: LastUpdateTime is the timestamp corresponding to
- the last update of the Artifact.
+ description: |-
+ LastUpdateTime is the timestamp corresponding to the last update of the
+ Artifact.
format: date-time
type: string
metadata:
@@ -238,24 +281,25 @@ spec:
description: Metadata holds upstream information such as OCI annotations.
type: object
path:
- description: Path is the relative file path of the Artifact. It
- can be used to locate the file in the root of the Artifact storage
- on the local file system of the controller managing the Source.
+ description: |-
+ Path is the relative file path of the Artifact. It can be used to locate
+ the file in the root of the Artifact storage on the local file system of
+ the controller managing the Source.
type: string
revision:
- description: Revision is a human-readable identifier traceable
- in the origin source system. It can be a Git commit SHA, Git
- tag, a Helm chart version, etc.
+ description: |-
+ Revision is a human-readable identifier traceable in the origin source
+ system. It can be a Git commit SHA, Git tag, a Helm chart version, etc.
type: string
size:
description: Size is the number of bytes in the file.
format: int64
type: integer
url:
- description: URL is the HTTP address of the Artifact as exposed
- by the controller managing the Source. It can be used to retrieve
- the Artifact for consumption, e.g. by another controller applying
- the Artifact contents.
+ description: |-
+ URL is the HTTP address of the Artifact as exposed by the controller
+ managing the Source. It can be used to retrieve the Artifact for
+ consumption, e.g. by another controller applying the Artifact contents.
type: string
required:
- lastUpdateTime
@@ -266,43 +310,35 @@ spec:
conditions:
description: Conditions holds the conditions for the OCIRepository.
items:
- description: "Condition contains details for one aspect of the current
- state of this API Resource. --- This struct is intended for direct
- use as an array at the field path .status.conditions. For example,
- \n type FooStatus struct{ // Represents the observations of a
- foo's current state. // Known .status.conditions.type are: \"Available\",
- \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
- // +listType=map // +listMapKey=type Conditions []metav1.Condition
- `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
- protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
properties:
lastTransitionTime:
- description: lastTransitionTime is the last time the condition
- transitioned from one status to another. This should be when
- the underlying condition changed. If that is not known, then
- using the time when the API field changed is acceptable.
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
- description: message is a human readable message indicating
- details about the transition. This may be an empty string.
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
- description: observedGeneration represents the .metadata.generation
- that the condition was set based upon. For instance, if .metadata.generation
- is currently 12, but the .status.conditions[x].observedGeneration
- is 9, the condition is out of date with respect to the current
- state of the instance.
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
- description: reason contains a programmatic identifier indicating
- the reason for the condition's last transition. Producers
- of specific condition types may define expected values and
- meanings for this field, and whether the values are considered
- a guaranteed API. The value should be a CamelCase string.
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
@@ -317,10 +353,6 @@ spec:
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
- --- Many .condition.type values are consistent across resources
- like Available, but because arbitrary conditions can be useful
- (see .node.status.conditions), the ability to deconflict is
- important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
@@ -333,42 +365,51 @@ spec:
type: object
type: array
contentConfigChecksum:
- description: "ContentConfigChecksum is a checksum of all the configurations
- related to the content of the source artifact: - .spec.ignore -
- .spec.layerSelector observed in .status.observedGeneration version
- of the object. This can be used to determine if the content configuration
- has changed and the artifact needs to be rebuilt. It has the format
- of `:`, for example: `sha256:`. \n Deprecated:
- Replaced with explicit fields for observed artifact content config
- in the status."
+ description: |-
+ ContentConfigChecksum is a checksum of all the configurations related to
+ the content of the source artifact:
+ - .spec.ignore
+ - .spec.layerSelector
+ observed in .status.observedGeneration version of the object. This can
+ be used to determine if the content configuration has changed and the
+ artifact needs to be rebuilt.
+ It has the format of `:`, for example: `sha256:`.
+
+ Deprecated: Replaced with explicit fields for observed artifact content
+ config in the status.
type: string
lastHandledReconcileAt:
- description: LastHandledReconcileAt holds the value of the most recent
- reconcile request value, so a change of the annotation value can
- be detected.
+ description: |-
+ LastHandledReconcileAt holds the value of the most recent
+ reconcile request value, so a change of the annotation value
+ can be detected.
type: string
observedGeneration:
description: ObservedGeneration is the last observed generation.
format: int64
type: integer
observedIgnore:
- description: ObservedIgnore is the observed exclusion patterns used
- for constructing the source artifact.
+ description: |-
+ ObservedIgnore is the observed exclusion patterns used for constructing
+ the source artifact.
type: string
observedLayerSelector:
- description: ObservedLayerSelector is the observed layer selector
- used for constructing the source artifact.
+ description: |-
+ ObservedLayerSelector is the observed layer selector used for constructing
+ the source artifact.
properties:
mediaType:
- description: MediaType specifies the OCI media type of the layer
- which should be extracted from the OCI Artifact. The first layer
- matching this type is selected.
+ description: |-
+ MediaType specifies the OCI media type of the layer
+ which should be extracted from the OCI Artifact. The
+ first layer matching this type is selected.
type: string
operation:
- description: Operation specifies how the selected layer should
- be processed. By default, the layer compressed content is extracted
- to storage. When the operation is set to 'copy', the layer compressed
- content is persisted to storage as it is.
+ description: |-
+ Operation specifies how the selected layer should be processed.
+ By default, the layer compressed content is extracted to storage.
+ When the operation is set to 'copy', the layer compressed content
+ is persisted to storage as it is.
enum:
- extract
- copy