[BUG] ISM CRD allocation action is broken
Jerrimikkihvatai opened this issue · 3 comments
What is the bug?
I can't create an ISM policy with only one allocation parameter, though I can do it via api or Opensearch dashboards.
I get the following error:
one or more objects failed to apply, reason: OpenSearchISMPolicy.opensearch.opster.io "delete-more-30d" is invalid: [spec.states[1].actions[0].allocation.exclude: Required value, spec.states[1].actions[0].allocation.include: Required value, spec.states[1].actions[0].allocation.waitFor: Required value]
Seems that the problem is in required field in ISM CRD
How can one reproduce the bug?
Try to create ISM CRD like that
---
apiVersion: opensearch.opster.io/v1
kind: OpenSearchISMPolicy
metadata:
name: delete-more-30d
namespace: devops-opensearch-infra
spec:
opensearchCluster:
name: opensearch-prod
description: Delete indices older than 30 days
policyId: delete_more_30d
defaultState: open
ismTemplate:
priority: 1
indexPatterns:
- "testindex-*"
states:
- name: open
actions:
- open: {}
transitions:
- stateName: cold
conditions:
minIndexAge: "15d"
- name: cold
actions:
- allocation:
require: "temp: cold"
transitions:
- stateName: delete
conditions:
minIndexAge: "30d"
- name: delete
actions:
- delete: {}
---
What is the expected behavior?
I expect to create an ISM policy with only one parameter
What is your host/environment?
OS 2.14, operator 2.6.0
Do you have any additional context?
I noticed confusing information on os docs about allocation action
It says that all parameters are required, though you can create an ISM policy with only one of them (include, exclude, required)
I also noticed wrong description of crd fields there
[Triage]
Hey @cthtrifork can you please check this, I assume your contribution in this PR #788 should fix the error.
Thanks
@getsaurabh02
Similiar issue related to this topic #812 (comment).
From a quick look at the code, it looks like the ism policy object does not require all 4 to be set so I believe it's just in the CRD which should be a quick fix. I might do it on monday