Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Update to Kustomize v5 syntax #149

Merged

Conversation

KillianGolds
Copy link
Contributor

@KillianGolds KillianGolds commented Jul 25, 2024

Motivation

The main motivation for this update is to keep our manifests up to date with Kustomize v5. This ensures that we are using the latest syntax, which improves the compatibility and maintainability of our Kubernetes configurations.

Modifications

1. Replacements Section:

  • Added a replacements section to dynamically change values in the deployment configuration.
  • Corrected the field path to ensure the replacement does not break when patches are used.
  • Specifically, it replaces the environment variable value in the model-mesh deployment with the service name.

Old Syntax:

vars:
  - name: MM_SERVICE_NAME
    objref:
      kind: Service
      name: model-mesh
      apiVersion: v1
    fieldref:
      fieldpath: metadata.name

New Syntax:

replacements:
- source:
    kind: Service
    name: model-mesh
    fieldPath: metadata.name
  targets:
  - select:
      kind: Deployment
      name: model-mesh
    fieldPaths:
    - spec.template.spec.containers.0.env.[name=MM_SERVICE_NAME].value

2. Patch Paths:

  • I updated the commented-out patches section to use the correct path syntax when they are needed.
# patches:
#  - path: patches/etcd.yaml
#  - path: patches/logger.yaml
#  - path: patches/tls.yaml
#  - path: patches/uds.yaml
#  - path: patches/max_msg_size.yaml
#  - path: patches/prometheus_metrics.yaml

How I Tested

To ensure the correctness of these changes, the following steps were taken:

  1. Ran the kustomize build command on the original manifests to produce the current state of the resources.
  2. Updated to Kustomize v5 labels.
  3. Ran the kustomize build command again on the updated manifests.
  4. Compared the output of the kustomize build command from both the original and updated manifests.
  5. Verified that there was no difference between the outputs.

Gist of all kustomize build pre-changes and post-changes: https://gist.github.com/KillianGolds/522e22734d547a90e69a619498ab71ca

Result

These changes ensure that our Kustomize configuration is up to date with version 5. Everything works as it should, with no changes to functionality other than updated syntax and corrected field paths for replacements and patches.

@KillianGolds KillianGolds force-pushed the upstream-modelmesh-kustomize-manifests branch from c9acc6b to d8e0e2e Compare July 25, 2024 15:55
@KillianGolds KillianGolds marked this pull request as ready for review July 26, 2024 12:17
@KillianGolds KillianGolds changed the title Updated deprecated manifest labels for kustomize v5 upgrade. Updating outdated Kustomize syntax to be in line with Kustomize v5 syntax Aug 13, 2024
Copy link
Member

@terrytangyuan terrytangyuan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@spolti
Copy link
Contributor

spolti commented Aug 15, 2024

@ckadner @rafvasq fyi

@rafvasq
Copy link
Member

rafvasq commented Aug 16, 2024

/lgtm

@rafvasq rafvasq changed the title Updating outdated Kustomize syntax to be in line with Kustomize v5 syntax chore: Update to Kustomize v5 syntax Aug 16, 2024
@rafvasq rafvasq merged commit 3a44450 into kserve:main Aug 16, 2024
6 checks passed
openshift-merge-bot bot pushed a commit to opendatahub-io/modelmesh that referenced this pull request Aug 22, 2024
### Motivation
The main motivation for this update is to keep our manifests up to date
with Kustomize v5. This ensures that we are using the latest syntax,
which improves the compatibility and maintainability of our Kubernetes
configurations.

### Modifications

#### 1. Replacements Section:
- Added a replacements section to dynamically change values in the
deployment configuration.
- Corrected the field path to ensure the replacement does not break when
patches are used.
- Specifically, it replaces the environment variable value in the
model-mesh deployment with the service name.

**Old Syntax:**
```
vars:
  - name: MM_SERVICE_NAME
    objref:
      kind: Service
      name: model-mesh
      apiVersion: v1
    fieldref:
      fieldpath: metadata.name
```
**New Syntax:**
```
replacements:
- source:
    kind: Service
    name: model-mesh
    fieldPath: metadata.name
  targets:
  - select:
      kind: Deployment
      name: model-mesh
    fieldPaths:
    - spec.template.spec.containers.0.env.[name=MM_SERVICE_NAME].value
```
#### 2. Patch Paths:
- I updated the commented-out patches section to use the correct path
syntax when they are needed.
```
# patches:
#  - path: patches/etcd.yaml
#  - path: patches/logger.yaml
#  - path: patches/tls.yaml
#  - path: patches/uds.yaml
#  - path: patches/max_msg_size.yaml
#  - path: patches/prometheus_metrics.yaml
```
### How I Tested
To ensure the correctness of these changes, the following steps were
taken:

1. Ran the kustomize build command on the original manifests to produce
the current state of the resources.
2. Updated to Kustomize v5 labels.
3. Ran the kustomize build command again on the updated manifests.
4. Compared the output of the kustomize build command from both the
original and updated manifests.
5. Verified that there was no difference between the outputs.

Gist of all kustomize build pre-changes and post-changes:
https://gist.github.com/KillianGolds/522e22734d547a90e69a619498ab71ca

### Result
These changes ensure that our Kustomize configuration is up to date with
version 5. Everything works as it should, with no changes to
functionality other than updated syntax and corrected field paths for
replacements and patches.

---------

Signed-off-by: Killian Golds <[email protected]>
Co-authored-by: Killian Golds <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants