From c604296ae3f03043ff38efcaa35623cde1877688 Mon Sep 17 00:00:00 2001 From: David Grove Date: Tue, 21 May 2024 16:37:37 -0400 Subject: [PATCH] upgrade AppWrapper from v0.11.1 to v0.12.0 --- Makefile | 2 +- README.md | 2 +- config/crd/appwrapper/kustomization.yaml | 2 +- config/crd/crd-appwrapper.yml | 101 ++++++++++++++++++++--- go.mod | 3 +- go.sum | 6 +- 6 files changed, 97 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 3b6aae41..6f3d20c7 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ VERSION ?= v0.0.0-dev BUNDLE_VERSION ?= $(VERSION:v%=%) # APPWRAPPER_VERSION defines the default version of the AppWrapper controller - APPWRAPPER_VERSION ?= v0.11.1 + APPWRAPPER_VERSION ?= v0.12.0 APPWRAPPER_REPO ?= github.com/project-codeflare/appwrapper # Upstream AppWrapper is currently only creating release tags of the form `vX.Y.Z` (i.e the version) APPWRAPPER_CRD ?= ${APPWRAPPER_REPO}/config/crd?ref=${APPWRAPPER_VERSION} diff --git a/README.md b/README.md index 890f28de..395d1e02 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ CodeFlare Stack Compatibility Matrix |------------------------------|---------------------------------------------------------------------------------------------------| | CodeFlare Operator | [v1.4.1](https://github.com/project-codeflare/codeflare-operator/releases/tag/v1.4.1) | | CodeFlare-SDK | [v0.16.1](https://github.com/project-codeflare/codeflare-sdk/releases/tag/v0.16.1) | -| AppWrapper | [v0.11.1](https://github.com/project-codeflare/appwrapper/releases/tag/v0.11.1) | +| AppWrapper | [v0.12.0](https://github.com/project-codeflare/appwrapper/releases/tag/v0.12.0) | | KubeRay | [v1.1.0](https://github.com/opendatahub-io/kuberay/releases/tag/v1.1.0) | | Kueue | [v0.6.2](https://github.com/opendatahub-io/kueue/releases/tag/v0.6.2) | diff --git a/config/crd/appwrapper/kustomization.yaml b/config/crd/appwrapper/kustomization.yaml index 3896466a..994e183b 100644 --- a/config/crd/appwrapper/kustomization.yaml +++ b/config/crd/appwrapper/kustomization.yaml @@ -1,4 +1,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- github.com/project-codeflare/appwrapper/config/crd?ref=v0.11.1 +- github.com/project-codeflare/appwrapper/config/crd?ref=v0.12.0 diff --git a/config/crd/crd-appwrapper.yml b/config/crd/crd-appwrapper.yml index dc134a6d..f8cbd4e6 100644 --- a/config/crd/crd-appwrapper.yml +++ b/config/crd/crd-appwrapper.yml @@ -5,16 +5,6 @@ metadata: controller-gen.kubebuilder.io/version: v0.14.0 name: appwrappers.workload.codeflare.dev spec: - conversion: - strategy: Webhook - webhook: - clientConfig: - service: - name: webhook-service - namespace: system - path: /convert - conversionReviewVersions: - - v1 group: workload.codeflare.dev names: kind: AppWrapper @@ -168,6 +158,97 @@ spec: status: description: AppWrapperStatus defines the observed state of the appwrapper properties: + componentStatus: + description: ComponentStatus parallels the Components array in the Spec and tracks the actually deployed resources + items: + description: AppWrapperComponentStatus tracks the status of a single managed Component + properties: + apiVersion: + description: APIVersion is the APIVersion of the Component + type: string + conditions: + description: |- + Conditions hold the latest available observations of the Component's current state. + + + The type of the condition could be: + + + - ResourcesDeployed: The component is deployed on the cluster + items: + description: "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}" + 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. + format: date-time + type: string + message: + 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. + 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. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + 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 + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + kind: + description: Kind is the Kind of the Component + type: string + name: + description: Name is the name of the Component + type: string + required: + - apiVersion + - kind + - name + type: object + type: array conditions: description: |- Conditions hold the latest available observations of the AppWrapper current state. diff --git a/go.mod b/go.mod index 4d95b1c8..637bcf5e 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/opendatahub-io/opendatahub-operator/v2 v2.10.0 github.com/openshift/api v0.0.0-20230823114715-5fdd7511b790 github.com/openshift/client-go v0.0.0-20221019143426-16aed247da5c - github.com/project-codeflare/appwrapper v0.11.1 + github.com/project-codeflare/appwrapper v0.12.0 github.com/project-codeflare/codeflare-common v0.0.0-20240422163521-380101642c8f github.com/ray-project/kuberay/ray-operator v1.1.0 go.uber.org/zap v1.26.0 @@ -101,7 +101,6 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiserver v0.29.2 // indirect k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect - k8s.io/kubernetes v1.29.2 // indirect sigs.k8s.io/jobset v0.3.1 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect diff --git a/go.sum b/go.sum index 2accf6fb..59ec28e4 100644 --- a/go.sum +++ b/go.sum @@ -242,8 +242,8 @@ 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/project-codeflare/appwrapper v0.11.1 h1:bQ+OLzO+osR1Lo9nNl4Lk/QIFl0y8Cf6byPSPFJfkH4= -github.com/project-codeflare/appwrapper v0.11.1/go.mod h1:MLmgm7cVHgeatBKhANSpos7GcB0bdllaWF9c1jEJKho= +github.com/project-codeflare/appwrapper v0.12.0 h1:QMxryBPK6ir3VK6Qx4NWOA05/s4xU6uDHI/nXmLznvw= +github.com/project-codeflare/appwrapper v0.12.0/go.mod h1:sH9j/rXX6WIlZzFXUOuqK5pagASPZNhuCtdFK+3BDkw= github.com/project-codeflare/codeflare-common v0.0.0-20240422163521-380101642c8f h1:9Uron4ej4Tt5ULX5CMzjmPqIZu3q/m07d4jhbNSwdPY= github.com/project-codeflare/codeflare-common v0.0.0-20240422163521-380101642c8f/go.mod h1:tlPi2e1HZQuf7AAFc7keWdVUNcxV+Gfh6Ss4KAQs1O0= github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= @@ -524,8 +524,6 @@ k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lV k8s.io/kube-openapi v0.0.0-20220124234850-424119656bbf/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= -k8s.io/kubernetes v1.29.2 h1:8hh1cntqdulanjQt7wSSSsJfBgOyx6fUdFWslvGL5m0= -k8s.io/kubernetes v1.29.2/go.mod h1:xZPKU0yO0CBbLTnbd+XGyRmmtmaVuJykDb8gNCkeeUE= k8s.io/metrics v0.29.1 h1:qutc3aIPMCniMuEApuLaeYX47rdCn8eycVDx7R6wMlQ= k8s.io/metrics v0.29.1/go.mod h1:JrbV2U71+v7d/9qb90UVKL8r0uJ6Z2Hy4V7mDm05cKs= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=