diff --git a/artifacts/all/deploy.yaml b/artifacts/all/deploy.yaml index 31d89830..cc012533 100644 --- a/artifacts/all/deploy.yaml +++ b/artifacts/all/deploy.yaml @@ -1,11 +1,12 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: helmrequests.app.alauda.io spec: group: app.alauda.io - version: v1alpha1 + conversion: + strategy: None names: kind: HelmRequest listKind: HelmRequestList @@ -13,100 +14,200 @@ spec: singular: helmrequest shortNames: - hr - additionalPrinterColumns: + - hrs + scope: Namespaced + versions: + - name: v1alpha1 + additionalPrinterColumns: - name: Chart type: string description: The chart of this HelmRequest - JSONPath: .spec.chart + jsonPath: .spec.chart - name: Version type: string description: Version of this chart - JSONPath: .spec.version + jsonPath: .spec.version - name: Namespace type: string description: The namespace which the chart deployed to - JSONPath: .spec.namespace + jsonPath: .spec.namespace - name: AllCluster type: boolean description: Is this chart will be installed to all cluster - JSONPath: .spec.installToAllClusters + jsonPath: .spec.installToAllClusters - name: Phase type: string description: The phase of this HelmRequest - JSONPath: .status.phase + jsonPath: .status.phase - name: Age type: date - JSONPath: .metadata.creationTimestamp - scope: Namespaced - subresources: - status: {} - validation: - # openAPIV3Schema is the schema for validating custom objects. - openAPIV3Schema: - properties: - spec: - description: HelmRequestSpec defines the deploy info of a helm chart - type: object - required: - - chart - properties: - chart: - type: string - description: Chart is a helm chart name ,in the format of / - namespace: - type: string - description: Namespace is the namespace this chart will be installed to. If not set, consider it's metadata.namespace - releaseName: - type: string - description: ReleaseName is the Release name. If not set, consider it's metadata.name - clusterName: - type: string - description: ClusterName is the target cluster name, where this chart will be installed to. If not set, this chart will be installed to the current cluster. - dependencies: - type: array - description: Dependencies defines the HelmRequest list this HelmRequest will depends to, it will wait for them to be Synced - items: + jsonPath: .metadata.creationTimestamp + schema: + openAPIV3Schema: + 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' + 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' + type: string + metadata: + type: object + spec: + properties: + chart: + type: string + clusterName: + description: ClusterName is the cluster where the chart will be installed. + If InstallToAllClusters=true, this field will be ignored type: string - installToAllClusters: - description: InstallToAllClusters decide if we want to install this chart to all cluster. - type: boolean - values: - type: object - nullable: true - description: Values defines custom values for this chart - version: - type: string - description: Version defines the chart version - valuesFrom: - type: array - description: ValuesFrom defines the config file we want to ref to. In kubernetes, this will be ConfigMap/Secret - items: + dependencies: + description: Dependencies is the dependencies of this HelmRequest, + it's a list of there names THe dependencies must lives in the same + namespace, and each of them must be in Synced status before we sync + this HelmRequest + items: + type: string + type: array + installToAllClusters: + description: InstallToAllClusters will install this chart to all available + clusters, even the cluster was created after this chart. If this + field is true, ClusterName will be ignored(useless) + type: boolean + namespace: + description: Namespace is the namespace where the Release object will + be lived in. Notes this should be used with the values defined in + the chart, otherwise the install will failed + type: string + releaseName: + description: ReleaseName is the Release name to be generated, default + to HelmRequest.Name. If we want to manually install this chart to + multi clusters, we may have different HelmRequest name(with cluster + prefix or suffix) and same release name + type: string + values: + description: Values represents a collection of chart values. type: object - properties: - configMapKeyRef: - type: object - required: - - name - description: ConfigMapKeyRef defines a ref to a ConfigMap(in the same namespace) - properties: - name: - type: string - key: - type: string - optional: - type: boolean - secretKeyRef: - type: object - required: - - name - description: SecretKeyRef defines a ref to a Secret(in the same namespace) - properties: - name: - type: string - key: - type: string - optional: - type: boolean + nullable: true + x-kubernetes-preserve-unknown-fields: true + valuesFrom: + description: ValuesFrom represents values from ConfigMap/Secret... + items: + description: ValuesFromSource represents a source of values, only + one of it's fields may be set + properties: + configMapKeyRef: + description: ConfigMapKeyRef selects a key of a ConfigMap + properties: + key: + description: The key to select. + type: string + 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?' + type: string + optional: + description: Specify whether the ConfigMap or its key must + be defined + type: boolean + required: + - key + type: object + secretKeyRef: + description: SecretKeyRef selects a key of a Secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + 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?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + type: object + type: array + version: + type: string + type: object + status: + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + format: date-time + type: string + nullable: true + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + nullable: true + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: 'Status is the status of the condition. Can be + True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' + type: string + type: + description: 'Type is the type of the condition. More info: + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' + type: string + type: object + type: array + lastSpecHash: + description: LastSpecHash store the has value of the synced spec, + if this value not equal to the current one, means we need to do + a update for the chart + type: string + notes: + description: Notes is the contents from helm (after helm install successfully + it will be printed to the console + type: string + phase: + description: HelmRequestPhase is a label for the condition of a HelmRequest + at the current time. + type: string + reason: + description: Reason will store the reason why the HelmRequest deploy + failed + type: string + syncedClusters: + description: SyncedClusters will store the synced clusters if InstallToAllClusters + is true + items: + type: string + type: array + version: + description: Verions is the real version that installed + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition @@ -234,7 +335,7 @@ spec: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - image: alaudapublic/captain:v1.3.1 + image: alaudapublic/captain:v1.4.0 imagePullPolicy: IfNotPresent name: manager resources: diff --git a/artifacts/all/release.yaml b/artifacts/all/release.yaml index afda14d5..1a9fa6a4 100644 --- a/artifacts/all/release.yaml +++ b/artifacts/all/release.yaml @@ -1,11 +1,12 @@ --- -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: helmrequests.app.alauda.io spec: group: app.alauda.io - version: v1alpha1 + conversion: + strategy: None names: kind: HelmRequest listKind: HelmRequestList @@ -13,40 +14,200 @@ spec: singular: helmrequest shortNames: - hr - additionalPrinterColumns: + - hrs + scope: Namespaced + versions: + - name: v1alpha1 + additionalPrinterColumns: - name: Chart type: string description: The chart of this HelmRequest - JSONPath: .spec.chart + jsonPath: .spec.chart - name: Version type: string description: Version of this chart - JSONPath: .spec.version + jsonPath: .spec.version - name: Namespace type: string description: The namespace which the chart deployed to - JSONPath: .spec.namespace + jsonPath: .spec.namespace - name: AllCluster type: boolean description: Is this chart will be installed to all cluster - JSONPath: .spec.installToAllClusters + jsonPath: .spec.installToAllClusters - name: Phase type: string description: The phase of this HelmRequest - JSONPath: .status.phase + jsonPath: .status.phase - name: Age type: date - JSONPath: .metadata.creationTimestamp - scope: Namespaced - subresources: - status: {} - validation: - # openAPIV3Schema is the schema for validating custom objects. - openAPIV3Schema: - properties: - spec: - required: - - chart + jsonPath: .metadata.creationTimestamp + schema: + openAPIV3Schema: + 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' + 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' + type: string + metadata: + type: object + spec: + properties: + chart: + type: string + clusterName: + description: ClusterName is the cluster where the chart will be installed. + If InstallToAllClusters=true, this field will be ignored + type: string + dependencies: + description: Dependencies is the dependencies of this HelmRequest, + it's a list of there names THe dependencies must lives in the same + namespace, and each of them must be in Synced status before we sync + this HelmRequest + items: + type: string + type: array + installToAllClusters: + description: InstallToAllClusters will install this chart to all available + clusters, even the cluster was created after this chart. If this + field is true, ClusterName will be ignored(useless) + type: boolean + namespace: + description: Namespace is the namespace where the Release object will + be lived in. Notes this should be used with the values defined in + the chart, otherwise the install will failed + type: string + releaseName: + description: ReleaseName is the Release name to be generated, default + to HelmRequest.Name. If we want to manually install this chart to + multi clusters, we may have different HelmRequest name(with cluster + prefix or suffix) and same release name + type: string + values: + description: Values represents a collection of chart values. + type: object + nullable: true + x-kubernetes-preserve-unknown-fields: true + valuesFrom: + description: ValuesFrom represents values from ConfigMap/Secret... + items: + description: ValuesFromSource represents a source of values, only + one of it's fields may be set + properties: + configMapKeyRef: + description: ConfigMapKeyRef selects a key of a ConfigMap + properties: + key: + description: The key to select. + type: string + 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?' + type: string + optional: + description: Specify whether the ConfigMap or its key must + be defined + type: boolean + required: + - key + type: object + secretKeyRef: + description: SecretKeyRef selects a key of a Secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + 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?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + type: object + type: array + version: + type: string + type: object + status: + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + format: date-time + type: string + nullable: true + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + nullable: true + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: 'Status is the status of the condition. Can be + True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' + type: string + type: + description: 'Type is the type of the condition. More info: + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' + type: string + type: object + type: array + lastSpecHash: + description: LastSpecHash store the has value of the synced spec, + if this value not equal to the current one, means we need to do + a update for the chart + type: string + notes: + description: Notes is the contents from helm (after helm install successfully + it will be printed to the console + type: string + phase: + description: HelmRequestPhase is a label for the condition of a HelmRequest + at the current time. + type: string + reason: + description: Reason will store the reason why the HelmRequest deploy + failed + type: string + syncedClusters: + description: SyncedClusters will store the synced clusters if InstallToAllClusters + is true + items: + type: string + type: array + version: + description: Verions is the real version that installed + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} --- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition @@ -146,6 +307,7 @@ webhooks: - app.alauda.io apiVersions: - v1alpha1 + - v1 operations: - CREATE - UPDATE @@ -177,6 +339,7 @@ webhooks: - app.alauda.io apiVersions: - v1alpha1 + - v1 operations: - CREATE - UPDATE @@ -239,7 +402,7 @@ spec: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - image: harbor.alauda.cn/acp/captain:v1.2.2 + image: harbor.alauda.cn/acp/captain:v1.4.0 imagePullPolicy: IfNotPresent name: manager resources: diff --git a/artifacts/deploy/webhook/mutating.yaml b/artifacts/deploy/webhook/mutating.yaml index 0de1e632..6b062526 100644 --- a/artifacts/deploy/webhook/mutating.yaml +++ b/artifacts/deploy/webhook/mutating.yaml @@ -18,6 +18,7 @@ webhooks: - app.alauda.io apiVersions: - v1alpha1 + - v1 operations: - CREATE - UPDATE diff --git a/artifacts/deploy/webhook/validation.yaml b/artifacts/deploy/webhook/validation.yaml index ea6a12f1..a2e1a671 100644 --- a/artifacts/deploy/webhook/validation.yaml +++ b/artifacts/deploy/webhook/validation.yaml @@ -18,6 +18,7 @@ webhooks: - app.alauda.io apiVersions: - v1alpha1 + - v1 operations: - CREATE - UPDATE diff --git a/charts/captain/templates/crd.yaml b/charts/captain/templates/crd.yaml index 58bdb7f0..b8ff41c5 100644 --- a/charts/captain/templates/crd.yaml +++ b/charts/captain/templates/crd.yaml @@ -1,10 +1,11 @@ -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: helmrequests.app.alauda.io spec: group: app.alauda.io - version: v1alpha1 + conversion: + strategy: None names: kind: HelmRequest listKind: HelmRequestList @@ -12,37 +13,197 @@ spec: singular: helmrequest shortNames: - hr - additionalPrinterColumns: + - hrs + scope: Namespaced + versions: + - name: v1alpha1 + additionalPrinterColumns: - name: Chart type: string description: The chart of this HelmRequest - JSONPath: .spec.chart + jsonPath: .spec.chart - name: Version type: string description: Version of this chart - JSONPath: .spec.version + jsonPath: .spec.version - name: Namespace type: string description: The namespace which the chart deployed to - JSONPath: .spec.namespace + jsonPath: .spec.namespace - name: AllCluster type: boolean description: Is this chart will be installed to all cluster - JSONPath: .spec.installToAllClusters + jsonPath: .spec.installToAllClusters - name: Phase type: string description: The phase of this HelmRequest - JSONPath: .status.phase + jsonPath: .status.phase - name: Age type: date - JSONPath: .metadata.creationTimestamp - scope: Namespaced - subresources: - status: {} - validation: - # openAPIV3Schema is the schema for validating custom objects. - openAPIV3Schema: - properties: - spec: - required: - - chart \ No newline at end of file + jsonPath: .metadata.creationTimestamp + schema: + openAPIV3Schema: + 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' + 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' + type: string + metadata: + type: object + spec: + properties: + chart: + type: string + clusterName: + description: ClusterName is the cluster where the chart will be installed. + If InstallToAllClusters=true, this field will be ignored + type: string + dependencies: + description: Dependencies is the dependencies of this HelmRequest, + it's a list of there names THe dependencies must lives in the same + namespace, and each of them must be in Synced status before we sync + this HelmRequest + items: + type: string + type: array + installToAllClusters: + description: InstallToAllClusters will install this chart to all available + clusters, even the cluster was created after this chart. If this + field is true, ClusterName will be ignored(useless) + type: boolean + namespace: + description: Namespace is the namespace where the Release object will + be lived in. Notes this should be used with the values defined in + the chart, otherwise the install will failed + type: string + releaseName: + description: ReleaseName is the Release name to be generated, default + to HelmRequest.Name. If we want to manually install this chart to + multi clusters, we may have different HelmRequest name(with cluster + prefix or suffix) and same release name + type: string + values: + description: Values represents a collection of chart values. + type: object + nullable: true + x-kubernetes-preserve-unknown-fields: true + valuesFrom: + description: ValuesFrom represents values from ConfigMap/Secret... + items: + description: ValuesFromSource represents a source of values, only + one of it's fields may be set + properties: + configMapKeyRef: + description: ConfigMapKeyRef selects a key of a ConfigMap + properties: + key: + description: The key to select. + type: string + 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?' + type: string + optional: + description: Specify whether the ConfigMap or its key must + be defined + type: boolean + required: + - key + type: object + secretKeyRef: + description: SecretKeyRef selects a key of a Secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + 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?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + type: object + type: array + version: + type: string + type: object + status: + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + format: date-time + type: string + nullable: true + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + nullable: true + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: 'Status is the status of the condition. Can be + True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' + type: string + type: + description: 'Type is the type of the condition. More info: + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' + type: string + type: object + type: array + lastSpecHash: + description: LastSpecHash store the has value of the synced spec, + if this value not equal to the current one, means we need to do + a update for the chart + type: string + notes: + description: Notes is the contents from helm (after helm install successfully + it will be printed to the console + type: string + phase: + description: HelmRequestPhase is a label for the condition of a HelmRequest + at the current time. + type: string + reason: + description: Reason will store the reason why the HelmRequest deploy + failed + type: string + syncedClusters: + description: SyncedClusters will store the synced clusters if InstallToAllClusters + is true + items: + type: string + type: array + version: + description: Verions is the real version that installed + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} \ No newline at end of file diff --git a/charts/captain/templates/mutating.yaml b/charts/captain/templates/mutating.yaml index 7916e82d..cc7b8391 100644 --- a/charts/captain/templates/mutating.yaml +++ b/charts/captain/templates/mutating.yaml @@ -18,6 +18,7 @@ webhooks: - app.alauda.io apiVersions: - v1alpha1 + - v1 operations: - CREATE - UPDATE diff --git a/charts/captain/templates/validation.yaml b/charts/captain/templates/validation.yaml index 3f6fab4f..a6094abb 100644 --- a/charts/captain/templates/validation.yaml +++ b/charts/captain/templates/validation.yaml @@ -18,6 +18,7 @@ webhooks: - app.alauda.io apiVersions: - v1alpha1 + - v1 operations: - CREATE - UPDATE diff --git a/config/crd/bases/crd.yaml b/config/crd/bases/crd.yaml index 58bdb7f0..b8ff41c5 100644 --- a/config/crd/bases/crd.yaml +++ b/config/crd/bases/crd.yaml @@ -1,10 +1,11 @@ -apiVersion: apiextensions.k8s.io/v1beta1 +apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: helmrequests.app.alauda.io spec: group: app.alauda.io - version: v1alpha1 + conversion: + strategy: None names: kind: HelmRequest listKind: HelmRequestList @@ -12,37 +13,197 @@ spec: singular: helmrequest shortNames: - hr - additionalPrinterColumns: + - hrs + scope: Namespaced + versions: + - name: v1alpha1 + additionalPrinterColumns: - name: Chart type: string description: The chart of this HelmRequest - JSONPath: .spec.chart + jsonPath: .spec.chart - name: Version type: string description: Version of this chart - JSONPath: .spec.version + jsonPath: .spec.version - name: Namespace type: string description: The namespace which the chart deployed to - JSONPath: .spec.namespace + jsonPath: .spec.namespace - name: AllCluster type: boolean description: Is this chart will be installed to all cluster - JSONPath: .spec.installToAllClusters + jsonPath: .spec.installToAllClusters - name: Phase type: string description: The phase of this HelmRequest - JSONPath: .status.phase + jsonPath: .status.phase - name: Age type: date - JSONPath: .metadata.creationTimestamp - scope: Namespaced - subresources: - status: {} - validation: - # openAPIV3Schema is the schema for validating custom objects. - openAPIV3Schema: - properties: - spec: - required: - - chart \ No newline at end of file + jsonPath: .metadata.creationTimestamp + schema: + openAPIV3Schema: + 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' + 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' + type: string + metadata: + type: object + spec: + properties: + chart: + type: string + clusterName: + description: ClusterName is the cluster where the chart will be installed. + If InstallToAllClusters=true, this field will be ignored + type: string + dependencies: + description: Dependencies is the dependencies of this HelmRequest, + it's a list of there names THe dependencies must lives in the same + namespace, and each of them must be in Synced status before we sync + this HelmRequest + items: + type: string + type: array + installToAllClusters: + description: InstallToAllClusters will install this chart to all available + clusters, even the cluster was created after this chart. If this + field is true, ClusterName will be ignored(useless) + type: boolean + namespace: + description: Namespace is the namespace where the Release object will + be lived in. Notes this should be used with the values defined in + the chart, otherwise the install will failed + type: string + releaseName: + description: ReleaseName is the Release name to be generated, default + to HelmRequest.Name. If we want to manually install this chart to + multi clusters, we may have different HelmRequest name(with cluster + prefix or suffix) and same release name + type: string + values: + description: Values represents a collection of chart values. + type: object + nullable: true + x-kubernetes-preserve-unknown-fields: true + valuesFrom: + description: ValuesFrom represents values from ConfigMap/Secret... + items: + description: ValuesFromSource represents a source of values, only + one of it's fields may be set + properties: + configMapKeyRef: + description: ConfigMapKeyRef selects a key of a ConfigMap + properties: + key: + description: The key to select. + type: string + 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?' + type: string + optional: + description: Specify whether the ConfigMap or its key must + be defined + type: boolean + required: + - key + type: object + secretKeyRef: + description: SecretKeyRef selects a key of a Secret + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + 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?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + type: object + type: array + version: + type: string + type: object + status: + properties: + conditions: + items: + properties: + lastProbeTime: + description: Last time we probed the condition. + format: date-time + type: string + nullable: true + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + nullable: true + message: + description: Human-readable message indicating details about + last transition. + type: string + reason: + description: Unique, one-word, CamelCase reason for the condition's + last transition. + type: string + status: + description: 'Status is the status of the condition. Can be + True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' + type: string + type: + description: 'Type is the type of the condition. More info: + https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions' + type: string + type: object + type: array + lastSpecHash: + description: LastSpecHash store the has value of the synced spec, + if this value not equal to the current one, means we need to do + a update for the chart + type: string + notes: + description: Notes is the contents from helm (after helm install successfully + it will be printed to the console + type: string + phase: + description: HelmRequestPhase is a label for the condition of a HelmRequest + at the current time. + type: string + reason: + description: Reason will store the reason why the HelmRequest deploy + failed + type: string + syncedClusters: + description: SyncedClusters will store the synced clusters if InstallToAllClusters + is true + items: + type: string + type: array + version: + description: Verions is the real version that installed + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} \ No newline at end of file diff --git a/config/webhook/old-manifests.yaml b/config/webhook/old-manifests.yaml index f87d3768..e2bb2a45 100644 --- a/config/webhook/old-manifests.yaml +++ b/config/webhook/old-manifests.yaml @@ -16,6 +16,7 @@ webhooks: - app.alauda.io apiVersions: - v1alpha1 + - v1 operations: - CREATE - UPDATE @@ -40,6 +41,7 @@ webhooks: - app.alauda.io apiVersions: - v1alpha1 + - v1 operations: - CREATE - UPDATE diff --git a/docs/en/crd.md b/docs/en/crd.md index bdcfd687..20893834 100644 --- a/docs/en/crd.md +++ b/docs/en/crd.md @@ -348,9 +348,9 @@ Now you can use kubectl to get the releases and see there status directly: ```bash [root@ake-master1 ~]# kubectl get rel --all-namespaces -NAMESPACE NAME STATUS AGE -h8 nginx.v1 superseded 2d -h8 nginx.v2 superseded 2d -h8 nginx.v3 deployed 2d +NAMESPACE NAME STATUS AGE +h8 sh.helm.release.v1.nginx.v1 superseded 2d +h8 sh.helm.release.v1.nginx.v2 superseded 2d +h8 sh.helm.release.v1.nginx.v3 deployed 2d [root@ake-master1 ~]# ``` diff --git a/docs/en/crds/release.md b/docs/en/crds/release.md index 13c6fbd0..4de007cd 100644 --- a/docs/en/crds/release.md +++ b/docs/en/crds/release.md @@ -47,20 +47,20 @@ From the internal view, it also has some improvements compares to the old versio * Move some info the to `status` filed, which is more reasonable ## About the structure -The definition of Release CRD struct can be found [here](https://github.com/alauda/helm-crds/blob/master/pkg/apis/app/v1beta1/types.go#L33) +What is the structure of Release CRD. You can see [here](https://github.com/alauda/helm-crds/blob/master/pkg/apis/app/v1beta1/types.go#L33) -In fact, the Release CRD mentioned above maps to the Release structure defined in Helm which can be found [here](https://github.com/helm/helm/blob/release-3.0/pkg/release/release.go#L22) +In Helm's code, the release structure is defined like this. You can see [here](https://github.com/helm/helm/blob/release-3.0/pkg/release/release.go#L22) -In addition, the fields `ChartData`, `ConfigData`, `HooksData` and `ManifestData` are base64 encoded and then stored. +Release CRD stores the release info of a helm charts. It should be noted especially that the fields `ChartData`, `ConfigData`, `HooksData` and `ManifestData` are base64 encoded and compressed by `gzip`. ## Get releases in k8s Now you can use kubectl to get the releases and see there status directly: ```bash [root@ake-master1 ~]# kubectl get rel --all-namespaces -NAMESPACE NAME STATUS AGE -h8 nginx.v1 superseded 2d -h8 nginx.v2 superseded 2d -h8 nginx.v3 deployed 2d +NAMESPACE NAME STATUS AGE +h8 sh.helm.release.v1.nginx.v1 superseded 2d +h8 sh.helm.release.v1.nginx.v2 superseded 2d +h8 sh.helm.release.v1.nginx.v3 deployed 2d [root@ake-master1 ~]# ``` diff --git a/docs/zh/crds/release.md b/docs/zh/crds/release.md index 4bc70da7..081466f9 100644 --- a/docs/zh/crds/release.md +++ b/docs/zh/crds/release.md @@ -50,7 +50,7 @@ Release CRD 定义 [here](https://github.com/alauda/helm-crds/blob/master/pkg/ap 实际上,上面提到的 Release CRD 映射到 Helm 中定义的 Release 结构,可以在这里找到 [here](https://github.com/helm/helm/blob/release-3.0/pkg/release/release.go#L22) -此外,字段 `ChartData`、`ConfigData`、`HooksData` 和 `ManifestData` 都经过 base64 编码然后存储。 +此外,字段 `ChartData`、`ConfigData`、`HooksData` 和 `ManifestData` 都经过 base64 编码并且被`gzip`压缩然后存储。 ## 在k8s集群中获取release资源列表 @@ -58,9 +58,9 @@ Release CRD 定义 [here](https://github.com/alauda/helm-crds/blob/master/pkg/ap ```bash [root@ake-master1 ~]# kubectl get rel --all-namespaces -NAMESPACE NAME STATUS AGE -h8 nginx.v1 superseded 2d -h8 nginx.v2 superseded 2d -h8 nginx.v3 deployed 2d +NAMESPACE NAME STATUS AGE +h8 sh.helm.release.v1.nginx.v1 superseded 2d +h8 sh.helm.release.v1.nginx.v2 superseded 2d +h8 sh.helm.release.v1.nginx.v3 deployed 2d [root@ake-master1 ~]# ``` diff --git a/go.mod b/go.mod index 8c3c2090..9c0761c7 100644 --- a/go.mod +++ b/go.mod @@ -48,11 +48,11 @@ require ( k8s.io/api v0.21.1 k8s.io/apiextensions-apiserver v0.21.1 k8s.io/apimachinery v0.21.1 - k8s.io/cli-runtime v0.21.0 + k8s.io/cli-runtime v0.21.1 k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible k8s.io/klog v1.0.0 - k8s.io/kubectl v0.21.0 - k8s.io/kubernetes v1.21.0 + k8s.io/kubectl v0.21.1 + k8s.io/kubernetes v1.21.1 sigs.k8s.io/controller-runtime v0.2.2 sigs.k8s.io/yaml v1.2.0 ) @@ -66,34 +66,35 @@ replace ( github.com/go-logr/logr => github.com/go-logr/logr v0.4.0 github.com/go-logr/zapr => github.com/go-logr/zapr v0.4.0 github.com/miekg/dns => github.com/miekg/dns v1.0.0 + github.com/opencontainers/runc => github.com/opencontainers/runc v1.0.0-rc95 github.com/xenolf/lego => github.com/go-acme/lego v0.4.0 helm.sh/helm/v3 => github.com/alauda/helm/v3 v3.6.4-0.20210914033728-4a2cde3ea69c - k8s.io/api => k8s.io/api v0.21.0 - k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.0 - k8s.io/apimachinery => k8s.io/apimachinery v0.21.0 - k8s.io/apiserver => k8s.io/apiserver v0.21.0 - k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.0 - k8s.io/client-go => k8s.io/client-go v0.21.0 - k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.0 - k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.0 - k8s.io/code-generator => k8s.io/code-generator v0.21.0 - k8s.io/component-base => k8s.io/component-base v0.21.0 - k8s.io/component-helpers => k8s.io/component-helpers v0.21.0 - k8s.io/controller-manager => k8s.io/controller-manager v0.21.0 - k8s.io/cri-api => k8s.io/cri-api v0.21.0 - k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.0 + k8s.io/api => k8s.io/api v0.21.1 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.21.1 + k8s.io/apimachinery => k8s.io/apimachinery v0.21.1 + k8s.io/apiserver => k8s.io/apiserver v0.21.1 + k8s.io/cli-runtime => k8s.io/cli-runtime v0.21.1 + k8s.io/client-go => k8s.io/client-go v0.21.1 + k8s.io/cloud-provider => k8s.io/cloud-provider v0.21.1 + k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.21.1 + k8s.io/code-generator => k8s.io/code-generator v0.21.1 + k8s.io/component-base => k8s.io/component-base v0.21.1 + k8s.io/component-helpers => k8s.io/component-helpers v0.21.1 + k8s.io/controller-manager => k8s.io/controller-manager v0.21.1 + k8s.io/cri-api => k8s.io/cri-api v0.21.1 + k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.21.1 k8s.io/klog/v2 => k8s.io/klog/v2 v2.0.0 - k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.0 - k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.0 - k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.0 - k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.0 - k8s.io/kubectl => k8s.io/kubectl v0.21.0 - k8s.io/kubelet => k8s.io/kubelet v0.21.0 - k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.0 - k8s.io/metrics => k8s.io/metrics v0.21.0 - k8s.io/mount-utils => k8s.io/mount-utils v0.21.0 - k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.0 + k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.21.1 + k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.21.1 + k8s.io/kube-proxy => k8s.io/kube-proxy v0.21.1 + k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.21.1 + k8s.io/kubectl => k8s.io/kubectl v0.21.1 + k8s.io/kubelet => k8s.io/kubelet v0.21.1 + k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.21.1 + k8s.io/metrics => k8s.io/metrics v0.21.1 + k8s.io/mount-utils => k8s.io/mount-utils v0.21.1 + k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.21.1 sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.9.0 ) diff --git a/go.sum b/go.sum index 0bd07849..dc80bea3 100644 --- a/go.sum +++ b/go.sum @@ -148,13 +148,13 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw= -github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= +github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= github.com/cheekybits/genny v0.0.0-20170328200008-9127e812e1e9/go.mod h1:+tQajlRqAUrPI7DOSpB0XAqZYtQakVtB7wXkRAgjxjQ= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= -github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/cilium/ebpf v0.5.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= @@ -164,7 +164,7 @@ github.com/container-storage-interface/spec v1.3.0/go.mod h1:6URME8mwIBbpVyZV93C github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59 h1:qWj4qVYZ95vLWwqyNJCQg7rDsG5wPdze0UaPolH7DUk= github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= -github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= +github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.4.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/containerd/containerd v1.4.11 h1:QCGOUN+i70jEEL/A6JVIbhy4f4fanzAzSR4kNG7SlcE= @@ -190,7 +190,7 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= -github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.3.1/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= @@ -263,6 +263,7 @@ github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -358,6 +359,7 @@ github.com/gobuffalo/packr/v2 v2.7.1/go.mod h1:qYEvAazPaVxy7Y7KR0W8qYEE+RymX74kE github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godror/godror v0.13.3/go.mod h1:2ouUT4kdhUBk7TAkHWD4SN0CdI0pgEQbo8FVHhbSKWg= github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= @@ -389,7 +391,6 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= @@ -542,8 +543,9 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= @@ -627,6 +629,7 @@ github.com/moby/moby v0.7.3-0.20190826074503-38ab9da00309/go.mod h1:fDXVQ6+S340v 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/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 h1:rzf0wL0CHVc8CEsgyygG0Mn9CNCCPZqOPaz8RiiHYQk= github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -691,12 +694,11 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc93 h1:x2UMpOOVf3kQ8arv/EsDGwim8PTNqzL1/EYDr/+scOM= -github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= +github.com/opencontainers/runc v1.0.0-rc95 h1:RMuWVfY3E1ILlVsC3RhIq38n4sJtlOFwU9gfFZSqrd0= +github.com/opencontainers/runc v1.0.0-rc95/go.mod h1:z+bZxa/+Tz/FmYVWkhUajJdzFeOqjc5vrqskhVyHGUM= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= @@ -1093,7 +1095,6 @@ golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1104,7 +1105,6 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/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-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1113,6 +1113,7 @@ golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40 h1:JWgyZ1qgdTaF3N3oxC+MdTV7qvEEgHo3otj+HB5CM7Q= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= @@ -1329,27 +1330,27 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.21.0 h1:gu5iGF4V6tfVCQ/R+8Hc0h7H1JuEhzyEi9S4R5LM8+Y= -k8s.io/api v0.21.0/go.mod h1:+YbrhBBGgsxbF6o6Kj4KJPJnBmAKuXDeS3E18bgHNVU= -k8s.io/apiextensions-apiserver v0.21.0 h1:Nd4uBuweg6ImzbxkC1W7xUNZcCV/8Vt10iTdTIVF3hw= -k8s.io/apiextensions-apiserver v0.21.0/go.mod h1:gsQGNtGkc/YoDG9loKI0V+oLZM4ljRPjc/sql5tmvzc= -k8s.io/apimachinery v0.21.0 h1:3Fx+41if+IRavNcKOz09FwEXDBG6ORh6iMsTSelhkMA= -k8s.io/apimachinery v0.21.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= -k8s.io/apiserver v0.21.0 h1:1hWMfsz+cXxB77k6/y0XxWxwl6l9OF26PC9QneUVn1Q= -k8s.io/apiserver v0.21.0/go.mod h1:w2YSn4/WIwYuxG5zJmcqtRdtqgW/J2JRgFAqps3bBpg= -k8s.io/cli-runtime v0.21.0 h1:/V2Kkxtf6x5NI2z+Sd/mIrq4FQyQ8jzZAUD6N5RnN7Y= -k8s.io/cli-runtime v0.21.0/go.mod h1:XoaHP93mGPF37MkLbjGVYqg3S1MnsFdKtiA/RZzzxOo= -k8s.io/client-go v0.21.0 h1:n0zzzJsAQmJngpC0IhgFcApZyoGXPrDIAD601HD09ag= -k8s.io/client-go v0.21.0/go.mod h1:nNBytTF9qPFDEhoqgEPaarobC8QPae13bElIVHzIglA= -k8s.io/cloud-provider v0.21.0/go.mod h1:z17TQgu3JgUFjcgby8sj5X86YdVK5Pbt+jm/eYMZU9M= -k8s.io/cluster-bootstrap v0.21.0/go.mod h1:rs7i1JpBCa56YNmnYxFJuoUghIwpMzDidY8ZmqiRnrQ= -k8s.io/code-generator v0.21.0/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= -k8s.io/component-base v0.21.0 h1:tLLGp4BBjQaCpS/KiuWh7m2xqvAdsxLm4ATxHSe5Zpg= -k8s.io/component-base v0.21.0/go.mod h1:qvtjz6X0USWXbgmbfXR+Agik4RZ3jv2Bgr5QnZzdPYw= -k8s.io/component-helpers v0.21.0/go.mod h1:tezqefP7lxfvJyR+0a+6QtVrkZ/wIkyMLK4WcQ3Cj8U= -k8s.io/controller-manager v0.21.0/go.mod h1:Ohy0GRNRKPVjB8C8G+dV+4aPn26m8HYUI6ejloUBvUA= -k8s.io/cri-api v0.21.0/go.mod h1:nJbXlTpXwYCYuGMR7v3PQb1Du4WOGj2I9085xMVjr3I= -k8s.io/csi-translation-lib v0.21.0/go.mod h1:edq+UMpgqEx3roTuGF/03uIuSOsI986jtu65+ytLlkA= +k8s.io/api v0.21.1 h1:94bbZ5NTjdINJEdzOkpS4vdPhkb1VFpTYC9zh43f75c= +k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= +k8s.io/apiextensions-apiserver v0.21.1 h1:AA+cnsb6w7SZ1vD32Z+zdgfXdXY8X9uGX5bN6EoPEIo= +k8s.io/apiextensions-apiserver v0.21.1/go.mod h1:KESQFCGjqVcVsZ9g0xX5bacMjyX5emuWcS2arzdEouA= +k8s.io/apimachinery v0.21.1 h1:Q6XuHGlj2xc+hlMCvqyYfbv3H7SRGn2c8NycxJquDVs= +k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= +k8s.io/apiserver v0.21.1 h1:wTRcid53IhxhbFt4KTrFSw8tAncfr01EP91lzfcygVg= +k8s.io/apiserver v0.21.1/go.mod h1:nLLYZvMWn35glJ4/FZRhzLG/3MPxAaZTgV4FJZdr+tY= +k8s.io/cli-runtime v0.21.1 h1:Oj/iZxa7LLXrhzShaLNF4rFJEIEBTDHj0dJw4ra2vX4= +k8s.io/cli-runtime v0.21.1/go.mod h1:TI9Bvl8lQWZB2KqE91QLCp9AZE4l29zNFnj/x4IX4Fw= +k8s.io/client-go v0.21.1 h1:bhblWYLZKUu+pm50plvQF8WpY6TXdRRtcS/K9WauOj4= +k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= +k8s.io/cloud-provider v0.21.1/go.mod h1:GgiRu7hOsZh3+VqMMbfLJJS9ZZM9A8k/YiZG8zkWpX4= +k8s.io/cluster-bootstrap v0.21.1/go.mod h1:izdXmPTfqI9gkjQLf9PQ1Y9/DSqG54zU2UByEzgdajs= +k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= +k8s.io/component-base v0.21.1 h1:iLpj2btXbR326s/xNQWmPNGu0gaYSjzn7IN/5i28nQw= +k8s.io/component-base v0.21.1/go.mod h1:NgzFZ2qu4m1juby4TnrmpR8adRk6ka62YdH5DkIIyKA= +k8s.io/component-helpers v0.21.1/go.mod h1:FtC1flbiQlosHQrLrRUulnKxE4ajgWCGy/67fT2GRlQ= +k8s.io/controller-manager v0.21.1/go.mod h1:8ugs8DCcHqybiwdVERhnnyGoS5Ksq/ea1p2B0CosHyc= +k8s.io/cri-api v0.21.1/go.mod h1:nJbXlTpXwYCYuGMR7v3PQb1Du4WOGj2I9085xMVjr3I= +k8s.io/csi-translation-lib v0.21.1/go.mod h1:y6NwcsxV1IsoqOm07G4hqANvCLXNDMC1t00lf+CqKRA= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM= @@ -1358,21 +1359,21 @@ k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.0.0 h1:Foj74zO6RbjjP4hBEKjnYtjjAhGg4jNynUdYF6fJrok= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/kube-aggregator v0.21.0/go.mod h1:sIaa9L4QCBo9gjPyoGJns4cBjYVLq3s49FxF7m/1A0A= -k8s.io/kube-controller-manager v0.21.0/go.mod h1:QGJ1P7eU4FQq8evpCHN5e4QwPpcr2sbWFJBO/DKBUrw= +k8s.io/kube-aggregator v0.21.1/go.mod h1:cAZ0n02IiSl57sQSHz4vvrz3upQRMbytOiZnpPJaQzQ= +k8s.io/kube-controller-manager v0.21.1/go.mod h1:zEzQfcDGMQFFFpeWXv5GdJKIDR00LB4wp+hKYeRw7yc= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= -k8s.io/kube-proxy v0.21.0/go.mod h1:36jW3e6+5iQql9tHrLjVrmwpPsbhTywoI6OCFL7MWRs= -k8s.io/kube-scheduler v0.21.0/go.mod h1:wf1oi1NHSsFYfG7lKwxJVmnQNBnhL9vOMXztcKQu5IU= -k8s.io/kubectl v0.21.0 h1:WZXlnG/yjcE4LWO2g6ULjFxtzK6H1TKzsfaBFuVIhNg= -k8s.io/kubectl v0.21.0/go.mod h1:EU37NukZRXn1TpAkMUoy8Z/B2u6wjHDS4aInsDzVvks= -k8s.io/kubelet v0.21.0/go.mod h1:G5ZxMTVev9t4bhmsSxDAWhH6wXDYEVHVVFyYsw4laR4= -k8s.io/kubernetes v1.21.0 h1:LUUQgdFsKB+wVgKPUapmXjkvvJHSLN53CuQwre4c+mM= -k8s.io/kubernetes v1.21.0/go.mod h1:Yx6XZ8zalyqEk7but+j4+5SvLzdyH1eeqZ4cwO+5dD4= -k8s.io/legacy-cloud-providers v0.21.0/go.mod h1:bNxo7gDg+PGkBmT/MFZswLTWdSWK9kAlS1s8DJca5q4= -k8s.io/metrics v0.21.0/go.mod h1:L3Ji9EGPP1YBbfm9sPfEXSpnj8i24bfQbAFAsW0NueQ= -k8s.io/mount-utils v0.21.0/go.mod h1:dwXbIPxKtTjrBEaX1aK/CMEf1KZ8GzMHpe3NEBfdFXI= -k8s.io/sample-apiserver v0.21.0/go.mod h1:yMffYq14yQZtuVPVBGaBJ+3Scb2xHT6QeqFfk3v+AEY= +k8s.io/kube-proxy v0.21.1/go.mod h1:5/Vg0HZHf2+475YhaeXWPvrw7PcQF0hW1Kx3Ug6kyBI= +k8s.io/kube-scheduler v0.21.1/go.mod h1:AFLD3tRlC0lbhB+WClraGOV/e5+NQyi5PeeL2CMKx/Y= +k8s.io/kubectl v0.21.1 h1:ySEusoeSgSDSiSBncDMsNrthSa3OSlXqT4R2rf1VFTw= +k8s.io/kubectl v0.21.1/go.mod h1:PMYR88MqESuysBM/MX+Vu4JbX/50nY4d4kny+SPEI2U= +k8s.io/kubelet v0.21.1/go.mod h1:poOR6Iaa5WqytFOp0egXFV8c2XTLFxaXTdj5njUlnVY= +k8s.io/kubernetes v1.21.1 h1:U7cVOSdG+sMNOfL9XlenBV7avSBDHyWPE66gWnnYIIc= +k8s.io/kubernetes v1.21.1/go.mod h1:ef++isEL1PW0taH6z7DXrSztPglrZ7jQhyvcMEtm0gQ= +k8s.io/legacy-cloud-providers v0.21.1/go.mod h1:rpyWrAsPV1YNn7MmkZydMqleJijhay1Eqx+32K06Rd0= +k8s.io/metrics v0.21.1/go.mod h1:pyDVLsLe++FIGDBFU80NcW4xMFsuiVTWL8Zfi7+PpNo= +k8s.io/mount-utils v0.21.1/go.mod h1:dwXbIPxKtTjrBEaX1aK/CMEf1KZ8GzMHpe3NEBfdFXI= +k8s.io/sample-apiserver v0.21.1/go.mod h1:haiFU1SSB0+EaaqTpg+CxqOLVwsmjBOJ/CeOk6BTabs= k8s.io/system-validators v1.4.0/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210527160623-6fdb442a123b h1:MSqsVQ3pZvPGTqCjptfimO2WjG7A9un2zcpiHkA6M/s= @@ -1391,12 +1392,12 @@ rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/controller-runtime v0.9.0 h1:ZIZ/dtpboPSbZYY7uUz2OzrkaBTOThx2yekLtpGB+zY= sigs.k8s.io/controller-runtime v0.9.0/go.mod h1:TgkfvrhhEw3PlI0BRL/5xM+89y3/yc0ZDfdbTl84si8= -sigs.k8s.io/kustomize/api v0.8.5 h1:bfCXGXDAbFbb/Jv5AhMj2BB8a5VAJuuQ5/KU69WtDjQ= -sigs.k8s.io/kustomize/api v0.8.5/go.mod h1:M377apnKT5ZHJS++6H4rQoCHmWtt6qTpp3mbe7p6OLY= -sigs.k8s.io/kustomize/cmd/config v0.9.7/go.mod h1:MvXCpHs77cfyxRmCNUQjIqCmZyYsbn5PyQpWiq44nW0= -sigs.k8s.io/kustomize/kustomize/v4 v4.0.5/go.mod h1:C7rYla7sI8EnxHE/xEhRBSHMNfcL91fx0uKmUlUhrBk= -sigs.k8s.io/kustomize/kyaml v0.10.15 h1:dSLgG78KyaxN4HylPXdK+7zB3k7sW6q3IcCmcfKA+aI= -sigs.k8s.io/kustomize/kyaml v0.10.15/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg= +sigs.k8s.io/kustomize/api v0.8.8 h1:G2z6JPSSjtWWgMeWSoHdXqyftJNmMmyxXpwENGoOtGE= +sigs.k8s.io/kustomize/api v0.8.8/go.mod h1:He1zoK0nk43Pc6NlV085xDXDXTNprtcyKZVm3swsdNY= +sigs.k8s.io/kustomize/cmd/config v0.9.10/go.mod h1:Mrby0WnRH7hA6OwOYnYpfpiY0WJIMgYrEDfwOeFdMK0= +sigs.k8s.io/kustomize/kustomize/v4 v4.1.2/go.mod h1:PxBvo4WGYlCLeRPL+ziT64wBXqbgfcalOS/SXa/tcyo= +sigs.k8s.io/kustomize/kyaml v0.10.17 h1:4zrV0ym5AYa0e512q7K3Wp1u7mzoWW0xR3UHJcGWGIg= +sigs.k8s.io/kustomize/kyaml v0.10.17/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.1.0 h1:C4r9BgJ98vrKnnVCjwCSXcWjWe0NKcUQkmzDXZXGwH8= sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=