mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-01 02:38:12 +00:00
Merge pull request #38676 from caesarxuchao/sync-gc
Automatic merge from submit-queue (batch tested with PRs 38676, 41765, 42103, 41833, 41702) Add synchronous garbage collection Fix https://github.com/kubernetes/kubernetes/issues/29891. Split into five commits: 1. generated: don't need review 2. API: got reviewed in #38678, i addressed @lavalamp's comments there. 3. registry changes: @nikhiljindal could you help take a look? 4. gc changes: reviewed by @deads2k in #38679. It needs another pass. 5. tests: @lavalamp @deads2k could take a look? TODO: - [ ] Update doc. Note that the existing doc has been refactored in https://github.com/kubernetes/kubernetes.github.io/pull/2488. - [ ] add an admission controller to check if a user can set OwnerReference.BlockOwnerDeletion - [ ] https://github.com/kubernetes/kubernetes/pull/38676#discussion_r103277274 - [ ] split the unit tests garbagecollector_test.go according to the components tested. - [ ] try if it's practically safe to use the cached object status in attempToDeleteItem(), after synchronous GC feature is stable. (Also see https://github.com/kubernetes/kubernetes/pull/38676#discussion_r103056971) - [ ] add blockOwnerDeletion for rs adoption https://github.com/kubernetes/kubernetes/pull/38679#discussion_r93817284 - [ ] https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/38676/pull-kubernetes-e2e-gce-etcd3/20101/ (improve the log message) ```release-note Added foreground garbage collection: the owner object will not be deleted until all its dependents are deleted by the garbage collector. Please checkout the [user doc](https://kubernetes.io/docs/concepts/abstractions/controllers/garbage-collection/) for details. deleteOptions.orphanDependents is going to be deprecated in 1.7. Please use deleteOptions.propagationPolicy instead. ```
This commit is contained in:
@@ -1059,9 +1059,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -1456,9 +1463,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -1853,9 +1867,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -2250,9 +2271,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -2647,9 +2675,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -3180,9 +3215,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -4643,9 +4685,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -5040,9 +5089,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -5709,9 +5765,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -6242,9 +6305,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -6639,9 +6709,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -7673,9 +7750,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -8240,9 +8324,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -9196,9 +9287,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -15159,9 +15257,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -16781,9 +16886,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -17679,9 +17791,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -18610,9 +18729,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -19585,9 +19711,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -20118,9 +20251,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -20651,9 +20791,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -22084,9 +22231,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -23048,9 +23202,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -23581,9 +23742,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -24316,9 +24484,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -24849,9 +25024,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -25246,9 +25428,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -26120,9 +26309,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -26578,9 +26774,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -28632,9 +28835,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -29539,9 +29749,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -29904,9 +30121,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -30277,9 +30501,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -30658,9 +30889,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -32052,9 +32290,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -32417,9 +32662,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -32790,9 +33042,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -33171,9 +33430,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -34614,9 +34880,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -35104,12 +35377,16 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"preconditions": {
|
"preconditions": {
|
||||||
"description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
|
"description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
|
||||||
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions"
|
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions"
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -35278,6 +35555,10 @@
|
|||||||
"description": "API version of the referent.",
|
"description": "API version of the referent.",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
"controller": {
|
"controller": {
|
||||||
"description": "If true, this reference points to the managing controller.",
|
"description": "If true, this reference points to the managing controller.",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
|
|||||||
@@ -521,7 +521,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1171,6 +1179,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3286,7 +3298,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3304,6 +3320,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1.APIResourceList": {
|
"v1.APIResourceList": {
|
||||||
"id": "v1.APIResourceList",
|
"id": "v1.APIResourceList",
|
||||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||||
|
|||||||
@@ -209,6 +209,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -209,6 +209,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -307,6 +307,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -307,6 +307,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -521,7 +521,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1174,6 +1182,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1392,7 +1404,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1410,6 +1426,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1.APIResourceList": {
|
"v1.APIResourceList": {
|
||||||
"id": "v1.APIResourceList",
|
"id": "v1.APIResourceList",
|
||||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||||
|
|||||||
@@ -521,7 +521,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1174,6 +1182,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3262,7 +3274,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3280,6 +3296,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1.APIResourceList": {
|
"v1.APIResourceList": {
|
||||||
"id": "v1.APIResourceList",
|
"id": "v1.APIResourceList",
|
||||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||||
|
|||||||
@@ -465,7 +465,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -881,6 +889,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1097,7 +1109,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1115,6 +1131,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1.APIResourceList": {
|
"v1.APIResourceList": {
|
||||||
"id": "v1.APIResourceList",
|
"id": "v1.APIResourceList",
|
||||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||||
|
|||||||
@@ -521,7 +521,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1491,7 +1499,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -2687,7 +2703,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -3657,7 +3681,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -4406,7 +4438,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -5037,7 +5077,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -6281,7 +6329,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -6595,6 +6651,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -8683,7 +8743,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -8701,6 +8765,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1beta1.DeploymentList": {
|
"v1beta1.DeploymentList": {
|
||||||
"id": "v1beta1.DeploymentList",
|
"id": "v1beta1.DeploymentList",
|
||||||
"description": "DeploymentList is a list of Deployments.",
|
"description": "DeploymentList is a list of Deployments.",
|
||||||
|
|||||||
@@ -521,7 +521,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1171,6 +1179,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1402,7 +1414,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1420,6 +1436,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1.APIResourceList": {
|
"v1.APIResourceList": {
|
||||||
"id": "v1.APIResourceList",
|
"id": "v1.APIResourceList",
|
||||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||||
|
|||||||
@@ -449,7 +449,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1008,7 +1016,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1623,7 +1639,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -2412,7 +2436,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -2907,6 +2939,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3089,7 +3125,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3107,6 +3147,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1alpha1.ClusterRoleList": {
|
"v1alpha1.ClusterRoleList": {
|
||||||
"id": "v1alpha1.ClusterRoleList",
|
"id": "v1alpha1.ClusterRoleList",
|
||||||
"description": "ClusterRoleList is a collection of ClusterRoles",
|
"description": "ClusterRoleList is a collection of ClusterRoles",
|
||||||
|
|||||||
@@ -449,7 +449,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1008,7 +1016,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1623,7 +1639,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -2412,7 +2436,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -2907,6 +2939,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3089,7 +3125,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -3107,6 +3147,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1beta1.ClusterRoleList": {
|
"v1beta1.ClusterRoleList": {
|
||||||
"id": "v1beta1.ClusterRoleList",
|
"id": "v1beta1.ClusterRoleList",
|
||||||
"description": "ClusterRoleList is a collection of ClusterRoles",
|
"description": "ClusterRoleList is a collection of ClusterRoles",
|
||||||
|
|||||||
@@ -465,7 +465,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -782,6 +790,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -915,7 +927,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -933,6 +949,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1.APIResourceList": {
|
"v1.APIResourceList": {
|
||||||
"id": "v1.APIResourceList",
|
"id": "v1.APIResourceList",
|
||||||
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
"description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
|
||||||
|
|||||||
@@ -698,7 +698,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -1503,7 +1511,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -2308,7 +2324,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -3113,7 +3137,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -3862,7 +3894,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -4631,7 +4671,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -6199,7 +6247,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -7113,7 +7169,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -7885,7 +7949,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -10481,7 +10553,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -11286,7 +11366,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -12421,7 +12509,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -13391,7 +13487,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -14196,7 +14300,15 @@
|
|||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"paramType": "query",
|
"paramType": "query",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"required": false,
|
||||||
|
"allowMultiple": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"paramType": "query",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
"required": false,
|
"required": false,
|
||||||
"allowMultiple": false
|
"allowMultiple": false
|
||||||
},
|
},
|
||||||
@@ -16512,6 +16624,10 @@
|
|||||||
"controller": {
|
"controller": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "If true, this reference points to the managing controller."
|
"description": "If true, this reference points to the managing controller."
|
||||||
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -16822,7 +16938,11 @@
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list."
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both."
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"$ref": "v1.DeletionPropagation",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -16840,6 +16960,10 @@
|
|||||||
"id": "types.UID",
|
"id": "types.UID",
|
||||||
"properties": {}
|
"properties": {}
|
||||||
},
|
},
|
||||||
|
"v1.DeletionPropagation": {
|
||||||
|
"id": "v1.DeletionPropagation",
|
||||||
|
"properties": {}
|
||||||
|
},
|
||||||
"v1.EndpointsList": {
|
"v1.EndpointsList": {
|
||||||
"id": "v1.EndpointsList",
|
"id": "v1.EndpointsList",
|
||||||
"description": "EndpointsList is a list of endpoints.",
|
"description": "EndpointsList is a list of endpoints.",
|
||||||
|
|||||||
@@ -1351,6 +1351,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_v1_gcepersistentdiskvolumesource">v1.GCEPersistentDiskVolumeSource</h3>
|
<h3 id="_v1_gcepersistentdiskvolumesource">v1.GCEPersistentDiskVolumeSource</h3>
|
||||||
@@ -2413,6 +2417,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -4020,11 +4031,18 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -5451,7 +5469,7 @@ Examples:<br>
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-27 07:15:52 UTC
|
Last updated 2017-03-01 06:41:12 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1187,12 +1187,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -2411,7 +2419,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-06 18:13:59 UTC
|
Last updated 2017-02-24 20:25:21 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -437,6 +437,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -914,7 +921,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-07 05:41:02 UTC
|
Last updated 2017-02-23 09:26:13 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -492,6 +492,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -914,7 +921,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-25 20:38:39 UTC
|
Last updated 2017-02-23 09:26:18 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -519,6 +519,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1175,7 +1182,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-02 02:26:17 UTC
|
Last updated 2017-02-23 09:26:23 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -443,6 +443,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1175,7 +1182,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-25 20:38:43 UTC
|
Last updated 2017-02-23 09:26:28 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -496,11 +496,18 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1249,6 +1256,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1370,6 +1384,10 @@ Examples:<br>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_any">any</h3>
|
<h3 id="_any">any</h3>
|
||||||
@@ -1382,7 +1400,7 @@ Examples:<br>
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-25 20:38:47 UTC
|
Last updated 2017-02-24 20:25:42 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1336,12 +1336,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -2411,7 +2419,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-06 18:14:17 UTC
|
Last updated 2017-02-24 20:25:42 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1248,6 +1248,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_v1_gcepersistentdiskvolumesource">v1.GCEPersistentDiskVolumeSource</h3>
|
<h3 id="_v1_gcepersistentdiskvolumesource">v1.GCEPersistentDiskVolumeSource</h3>
|
||||||
@@ -2317,6 +2321,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -4065,11 +4076,18 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -5376,7 +5394,7 @@ Examples:<br>
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-27 07:16:35 UTC
|
Last updated 2017-03-01 06:41:44 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1336,12 +1336,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -2411,7 +2419,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-06 18:14:24 UTC
|
Last updated 2017-02-24 20:25:51 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -496,11 +496,18 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1151,6 +1158,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1328,6 +1342,10 @@ Examples:<br>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_v1beta1_certificatesigningrequeststatus">v1beta1.CertificateSigningRequestStatus</h3>
|
<h3 id="_v1beta1_certificatesigningrequeststatus">v1beta1.CertificateSigningRequestStatus</h3>
|
||||||
@@ -1378,7 +1396,7 @@ Examples:<br>
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-20 18:28:59 UTC
|
Last updated 2017-02-24 20:26:00 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1147,12 +1147,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the CertificateSigningRequest</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the CertificateSigningRequest</p></td>
|
||||||
@@ -1900,7 +1908,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-12 20:13:16 UTC
|
Last updated 2017-02-24 20:26:00 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -3478,11 +3478,18 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -5583,6 +5590,10 @@ Examples:<br>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_v1_tcpsocketaction">v1.TCPSocketAction</h3>
|
<h3 id="_v1_tcpsocketaction">v1.TCPSocketAction</h3>
|
||||||
@@ -6231,6 +6242,13 @@ Both these may change in the future. Incoming requests are matched against the h
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -7781,7 +7799,7 @@ Both these may change in the future. Incoming requests are matched against the h
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-27 20:18:57 UTC
|
Last updated 2017-03-01 06:41:57 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1634,12 +1634,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -2978,12 +2986,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -4828,12 +4844,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -6172,12 +6196,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -7137,12 +7169,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -9348,12 +9388,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the PodSecurityPolicy</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the PodSecurityPolicy</p></td>
|
||||||
@@ -10406,12 +10454,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ThirdPartyResource</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ThirdPartyResource</p></td>
|
||||||
@@ -13582,7 +13638,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-18 12:27:30 UTC
|
Last updated 2017-02-24 20:26:05 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -558,11 +558,18 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1194,6 +1201,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1363,6 +1377,10 @@ Examples:<br>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_v1beta1_poddisruptionbudgetspec">v1beta1.PodDisruptionBudgetSpec</h3>
|
<h3 id="_v1beta1_poddisruptionbudgetspec">v1beta1.PodDisruptionBudgetSpec</h3>
|
||||||
@@ -1416,7 +1434,7 @@ Examples:<br>
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-25 20:39:08 UTC
|
Last updated 2017-02-24 20:26:10 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1187,12 +1187,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -2411,7 +2419,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-06 18:14:50 UTC
|
Last updated 2017-02-24 20:26:10 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1131,12 +1131,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ClusterRoleBinding</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ClusterRoleBinding</p></td>
|
||||||
@@ -2024,12 +2032,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ClusterRole</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ClusterRole</p></td>
|
||||||
@@ -2957,12 +2973,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -3906,12 +3930,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -5983,7 +6015,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-06 18:14:57 UTC
|
Last updated 2017-02-24 20:26:19 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -569,11 +569,18 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1267,6 +1274,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1498,6 +1512,10 @@ Examples:<br>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_v1beta1_policyrule">v1beta1.PolicyRule</h3>
|
<h3 id="_v1beta1_policyrule">v1beta1.PolicyRule</h3>
|
||||||
@@ -1737,7 +1755,7 @@ Examples:<br>
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-13 18:31:09 UTC
|
Last updated 2017-02-24 20:26:15 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1131,12 +1131,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ClusterRoleBinding</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ClusterRoleBinding</p></td>
|
||||||
@@ -2024,12 +2032,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ClusterRole</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the ClusterRole</p></td>
|
||||||
@@ -2957,12 +2973,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -3906,12 +3930,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -5983,7 +6015,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-18 13:58:18 UTC
|
Last updated 2017-02-24 20:26:15 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -551,11 +551,18 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1087,6 +1094,13 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1208,6 +1222,10 @@ Examples:<br>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_any">any</h3>
|
<h3 id="_any">any</h3>
|
||||||
@@ -1220,7 +1238,7 @@ Examples:<br>
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-25 20:39:20 UTC
|
Last updated 2017-02-24 20:26:24 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -1147,12 +1147,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the StorageClass</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the StorageClass</p></td>
|
||||||
@@ -1662,7 +1670,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-01-06 18:15:04 UTC
|
Last updated 2017-02-24 20:26:24 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -4191,11 +4191,18 @@ The resulting set of endpoints can be viewed as:<br>
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1_deletionpropagation">v1.DeletionPropagation</a></p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -6443,6 +6450,10 @@ Examples:<br>
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="sect2">
|
||||||
|
<h3 id="_v1_deletionpropagation">v1.DeletionPropagation</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="sect2">
|
<div class="sect2">
|
||||||
<h3 id="_v1_tcpsocketaction">v1.TCPSocketAction</h3>
|
<h3 id="_v1_tcpsocketaction">v1.TCPSocketAction</h3>
|
||||||
@@ -7358,6 +7369,13 @@ Examples:<br>
|
|||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">blockOwnerDeletion</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -9714,7 +9732,7 @@ Examples:<br>
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-27 07:15:44 UTC
|
Last updated 2017-03-01 06:41:05 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -2565,12 +2565,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -3530,12 +3538,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -4495,12 +4511,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -5460,12 +5484,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -6425,12 +6457,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -7769,12 +7809,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -11303,12 +11351,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -12268,12 +12324,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -13991,12 +14055,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -15335,12 +15407,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -16300,12 +16380,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">namespace</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">object name and auth scope, such as for teams and projects</p></td>
|
||||||
@@ -18927,12 +19015,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the Namespace</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the Namespace</p></td>
|
||||||
@@ -20310,12 +20406,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the Node</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the Node</p></td>
|
||||||
@@ -22595,12 +22699,20 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">orphanDependents</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list.</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
|
||||||
<td class="tableblock halign-left valign-top"></td>
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">QueryParameter</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">propagationPolicy</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
|
||||||
|
<td class="tableblock halign-left valign-top"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">PathParameter</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name</p></td>
|
||||||
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the PersistentVolume</p></td>
|
<td class="tableblock halign-left valign-top"><p class="tableblock">name of the PersistentVolume</p></td>
|
||||||
@@ -33962,7 +34074,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
|||||||
</div>
|
</div>
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div id="footer-text">
|
<div id="footer-text">
|
||||||
Last updated 2017-02-14 17:56:17 UTC
|
Last updated 2017-02-24 20:25:13 UTC
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -722,9 +722,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -1119,9 +1126,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -1516,9 +1530,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -1913,9 +1934,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -2254,9 +2282,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -4341,9 +4376,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -5305,9 +5347,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -6423,9 +6472,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -6956,9 +7012,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -7691,9 +7754,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -8224,9 +8294,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -10048,9 +10125,16 @@
|
|||||||
{
|
{
|
||||||
"uniqueItems": true,
|
"uniqueItems": true,
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"name": "orphanDependents",
|
"name": "orphanDependents",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"uniqueItems": true,
|
||||||
|
"type": "string",
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"name": "propagationPolicy",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@@ -10600,12 +10684,16 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
"description": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"preconditions": {
|
"preconditions": {
|
||||||
"description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
|
"description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
|
||||||
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions"
|
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions"
|
||||||
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
"description": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -10774,6 +10862,10 @@
|
|||||||
"description": "API version of the referent.",
|
"description": "API version of the referent.",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
"description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
"controller": {
|
"controller": {
|
||||||
"description": "If true, this reference points to the managing controller.",
|
"description": "If true, this reference points to the managing controller.",
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ func TestConfigMapController(t *testing.T) {
|
|||||||
// There should be 2 updates to add both the finalizers.
|
// There should be 2 updates to add both the finalizers.
|
||||||
updatedConfigMap := GetConfigMapFromChan(configmapUpdateChan)
|
updatedConfigMap := GetConfigMapFromChan(configmapUpdateChan)
|
||||||
assert.True(t, configmapController.hasFinalizerFunc(updatedConfigMap, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
|
assert.True(t, configmapController.hasFinalizerFunc(updatedConfigMap, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
|
||||||
assert.True(t, configmapController.hasFinalizerFunc(updatedConfigMap, metav1.FinalizerOrphan))
|
assert.True(t, configmapController.hasFinalizerFunc(updatedConfigMap, metav1.FinalizerOrphanDependents))
|
||||||
|
|
||||||
// Verify that the configmap is created in underlying cluster1.
|
// Verify that the configmap is created in underlying cluster1.
|
||||||
createdConfigMap := GetConfigMapFromChan(cluster1CreateChan)
|
createdConfigMap := GetConfigMapFromChan(cluster1CreateChan)
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ func TestDaemonSetController(t *testing.T) {
|
|||||||
// There should be an update to add both the finalizers.
|
// There should be an update to add both the finalizers.
|
||||||
updatedDaemonSet := GetDaemonSetFromChan(daemonsetUpdateChan)
|
updatedDaemonSet := GetDaemonSetFromChan(daemonsetUpdateChan)
|
||||||
assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
|
assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
|
||||||
assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, metav1.FinalizerOrphan))
|
assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, metav1.FinalizerOrphanDependents))
|
||||||
daemonset1 = *updatedDaemonSet
|
daemonset1 = *updatedDaemonSet
|
||||||
|
|
||||||
createdDaemonSet := GetDaemonSetFromChan(cluster1CreateChan)
|
createdDaemonSet := GetDaemonSetFromChan(cluster1CreateChan)
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ func TestIngressController(t *testing.T) {
|
|||||||
// There should be an update to add both the finalizers.
|
// There should be an update to add both the finalizers.
|
||||||
updatedIngress := GetIngressFromChan(t, fedIngressUpdateChan)
|
updatedIngress := GetIngressFromChan(t, fedIngressUpdateChan)
|
||||||
assert.True(t, ingressController.hasFinalizerFunc(updatedIngress, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
|
assert.True(t, ingressController.hasFinalizerFunc(updatedIngress, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
|
||||||
assert.True(t, ingressController.hasFinalizerFunc(updatedIngress, metav1.FinalizerOrphan), fmt.Sprintf("ingress does not have the orphan finalizer: %v", updatedIngress))
|
assert.True(t, ingressController.hasFinalizerFunc(updatedIngress, metav1.FinalizerOrphanDependents), fmt.Sprintf("ingress does not have the orphan finalizer: %v", updatedIngress))
|
||||||
fedIngress = *updatedIngress
|
fedIngress = *updatedIngress
|
||||||
|
|
||||||
t.Log("Checking that Ingress was correctly created in cluster 1")
|
t.Log("Checking that Ingress was correctly created in cluster 1")
|
||||||
@@ -319,7 +319,7 @@ func WaitForFinalizersInFederationStore(ingressController *IngressController, st
|
|||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
ingress := obj.(*extensionsv1beta1.Ingress)
|
ingress := obj.(*extensionsv1beta1.Ingress)
|
||||||
if ingressController.hasFinalizerFunc(ingress, metav1.FinalizerOrphan) &&
|
if ingressController.hasFinalizerFunc(ingress, metav1.FinalizerOrphanDependents) &&
|
||||||
ingressController.hasFinalizerFunc(ingress, deletionhelper.FinalizerDeleteFromUnderlyingClusters) {
|
ingressController.hasFinalizerFunc(ingress, deletionhelper.FinalizerDeleteFromUnderlyingClusters) {
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ func TestNamespaceController(t *testing.T) {
|
|||||||
// Delete the namespace with orphan finalizer (let namespaces
|
// Delete the namespace with orphan finalizer (let namespaces
|
||||||
// in underlying clusters be as is).
|
// in underlying clusters be as is).
|
||||||
// TODO: Add a test without orphan finalizer.
|
// TODO: Add a test without orphan finalizer.
|
||||||
ns1.ObjectMeta.Finalizers = append(ns1.ObjectMeta.Finalizers, metav1.FinalizerOrphan)
|
ns1.ObjectMeta.Finalizers = append(ns1.ObjectMeta.Finalizers, metav1.FinalizerOrphanDependents)
|
||||||
ns1.DeletionTimestamp = &metav1.Time{Time: time.Now()}
|
ns1.DeletionTimestamp = &metav1.Time{Time: time.Now()}
|
||||||
namespaceWatch.Modify(&ns1)
|
namespaceWatch.Modify(&ns1)
|
||||||
assert.Equal(t, ns1.Name, GetStringFromChan(nsDeleteChan))
|
assert.Equal(t, ns1.Name, GetStringFromChan(nsDeleteChan))
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ func TestSecretController(t *testing.T) {
|
|||||||
// There should be an update to add both the finalizers.
|
// There should be an update to add both the finalizers.
|
||||||
updatedSecret := GetSecretFromChan(secretUpdateChan)
|
updatedSecret := GetSecretFromChan(secretUpdateChan)
|
||||||
assert.True(t, secretController.hasFinalizerFunc(updatedSecret, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
|
assert.True(t, secretController.hasFinalizerFunc(updatedSecret, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
|
||||||
assert.True(t, secretController.hasFinalizerFunc(updatedSecret, metav1.FinalizerOrphan))
|
assert.True(t, secretController.hasFinalizerFunc(updatedSecret, metav1.FinalizerOrphanDependents))
|
||||||
secret1 = *updatedSecret
|
secret1 = *updatedSecret
|
||||||
|
|
||||||
// Verify that the secret is created in underlying cluster1.
|
// Verify that the secret is created in underlying cluster1.
|
||||||
|
|||||||
@@ -93,8 +93,8 @@ func (dh *DeletionHelper) EnsureFinalizers(obj runtime.Object) (
|
|||||||
if !dh.hasFinalizerFunc(obj, FinalizerDeleteFromUnderlyingClusters) {
|
if !dh.hasFinalizerFunc(obj, FinalizerDeleteFromUnderlyingClusters) {
|
||||||
finalizers = append(finalizers, FinalizerDeleteFromUnderlyingClusters)
|
finalizers = append(finalizers, FinalizerDeleteFromUnderlyingClusters)
|
||||||
}
|
}
|
||||||
if !dh.hasFinalizerFunc(obj, metav1.FinalizerOrphan) {
|
if !dh.hasFinalizerFunc(obj, metav1.FinalizerOrphanDependents) {
|
||||||
finalizers = append(finalizers, metav1.FinalizerOrphan)
|
finalizers = append(finalizers, metav1.FinalizerOrphanDependents)
|
||||||
}
|
}
|
||||||
if len(finalizers) != 0 {
|
if len(finalizers) != 0 {
|
||||||
glog.V(2).Infof("Adding finalizers %v to %s", finalizers, dh.objNameFunc(obj))
|
glog.V(2).Infof("Adding finalizers %v to %s", finalizers, dh.objNameFunc(obj))
|
||||||
@@ -117,7 +117,7 @@ func (dh *DeletionHelper) HandleObjectInUnderlyingClusters(obj runtime.Object) (
|
|||||||
glog.V(2).Infof("obj does not have %s finalizer. Nothing to do", FinalizerDeleteFromUnderlyingClusters)
|
glog.V(2).Infof("obj does not have %s finalizer. Nothing to do", FinalizerDeleteFromUnderlyingClusters)
|
||||||
return obj, nil
|
return obj, nil
|
||||||
}
|
}
|
||||||
hasOrphanFinalizer := dh.hasFinalizerFunc(obj, metav1.FinalizerOrphan)
|
hasOrphanFinalizer := dh.hasFinalizerFunc(obj, metav1.FinalizerOrphanDependents)
|
||||||
if hasOrphanFinalizer {
|
if hasOrphanFinalizer {
|
||||||
glog.V(2).Infof("Found finalizer orphan. Nothing to do, just remove the finalizer")
|
glog.V(2).Infof("Found finalizer orphan. Nothing to do, just remove the finalizer")
|
||||||
// If the obj has FinalizerOrphan finalizer, then we need to orphan the
|
// If the obj has FinalizerOrphan finalizer, then we need to orphan the
|
||||||
@@ -127,7 +127,7 @@ func (dh *DeletionHelper) HandleObjectInUnderlyingClusters(obj runtime.Object) (
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return obj, err
|
return obj, err
|
||||||
}
|
}
|
||||||
return dh.removeFinalizerFunc(obj, metav1.FinalizerOrphan)
|
return dh.removeFinalizerFunc(obj, metav1.FinalizerOrphanDependents)
|
||||||
}
|
}
|
||||||
|
|
||||||
glog.V(2).Infof("Deleting obj %s from underlying clusters", objName)
|
glog.V(2).Infof("Deleting obj %s from underlying clusters", objName)
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ func IsServiceIPRequested(service *Service) bool {
|
|||||||
|
|
||||||
var standardFinalizers = sets.NewString(
|
var standardFinalizers = sets.NewString(
|
||||||
string(FinalizerKubernetes),
|
string(FinalizerKubernetes),
|
||||||
metav1.FinalizerOrphan,
|
metav1.FinalizerOrphanDependents,
|
||||||
)
|
)
|
||||||
|
|
||||||
// HasAnnotation returns a bool if passed in annotation exists
|
// HasAnnotation returns a bool if passed in annotation exists
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/google/gofuzz"
|
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
@@ -31,50 +29,6 @@ import (
|
|||||||
|
|
||||||
var _ metav1.Object = &metav1.ObjectMeta{}
|
var _ metav1.Object = &metav1.ObjectMeta{}
|
||||||
|
|
||||||
func getObjectMetaAndOwnerReferences() (objectMeta metav1.ObjectMeta, metaOwnerReferences []metav1.OwnerReference) {
|
|
||||||
fuzz.New().NilChance(.5).NumElements(1, 5).Fuzz(&objectMeta)
|
|
||||||
references := objectMeta.OwnerReferences
|
|
||||||
metaOwnerReferences = make([]metav1.OwnerReference, 0)
|
|
||||||
for i := 0; i < len(references); i++ {
|
|
||||||
metaOwnerReferences = append(metaOwnerReferences, metav1.OwnerReference{
|
|
||||||
Kind: references[i].Kind,
|
|
||||||
Name: references[i].Name,
|
|
||||||
UID: references[i].UID,
|
|
||||||
APIVersion: references[i].APIVersion,
|
|
||||||
Controller: references[i].Controller,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if len(references) == 0 {
|
|
||||||
objectMeta.OwnerReferences = make([]metav1.OwnerReference, 0)
|
|
||||||
}
|
|
||||||
return objectMeta, metaOwnerReferences
|
|
||||||
}
|
|
||||||
|
|
||||||
func testGetOwnerReferences(t *testing.T) {
|
|
||||||
meta, expected := getObjectMetaAndOwnerReferences()
|
|
||||||
refs := meta.GetOwnerReferences()
|
|
||||||
if !reflect.DeepEqual(refs, expected) {
|
|
||||||
t.Errorf("expect %v\n got %v", expected, refs)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func testSetOwnerReferences(t *testing.T) {
|
|
||||||
expected, newRefs := getObjectMetaAndOwnerReferences()
|
|
||||||
objectMeta := &metav1.ObjectMeta{}
|
|
||||||
objectMeta.SetOwnerReferences(newRefs)
|
|
||||||
if !reflect.DeepEqual(expected.OwnerReferences, objectMeta.OwnerReferences) {
|
|
||||||
t.Errorf("expect: %#v\n got: %#v", expected.OwnerReferences, objectMeta.OwnerReferences)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAccessOwnerReferences(t *testing.T) {
|
|
||||||
fuzzIter := 5
|
|
||||||
for i := 0; i < fuzzIter; i++ {
|
|
||||||
testGetOwnerReferences(t)
|
|
||||||
testSetOwnerReferences(t)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAccessorImplementations(t *testing.T) {
|
func TestAccessorImplementations(t *testing.T) {
|
||||||
for _, gv := range api.Registry.EnabledVersions() {
|
for _, gv := range api.Registry.EnabledVersions() {
|
||||||
internalGV := schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}
|
internalGV := schema.GroupVersion{Group: gv.Group, Version: runtime.APIVersionInternal}
|
||||||
|
|||||||
@@ -3000,6 +3000,20 @@ type Preconditions struct {
|
|||||||
UID *types.UID
|
UID *types.UID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeletionPropagation decides whether and how garbage collection will be performed.
|
||||||
|
type DeletionPropagation string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Orphans the dependents.
|
||||||
|
DeletePropagationOrphan DeletionPropagation = "Orphan"
|
||||||
|
// Deletes the object from the key-value store, the garbage collector will delete the dependents in the background.
|
||||||
|
DeletePropagationBackground DeletionPropagation = "Background"
|
||||||
|
// The object exists in the key-value store until the garbage collector deletes all the dependents whose ownerReference.blockOwnerDeletion=true from the key-value store.
|
||||||
|
// API sever will put the "DeletingDependents" finalizer on the object, and sets its deletionTimestamp.
|
||||||
|
// This policy is cascading, i.e., the dependents will be deleted with Foreground.
|
||||||
|
DeletePropagationForeground DeletionPropagation = "Foreground"
|
||||||
|
)
|
||||||
|
|
||||||
// DeleteOptions may be provided when deleting an API object
|
// DeleteOptions may be provided when deleting an API object
|
||||||
// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
|
// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
|
||||||
type DeleteOptions struct {
|
type DeleteOptions struct {
|
||||||
@@ -3016,10 +3030,18 @@ type DeleteOptions struct {
|
|||||||
// +optional
|
// +optional
|
||||||
Preconditions *Preconditions
|
Preconditions *Preconditions
|
||||||
|
|
||||||
|
// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
|
||||||
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
||||||
// finalizer will be added to/removed from the object's finalizers list.
|
// finalizer will be added to/removed from the object's finalizers list.
|
||||||
|
// Either this field or PropagationPolicy may be set, but not both.
|
||||||
// +optional
|
// +optional
|
||||||
OrphanDependents *bool
|
OrphanDependents *bool
|
||||||
|
|
||||||
|
// Whether and how garbage collection will be performed.
|
||||||
|
// Defaults to Default.
|
||||||
|
// Either this field or OrphanDependents may be set, but not both.
|
||||||
|
// +optional
|
||||||
|
PropagationPolicy *DeletionPropagation
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListOptions is the query options to a standard REST list call, and has future support for
|
// ListOptions is the query options to a standard REST list call, and has future support for
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -680,10 +680,18 @@ message DeleteOptions {
|
|||||||
// +optional
|
// +optional
|
||||||
optional Preconditions preconditions = 2;
|
optional Preconditions preconditions = 2;
|
||||||
|
|
||||||
|
// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
|
||||||
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
||||||
// finalizer will be added to/removed from the object's finalizers list.
|
// finalizer will be added to/removed from the object's finalizers list.
|
||||||
|
// Either this field or PropagationPolicy may be set, but not both.
|
||||||
// +optional
|
// +optional
|
||||||
optional bool orphanDependents = 3;
|
optional bool orphanDependents = 3;
|
||||||
|
|
||||||
|
// Whether and how garbage collection will be performed.
|
||||||
|
// Defaults to Default.
|
||||||
|
// Either this field or OrphanDependents may be set, but not both.
|
||||||
|
// +optional
|
||||||
|
optional string propagationPolicy = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Represents downward API info for projecting into a projected volume.
|
// Represents downward API info for projecting into a projected volume.
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ func IsServiceIPRequested(service *Service) bool {
|
|||||||
|
|
||||||
var standardFinalizers = sets.NewString(
|
var standardFinalizers = sets.NewString(
|
||||||
string(FinalizerKubernetes),
|
string(FinalizerKubernetes),
|
||||||
metav1.FinalizerOrphan,
|
metav1.FinalizerOrphanDependents,
|
||||||
)
|
)
|
||||||
|
|
||||||
func IsStandardFinalizerName(str string) bool {
|
func IsStandardFinalizerName(str string) bool {
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ func (meta *ObjectMeta) GetOwnerReferences() []metav1.OwnerReference {
|
|||||||
value := *meta.OwnerReferences[i].Controller
|
value := *meta.OwnerReferences[i].Controller
|
||||||
ret[i].Controller = &value
|
ret[i].Controller = &value
|
||||||
}
|
}
|
||||||
|
if meta.OwnerReferences[i].BlockOwnerDeletion != nil {
|
||||||
|
value := *meta.OwnerReferences[i].BlockOwnerDeletion
|
||||||
|
ret[i].BlockOwnerDeletion = &value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
@@ -78,6 +82,10 @@ func (meta *ObjectMeta) SetOwnerReferences(references []metav1.OwnerReference) {
|
|||||||
value := *references[i].Controller
|
value := *references[i].Controller
|
||||||
newReferences[i].Controller = &value
|
newReferences[i].Controller = &value
|
||||||
}
|
}
|
||||||
|
if references[i].BlockOwnerDeletion != nil {
|
||||||
|
value := *references[i].BlockOwnerDeletion
|
||||||
|
newReferences[i].BlockOwnerDeletion = &value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
meta.OwnerReferences = newReferences
|
meta.OwnerReferences = newReferences
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51338,6 +51338,32 @@ func (x *Preconditions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x DeletionPropagation) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||||
|
var h codecSelfer1234
|
||||||
|
z, r := codec1978.GenHelperEncoder(e)
|
||||||
|
_, _, _ = h, z, r
|
||||||
|
yym1 := z.EncBinary()
|
||||||
|
_ = yym1
|
||||||
|
if false {
|
||||||
|
} else if z.HasExtensions() && z.EncExt(x) {
|
||||||
|
} else {
|
||||||
|
r.EncodeString(codecSelferC_UTF81234, string(x))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DeletionPropagation) CodecDecodeSelf(d *codec1978.Decoder) {
|
||||||
|
var h codecSelfer1234
|
||||||
|
z, r := codec1978.GenHelperDecoder(d)
|
||||||
|
_, _, _ = h, z, r
|
||||||
|
yym1 := z.DecBinary()
|
||||||
|
_ = yym1
|
||||||
|
if false {
|
||||||
|
} else if z.HasExtensions() && z.DecExt(x) {
|
||||||
|
} else {
|
||||||
|
*((*string)(x)) = r.DecodeString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||||
var h codecSelfer1234
|
var h codecSelfer1234
|
||||||
z, r := codec1978.GenHelperEncoder(e)
|
z, r := codec1978.GenHelperEncoder(e)
|
||||||
@@ -51352,7 +51378,7 @@ func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
|||||||
} else {
|
} else {
|
||||||
yysep2 := !z.EncBinary()
|
yysep2 := !z.EncBinary()
|
||||||
yy2arr2 := z.EncBasicHandle().StructToArray
|
yy2arr2 := z.EncBasicHandle().StructToArray
|
||||||
var yyq2 [5]bool
|
var yyq2 [6]bool
|
||||||
_, _, _ = yysep2, yyq2, yy2arr2
|
_, _, _ = yysep2, yyq2, yy2arr2
|
||||||
const yyr2 bool = false
|
const yyr2 bool = false
|
||||||
yyq2[0] = x.Kind != ""
|
yyq2[0] = x.Kind != ""
|
||||||
@@ -51362,9 +51388,9 @@ func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
|||||||
yyq2[4] = x.OrphanDependents != nil
|
yyq2[4] = x.OrphanDependents != nil
|
||||||
var yynn2 int
|
var yynn2 int
|
||||||
if yyr2 || yy2arr2 {
|
if yyr2 || yy2arr2 {
|
||||||
r.EncodeArrayStart(5)
|
r.EncodeArrayStart(6)
|
||||||
} else {
|
} else {
|
||||||
yynn2 = 0
|
yynn2 = 1
|
||||||
for _, b := range yyq2 {
|
for _, b := range yyq2 {
|
||||||
if b {
|
if b {
|
||||||
yynn2++
|
yynn2++
|
||||||
@@ -51516,6 +51542,25 @@ func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if yyr2 || yy2arr2 {
|
||||||
|
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||||
|
if x.PropagationPolicy == nil {
|
||||||
|
r.EncodeNil()
|
||||||
|
} else {
|
||||||
|
yy23 := *x.PropagationPolicy
|
||||||
|
yy23.CodecEncodeSelf(e)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||||
|
r.EncodeString(codecSelferC_UTF81234, string("PropagationPolicy"))
|
||||||
|
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||||
|
if x.PropagationPolicy == nil {
|
||||||
|
r.EncodeNil()
|
||||||
|
} else {
|
||||||
|
yy25 := *x.PropagationPolicy
|
||||||
|
yy25.CodecEncodeSelf(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
if yyr2 || yy2arr2 {
|
if yyr2 || yy2arr2 {
|
||||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
} else {
|
} else {
|
||||||
@@ -51644,6 +51689,17 @@ func (x *DeleteOptions) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
|||||||
*((*bool)(x.OrphanDependents)) = r.DecodeBool()
|
*((*bool)(x.OrphanDependents)) = r.DecodeBool()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
case "PropagationPolicy":
|
||||||
|
if r.TryDecodeAsNil() {
|
||||||
|
if x.PropagationPolicy != nil {
|
||||||
|
x.PropagationPolicy = nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if x.PropagationPolicy == nil {
|
||||||
|
x.PropagationPolicy = new(DeletionPropagation)
|
||||||
|
}
|
||||||
|
x.PropagationPolicy.CodecDecodeSelf(d)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
z.DecStructFieldNotFound(-1, yys3)
|
z.DecStructFieldNotFound(-1, yys3)
|
||||||
} // end switch yys3
|
} // end switch yys3
|
||||||
@@ -51655,16 +51711,16 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
var h codecSelfer1234
|
var h codecSelfer1234
|
||||||
z, r := codec1978.GenHelperDecoder(d)
|
z, r := codec1978.GenHelperDecoder(d)
|
||||||
_, _, _ = h, z, r
|
_, _, _ = h, z, r
|
||||||
var yyj13 int
|
var yyj14 int
|
||||||
var yyb13 bool
|
var yyb14 bool
|
||||||
var yyhl13 bool = l >= 0
|
var yyhl14 bool = l >= 0
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51672,21 +51728,21 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
if r.TryDecodeAsNil() {
|
if r.TryDecodeAsNil() {
|
||||||
x.Kind = ""
|
x.Kind = ""
|
||||||
} else {
|
} else {
|
||||||
yyv14 := &x.Kind
|
yyv15 := &x.Kind
|
||||||
yym15 := z.DecBinary()
|
yym16 := z.DecBinary()
|
||||||
_ = yym15
|
_ = yym16
|
||||||
if false {
|
if false {
|
||||||
} else {
|
} else {
|
||||||
*((*string)(yyv14)) = r.DecodeString()
|
*((*string)(yyv15)) = r.DecodeString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51694,21 +51750,21 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
if r.TryDecodeAsNil() {
|
if r.TryDecodeAsNil() {
|
||||||
x.APIVersion = ""
|
x.APIVersion = ""
|
||||||
} else {
|
} else {
|
||||||
yyv16 := &x.APIVersion
|
yyv17 := &x.APIVersion
|
||||||
yym17 := z.DecBinary()
|
yym18 := z.DecBinary()
|
||||||
_ = yym17
|
_ = yym18
|
||||||
if false {
|
if false {
|
||||||
} else {
|
} else {
|
||||||
*((*string)(yyv16)) = r.DecodeString()
|
*((*string)(yyv17)) = r.DecodeString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51721,20 +51777,20 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
if x.GracePeriodSeconds == nil {
|
if x.GracePeriodSeconds == nil {
|
||||||
x.GracePeriodSeconds = new(int64)
|
x.GracePeriodSeconds = new(int64)
|
||||||
}
|
}
|
||||||
yym19 := z.DecBinary()
|
yym20 := z.DecBinary()
|
||||||
_ = yym19
|
_ = yym20
|
||||||
if false {
|
if false {
|
||||||
} else {
|
} else {
|
||||||
*((*int64)(x.GracePeriodSeconds)) = int64(r.DecodeInt(64))
|
*((*int64)(x.GracePeriodSeconds)) = int64(r.DecodeInt(64))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51749,13 +51805,13 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
}
|
}
|
||||||
x.Preconditions.CodecDecodeSelf(d)
|
x.Preconditions.CodecDecodeSelf(d)
|
||||||
}
|
}
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51768,25 +51824,46 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
if x.OrphanDependents == nil {
|
if x.OrphanDependents == nil {
|
||||||
x.OrphanDependents = new(bool)
|
x.OrphanDependents = new(bool)
|
||||||
}
|
}
|
||||||
yym22 := z.DecBinary()
|
yym23 := z.DecBinary()
|
||||||
_ = yym22
|
_ = yym23
|
||||||
if false {
|
if false {
|
||||||
} else {
|
} else {
|
||||||
*((*bool)(x.OrphanDependents)) = r.DecodeBool()
|
*((*bool)(x.OrphanDependents)) = r.DecodeBool()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for {
|
yyj14++
|
||||||
yyj13++
|
if yyhl14 {
|
||||||
if yyhl13 {
|
yyb14 = yyj14 > l
|
||||||
yyb13 = yyj13 > l
|
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||||
|
if r.TryDecodeAsNil() {
|
||||||
|
if x.PropagationPolicy != nil {
|
||||||
|
x.PropagationPolicy = nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if x.PropagationPolicy == nil {
|
||||||
|
x.PropagationPolicy = new(DeletionPropagation)
|
||||||
|
}
|
||||||
|
x.PropagationPolicy.CodecDecodeSelf(d)
|
||||||
|
}
|
||||||
|
for {
|
||||||
|
yyj14++
|
||||||
|
if yyhl14 {
|
||||||
|
yyb14 = yyj14 > l
|
||||||
|
} else {
|
||||||
|
yyb14 = r.CheckBreak()
|
||||||
|
}
|
||||||
|
if yyb14 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||||
z.DecStructFieldNotFound(yyj13-1, "")
|
z.DecStructFieldNotFound(yyj14-1, "")
|
||||||
}
|
}
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
}
|
}
|
||||||
@@ -65736,7 +65813,7 @@ func (x codecSelfer1234) decSlicev1_OwnerReference(v *[]pkg2_v1.OwnerReference,
|
|||||||
|
|
||||||
yyrg1 := len(yyv1) > 0
|
yyrg1 := len(yyv1) > 0
|
||||||
yyv21 := yyv1
|
yyv21 := yyv1
|
||||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 72)
|
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 80)
|
||||||
if yyrt1 {
|
if yyrt1 {
|
||||||
if yyrl1 <= cap(yyv1) {
|
if yyrl1 <= cap(yyv1) {
|
||||||
yyv1 = yyv1[:yyrl1]
|
yyv1 = yyv1[:yyrl1]
|
||||||
|
|||||||
@@ -3432,6 +3432,20 @@ type Preconditions struct {
|
|||||||
UID *types.UID `json:"uid,omitempty" protobuf:"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"`
|
UID *types.UID `json:"uid,omitempty" protobuf:"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeletionPropagation decides if a deletion will propagate to the dependents of the object, and how the garbage collector will handle the propagation.
|
||||||
|
type DeletionPropagation string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Orphans the dependents.
|
||||||
|
DeletePropagationOrphan DeletionPropagation = "Orphan"
|
||||||
|
// Deletes the object from the key-value store, the garbage collector will delete the dependents in the background.
|
||||||
|
DeletePropagationBackground DeletionPropagation = "Background"
|
||||||
|
// The object exists in the key-value store until the garbage collector deletes all the dependents whose ownerReference.blockOwnerDeletion=true from the key-value store.
|
||||||
|
// API sever will put the "DeletingDependents" finalizer on the object, and sets its deletionTimestamp.
|
||||||
|
// This policy is cascading, i.e., the dependents will be deleted with Foreground.
|
||||||
|
DeletePropagationForeground DeletionPropagation = "Foreground"
|
||||||
|
)
|
||||||
|
|
||||||
// DeleteOptions may be provided when deleting an API object
|
// DeleteOptions may be provided when deleting an API object
|
||||||
// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
|
// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
|
||||||
// +k8s:openapi-gen=false
|
// +k8s:openapi-gen=false
|
||||||
@@ -3450,10 +3464,18 @@ type DeleteOptions struct {
|
|||||||
// +optional
|
// +optional
|
||||||
Preconditions *Preconditions `json:"preconditions,omitempty" protobuf:"bytes,2,opt,name=preconditions"`
|
Preconditions *Preconditions `json:"preconditions,omitempty" protobuf:"bytes,2,opt,name=preconditions"`
|
||||||
|
|
||||||
|
// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
|
||||||
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
||||||
// finalizer will be added to/removed from the object's finalizers list.
|
// finalizer will be added to/removed from the object's finalizers list.
|
||||||
|
// Either this field or PropagationPolicy may be set, but not both.
|
||||||
// +optional
|
// +optional
|
||||||
OrphanDependents *bool `json:"orphanDependents,omitempty" protobuf:"varint,3,opt,name=orphanDependents"`
|
OrphanDependents *bool `json:"orphanDependents,omitempty" protobuf:"varint,3,opt,name=orphanDependents"`
|
||||||
|
|
||||||
|
// Whether and how garbage collection will be performed.
|
||||||
|
// Defaults to Default.
|
||||||
|
// Either this field or OrphanDependents may be set, but not both.
|
||||||
|
// +optional
|
||||||
|
PropagationPolicy *DeletionPropagation
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListOptions is the query options to a standard REST list call.
|
// ListOptions is the query options to a standard REST list call.
|
||||||
|
|||||||
@@ -355,7 +355,8 @@ var map_DeleteOptions = map[string]string{
|
|||||||
"": "DeleteOptions may be provided when deleting an API object DEPRECATED: This type has been moved to meta/v1 and will be removed soon.",
|
"": "DeleteOptions may be provided when deleting an API object DEPRECATED: This type has been moved to meta/v1 and will be removed soon.",
|
||||||
"gracePeriodSeconds": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.",
|
"gracePeriodSeconds": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.",
|
||||||
"preconditions": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
|
"preconditions": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
|
||||||
"orphanDependents": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"orphanDependents": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"PropagationPolicy": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (DeleteOptions) SwaggerDoc() map[string]string {
|
func (DeleteOptions) SwaggerDoc() map[string]string {
|
||||||
|
|||||||
@@ -1064,6 +1064,7 @@ func autoConvert_v1_DeleteOptions_To_api_DeleteOptions(in *DeleteOptions, out *a
|
|||||||
out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds))
|
out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds))
|
||||||
out.Preconditions = (*api.Preconditions)(unsafe.Pointer(in.Preconditions))
|
out.Preconditions = (*api.Preconditions)(unsafe.Pointer(in.Preconditions))
|
||||||
out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents))
|
out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents))
|
||||||
|
out.PropagationPolicy = (*api.DeletionPropagation)(unsafe.Pointer(in.PropagationPolicy))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1075,6 +1076,7 @@ func autoConvert_api_DeleteOptions_To_v1_DeleteOptions(in *api.DeleteOptions, ou
|
|||||||
out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds))
|
out.GracePeriodSeconds = (*int64)(unsafe.Pointer(in.GracePeriodSeconds))
|
||||||
out.Preconditions = (*Preconditions)(unsafe.Pointer(in.Preconditions))
|
out.Preconditions = (*Preconditions)(unsafe.Pointer(in.Preconditions))
|
||||||
out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents))
|
out.OrphanDependents = (*bool)(unsafe.Pointer(in.OrphanDependents))
|
||||||
|
out.PropagationPolicy = (*DeletionPropagation)(unsafe.Pointer(in.PropagationPolicy))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -734,6 +734,11 @@ func DeepCopy_v1_DeleteOptions(in interface{}, out interface{}, c *conversion.Cl
|
|||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.PropagationPolicy != nil {
|
||||||
|
in, out := &in.PropagationPolicy, &out.PropagationPolicy
|
||||||
|
*out = new(DeletionPropagation)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -295,7 +295,6 @@ func ValidateObjectMeta(meta *metav1.ObjectMeta, requiresNamespace bool, nameFn
|
|||||||
for i := range meta.Finalizers {
|
for i := range meta.Finalizers {
|
||||||
allErrs = append(allErrs, validateKubeFinalizerName(string(meta.Finalizers[i]), fldPath.Child("finalizers").Index(i))...)
|
allErrs = append(allErrs, validateKubeFinalizerName(string(meta.Finalizers[i]), fldPath.Child("finalizers").Index(i))...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return allErrs
|
return allErrs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -762,6 +762,11 @@ func DeepCopy_api_DeleteOptions(in interface{}, out interface{}, c *conversion.C
|
|||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.PropagationPolicy != nil {
|
||||||
|
in, out := &in.PropagationPolicy, &out.PropagationPolicy
|
||||||
|
*out = new(DeletionPropagation)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -335,7 +335,7 @@ type MyAPIObject2 struct {
|
|||||||
metav1.ObjectMeta
|
metav1.ObjectMeta
|
||||||
}
|
}
|
||||||
|
|
||||||
func getObjectMetaAndOwnerRefereneces() (myAPIObject2 MyAPIObject2, metaOwnerReferences []metav1.OwnerReference) {
|
func getObjectMetaAndOwnerReferences() (myAPIObject2 MyAPIObject2, metaOwnerReferences []metav1.OwnerReference) {
|
||||||
fuzz.New().NilChance(.5).NumElements(1, 5).Fuzz(&myAPIObject2)
|
fuzz.New().NilChance(.5).NumElements(1, 5).Fuzz(&myAPIObject2)
|
||||||
references := myAPIObject2.ObjectMeta.OwnerReferences
|
references := myAPIObject2.ObjectMeta.OwnerReferences
|
||||||
// This is necessary for the test to pass because the getter will return a
|
// This is necessary for the test to pass because the getter will return a
|
||||||
@@ -348,6 +348,7 @@ func getObjectMetaAndOwnerRefereneces() (myAPIObject2 MyAPIObject2, metaOwnerRef
|
|||||||
UID: references[i].UID,
|
UID: references[i].UID,
|
||||||
APIVersion: references[i].APIVersion,
|
APIVersion: references[i].APIVersion,
|
||||||
Controller: references[i].Controller,
|
Controller: references[i].Controller,
|
||||||
|
BlockOwnerDeletion: references[i].BlockOwnerDeletion,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if len(references) == 0 {
|
if len(references) == 0 {
|
||||||
@@ -359,7 +360,7 @@ func getObjectMetaAndOwnerRefereneces() (myAPIObject2 MyAPIObject2, metaOwnerRef
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testGetOwnerReferences(t *testing.T) {
|
func testGetOwnerReferences(t *testing.T) {
|
||||||
obj, expected := getObjectMetaAndOwnerRefereneces()
|
obj, expected := getObjectMetaAndOwnerReferences()
|
||||||
accessor, err := meta.Accessor(&obj)
|
accessor, err := meta.Accessor(&obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
@@ -371,7 +372,7 @@ func testGetOwnerReferences(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testSetOwnerReferences(t *testing.T) {
|
func testSetOwnerReferences(t *testing.T) {
|
||||||
expected, references := getObjectMetaAndOwnerRefereneces()
|
expected, references := getObjectMetaAndOwnerReferences()
|
||||||
obj := MyAPIObject2{}
|
obj := MyAPIObject2{}
|
||||||
accessor, err := meta.Accessor(&obj)
|
accessor, err := meta.Accessor(&obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -123,6 +123,7 @@ func TestDecode(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUnstructuredGetters(t *testing.T) {
|
func TestUnstructuredGetters(t *testing.T) {
|
||||||
|
trueVar := true
|
||||||
unstruct := unstructured.Unstructured{
|
unstruct := unstructured.Unstructured{
|
||||||
Object: map[string]interface{}{
|
Object: map[string]interface{}{
|
||||||
"kind": "test_kind",
|
"kind": "test_kind",
|
||||||
@@ -154,6 +155,10 @@ func TestUnstructuredGetters(t *testing.T) {
|
|||||||
"name": "podb",
|
"name": "podb",
|
||||||
"apiVersion": "v1",
|
"apiVersion": "v1",
|
||||||
"uid": "2",
|
"uid": "2",
|
||||||
|
// though these fields are of type *bool, but when
|
||||||
|
// decoded from JSON, they are unmarshalled as bool.
|
||||||
|
"controller": true,
|
||||||
|
"blockOwnerDeletion": true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"finalizers": []interface{}{
|
"finalizers": []interface{}{
|
||||||
@@ -225,6 +230,8 @@ func TestUnstructuredGetters(t *testing.T) {
|
|||||||
Name: "podb",
|
Name: "podb",
|
||||||
APIVersion: "v1",
|
APIVersion: "v1",
|
||||||
UID: "2",
|
UID: "2",
|
||||||
|
Controller: &trueVar,
|
||||||
|
BlockOwnerDeletion: &trueVar,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
if got, want := refs, expectedOwnerReferences; !reflect.DeepEqual(got, want) {
|
if got, want := refs, expectedOwnerReferences; !reflect.DeepEqual(got, want) {
|
||||||
@@ -268,6 +275,7 @@ func TestUnstructuredSetters(t *testing.T) {
|
|||||||
"apiVersion": "v1",
|
"apiVersion": "v1",
|
||||||
"uid": "1",
|
"uid": "1",
|
||||||
"controller": (*bool)(nil),
|
"controller": (*bool)(nil),
|
||||||
|
"blockOwnerDeletion": (*bool)(nil),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"kind": "Pod",
|
"kind": "Pod",
|
||||||
@@ -275,6 +283,7 @@ func TestUnstructuredSetters(t *testing.T) {
|
|||||||
"apiVersion": "v1",
|
"apiVersion": "v1",
|
||||||
"uid": "2",
|
"uid": "2",
|
||||||
"controller": &trueVar,
|
"controller": &trueVar,
|
||||||
|
"blockOwnerDeletion": &trueVar,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"finalizers": []interface{}{
|
"finalizers": []interface{}{
|
||||||
@@ -312,6 +321,7 @@ func TestUnstructuredSetters(t *testing.T) {
|
|||||||
APIVersion: "v1",
|
APIVersion: "v1",
|
||||||
UID: "2",
|
UID: "2",
|
||||||
Controller: &trueVar,
|
Controller: &trueVar,
|
||||||
|
BlockOwnerDeletion: &trueVar,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
unstruct.SetOwnerReferences(newOwnerReferences)
|
unstruct.SetOwnerReferences(newOwnerReferences)
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ func (m *PodControllerRefManager) AdoptPod(pod *v1.Pod) error {
|
|||||||
// Note that ValidateOwnerReferences() will reject this patch if another
|
// Note that ValidateOwnerReferences() will reject this patch if another
|
||||||
// OwnerReference exists with controller=true.
|
// OwnerReference exists with controller=true.
|
||||||
addControllerPatch := fmt.Sprintf(
|
addControllerPatch := fmt.Sprintf(
|
||||||
`{"metadata":{"ownerReferences":[{"apiVersion":"%s","kind":"%s","name":"%s","uid":"%s","controller":true}],"uid":"%s"}}`,
|
`{"metadata":{"ownerReferences":[{"apiVersion":"%s","kind":"%s","name":"%s","uid":"%s","controller":true,"blockOwnerDeletion":true}],"uid":"%s"}}`,
|
||||||
m.controllerKind.GroupVersion(), m.controllerKind.Kind,
|
m.controllerKind.GroupVersion(), m.controllerKind.Kind,
|
||||||
m.controller.GetName(), m.controller.GetUID(), pod.UID)
|
m.controller.GetName(), m.controller.GetUID(), pod.UID)
|
||||||
return m.podControl.PatchPod(pod.Namespace, pod.Name, []byte(addControllerPatch))
|
return m.podControl.PatchPod(pod.Namespace, pod.Name, []byte(addControllerPatch))
|
||||||
|
|||||||
@@ -483,6 +483,9 @@ func (r RealPodControl) CreatePodsWithControllerRef(namespace string, template *
|
|||||||
if controllerRef.Controller == nil || *controllerRef.Controller != true {
|
if controllerRef.Controller == nil || *controllerRef.Controller != true {
|
||||||
return fmt.Errorf("controllerRef.Controller is not set")
|
return fmt.Errorf("controllerRef.Controller is not set")
|
||||||
}
|
}
|
||||||
|
if controllerRef.BlockOwnerDeletion == nil || *controllerRef.BlockOwnerDeletion != true {
|
||||||
|
return fmt.Errorf("controllerRef.BlockOwnerDeletion is not set")
|
||||||
|
}
|
||||||
return r.createPods("", namespace, template, controllerObject, controllerRef)
|
return r.createPods("", namespace, template, controllerObject, controllerRef)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,14 +12,20 @@ go_library(
|
|||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = [
|
srcs = [
|
||||||
"garbagecollector.go",
|
"garbagecollector.go",
|
||||||
|
"graph.go",
|
||||||
|
"graph_builder.go",
|
||||||
"metrics.go",
|
"metrics.go",
|
||||||
|
"operations.go",
|
||||||
|
"patch.go",
|
||||||
"rate_limiter_helper.go",
|
"rate_limiter_helper.go",
|
||||||
"uid_cache.go",
|
"uid_cache.go",
|
||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/client/retry:go_default_library",
|
||||||
"//pkg/controller/garbagecollector/metaonly:go_default_library",
|
"//pkg/controller/garbagecollector/metaonly:go_default_library",
|
||||||
"//pkg/util/metrics:go_default_library",
|
"//pkg/util/metrics:go_default_library",
|
||||||
|
"//pkg/util/workqueue/prometheus:go_default_library",
|
||||||
"//vendor:github.com/golang/glog",
|
"//vendor:github.com/golang/glog",
|
||||||
"//vendor:github.com/golang/groupcache/lru",
|
"//vendor:github.com/golang/groupcache/lru",
|
||||||
"//vendor:github.com/prometheus/client_golang/prometheus",
|
"//vendor:github.com/prometheus/client_golang/prometheus",
|
||||||
@@ -54,15 +60,16 @@ go_test(
|
|||||||
"//pkg/api/v1:go_default_library",
|
"//pkg/api/v1:go_default_library",
|
||||||
"//pkg/controller/garbagecollector/metaonly:go_default_library",
|
"//pkg/controller/garbagecollector/metaonly:go_default_library",
|
||||||
"//vendor:github.com/stretchr/testify/assert",
|
"//vendor:github.com/stretchr/testify/assert",
|
||||||
|
"//vendor:k8s.io/apimachinery/pkg/api/meta",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
|
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/runtime/schema",
|
"//vendor:k8s.io/apimachinery/pkg/runtime/schema",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/runtime/serializer",
|
"//vendor:k8s.io/apimachinery/pkg/runtime/serializer",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/types",
|
"//vendor:k8s.io/apimachinery/pkg/types",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/util/json",
|
"//vendor:k8s.io/apimachinery/pkg/util/json",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
||||||
|
"//vendor:k8s.io/apimachinery/pkg/util/strategicpatch",
|
||||||
"//vendor:k8s.io/client-go/dynamic",
|
"//vendor:k8s.io/client-go/dynamic",
|
||||||
"//vendor:k8s.io/client-go/rest",
|
"//vendor:k8s.io/client-go/rest",
|
||||||
"//vendor:k8s.io/client-go/util/clock",
|
|
||||||
"//vendor:k8s.io/client-go/util/workqueue",
|
"//vendor:k8s.io/client-go/util/workqueue",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -19,6 +19,7 @@ package garbagecollector
|
|||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -27,15 +28,16 @@ import (
|
|||||||
|
|
||||||
_ "k8s.io/kubernetes/pkg/api/install"
|
_ "k8s.io/kubernetes/pkg/api/install"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/runtime/serializer"
|
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/json"
|
"k8s.io/apimachinery/pkg/util/json"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
|
"k8s.io/apimachinery/pkg/util/strategicpatch"
|
||||||
"k8s.io/client-go/dynamic"
|
"k8s.io/client-go/dynamic"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/util/clock"
|
|
||||||
"k8s.io/client-go/util/workqueue"
|
"k8s.io/client-go/util/workqueue"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/v1"
|
"k8s.io/kubernetes/pkg/api/v1"
|
||||||
@@ -53,7 +55,7 @@ func TestNewGarbageCollector(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
assert.Equal(t, 1, len(gc.monitors))
|
assert.Equal(t, 1, len(gc.dependencyGraphBuilder.monitors))
|
||||||
}
|
}
|
||||||
|
|
||||||
// fakeAction records information about requests to aid in testing.
|
// fakeAction records information about requests to aid in testing.
|
||||||
@@ -142,8 +144,8 @@ func serilizeOrDie(t *testing.T, object interface{}) []byte {
|
|||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
// test the processItem function making the expected actions.
|
// test the attemptToDeleteItem function making the expected actions.
|
||||||
func TestProcessItem(t *testing.T) {
|
func TestAttemptToDeleteItem(t *testing.T) {
|
||||||
pod := getPod("ToBeDeletedPod", []metav1.OwnerReference{
|
pod := getPod("ToBeDeletedPod", []metav1.OwnerReference{
|
||||||
{
|
{
|
||||||
Kind: "ReplicationController",
|
Kind: "ReplicationController",
|
||||||
@@ -177,10 +179,10 @@ func TestProcessItem(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Namespace: pod.Namespace,
|
Namespace: pod.Namespace,
|
||||||
},
|
},
|
||||||
// owners are intentionally left empty. The processItem routine should get the latest item from the server.
|
// owners are intentionally left empty. The attemptToDeleteItem routine should get the latest item from the server.
|
||||||
owners: nil,
|
owners: nil,
|
||||||
}
|
}
|
||||||
err := gc.processItem(item)
|
err := gc.attemptToDeleteItem(item)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Unexpected Error: %v", err)
|
t.Errorf("Unexpected Error: %v", err)
|
||||||
}
|
}
|
||||||
@@ -249,7 +251,7 @@ func TestProcessEvent(t *testing.T) {
|
|||||||
var testScenarios = []struct {
|
var testScenarios = []struct {
|
||||||
name string
|
name string
|
||||||
// a series of events that will be supplied to the
|
// a series of events that will be supplied to the
|
||||||
// Propagator.eventQueue.
|
// GraphBuilder.eventQueue.
|
||||||
events []event
|
events []event
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
@@ -293,22 +295,19 @@ func TestProcessEvent(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, scenario := range testScenarios {
|
for _, scenario := range testScenarios {
|
||||||
propagator := &Propagator{
|
dependencyGraphBuilder := &GraphBuilder{
|
||||||
eventQueue: workqueue.NewTimedWorkQueue(),
|
graphChanges: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()),
|
||||||
uidToNode: &concurrentUIDToNode{
|
uidToNode: &concurrentUIDToNode{
|
||||||
RWMutex: &sync.RWMutex{},
|
uidToNodeLock: sync.RWMutex{},
|
||||||
uidToNode: make(map[types.UID]*node),
|
uidToNode: make(map[types.UID]*node),
|
||||||
},
|
},
|
||||||
gc: &GarbageCollector{
|
attemptToDelete: workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter()),
|
||||||
dirtyQueue: workqueue.NewTimedWorkQueue(),
|
|
||||||
clock: clock.RealClock{},
|
|
||||||
absentOwnerCache: NewUIDCache(2),
|
absentOwnerCache: NewUIDCache(2),
|
||||||
},
|
|
||||||
}
|
}
|
||||||
for i := 0; i < len(scenario.events); i++ {
|
for i := 0; i < len(scenario.events); i++ {
|
||||||
propagator.eventQueue.Add(&workqueue.TimedWorkQueueItem{StartTime: propagator.gc.clock.Now(), Object: &scenario.events[i]})
|
dependencyGraphBuilder.graphChanges.Add(&scenario.events[i])
|
||||||
propagator.processEvent()
|
dependencyGraphBuilder.processGraphChanges()
|
||||||
verifyGraphInvariants(scenario.name, propagator.uidToNode.uidToNode, t)
|
verifyGraphInvariants(scenario.name, dependencyGraphBuilder.uidToNode.uidToNode, t)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -321,18 +320,18 @@ func TestDependentsRace(t *testing.T) {
|
|||||||
const updates = 100
|
const updates = 100
|
||||||
owner := &node{dependents: make(map[*node]struct{})}
|
owner := &node{dependents: make(map[*node]struct{})}
|
||||||
ownerUID := types.UID("owner")
|
ownerUID := types.UID("owner")
|
||||||
gc.propagator.uidToNode.Write(owner)
|
gc.dependencyGraphBuilder.uidToNode.Write(owner)
|
||||||
go func() {
|
go func() {
|
||||||
for i := 0; i < updates; i++ {
|
for i := 0; i < updates; i++ {
|
||||||
dependent := &node{}
|
dependent := &node{}
|
||||||
gc.propagator.addDependentToOwners(dependent, []metav1.OwnerReference{{UID: ownerUID}})
|
gc.dependencyGraphBuilder.addDependentToOwners(dependent, []metav1.OwnerReference{{UID: ownerUID}})
|
||||||
gc.propagator.removeDependentFromOwners(dependent, []metav1.OwnerReference{{UID: ownerUID}})
|
gc.dependencyGraphBuilder.removeDependentFromOwners(dependent, []metav1.OwnerReference{{UID: ownerUID}})
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
go func() {
|
go func() {
|
||||||
gc.orphanQueue.Add(&workqueue.TimedWorkQueueItem{StartTime: gc.clock.Now(), Object: owner})
|
gc.attemptToOrphan.Add(owner)
|
||||||
for i := 0; i < updates; i++ {
|
for i := 0; i < updates; i++ {
|
||||||
gc.orphanFinalizer()
|
gc.attemptToOrphanWorker()
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
@@ -348,9 +347,13 @@ func TestGCListWatcher(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
lw := gcListWatcher(client, podResource)
|
lw := listWatcher(client, podResource)
|
||||||
lw.Watch(metav1.ListOptions{ResourceVersion: "1"})
|
if _, err := lw.Watch(metav1.ListOptions{ResourceVersion: "1"}); err != nil {
|
||||||
lw.List(metav1.ListOptions{ResourceVersion: "1"})
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if _, err := lw.List(metav1.ListOptions{ResourceVersion: "1"}); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
if e, a := 2, len(testHandler.actions); e != a {
|
if e, a := 2, len(testHandler.actions); e != a {
|
||||||
t.Errorf("expect %d requests, got %d", e, a)
|
t.Errorf("expect %d requests, got %d", e, a)
|
||||||
}
|
}
|
||||||
@@ -373,7 +376,7 @@ func podToGCNode(pod *v1.Pod) *node {
|
|||||||
},
|
},
|
||||||
Namespace: pod.Namespace,
|
Namespace: pod.Namespace,
|
||||||
},
|
},
|
||||||
// owners are intentionally left empty. The processItem routine should get the latest item from the server.
|
// owners are intentionally left empty. The attemptToDeleteItem routine should get the latest item from the server.
|
||||||
owners: nil,
|
owners: nil,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -447,12 +450,12 @@ func TestAbsentUIDCache(t *testing.T) {
|
|||||||
defer srv.Close()
|
defer srv.Close()
|
||||||
gc := setupGC(t, clientConfig)
|
gc := setupGC(t, clientConfig)
|
||||||
gc.absentOwnerCache = NewUIDCache(2)
|
gc.absentOwnerCache = NewUIDCache(2)
|
||||||
gc.processItem(podToGCNode(rc1Pod1))
|
gc.attemptToDeleteItem(podToGCNode(rc1Pod1))
|
||||||
gc.processItem(podToGCNode(rc2Pod1))
|
gc.attemptToDeleteItem(podToGCNode(rc2Pod1))
|
||||||
// rc1 should already be in the cache, no request should be sent. rc1 should be promoted in the UIDCache
|
// rc1 should already be in the cache, no request should be sent. rc1 should be promoted in the UIDCache
|
||||||
gc.processItem(podToGCNode(rc1Pod2))
|
gc.attemptToDeleteItem(podToGCNode(rc1Pod2))
|
||||||
// after this call, rc2 should be evicted from the UIDCache
|
// after this call, rc2 should be evicted from the UIDCache
|
||||||
gc.processItem(podToGCNode(rc3Pod1))
|
gc.attemptToDeleteItem(podToGCNode(rc3Pod1))
|
||||||
// check cache
|
// check cache
|
||||||
if !gc.absentOwnerCache.Has(types.UID("1")) {
|
if !gc.absentOwnerCache.Has(types.UID("1")) {
|
||||||
t.Errorf("expected rc1 to be in the cache")
|
t.Errorf("expected rc1 to be in the cache")
|
||||||
@@ -474,3 +477,89 @@ func TestAbsentUIDCache(t *testing.T) {
|
|||||||
t.Errorf("expected only 1 GET rc1 request, got %d", count)
|
t.Errorf("expected only 1 GET rc1 request, got %d", count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDeleteOwnerRefPatch(t *testing.T) {
|
||||||
|
original := v1.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
UID: "100",
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
{UID: "1"},
|
||||||
|
{UID: "2"},
|
||||||
|
{UID: "3"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
originalData := serilizeOrDie(t, original)
|
||||||
|
expected := v1.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
UID: "100",
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
{UID: "1"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
patch := deleteOwnerRefPatch("100", "2", "3")
|
||||||
|
patched, err := strategicpatch.StrategicMergePatch(originalData, patch, v1.Pod{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
var got v1.Pod
|
||||||
|
if err := json.Unmarshal(patched, &got); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(expected, got) {
|
||||||
|
t.Errorf("expected: %#v,\ngot: %#v", expected, got)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestUnblockOwnerReference(t *testing.T) {
|
||||||
|
trueVar := true
|
||||||
|
falseVar := false
|
||||||
|
original := v1.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
UID: "100",
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
{UID: "1", BlockOwnerDeletion: &trueVar},
|
||||||
|
{UID: "2", BlockOwnerDeletion: &falseVar},
|
||||||
|
{UID: "3"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
originalData := serilizeOrDie(t, original)
|
||||||
|
expected := v1.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
UID: "100",
|
||||||
|
OwnerReferences: []metav1.OwnerReference{
|
||||||
|
{UID: "1", BlockOwnerDeletion: &falseVar},
|
||||||
|
{UID: "2", BlockOwnerDeletion: &falseVar},
|
||||||
|
{UID: "3"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
accessor, err := meta.Accessor(&original)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
n := node{
|
||||||
|
owners: accessor.GetOwnerReferences(),
|
||||||
|
}
|
||||||
|
patch, err := n.patchToUnblockOwnerReferences()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
patched, err := strategicpatch.StrategicMergePatch(originalData, patch, v1.Pod{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
var got v1.Pod
|
||||||
|
if err := json.Unmarshal(patched, &got); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(expected, got) {
|
||||||
|
t.Errorf("expected: %#v,\ngot: %#v", expected, got)
|
||||||
|
t.Errorf("expected: %#v,\ngot: %#v", expected.OwnerReferences, got.OwnerReferences)
|
||||||
|
for _, ref := range got.OwnerReferences {
|
||||||
|
t.Errorf("ref.UID=%s, ref.BlockOwnerDeletion=%v", ref.UID, *ref.BlockOwnerDeletion)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
159
pkg/controller/garbagecollector/graph.go
Normal file
159
pkg/controller/garbagecollector/graph.go
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2016 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package garbagecollector
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"sync"
|
||||||
|
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
)
|
||||||
|
|
||||||
|
type objectReference struct {
|
||||||
|
metav1.OwnerReference
|
||||||
|
// This is needed by the dynamic client
|
||||||
|
Namespace string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s objectReference) String() string {
|
||||||
|
return fmt.Sprintf("[%s/%s, namespace: %s, name: %s, uid: %s]", s.APIVersion, s.Kind, s.Namespace, s.Name, s.UID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// The single-threaded GraphBuilder.processEvent() is the sole writer of the
|
||||||
|
// nodes. The multi-threaded GarbageCollector.processItem() reads the nodes.
|
||||||
|
// WARNING: node has different locks on different fields. setters and getters
|
||||||
|
// use the respective locks, so the return values of the getters can be
|
||||||
|
// inconsistent.
|
||||||
|
type node struct {
|
||||||
|
identity objectReference
|
||||||
|
// dependents will be read by the orphan() routine, we need to protect it with a lock.
|
||||||
|
dependentsLock sync.RWMutex
|
||||||
|
// dependents are the nodes that have node.identity as a
|
||||||
|
// metadata.ownerReference.
|
||||||
|
dependents map[*node]struct{}
|
||||||
|
// this is set by processEvent() if the object has non-nil DeletionTimestamp
|
||||||
|
// and has the FinalizerDeleteDependents.
|
||||||
|
deletingDependents bool
|
||||||
|
deletingDependentsLock sync.RWMutex
|
||||||
|
// this records if the object's deletionTimestamp is non-nil.
|
||||||
|
beingDeleted bool
|
||||||
|
beingDeletedLock sync.RWMutex
|
||||||
|
// when processing an Update event, we need to compare the updated
|
||||||
|
// ownerReferences with the owners recorded in the graph.
|
||||||
|
owners []metav1.OwnerReference
|
||||||
|
}
|
||||||
|
|
||||||
|
// An object is on a one way trip to its final deletion if it starts being
|
||||||
|
// deleted, so we only provide a function to set beingDeleted to true.
|
||||||
|
func (n *node) markBeingDeleted() {
|
||||||
|
n.beingDeletedLock.Lock()
|
||||||
|
defer n.beingDeletedLock.Unlock()
|
||||||
|
n.beingDeleted = true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n *node) isBeingDeleted() bool {
|
||||||
|
n.beingDeletedLock.RLock()
|
||||||
|
defer n.beingDeletedLock.RUnlock()
|
||||||
|
return n.beingDeleted
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n *node) markDeletingDependents() {
|
||||||
|
n.deletingDependentsLock.Lock()
|
||||||
|
defer n.deletingDependentsLock.Unlock()
|
||||||
|
n.deletingDependents = true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n *node) isDeletingDependents() bool {
|
||||||
|
n.deletingDependentsLock.RLock()
|
||||||
|
defer n.deletingDependentsLock.RUnlock()
|
||||||
|
return n.deletingDependents
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ownerNode *node) addDependent(dependent *node) {
|
||||||
|
ownerNode.dependentsLock.Lock()
|
||||||
|
defer ownerNode.dependentsLock.Unlock()
|
||||||
|
ownerNode.dependents[dependent] = struct{}{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ownerNode *node) deleteDependent(dependent *node) {
|
||||||
|
ownerNode.dependentsLock.Lock()
|
||||||
|
defer ownerNode.dependentsLock.Unlock()
|
||||||
|
delete(ownerNode.dependents, dependent)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ownerNode *node) dependentsLength() int {
|
||||||
|
ownerNode.dependentsLock.RLock()
|
||||||
|
defer ownerNode.dependentsLock.RUnlock()
|
||||||
|
return len(ownerNode.dependents)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Note that this function does not provide any synchronization guarantees;
|
||||||
|
// items could be added to or removed from ownerNode.dependents the moment this
|
||||||
|
// function returns.
|
||||||
|
func (ownerNode *node) getDependents() []*node {
|
||||||
|
ownerNode.dependentsLock.RLock()
|
||||||
|
defer ownerNode.dependentsLock.RUnlock()
|
||||||
|
var ret []*node
|
||||||
|
for dep := range ownerNode.dependents {
|
||||||
|
ret = append(ret, dep)
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
// blockingDependents returns the dependents that are blocking the deletion of
|
||||||
|
// n, i.e., the dependent that has an ownerReference pointing to n, and
|
||||||
|
// the BlockOwnerDeletion field of that ownerReference is true.
|
||||||
|
// Note that this function does not provide any synchronization guarantees;
|
||||||
|
// items could be added to or removed from ownerNode.dependents the moment this
|
||||||
|
// function returns.
|
||||||
|
func (n *node) blockingDependents() []*node {
|
||||||
|
dependents := n.getDependents()
|
||||||
|
var ret []*node
|
||||||
|
for _, dep := range dependents {
|
||||||
|
for _, owner := range dep.owners {
|
||||||
|
if owner.UID == n.identity.UID && owner.BlockOwnerDeletion != nil && *owner.BlockOwnerDeletion {
|
||||||
|
ret = append(ret, dep)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
type concurrentUIDToNode struct {
|
||||||
|
uidToNodeLock sync.RWMutex
|
||||||
|
uidToNode map[types.UID]*node
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *concurrentUIDToNode) Write(node *node) {
|
||||||
|
m.uidToNodeLock.Lock()
|
||||||
|
defer m.uidToNodeLock.Unlock()
|
||||||
|
m.uidToNode[node.identity.UID] = node
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *concurrentUIDToNode) Read(uid types.UID) (*node, bool) {
|
||||||
|
m.uidToNodeLock.RLock()
|
||||||
|
defer m.uidToNodeLock.RUnlock()
|
||||||
|
n, ok := m.uidToNode[uid]
|
||||||
|
return n, ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *concurrentUIDToNode) Delete(uid types.UID) {
|
||||||
|
m.uidToNodeLock.Lock()
|
||||||
|
defer m.uidToNodeLock.Unlock()
|
||||||
|
delete(m.uidToNode, uid)
|
||||||
|
}
|
||||||
497
pkg/controller/garbagecollector/graph_builder.go
Normal file
497
pkg/controller/garbagecollector/graph_builder.go
Normal file
@@ -0,0 +1,497 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2016 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package garbagecollector
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"reflect"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/golang/glog"
|
||||||
|
|
||||||
|
"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"
|
||||||
|
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
|
"k8s.io/client-go/dynamic"
|
||||||
|
"k8s.io/client-go/tools/cache"
|
||||||
|
"k8s.io/client-go/util/workqueue"
|
||||||
|
)
|
||||||
|
|
||||||
|
type eventType int
|
||||||
|
|
||||||
|
const (
|
||||||
|
addEvent eventType = iota
|
||||||
|
updateEvent
|
||||||
|
deleteEvent
|
||||||
|
)
|
||||||
|
|
||||||
|
type event struct {
|
||||||
|
eventType eventType
|
||||||
|
obj interface{}
|
||||||
|
// the update event comes with an old object, but it's not used by the garbage collector.
|
||||||
|
oldObj interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GraphBuilder: based on the events supplied by the informers, GraphBuilder updates
|
||||||
|
// uidToNode, a graph that caches the dependencies as we know, and enqueues
|
||||||
|
// items to the attemptToDelete and attemptToOrphan.
|
||||||
|
type GraphBuilder struct {
|
||||||
|
restMapper meta.RESTMapper
|
||||||
|
// each monitor list/watches a resource, the results are funneled to the
|
||||||
|
// dependencyGraphBuilder
|
||||||
|
monitors []cache.Controller
|
||||||
|
// metaOnlyClientPool uses a special codec, which removes fields except for
|
||||||
|
// apiVersion, kind, and metadata during decoding.
|
||||||
|
metaOnlyClientPool dynamic.ClientPool
|
||||||
|
// used to register exactly once the rate limiters of the clients used by
|
||||||
|
// the `monitors`.
|
||||||
|
registeredRateLimiterForControllers *RegisteredRateLimiter
|
||||||
|
// monitors are the producer of the graphChanges queue, graphBuilder alters
|
||||||
|
// the in-memory graph according to the changes.
|
||||||
|
graphChanges workqueue.RateLimitingInterface
|
||||||
|
// uidToNode doesn't require a lock to protect, because only the
|
||||||
|
// single-threaded GraphBuilder.processGraphChanges() reads/writes it.
|
||||||
|
uidToNode *concurrentUIDToNode
|
||||||
|
// GraphBuilder is the producer of attemptToDelete and attemptToOrphan, GC is the consumer.
|
||||||
|
attemptToDelete workqueue.RateLimitingInterface
|
||||||
|
attemptToOrphan workqueue.RateLimitingInterface
|
||||||
|
// GraphBuilder and GC share the absentOwnerCache. Objects that are known to
|
||||||
|
// be non-existent are added to the cached.
|
||||||
|
absentOwnerCache *UIDCache
|
||||||
|
}
|
||||||
|
|
||||||
|
func listWatcher(client *dynamic.Client, resource schema.GroupVersionResource) *cache.ListWatch {
|
||||||
|
return &cache.ListWatch{
|
||||||
|
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
|
||||||
|
// APIResource.Kind is not used by the dynamic client, so
|
||||||
|
// leave it empty. We want to list this resource in all
|
||||||
|
// namespaces if it's namespace scoped, so leave
|
||||||
|
// APIResource.Namespaced as false is all right.
|
||||||
|
apiResource := metav1.APIResource{Name: resource.Resource}
|
||||||
|
return client.ParameterCodec(dynamic.VersionedParameterEncoderWithV1Fallback).
|
||||||
|
Resource(&apiResource, metav1.NamespaceAll).
|
||||||
|
List(options)
|
||||||
|
},
|
||||||
|
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
|
||||||
|
// APIResource.Kind is not used by the dynamic client, so
|
||||||
|
// leave it empty. We want to list this resource in all
|
||||||
|
// namespaces if it's namespace scoped, so leave
|
||||||
|
// APIResource.Namespaced as false is all right.
|
||||||
|
apiResource := metav1.APIResource{Name: resource.Resource}
|
||||||
|
return client.ParameterCodec(dynamic.VersionedParameterEncoderWithV1Fallback).
|
||||||
|
Resource(&apiResource, metav1.NamespaceAll).
|
||||||
|
Watch(options)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gb *GraphBuilder) controllerFor(resource schema.GroupVersionResource, kind schema.GroupVersionKind) (cache.Controller, error) {
|
||||||
|
// TODO: consider store in one storage.
|
||||||
|
glog.V(5).Infof("create storage for resource %s", resource)
|
||||||
|
client, err := gb.metaOnlyClientPool.ClientForGroupVersionKind(kind)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
gb.registeredRateLimiterForControllers.registerIfNotPresent(resource.GroupVersion(), client, "garbage_collector_monitoring")
|
||||||
|
setObjectTypeMeta := func(obj interface{}) {
|
||||||
|
runtimeObject, ok := obj.(runtime.Object)
|
||||||
|
if !ok {
|
||||||
|
utilruntime.HandleError(fmt.Errorf("expected runtime.Object, got %#v", obj))
|
||||||
|
}
|
||||||
|
runtimeObject.GetObjectKind().SetGroupVersionKind(kind)
|
||||||
|
}
|
||||||
|
_, monitor := cache.NewInformer(
|
||||||
|
listWatcher(client, resource),
|
||||||
|
nil,
|
||||||
|
ResourceResyncTime,
|
||||||
|
cache.ResourceEventHandlerFuncs{
|
||||||
|
// add the event to the dependencyGraphBuilder's graphChanges.
|
||||||
|
AddFunc: func(obj interface{}) {
|
||||||
|
setObjectTypeMeta(obj)
|
||||||
|
event := &event{
|
||||||
|
eventType: addEvent,
|
||||||
|
obj: obj,
|
||||||
|
}
|
||||||
|
gb.graphChanges.Add(event)
|
||||||
|
},
|
||||||
|
UpdateFunc: func(oldObj, newObj interface{}) {
|
||||||
|
setObjectTypeMeta(newObj)
|
||||||
|
// TODO: check if there are differences in the ownerRefs,
|
||||||
|
// finalizers, and DeletionTimestamp; if not, ignore the update.
|
||||||
|
event := &event{updateEvent, newObj, oldObj}
|
||||||
|
gb.graphChanges.Add(event)
|
||||||
|
},
|
||||||
|
DeleteFunc: func(obj interface{}) {
|
||||||
|
// delta fifo may wrap the object in a cache.DeletedFinalStateUnknown, unwrap it
|
||||||
|
if deletedFinalStateUnknown, ok := obj.(cache.DeletedFinalStateUnknown); ok {
|
||||||
|
obj = deletedFinalStateUnknown.Obj
|
||||||
|
}
|
||||||
|
setObjectTypeMeta(obj)
|
||||||
|
event := &event{
|
||||||
|
eventType: deleteEvent,
|
||||||
|
obj: obj,
|
||||||
|
}
|
||||||
|
gb.graphChanges.Add(event)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
return monitor, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gb *GraphBuilder) monitorsForResources(resources map[schema.GroupVersionResource]struct{}) error {
|
||||||
|
for resource := range resources {
|
||||||
|
if _, ok := ignoredResources[resource]; ok {
|
||||||
|
glog.V(5).Infof("ignore resource %#v", resource)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
kind, err := gb.restMapper.KindFor(resource)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
monitor, err := gb.controllerFor(resource, kind)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
gb.monitors = append(gb.monitors, monitor)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gb *GraphBuilder) HasSynced() bool {
|
||||||
|
for _, monitor := range gb.monitors {
|
||||||
|
if !monitor.HasSynced() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gb *GraphBuilder) Run(stopCh <-chan struct{}) {
|
||||||
|
for _, monitor := range gb.monitors {
|
||||||
|
go monitor.Run(stopCh)
|
||||||
|
}
|
||||||
|
go wait.Until(gb.runProcessGraphChanges, 1*time.Second, stopCh)
|
||||||
|
}
|
||||||
|
|
||||||
|
var ignoredResources = map[schema.GroupVersionResource]struct{}{
|
||||||
|
schema.GroupVersionResource{Group: "extensions", Version: "v1beta1", Resource: "replicationcontrollers"}: {},
|
||||||
|
schema.GroupVersionResource{Group: "", Version: "v1", Resource: "bindings"}: {},
|
||||||
|
schema.GroupVersionResource{Group: "", Version: "v1", Resource: "componentstatuses"}: {},
|
||||||
|
schema.GroupVersionResource{Group: "", Version: "v1", Resource: "events"}: {},
|
||||||
|
schema.GroupVersionResource{Group: "authentication.k8s.io", Version: "v1beta1", Resource: "tokenreviews"}: {},
|
||||||
|
schema.GroupVersionResource{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "subjectaccessreviews"}: {},
|
||||||
|
schema.GroupVersionResource{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "selfsubjectaccessreviews"}: {},
|
||||||
|
schema.GroupVersionResource{Group: "authorization.k8s.io", Version: "v1beta1", Resource: "localsubjectaccessreviews"}: {},
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gb *GraphBuilder) enqueueChanges(e *event) {
|
||||||
|
gb.graphChanges.Add(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
// addDependentToOwners adds n to owners' dependents list. If the owner does not
|
||||||
|
// exist in the gb.uidToNode yet, a "virtual" node will be created to represent
|
||||||
|
// the owner. The "virtual" node will be enqueued to the attemptToDelete, so that
|
||||||
|
// processItem() will verify if the owner exists according to the API server.
|
||||||
|
func (gb *GraphBuilder) addDependentToOwners(n *node, owners []metav1.OwnerReference) {
|
||||||
|
for _, owner := range owners {
|
||||||
|
ownerNode, ok := gb.uidToNode.Read(owner.UID)
|
||||||
|
if !ok {
|
||||||
|
// Create a "virtual" node in the graph for the owner if it doesn't
|
||||||
|
// exist in the graph yet. Then enqueue the virtual node into the
|
||||||
|
// attemptToDelete. The garbage processor will enqueue a virtual delete
|
||||||
|
// event to delete it from the graph if API server confirms this
|
||||||
|
// owner doesn't exist.
|
||||||
|
ownerNode = &node{
|
||||||
|
identity: objectReference{
|
||||||
|
OwnerReference: owner,
|
||||||
|
Namespace: n.identity.Namespace,
|
||||||
|
},
|
||||||
|
dependents: make(map[*node]struct{}),
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("add virtual node.identity: %s\n\n", ownerNode.identity)
|
||||||
|
gb.uidToNode.Write(ownerNode)
|
||||||
|
gb.attemptToDelete.Add(ownerNode)
|
||||||
|
}
|
||||||
|
ownerNode.addDependent(n)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// insertNode insert the node to gb.uidToNode; then it finds all owners as listed
|
||||||
|
// in n.owners, and adds the node to their dependents list.
|
||||||
|
func (gb *GraphBuilder) insertNode(n *node) {
|
||||||
|
gb.uidToNode.Write(n)
|
||||||
|
gb.addDependentToOwners(n, n.owners)
|
||||||
|
}
|
||||||
|
|
||||||
|
// removeDependentFromOwners remove n from owners' dependents list.
|
||||||
|
func (gb *GraphBuilder) removeDependentFromOwners(n *node, owners []metav1.OwnerReference) {
|
||||||
|
for _, owner := range owners {
|
||||||
|
ownerNode, ok := gb.uidToNode.Read(owner.UID)
|
||||||
|
if !ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ownerNode.deleteDependent(n)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// removeNode removes the node from gb.uidToNode, then finds all
|
||||||
|
// owners as listed in n.owners, and removes n from their dependents list.
|
||||||
|
func (gb *GraphBuilder) removeNode(n *node) {
|
||||||
|
gb.uidToNode.Delete(n.identity.UID)
|
||||||
|
gb.removeDependentFromOwners(n, n.owners)
|
||||||
|
}
|
||||||
|
|
||||||
|
type ownerRefPair struct {
|
||||||
|
oldRef metav1.OwnerReference
|
||||||
|
newRef metav1.OwnerReference
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: profile this function to see if a naive N^2 algorithm performs better
|
||||||
|
// when the number of references is small.
|
||||||
|
func referencesDiffs(old []metav1.OwnerReference, new []metav1.OwnerReference) (added []metav1.OwnerReference, removed []metav1.OwnerReference, changed []ownerRefPair) {
|
||||||
|
oldUIDToRef := make(map[string]metav1.OwnerReference)
|
||||||
|
for i := 0; i < len(old); i++ {
|
||||||
|
oldUIDToRef[string(old[i].UID)] = old[i]
|
||||||
|
}
|
||||||
|
oldUIDSet := sets.StringKeySet(oldUIDToRef)
|
||||||
|
newUIDToRef := make(map[string]metav1.OwnerReference)
|
||||||
|
for i := 0; i < len(new); i++ {
|
||||||
|
newUIDToRef[string(new[i].UID)] = new[i]
|
||||||
|
}
|
||||||
|
newUIDSet := sets.StringKeySet(newUIDToRef)
|
||||||
|
|
||||||
|
addedUID := newUIDSet.Difference(oldUIDSet)
|
||||||
|
removedUID := oldUIDSet.Difference(newUIDSet)
|
||||||
|
intersection := oldUIDSet.Intersection(newUIDSet)
|
||||||
|
|
||||||
|
for uid := range addedUID {
|
||||||
|
added = append(added, newUIDToRef[uid])
|
||||||
|
}
|
||||||
|
for uid := range removedUID {
|
||||||
|
removed = append(removed, oldUIDToRef[uid])
|
||||||
|
}
|
||||||
|
for uid := range intersection {
|
||||||
|
if !reflect.DeepEqual(oldUIDToRef[uid], newUIDToRef[uid]) {
|
||||||
|
changed = append(changed, ownerRefPair{oldRef: oldUIDToRef[uid], newRef: newUIDToRef[uid]})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return added, removed, changed
|
||||||
|
}
|
||||||
|
|
||||||
|
// returns if the object in the event just transitions to "being deleted".
|
||||||
|
func deletionStarts(oldObj interface{}, newAccessor metav1.Object) bool {
|
||||||
|
// The delta_fifo may combine the creation and update of the object into one
|
||||||
|
// event, so if there is no oldObj, we just return if the newObj (via
|
||||||
|
// newAccessor) is being deleted.
|
||||||
|
if oldObj == nil {
|
||||||
|
if newAccessor.GetDeletionTimestamp() == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
oldAccessor, err := meta.Accessor(oldObj)
|
||||||
|
if err != nil {
|
||||||
|
utilruntime.HandleError(fmt.Errorf("cannot access oldObj: %v", err))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return beingDeleted(newAccessor) && !beingDeleted(oldAccessor)
|
||||||
|
}
|
||||||
|
|
||||||
|
func beingDeleted(accessor metav1.Object) bool {
|
||||||
|
return accessor.GetDeletionTimestamp() != nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func hasDeleteDependentsFinalizer(accessor metav1.Object) bool {
|
||||||
|
finalizers := accessor.GetFinalizers()
|
||||||
|
for _, finalizer := range finalizers {
|
||||||
|
if finalizer == metav1.FinalizerDeleteDependents {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func hasOrphanFinalizer(accessor metav1.Object) bool {
|
||||||
|
finalizers := accessor.GetFinalizers()
|
||||||
|
for _, finalizer := range finalizers {
|
||||||
|
if finalizer == metav1.FinalizerOrphanDependents {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// this function takes newAccessor directly because the caller already
|
||||||
|
// instantiates an accessor for the newObj.
|
||||||
|
func startsWaitingForDependentsDeleted(oldObj interface{}, newAccessor metav1.Object) bool {
|
||||||
|
return deletionStarts(oldObj, newAccessor) && hasDeleteDependentsFinalizer(newAccessor)
|
||||||
|
}
|
||||||
|
|
||||||
|
// this function takes newAccessor directly because the caller already
|
||||||
|
// instantiates an accessor for the newObj.
|
||||||
|
func startsWaitingForDependentsOrphaned(oldObj interface{}, newAccessor metav1.Object) bool {
|
||||||
|
return deletionStarts(oldObj, newAccessor) && hasOrphanFinalizer(newAccessor)
|
||||||
|
}
|
||||||
|
|
||||||
|
// if an blocking ownerReference points to an object gets removed, or gets set to
|
||||||
|
// "BlockOwnerDeletion=false", add the object to the attemptToDelete queue.
|
||||||
|
func (gb *GraphBuilder) addUnblockedOwnersToDeleteQueue(removed []metav1.OwnerReference, changed []ownerRefPair) {
|
||||||
|
for _, ref := range removed {
|
||||||
|
if ref.BlockOwnerDeletion != nil && *ref.BlockOwnerDeletion {
|
||||||
|
node, found := gb.uidToNode.Read(ref.UID)
|
||||||
|
if !found {
|
||||||
|
glog.V(5).Infof("cannot find %s in uidToNode", ref.UID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
gb.attemptToDelete.Add(node)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, c := range changed {
|
||||||
|
wasBlocked := c.oldRef.BlockOwnerDeletion != nil && *c.oldRef.BlockOwnerDeletion
|
||||||
|
isUnblocked := c.newRef.BlockOwnerDeletion == nil || (c.newRef.BlockOwnerDeletion != nil && !*c.newRef.BlockOwnerDeletion)
|
||||||
|
if wasBlocked && isUnblocked {
|
||||||
|
node, found := gb.uidToNode.Read(c.newRef.UID)
|
||||||
|
if !found {
|
||||||
|
glog.V(5).Infof("cannot find %s in uidToNode", c.newRef.UID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
gb.attemptToDelete.Add(node)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gb *GraphBuilder) processTransitions(oldObj interface{}, newAccessor metav1.Object, n *node) {
|
||||||
|
if startsWaitingForDependentsOrphaned(oldObj, newAccessor) {
|
||||||
|
glog.V(5).Infof("add %s to the attemptToOrphan", n.identity)
|
||||||
|
gb.attemptToOrphan.Add(n)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if startsWaitingForDependentsDeleted(oldObj, newAccessor) {
|
||||||
|
glog.V(2).Infof("add %s to the attemptToDelete, because it's waiting for its dependents to be deleted", n.identity)
|
||||||
|
// if the n is added as a "virtual" node, its deletingDependents field is not properly set, so always set it here.
|
||||||
|
n.markDeletingDependents()
|
||||||
|
for dep := range n.dependents {
|
||||||
|
gb.attemptToDelete.Add(dep)
|
||||||
|
}
|
||||||
|
gb.attemptToDelete.Add(n)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gb *GraphBuilder) runProcessGraphChanges() {
|
||||||
|
for gb.processGraphChanges() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dequeueing an event from graphChanges, updating graph, populating dirty_queue.
|
||||||
|
func (gb *GraphBuilder) processGraphChanges() bool {
|
||||||
|
item, quit := gb.graphChanges.Get()
|
||||||
|
if quit {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
defer gb.graphChanges.Done(item)
|
||||||
|
event, ok := item.(*event)
|
||||||
|
if !ok {
|
||||||
|
utilruntime.HandleError(fmt.Errorf("expect a *event, got %v", item))
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
obj := event.obj
|
||||||
|
accessor, err := meta.Accessor(obj)
|
||||||
|
if err != nil {
|
||||||
|
utilruntime.HandleError(fmt.Errorf("cannot access obj: %v", err))
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
typeAccessor, err := meta.TypeAccessor(obj)
|
||||||
|
if err != nil {
|
||||||
|
utilruntime.HandleError(fmt.Errorf("cannot access obj: %v", err))
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("GraphBuilder process object: %s/%s, namespace %s, name %s, event type %s", typeAccessor.GetAPIVersion(), typeAccessor.GetKind(), accessor.GetNamespace(), accessor.GetName(), event.eventType)
|
||||||
|
// Check if the node already exsits
|
||||||
|
existingNode, found := gb.uidToNode.Read(accessor.GetUID())
|
||||||
|
switch {
|
||||||
|
case (event.eventType == addEvent || event.eventType == updateEvent) && !found:
|
||||||
|
newNode := &node{
|
||||||
|
identity: objectReference{
|
||||||
|
OwnerReference: metav1.OwnerReference{
|
||||||
|
APIVersion: typeAccessor.GetAPIVersion(),
|
||||||
|
Kind: typeAccessor.GetKind(),
|
||||||
|
UID: accessor.GetUID(),
|
||||||
|
Name: accessor.GetName(),
|
||||||
|
},
|
||||||
|
Namespace: accessor.GetNamespace(),
|
||||||
|
},
|
||||||
|
dependents: make(map[*node]struct{}),
|
||||||
|
owners: accessor.GetOwnerReferences(),
|
||||||
|
deletingDependents: beingDeleted(accessor) && hasDeleteDependentsFinalizer(accessor),
|
||||||
|
beingDeleted: beingDeleted(accessor),
|
||||||
|
}
|
||||||
|
gb.insertNode(newNode)
|
||||||
|
// the underlying delta_fifo may combine a creation and a deletion into
|
||||||
|
// one event, so we need to further process the event.
|
||||||
|
gb.processTransitions(event.oldObj, accessor, newNode)
|
||||||
|
case (event.eventType == addEvent || event.eventType == updateEvent) && found:
|
||||||
|
// handle changes in ownerReferences
|
||||||
|
added, removed, changed := referencesDiffs(existingNode.owners, accessor.GetOwnerReferences())
|
||||||
|
if len(added) != 0 || len(removed) != 0 || len(changed) != 0 {
|
||||||
|
// check if the changed dependency graph unblock owners that are
|
||||||
|
// waiting for the deletion of their dependents.
|
||||||
|
gb.addUnblockedOwnersToDeleteQueue(removed, changed)
|
||||||
|
// update the node itself
|
||||||
|
existingNode.owners = accessor.GetOwnerReferences()
|
||||||
|
// Add the node to its new owners' dependent lists.
|
||||||
|
gb.addDependentToOwners(existingNode, added)
|
||||||
|
// remove the node from the dependent list of node that are no longer in
|
||||||
|
// the node's owners list.
|
||||||
|
gb.removeDependentFromOwners(existingNode, removed)
|
||||||
|
}
|
||||||
|
|
||||||
|
if beingDeleted(accessor) {
|
||||||
|
existingNode.markBeingDeleted()
|
||||||
|
}
|
||||||
|
gb.processTransitions(event.oldObj, accessor, existingNode)
|
||||||
|
case event.eventType == deleteEvent:
|
||||||
|
if !found {
|
||||||
|
glog.V(5).Infof("%v doesn't exist in the graph, this shouldn't happen", accessor.GetUID())
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// removeNode updates the graph
|
||||||
|
gb.removeNode(existingNode)
|
||||||
|
existingNode.dependentsLock.RLock()
|
||||||
|
defer existingNode.dependentsLock.RUnlock()
|
||||||
|
if len(existingNode.dependents) > 0 {
|
||||||
|
gb.absentOwnerCache.Add(accessor.GetUID())
|
||||||
|
}
|
||||||
|
for dep := range existingNode.dependents {
|
||||||
|
gb.attemptToDelete.Add(dep)
|
||||||
|
}
|
||||||
|
for _, owner := range existingNode.owners {
|
||||||
|
ownerNode, found := gb.uidToNode.Read(owner.UID)
|
||||||
|
if !found || !ownerNode.isDeletingDependents() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// this is to let attempToDeleteItem check if all the owner's
|
||||||
|
// dependents are deleted, if so, the owner will be deleted.
|
||||||
|
gb.attemptToDelete.Add(ownerNode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
135
pkg/controller/garbagecollector/operations.go
Normal file
135
pkg/controller/garbagecollector/operations.go
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2016 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package garbagecollector
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/golang/glog"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"k8s.io/kubernetes/pkg/client/retry"
|
||||||
|
)
|
||||||
|
|
||||||
|
// apiResource consults the REST mapper to translate an <apiVersion, kind,
|
||||||
|
// namespace> tuple to a unversioned.APIResource struct.
|
||||||
|
func (gc *GarbageCollector) apiResource(apiVersion, kind string, namespaced bool) (*metav1.APIResource, error) {
|
||||||
|
fqKind := schema.FromAPIVersionAndKind(apiVersion, kind)
|
||||||
|
mapping, err := gc.restMapper.RESTMapping(fqKind.GroupKind(), apiVersion)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("unable to get REST mapping for kind: %s, version: %s", kind, apiVersion)
|
||||||
|
}
|
||||||
|
glog.V(5).Infof("map kind %s, version %s to resource %s", kind, apiVersion, mapping.Resource)
|
||||||
|
resource := metav1.APIResource{
|
||||||
|
Name: mapping.Resource,
|
||||||
|
Namespaced: namespaced,
|
||||||
|
Kind: kind,
|
||||||
|
}
|
||||||
|
return &resource, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gc *GarbageCollector) deleteObject(item objectReference, policy *metav1.DeletionPropagation) error {
|
||||||
|
fqKind := schema.FromAPIVersionAndKind(item.APIVersion, item.Kind)
|
||||||
|
client, err := gc.clientPool.ClientForGroupVersionKind(fqKind)
|
||||||
|
gc.registeredRateLimiter.registerIfNotPresent(fqKind.GroupVersion(), client, "garbage_collector_operation")
|
||||||
|
resource, err := gc.apiResource(item.APIVersion, item.Kind, len(item.Namespace) != 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
uid := item.UID
|
||||||
|
preconditions := metav1.Preconditions{UID: &uid}
|
||||||
|
deleteOptions := metav1.DeleteOptions{Preconditions: &preconditions, PropagationPolicy: policy}
|
||||||
|
return client.Resource(resource, item.Namespace).Delete(item.Name, &deleteOptions)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gc *GarbageCollector) getObject(item objectReference) (*unstructured.Unstructured, error) {
|
||||||
|
fqKind := schema.FromAPIVersionAndKind(item.APIVersion, item.Kind)
|
||||||
|
client, err := gc.clientPool.ClientForGroupVersionKind(fqKind)
|
||||||
|
gc.registeredRateLimiter.registerIfNotPresent(fqKind.GroupVersion(), client, "garbage_collector_operation")
|
||||||
|
resource, err := gc.apiResource(item.APIVersion, item.Kind, len(item.Namespace) != 0)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return client.Resource(resource, item.Namespace).Get(item.Name)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gc *GarbageCollector) updateObject(item objectReference, obj *unstructured.Unstructured) (*unstructured.Unstructured, error) {
|
||||||
|
fqKind := schema.FromAPIVersionAndKind(item.APIVersion, item.Kind)
|
||||||
|
client, err := gc.clientPool.ClientForGroupVersionKind(fqKind)
|
||||||
|
gc.registeredRateLimiter.registerIfNotPresent(fqKind.GroupVersion(), client, "garbage_collector_operation")
|
||||||
|
resource, err := gc.apiResource(item.APIVersion, item.Kind, len(item.Namespace) != 0)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return client.Resource(resource, item.Namespace).Update(obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (gc *GarbageCollector) patchObject(item objectReference, patch []byte) (*unstructured.Unstructured, error) {
|
||||||
|
fqKind := schema.FromAPIVersionAndKind(item.APIVersion, item.Kind)
|
||||||
|
client, err := gc.clientPool.ClientForGroupVersionKind(fqKind)
|
||||||
|
gc.registeredRateLimiter.registerIfNotPresent(fqKind.GroupVersion(), client, "garbage_collector_operation")
|
||||||
|
resource, err := gc.apiResource(item.APIVersion, item.Kind, len(item.Namespace) != 0)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return client.Resource(resource, item.Namespace).Patch(item.Name, types.StrategicMergePatchType, patch)
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Using Patch when strategicmerge supports deleting an entry from a
|
||||||
|
// slice of a base type.
|
||||||
|
func (gc *GarbageCollector) removeFinalizer(owner *node, targetFinalizer string) error {
|
||||||
|
err := retry.RetryOnConflict(retry.DefaultBackoff, func() error {
|
||||||
|
ownerObject, err := gc.getObject(owner.identity)
|
||||||
|
if errors.IsNotFound(err) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("cannot finalize owner %s, because cannot get it: %v. The garbage collector will retry later.", owner.identity, err)
|
||||||
|
}
|
||||||
|
accessor, err := meta.Accessor(ownerObject)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("cannot access the owner object %v: %v. The garbage collector will retry later.", ownerObject, err)
|
||||||
|
}
|
||||||
|
finalizers := accessor.GetFinalizers()
|
||||||
|
var newFinalizers []string
|
||||||
|
found := false
|
||||||
|
for _, f := range finalizers {
|
||||||
|
if f == targetFinalizer {
|
||||||
|
found = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
newFinalizers = append(newFinalizers, f)
|
||||||
|
}
|
||||||
|
if !found {
|
||||||
|
glog.V(5).Infof("the orphan finalizer is already removed from object %s", owner.identity)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// remove the owner from dependent's OwnerReferences
|
||||||
|
ownerObject.SetFinalizers(newFinalizers)
|
||||||
|
_, err = gc.updateObject(owner.identity, ownerObject)
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
if errors.IsConflict(err) {
|
||||||
|
return fmt.Errorf("updateMaxRetries(%d) has reached. The garbage collector will retry later for owner %v.", retry.DefaultBackoff.Steps, owner.identity)
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
54
pkg/controller/garbagecollector/patch.go
Normal file
54
pkg/controller/garbagecollector/patch.go
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2016 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package garbagecollector
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly"
|
||||||
|
)
|
||||||
|
|
||||||
|
func deleteOwnerRefPatch(dependentUID types.UID, ownerUIDs ...types.UID) []byte {
|
||||||
|
var pieces []string
|
||||||
|
for _, ownerUID := range ownerUIDs {
|
||||||
|
pieces = append(pieces, fmt.Sprintf(`{"$patch":"delete","uid":"%s"}`, ownerUID))
|
||||||
|
}
|
||||||
|
patch := fmt.Sprintf(`{"metadata":{"ownerReferences":[%s],"uid":"%s"}}`, strings.Join(pieces, ","), dependentUID)
|
||||||
|
return []byte(patch)
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate a patch that unsets the BlockOwnerDeletion field of all
|
||||||
|
// ownerReferences of node.
|
||||||
|
func (n *node) patchToUnblockOwnerReferences() ([]byte, error) {
|
||||||
|
var dummy metaonly.MetadataOnlyObject
|
||||||
|
var blockingRefs []metav1.OwnerReference
|
||||||
|
falseVar := false
|
||||||
|
for _, owner := range n.owners {
|
||||||
|
if owner.BlockOwnerDeletion != nil && *owner.BlockOwnerDeletion {
|
||||||
|
ref := owner
|
||||||
|
ref.BlockOwnerDeletion = &falseVar
|
||||||
|
blockingRefs = append(blockingRefs, ref)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dummy.ObjectMeta.SetOwnerReferences(blockingRefs)
|
||||||
|
dummy.ObjectMeta.UID = n.identity.UID
|
||||||
|
return json.Marshal(dummy)
|
||||||
|
}
|
||||||
@@ -481,14 +481,14 @@ func (rsc *ReplicaSetController) manageReplicas(filteredPods []*v1.Pod, rs *exte
|
|||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
var err error
|
var err error
|
||||||
|
boolPtr := func(b bool) *bool { return &b }
|
||||||
var trueVar = true
|
|
||||||
controllerRef := &metav1.OwnerReference{
|
controllerRef := &metav1.OwnerReference{
|
||||||
APIVersion: getRSKind().GroupVersion().String(),
|
APIVersion: getRSKind().GroupVersion().String(),
|
||||||
Kind: getRSKind().Kind,
|
Kind: getRSKind().Kind,
|
||||||
Name: rs.Name,
|
Name: rs.Name,
|
||||||
UID: rs.UID,
|
UID: rs.UID,
|
||||||
Controller: &trueVar,
|
BlockOwnerDeletion: boolPtr(true),
|
||||||
|
Controller: boolPtr(true),
|
||||||
}
|
}
|
||||||
err = rsc.podControl.CreatePodsWithControllerRef(rs.Namespace, &rs.Spec.Template, rs, controllerRef)
|
err = rsc.podControl.CreatePodsWithControllerRef(rs.Namespace, &rs.Spec.Template, rs, controllerRef)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -479,13 +479,14 @@ func (rm *ReplicationManager) manageReplicas(filteredPods []*v1.Pod, rc *v1.Repl
|
|||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
var err error
|
var err error
|
||||||
var trueVar = true
|
boolPtr := func(b bool) *bool { return &b }
|
||||||
controllerRef := &metav1.OwnerReference{
|
controllerRef := &metav1.OwnerReference{
|
||||||
APIVersion: getRCKind().GroupVersion().String(),
|
APIVersion: getRCKind().GroupVersion().String(),
|
||||||
Kind: getRCKind().Kind,
|
Kind: getRCKind().Kind,
|
||||||
Name: rc.Name,
|
Name: rc.Name,
|
||||||
UID: rc.UID,
|
UID: rc.UID,
|
||||||
Controller: &trueVar,
|
BlockOwnerDeletion: boolPtr(true),
|
||||||
|
Controller: boolPtr(true),
|
||||||
}
|
}
|
||||||
err = rm.podControl.CreatePodsWithControllerRef(rc.Namespace, rc.Spec.Template, rc, controllerRef)
|
err = rm.podControl.CreatePodsWithControllerRef(rc.Namespace, rc.Spec.Template, rc, controllerRef)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -351,11 +351,18 @@ func GetOpenAPIDefinitions(ref openapi.ReferenceCallback) map[string]openapi.Ope
|
|||||||
},
|
},
|
||||||
"orphanDependents": {
|
"orphanDependents": {
|
||||||
SchemaProps: spec.SchemaProps{
|
SchemaProps: spec.SchemaProps{
|
||||||
Description: "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
Description: "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
Type: []string{"boolean"},
|
Type: []string{"boolean"},
|
||||||
Format: "",
|
Format: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"propagationPolicy": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
|
Type: []string{"string"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -966,6 +973,13 @@ func GetOpenAPIDefinitions(ref openapi.ReferenceCallback) map[string]openapi.Ope
|
|||||||
Format: "",
|
Format: "",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"blockOwnerDeletion": {
|
||||||
|
SchemaProps: spec.SchemaProps{
|
||||||
|
Description: "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.",
|
||||||
|
Type: []string{"boolean"},
|
||||||
|
Format: "",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
Required: []string{"apiVersion", "kind", "name", "uid"},
|
Required: []string{"apiVersion", "kind", "name", "uid"},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ func (r *REST) Delete(ctx genericapirequest.Context, name string, options *metav
|
|||||||
newFinalizers := []string{}
|
newFinalizers := []string{}
|
||||||
for i := range existingNamespace.ObjectMeta.Finalizers {
|
for i := range existingNamespace.ObjectMeta.Finalizers {
|
||||||
finalizer := existingNamespace.ObjectMeta.Finalizers[i]
|
finalizer := existingNamespace.ObjectMeta.Finalizers[i]
|
||||||
if string(finalizer) != metav1.FinalizerOrphan {
|
if string(finalizer) != metav1.FinalizerOrphanDependents {
|
||||||
newFinalizers = append(newFinalizers, finalizer)
|
newFinalizers = append(newFinalizers, finalizer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -334,6 +334,14 @@ func extractFromOwnerReference(v reflect.Value, o *metav1.OwnerReference) error
|
|||||||
controller := *controllerPtr
|
controller := *controllerPtr
|
||||||
o.Controller = &controller
|
o.Controller = &controller
|
||||||
}
|
}
|
||||||
|
var blockOwnerDeletionPtr *bool
|
||||||
|
if err := runtime.Field(v, "BlockOwnerDeletion", &blockOwnerDeletionPtr); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if blockOwnerDeletionPtr != nil {
|
||||||
|
block := *blockOwnerDeletionPtr
|
||||||
|
o.BlockOwnerDeletion = &block
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -357,6 +365,12 @@ func setOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if o.BlockOwnerDeletion != nil {
|
||||||
|
block := *(o.BlockOwnerDeletion)
|
||||||
|
if err := runtime.SetField(&block, v, "BlockOwnerDeletion"); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -171,8 +171,26 @@ func ValidateObjectMeta(meta *metav1.ObjectMeta, requiresNamespace bool, nameFn
|
|||||||
allErrs = append(allErrs, v1validation.ValidateLabels(meta.Labels, fldPath.Child("labels"))...)
|
allErrs = append(allErrs, v1validation.ValidateLabels(meta.Labels, fldPath.Child("labels"))...)
|
||||||
allErrs = append(allErrs, ValidateAnnotations(meta.Annotations, fldPath.Child("annotations"))...)
|
allErrs = append(allErrs, ValidateAnnotations(meta.Annotations, fldPath.Child("annotations"))...)
|
||||||
allErrs = append(allErrs, ValidateOwnerReferences(meta.OwnerReferences, fldPath.Child("ownerReferences"))...)
|
allErrs = append(allErrs, ValidateOwnerReferences(meta.OwnerReferences, fldPath.Child("ownerReferences"))...)
|
||||||
for _, finalizer := range meta.Finalizers {
|
allErrs = append(allErrs, ValidateFinalizers(meta.Finalizers, fldPath.Child("finalizers"))...)
|
||||||
allErrs = append(allErrs, ValidateFinalizerName(finalizer, fldPath.Child("finalizers"))...)
|
return allErrs
|
||||||
|
}
|
||||||
|
|
||||||
|
// ValidateFinalizers tests if the finalizers name are valid, and if there are conflicting finalizers.
|
||||||
|
func ValidateFinalizers(finalizers []string, fldPath *field.Path) field.ErrorList {
|
||||||
|
allErrs := field.ErrorList{}
|
||||||
|
hasFinalizerOrphanDependents := false
|
||||||
|
hasFinalizerDeleteDependents := false
|
||||||
|
for _, finalizer := range finalizers {
|
||||||
|
allErrs = append(allErrs, ValidateFinalizerName(finalizer, fldPath)...)
|
||||||
|
if finalizer == metav1.FinalizerOrphanDependents {
|
||||||
|
hasFinalizerOrphanDependents = true
|
||||||
|
}
|
||||||
|
if finalizer == metav1.FinalizerDeleteDependents {
|
||||||
|
hasFinalizerDeleteDependents = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if hasFinalizerDeleteDependents && hasFinalizerOrphanDependents {
|
||||||
|
allErrs = append(allErrs, field.Invalid(fldPath, finalizers, fmt.Sprintf("finalizer %s and %s cannot be both set", metav1.FinalizerOrphanDependents, metav1.FinalizerDeleteDependents)))
|
||||||
}
|
}
|
||||||
return allErrs
|
return allErrs
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -277,6 +277,28 @@ func TestValidateFinalizersUpdate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestValidateFinalizersPreventConflictingFinalizers(t *testing.T) {
|
||||||
|
testcases := map[string]struct {
|
||||||
|
ObjectMeta metav1.ObjectMeta
|
||||||
|
ExpectedErr string
|
||||||
|
}{
|
||||||
|
"conflicting finalizers": {
|
||||||
|
ObjectMeta: metav1.ObjectMeta{Name: "test", ResourceVersion: "1", Finalizers: []string{metav1.FinalizerOrphanDependents, metav1.FinalizerDeleteDependents}},
|
||||||
|
ExpectedErr: "cannot be both set",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for name, tc := range testcases {
|
||||||
|
errs := ValidateObjectMeta(&tc.ObjectMeta, false, NameIsDNSSubdomain, field.NewPath("field"))
|
||||||
|
if len(errs) == 0 {
|
||||||
|
if len(tc.ExpectedErr) != 0 {
|
||||||
|
t.Errorf("case: %q, expected error to contain %q", name, tc.ExpectedErr)
|
||||||
|
}
|
||||||
|
} else if e, a := tc.ExpectedErr, errs.ToAggregate().Error(); !strings.Contains(a, e) {
|
||||||
|
t.Errorf("case: %q, expected error to contain %q, got error %q", name, e, a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestValidateObjectMetaUpdatePreventsDeletionFieldMutation(t *testing.T) {
|
func TestValidateObjectMetaUpdatePreventsDeletionFieldMutation(t *testing.T) {
|
||||||
now := metav1.NewTime(time.Unix(1000, 0).UTC())
|
now := metav1.NewTime(time.Unix(1000, 0).UTC())
|
||||||
later := metav1.NewTime(time.Unix(2000, 0).UTC())
|
later := metav1.NewTime(time.Unix(2000, 0).UTC())
|
||||||
|
|||||||
@@ -512,6 +512,12 @@ func (m *DeleteOptions) MarshalTo(data []byte) (int, error) {
|
|||||||
}
|
}
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
if m.PropagationPolicy != nil {
|
||||||
|
data[i] = 0x22
|
||||||
|
i++
|
||||||
|
i = encodeVarintGenerated(data, i, uint64(len(*m.PropagationPolicy)))
|
||||||
|
i += copy(data[i:], *m.PropagationPolicy)
|
||||||
|
}
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1087,6 +1093,16 @@ func (m *OwnerReference) MarshalTo(data []byte) (int, error) {
|
|||||||
}
|
}
|
||||||
i++
|
i++
|
||||||
}
|
}
|
||||||
|
if m.BlockOwnerDeletion != nil {
|
||||||
|
data[i] = 0x38
|
||||||
|
i++
|
||||||
|
if *m.BlockOwnerDeletion {
|
||||||
|
data[i] = 1
|
||||||
|
} else {
|
||||||
|
data[i] = 0
|
||||||
|
}
|
||||||
|
i++
|
||||||
|
}
|
||||||
return i, nil
|
return i, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1539,6 +1555,10 @@ func (m *DeleteOptions) Size() (n int) {
|
|||||||
if m.OrphanDependents != nil {
|
if m.OrphanDependents != nil {
|
||||||
n += 2
|
n += 2
|
||||||
}
|
}
|
||||||
|
if m.PropagationPolicy != nil {
|
||||||
|
l = len(*m.PropagationPolicy)
|
||||||
|
n += 1 + l + sovGenerated(uint64(l))
|
||||||
|
}
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1763,6 +1783,9 @@ func (m *OwnerReference) Size() (n int) {
|
|||||||
if m.Controller != nil {
|
if m.Controller != nil {
|
||||||
n += 2
|
n += 2
|
||||||
}
|
}
|
||||||
|
if m.BlockOwnerDeletion != nil {
|
||||||
|
n += 2
|
||||||
|
}
|
||||||
return n
|
return n
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1957,6 +1980,7 @@ func (this *DeleteOptions) String() string {
|
|||||||
`GracePeriodSeconds:` + valueToStringGenerated(this.GracePeriodSeconds) + `,`,
|
`GracePeriodSeconds:` + valueToStringGenerated(this.GracePeriodSeconds) + `,`,
|
||||||
`Preconditions:` + strings.Replace(fmt.Sprintf("%v", this.Preconditions), "Preconditions", "Preconditions", 1) + `,`,
|
`Preconditions:` + strings.Replace(fmt.Sprintf("%v", this.Preconditions), "Preconditions", "Preconditions", 1) + `,`,
|
||||||
`OrphanDependents:` + valueToStringGenerated(this.OrphanDependents) + `,`,
|
`OrphanDependents:` + valueToStringGenerated(this.OrphanDependents) + `,`,
|
||||||
|
`PropagationPolicy:` + valueToStringGenerated(this.PropagationPolicy) + `,`,
|
||||||
`}`,
|
`}`,
|
||||||
}, "")
|
}, "")
|
||||||
return s
|
return s
|
||||||
@@ -2115,6 +2139,7 @@ func (this *OwnerReference) String() string {
|
|||||||
`UID:` + fmt.Sprintf("%v", this.UID) + `,`,
|
`UID:` + fmt.Sprintf("%v", this.UID) + `,`,
|
||||||
`APIVersion:` + fmt.Sprintf("%v", this.APIVersion) + `,`,
|
`APIVersion:` + fmt.Sprintf("%v", this.APIVersion) + `,`,
|
||||||
`Controller:` + valueToStringGenerated(this.Controller) + `,`,
|
`Controller:` + valueToStringGenerated(this.Controller) + `,`,
|
||||||
|
`BlockOwnerDeletion:` + valueToStringGenerated(this.BlockOwnerDeletion) + `,`,
|
||||||
`}`,
|
`}`,
|
||||||
}, "")
|
}, "")
|
||||||
return s
|
return s
|
||||||
@@ -2997,6 +3022,36 @@ func (m *DeleteOptions) Unmarshal(data []byte) error {
|
|||||||
}
|
}
|
||||||
b := bool(v != 0)
|
b := bool(v != 0)
|
||||||
m.OrphanDependents = &b
|
m.OrphanDependents = &b
|
||||||
|
case 4:
|
||||||
|
if wireType != 2 {
|
||||||
|
return fmt.Errorf("proto: wrong wireType = %d for field PropagationPolicy", wireType)
|
||||||
|
}
|
||||||
|
var stringLen uint64
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return ErrIntOverflowGenerated
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := data[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
stringLen |= (uint64(b) & 0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
intStringLen := int(stringLen)
|
||||||
|
if intStringLen < 0 {
|
||||||
|
return ErrInvalidLengthGenerated
|
||||||
|
}
|
||||||
|
postIndex := iNdEx + intStringLen
|
||||||
|
if postIndex > l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
s := DeletionPropagation(data[iNdEx:postIndex])
|
||||||
|
m.PropagationPolicy = &s
|
||||||
|
iNdEx = postIndex
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := skipGenerated(data[iNdEx:])
|
skippy, err := skipGenerated(data[iNdEx:])
|
||||||
@@ -5379,6 +5434,27 @@ func (m *OwnerReference) Unmarshal(data []byte) error {
|
|||||||
}
|
}
|
||||||
b := bool(v != 0)
|
b := bool(v != 0)
|
||||||
m.Controller = &b
|
m.Controller = &b
|
||||||
|
case 7:
|
||||||
|
if wireType != 0 {
|
||||||
|
return fmt.Errorf("proto: wrong wireType = %d for field BlockOwnerDeletion", wireType)
|
||||||
|
}
|
||||||
|
var v int
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
if shift >= 64 {
|
||||||
|
return ErrIntOverflowGenerated
|
||||||
|
}
|
||||||
|
if iNdEx >= l {
|
||||||
|
return io.ErrUnexpectedEOF
|
||||||
|
}
|
||||||
|
b := data[iNdEx]
|
||||||
|
iNdEx++
|
||||||
|
v |= (int(b) & 0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b := bool(v != 0)
|
||||||
|
m.BlockOwnerDeletion = &b
|
||||||
default:
|
default:
|
||||||
iNdEx = preIndex
|
iNdEx = preIndex
|
||||||
skippy, err := skipGenerated(data[iNdEx:])
|
skippy, err := skipGenerated(data[iNdEx:])
|
||||||
@@ -6700,137 +6776,140 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var fileDescriptorGenerated = []byte{
|
var fileDescriptorGenerated = []byte{
|
||||||
// 2098 bytes of a gzipped FileDescriptorProto
|
// 2160 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x19, 0x4b, 0x6f, 0x23, 0x49,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x19, 0xcd, 0x6f, 0x23, 0x57,
|
||||||
0x39, 0x6d, 0xc7, 0x1e, 0xfb, 0x73, 0x9c, 0x47, 0x91, 0x01, 0x6f, 0x24, 0xec, 0x6c, 0xef, 0x0a,
|
0x3d, 0x63, 0xc7, 0x5e, 0xfb, 0xe7, 0x38, 0x1f, 0xaf, 0x59, 0x70, 0x23, 0x61, 0xa7, 0xd3, 0x0a,
|
||||||
0x65, 0x61, 0xd6, 0x26, 0x59, 0x58, 0x0d, 0x03, 0x0c, 0xc4, 0x71, 0x26, 0x8a, 0x76, 0x32, 0x89,
|
0xa5, 0xb0, 0xb5, 0x49, 0x0a, 0xd5, 0xb2, 0xc0, 0x42, 0x26, 0xce, 0x46, 0x51, 0x37, 0x9b, 0xe8,
|
||||||
0x2a, 0x3b, 0x83, 0x58, 0x46, 0x88, 0x8e, 0xbb, 0xe2, 0x34, 0x69, 0x77, 0x37, 0x55, 0x65, 0x4f,
|
0xa5, 0xbb, 0x88, 0x65, 0x85, 0x98, 0xcc, 0xbc, 0x38, 0x43, 0xc6, 0x33, 0xc3, 0x7b, 0x63, 0x6f,
|
||||||
0xc2, 0x1e, 0x58, 0x69, 0x41, 0x70, 0x40, 0x68, 0x8e, 0x1c, 0x10, 0xda, 0x11, 0xdc, 0xb8, 0xf1,
|
0x4c, 0x0f, 0x54, 0x2a, 0x48, 0x1c, 0x10, 0xda, 0x23, 0x07, 0x84, 0xba, 0x82, 0x1b, 0x37, 0xfe,
|
||||||
0x27, 0x98, 0xe3, 0x4a, 0x5c, 0x38, 0x20, 0x8b, 0x09, 0x07, 0x8e, 0xdc, 0x23, 0x0e, 0xa8, 0xaa,
|
0x06, 0x24, 0xf6, 0x58, 0x89, 0x0b, 0x07, 0x64, 0xb1, 0xee, 0x81, 0x23, 0xf7, 0x9c, 0xd0, 0x7b,
|
||||||
0xab, 0xfa, 0xe1, 0x8c, 0x37, 0x6d, 0x76, 0x0f, 0x9c, 0xe2, 0xfa, 0xde, 0xf5, 0xd5, 0xf7, 0xec,
|
0xf3, 0xe6, 0xcb, 0x8e, 0x9b, 0x31, 0xed, 0xa1, 0xa7, 0x78, 0x7e, 0xdf, 0xef, 0xf7, 0xfd, 0x5e,
|
||||||
0xc0, 0xde, 0xe9, 0x6d, 0xd6, 0x74, 0xfc, 0xd6, 0xe9, 0xe0, 0x88, 0x50, 0x8f, 0x70, 0xc2, 0x5a,
|
0xe0, 0xe0, 0xfc, 0x36, 0x6b, 0x5a, 0x6e, 0xeb, 0xbc, 0x77, 0x42, 0xa8, 0x43, 0x7c, 0xc2, 0x5a,
|
||||||
0x43, 0xe2, 0xd9, 0x3e, 0x6d, 0x29, 0x84, 0x15, 0x38, 0x7d, 0xab, 0x7b, 0xe2, 0x78, 0x84, 0x9e,
|
0x7d, 0xe2, 0x98, 0x2e, 0x6d, 0x49, 0x84, 0xee, 0x59, 0x5d, 0xdd, 0x38, 0xb3, 0x1c, 0x42, 0x07,
|
||||||
0xb7, 0x82, 0xd3, 0x9e, 0x00, 0xb0, 0x56, 0x9f, 0x70, 0xab, 0x35, 0x5c, 0x6f, 0xf5, 0x88, 0x47,
|
0x2d, 0xef, 0xbc, 0xc3, 0x01, 0xac, 0xd5, 0x25, 0xbe, 0xde, 0xea, 0x6f, 0xb6, 0x3a, 0xc4, 0x21,
|
||||||
0xa8, 0xc5, 0x89, 0xdd, 0x0c, 0xa8, 0xcf, 0x7d, 0xf4, 0x7a, 0xc8, 0xd5, 0x4c, 0x72, 0x35, 0x83,
|
0x54, 0xf7, 0x89, 0xd9, 0xf4, 0xa8, 0xeb, 0xbb, 0xe8, 0x8d, 0x80, 0xab, 0x99, 0xe4, 0x6a, 0x7a,
|
||||||
0xd3, 0x9e, 0x00, 0xb0, 0xa6, 0xe0, 0x6a, 0x0e, 0xd7, 0x57, 0xde, 0xec, 0x39, 0xfc, 0x64, 0x70,
|
0xe7, 0x1d, 0x0e, 0x60, 0x4d, 0xce, 0xd5, 0xec, 0x6f, 0xae, 0xbd, 0xd5, 0xb1, 0xfc, 0xb3, 0xde,
|
||||||
0xd4, 0xec, 0xfa, 0xfd, 0x56, 0xcf, 0xef, 0xf9, 0x2d, 0xc9, 0x7c, 0x34, 0x38, 0x96, 0x27, 0x79,
|
0x49, 0xd3, 0x70, 0xbb, 0xad, 0x8e, 0xdb, 0x71, 0x5b, 0x82, 0xf9, 0xa4, 0x77, 0x2a, 0xbe, 0xc4,
|
||||||
0x90, 0xbf, 0x42, 0xa1, 0x2b, 0x13, 0x4d, 0xa1, 0x03, 0x8f, 0x3b, 0x7d, 0x32, 0x6e, 0xc5, 0xca,
|
0x87, 0xf8, 0x15, 0x08, 0x5d, 0x9b, 0x6a, 0x0a, 0xed, 0x39, 0xbe, 0xd5, 0x25, 0xe3, 0x56, 0xac,
|
||||||
0xdb, 0xd7, 0x31, 0xb0, 0xee, 0x09, 0xe9, 0x5b, 0x57, 0xf8, 0xde, 0x9a, 0xc4, 0x37, 0xe0, 0x8e,
|
0xbd, 0x73, 0x1d, 0x03, 0x33, 0xce, 0x48, 0x57, 0x9f, 0xe0, 0x7b, 0x7b, 0x1a, 0x5f, 0xcf, 0xb7,
|
||||||
0xdb, 0x72, 0x3c, 0xce, 0x38, 0x1d, 0x67, 0x32, 0xff, 0x92, 0x87, 0xd2, 0xe6, 0xc1, 0xee, 0x0e,
|
0xec, 0x96, 0xe5, 0xf8, 0xcc, 0xa7, 0xe3, 0x4c, 0xea, 0xdf, 0xf3, 0x50, 0xda, 0x3e, 0xda, 0xdf,
|
||||||
0xf5, 0x07, 0x01, 0x5a, 0x85, 0x59, 0xcf, 0xea, 0x93, 0x9a, 0xb1, 0x6a, 0xac, 0x95, 0xdb, 0x73,
|
0xa3, 0x6e, 0xcf, 0x43, 0xeb, 0x30, 0xef, 0xe8, 0x5d, 0x52, 0x53, 0xd6, 0x95, 0x8d, 0xb2, 0xb6,
|
||||||
0xcf, 0x47, 0x8d, 0x99, 0x8b, 0x51, 0x63, 0xf6, 0x81, 0xd5, 0x27, 0x58, 0x62, 0x90, 0x0b, 0xa5,
|
0xf0, 0x62, 0xd8, 0x98, 0x1b, 0x0d, 0x1b, 0xf3, 0x0f, 0xf4, 0x2e, 0xc1, 0x02, 0x83, 0x6c, 0x28,
|
||||||
0x21, 0xa1, 0xcc, 0xf1, 0x3d, 0x56, 0xcb, 0xad, 0xe6, 0xd7, 0x2a, 0x1b, 0x77, 0x9b, 0x59, 0x9c,
|
0xf5, 0x09, 0x65, 0x96, 0xeb, 0xb0, 0x5a, 0x6e, 0x3d, 0xbf, 0x51, 0xd9, 0xba, 0xdb, 0xcc, 0xe2,
|
||||||
0xd6, 0x94, 0x0a, 0x1e, 0x85, 0xac, 0xf7, 0x7c, 0xda, 0x71, 0x58, 0xd7, 0x1f, 0x12, 0x7a, 0xde,
|
0xb4, 0xa6, 0x50, 0xf0, 0x28, 0x60, 0xbd, 0xe7, 0xd2, 0xb6, 0xc5, 0x0c, 0xb7, 0x4f, 0xe8, 0x40,
|
||||||
0x5e, 0x54, 0x5a, 0x4a, 0x0a, 0xc9, 0x70, 0xa4, 0x01, 0xfd, 0xdc, 0x80, 0xc5, 0x80, 0x92, 0x63,
|
0x5b, 0x96, 0x5a, 0x4a, 0x12, 0xc9, 0x70, 0xa4, 0x01, 0xfd, 0x4a, 0x81, 0x65, 0x8f, 0x92, 0x53,
|
||||||
0x42, 0x29, 0xb1, 0x15, 0xbe, 0x96, 0x5f, 0x35, 0x3e, 0x03, 0xb5, 0x35, 0xa5, 0x76, 0xf1, 0x60,
|
0x42, 0x29, 0x31, 0x25, 0xbe, 0x96, 0x5f, 0x57, 0x3e, 0x07, 0xb5, 0x35, 0xa9, 0x76, 0xf9, 0x68,
|
||||||
0x4c, 0x3e, 0xbe, 0xa2, 0x11, 0xfd, 0xc1, 0x80, 0x15, 0x46, 0xe8, 0x90, 0xd0, 0x4d, 0xdb, 0xa6,
|
0x4c, 0x3e, 0x9e, 0xd0, 0x88, 0xfe, 0xa4, 0xc0, 0x1a, 0x23, 0xb4, 0x4f, 0xe8, 0xb6, 0x69, 0x52,
|
||||||
0x84, 0xb1, 0xf6, 0xf9, 0x96, 0xeb, 0x10, 0x8f, 0x6f, 0xed, 0x76, 0x30, 0xab, 0xcd, 0x4a, 0x3f,
|
0xc2, 0x98, 0x36, 0xd8, 0xb1, 0x2d, 0xe2, 0xf8, 0x3b, 0xfb, 0x6d, 0xcc, 0x6a, 0xf3, 0xc2, 0x0f,
|
||||||
0x7c, 0x27, 0x9b, 0x41, 0x87, 0x93, 0xe4, 0xb4, 0x4d, 0x65, 0xd1, 0xca, 0x44, 0x12, 0x86, 0x3f,
|
0xdf, 0xcf, 0x66, 0xd0, 0xf1, 0x34, 0x39, 0x9a, 0x2a, 0x2d, 0x5a, 0x9b, 0x4a, 0xc2, 0xf0, 0xa7,
|
||||||
0xc1, 0x0c, 0xf3, 0x18, 0xe6, 0xf4, 0x43, 0xde, 0x77, 0x18, 0x47, 0x8f, 0xa0, 0xd8, 0x13, 0x07,
|
0x98, 0xa1, 0x9e, 0xc2, 0x42, 0x18, 0xc8, 0xfb, 0x16, 0xf3, 0xd1, 0x23, 0x28, 0x76, 0xf8, 0x07,
|
||||||
0x56, 0x33, 0xa4, 0x81, 0xcd, 0x6c, 0x06, 0x6a, 0x19, 0xed, 0x79, 0x65, 0x4f, 0x51, 0x1e, 0x19,
|
0xab, 0x29, 0xc2, 0xc0, 0x66, 0x36, 0x03, 0x43, 0x19, 0xda, 0xa2, 0xb4, 0xa7, 0x28, 0x3e, 0x19,
|
||||||
0x56, 0xd2, 0xcc, 0x0f, 0x73, 0x50, 0xd9, 0x3c, 0xd8, 0xc5, 0x84, 0xf9, 0x03, 0xda, 0x25, 0x19,
|
0x96, 0xd2, 0xd4, 0x0f, 0x73, 0x50, 0xd9, 0x3e, 0xda, 0xc7, 0x84, 0xb9, 0x3d, 0x6a, 0x90, 0x0c,
|
||||||
0x82, 0x66, 0x03, 0x40, 0xfc, 0x65, 0x81, 0xd5, 0x25, 0x76, 0x2d, 0xb7, 0x6a, 0xac, 0x95, 0xda,
|
0x49, 0xb3, 0x05, 0xc0, 0xff, 0x32, 0x4f, 0x37, 0x88, 0x59, 0xcb, 0xad, 0x2b, 0x1b, 0x25, 0x0d,
|
||||||
0x48, 0xd1, 0xc1, 0x83, 0x08, 0x83, 0x13, 0x54, 0x42, 0xea, 0xa9, 0xe3, 0xd9, 0xf2, 0xb5, 0x13,
|
0x49, 0x3a, 0x78, 0x10, 0x61, 0x70, 0x82, 0x8a, 0x4b, 0x3d, 0xb7, 0x1c, 0x53, 0x44, 0x3b, 0x21,
|
||||||
0x52, 0xdf, 0x71, 0x3c, 0x1b, 0x4b, 0x0c, 0xba, 0x0f, 0x85, 0x21, 0xa1, 0x47, 0xc2, 0xff, 0x22,
|
0xf5, 0x5d, 0xcb, 0x31, 0xb1, 0xc0, 0xa0, 0xfb, 0x50, 0xe8, 0x13, 0x7a, 0xc2, 0xfd, 0xcf, 0x13,
|
||||||
0x20, 0xbe, 0x92, 0xed, 0x7a, 0x8f, 0x04, 0x4b, 0xbb, 0x7c, 0x31, 0x6a, 0x14, 0xe4, 0x4f, 0x1c,
|
0xe2, 0xeb, 0xd9, 0x8e, 0xf7, 0x88, 0xb3, 0x68, 0xe5, 0xd1, 0xb0, 0x51, 0x10, 0x3f, 0x71, 0x20,
|
||||||
0x0a, 0x41, 0x4d, 0x00, 0x76, 0xe2, 0x53, 0x2e, 0xcd, 0xa9, 0x15, 0x56, 0xf3, 0x6b, 0xe5, 0xf6,
|
0x04, 0x35, 0x01, 0xd8, 0x99, 0x4b, 0x7d, 0x61, 0x4e, 0xad, 0xb0, 0x9e, 0xdf, 0x28, 0x6b, 0x8b,
|
||||||
0xbc, 0xb0, 0xef, 0x30, 0x82, 0xe2, 0x04, 0x85, 0xf9, 0x67, 0x03, 0x16, 0x12, 0x5e, 0x90, 0x1e,
|
0xdc, 0xbe, 0xe3, 0x08, 0x8a, 0x13, 0x14, 0xea, 0x5f, 0x15, 0x58, 0x4a, 0x78, 0x41, 0x78, 0xfc,
|
||||||
0xbf, 0x0d, 0x73, 0xbd, 0x44, 0xbc, 0x29, 0x8f, 0x2c, 0x2b, 0xdb, 0xe7, 0x92, 0xb1, 0x88, 0x53,
|
0x36, 0x2c, 0x74, 0x12, 0xf9, 0x26, 0x3d, 0xb2, 0x2a, 0x6d, 0x5f, 0x48, 0xe6, 0x22, 0x4e, 0x51,
|
||||||
0x94, 0x88, 0x40, 0x99, 0x2a, 0x49, 0x3a, 0xaf, 0xd6, 0x33, 0x3f, 0x97, 0xb6, 0x21, 0xd6, 0x94,
|
0x22, 0x02, 0x65, 0x2a, 0x25, 0x85, 0x75, 0xb5, 0x99, 0x39, 0x5c, 0xa1, 0x0d, 0xb1, 0xa6, 0x04,
|
||||||
0x00, 0x32, 0x1c, 0x4b, 0x36, 0xff, 0x65, 0xc8, 0xa7, 0xd3, 0x99, 0x86, 0xd6, 0x12, 0xd9, 0x6c,
|
0x90, 0xe1, 0x58, 0xb2, 0xfa, 0x1f, 0x45, 0x84, 0x2e, 0xac, 0x34, 0xb4, 0x91, 0xa8, 0x66, 0x45,
|
||||||
0xc8, 0x2b, 0xcf, 0x4d, 0xc8, 0xc4, 0x6b, 0x52, 0x20, 0xf7, 0x7f, 0x91, 0x02, 0x77, 0x4a, 0xbf,
|
0x1c, 0x79, 0x61, 0x4a, 0x25, 0x5e, 0x53, 0x02, 0xb9, 0x2f, 0x44, 0x09, 0xdc, 0x29, 0xfd, 0xfe,
|
||||||
0xfd, 0xa8, 0x31, 0xf3, 0xc1, 0xdf, 0x57, 0x67, 0xcc, 0x5f, 0xe6, 0xa0, 0xda, 0x21, 0x2e, 0xe1,
|
0xa3, 0xc6, 0xdc, 0x07, 0xff, 0x5a, 0x9f, 0x53, 0x3f, 0xc9, 0x41, 0xb5, 0x4d, 0x6c, 0xe2, 0x93,
|
||||||
0x64, 0x3f, 0xe0, 0xf2, 0x06, 0xf7, 0x00, 0xf5, 0xa8, 0xd5, 0x25, 0x07, 0x84, 0x3a, 0xbe, 0x7d,
|
0x43, 0xcf, 0x17, 0x27, 0xb8, 0x07, 0xa8, 0x43, 0x75, 0x83, 0x1c, 0x11, 0x6a, 0xb9, 0xe6, 0x31,
|
||||||
0x48, 0xba, 0xbe, 0x67, 0x33, 0xf9, 0x44, 0xf9, 0xf6, 0xe7, 0x2f, 0x46, 0x0d, 0xb4, 0x73, 0x05,
|
0x31, 0x5c, 0xc7, 0x64, 0x22, 0x44, 0x79, 0xed, 0x4b, 0xa3, 0x61, 0x03, 0xed, 0x4d, 0x60, 0xf1,
|
||||||
0x8b, 0x5f, 0xc2, 0x81, 0x5c, 0xa8, 0x06, 0x54, 0xfe, 0x76, 0xb8, 0x2a, 0x83, 0x22, 0xfc, 0xde,
|
0x15, 0x1c, 0xc8, 0x86, 0xaa, 0x47, 0xc5, 0x6f, 0xcb, 0x97, 0x6d, 0x90, 0xa7, 0xdf, 0xdb, 0xd9,
|
||||||
0xca, 0x76, 0xf7, 0x83, 0x24, 0x6b, 0x7b, 0xe9, 0x62, 0xd4, 0xa8, 0xa6, 0x40, 0x38, 0x2d, 0x1c,
|
0xce, 0x7e, 0x94, 0x64, 0xd5, 0x56, 0x46, 0xc3, 0x46, 0x35, 0x05, 0xc2, 0x69, 0xe1, 0xe8, 0x07,
|
||||||
0x7d, 0x17, 0x16, 0x7d, 0x1a, 0x9c, 0x58, 0x5e, 0x87, 0x04, 0xc4, 0xb3, 0x89, 0xc7, 0x99, 0x4c,
|
0xb0, 0xec, 0x52, 0xef, 0x4c, 0x77, 0xda, 0xc4, 0x23, 0x8e, 0x49, 0x1c, 0x9f, 0x89, 0x92, 0x28,
|
||||||
0x89, 0x52, 0x7b, 0x59, 0x14, 0xaf, 0xfd, 0x31, 0x1c, 0xbe, 0x42, 0x6d, 0xee, 0x42, 0xa9, 0x33,
|
0x69, 0xab, 0xbc, 0x79, 0x1d, 0x8e, 0xe1, 0xf0, 0x04, 0x35, 0x7a, 0x0c, 0x2b, 0x1e, 0x75, 0x3d,
|
||||||
0xa0, 0x96, 0x10, 0x87, 0xbe, 0x0d, 0x25, 0x5b, 0xfd, 0x56, 0x37, 0x7f, 0x55, 0x57, 0x5f, 0x4d,
|
0xbd, 0xa3, 0x73, 0x89, 0x47, 0xae, 0x6d, 0x19, 0x03, 0x51, 0x32, 0x65, 0xed, 0xd6, 0x68, 0xd8,
|
||||||
0x73, 0x39, 0x6a, 0x54, 0x45, 0x93, 0x69, 0x6a, 0x00, 0x8e, 0x58, 0xcc, 0xc7, 0x50, 0xdd, 0x3e,
|
0x58, 0x39, 0x1a, 0x47, 0x5e, 0x0e, 0x1b, 0xaf, 0x08, 0xd7, 0x71, 0x48, 0x8c, 0xc4, 0x93, 0x62,
|
||||||
0x0b, 0x7c, 0xca, 0xb5, 0x4f, 0xbf, 0x04, 0x45, 0x22, 0x01, 0x52, 0x5a, 0x29, 0x2e, 0x19, 0x21,
|
0xd4, 0x7d, 0x28, 0xb5, 0x7b, 0x54, 0x40, 0xd0, 0xf7, 0xa0, 0x64, 0xca, 0xdf, 0xd2, 0xab, 0xaf,
|
||||||
0x19, 0x56, 0x58, 0xf4, 0x1a, 0x14, 0xc8, 0x99, 0xd5, 0xe5, 0x2a, 0xf7, 0xab, 0x8a, 0xac, 0xb0,
|
0x85, 0x9d, 0x3d, 0xa4, 0xb9, 0x1c, 0x36, 0xaa, 0x7c, 0x80, 0x35, 0x43, 0x00, 0x8e, 0x58, 0xd4,
|
||||||
0x2d, 0x80, 0x38, 0xc4, 0x99, 0xfb, 0x00, 0x3b, 0x24, 0x12, 0xbd, 0x09, 0x0b, 0x3a, 0x6e, 0xd3,
|
0x27, 0x50, 0xdd, 0xbd, 0xf0, 0x5c, 0xea, 0x87, 0xf1, 0xfa, 0x2a, 0x14, 0x89, 0x00, 0x08, 0x69,
|
||||||
0xe9, 0xf4, 0x05, 0xc5, 0xbc, 0x80, 0xd3, 0x68, 0x3c, 0x4e, 0x6f, 0x3e, 0x86, 0xb2, 0x4c, 0x39,
|
0xa5, 0xb8, 0x1d, 0x05, 0x64, 0x58, 0x62, 0xd1, 0xeb, 0x50, 0x20, 0x17, 0xba, 0xe1, 0xcb, 0xbe,
|
||||||
0x51, 0x33, 0x84, 0x09, 0x32, 0xe3, 0x94, 0x94, 0xc8, 0x04, 0x49, 0x81, 0x43, 0x5c, 0x54, 0x74,
|
0x52, 0x95, 0x64, 0x85, 0x5d, 0x0e, 0xc4, 0x01, 0x4e, 0x3d, 0x04, 0xd8, 0x23, 0x91, 0xe8, 0x6d,
|
||||||
0x72, 0x93, 0x8a, 0x4e, 0x22, 0xc2, 0x5c, 0xa8, 0x86, 0xbc, 0xba, 0x0e, 0x66, 0xd2, 0x70, 0x0b,
|
0x58, 0x0a, 0x6b, 0x22, 0x5d, 0xaa, 0x5f, 0x96, 0xcc, 0x4b, 0x38, 0x8d, 0xc6, 0xe3, 0xf4, 0xea,
|
||||||
0x4a, 0xda, 0x4c, 0xa5, 0x25, 0xea, 0x7f, 0x5a, 0x10, 0x8e, 0x28, 0x12, 0xda, 0x4e, 0x20, 0x55,
|
0x13, 0x28, 0x8b, 0x72, 0xe6, 0xfd, 0x88, 0x9b, 0x20, 0xaa, 0x59, 0x4a, 0x89, 0x4c, 0x10, 0x14,
|
||||||
0x3e, 0xb2, 0x29, 0x7b, 0x03, 0x6e, 0xa8, 0x04, 0x56, 0xba, 0x16, 0x14, 0xd9, 0x0d, 0xed, 0x33,
|
0x38, 0xc0, 0x45, 0x0d, 0x2d, 0x37, 0xad, 0xa1, 0x25, 0xb2, 0xd7, 0x86, 0x6a, 0xc0, 0x1b, 0xf6,
|
||||||
0x8d, 0x4f, 0x68, 0xfa, 0x19, 0xd4, 0x26, 0x35, 0xcd, 0x4f, 0x51, 0xe0, 0xb2, 0x9b, 0x62, 0xfe,
|
0xd8, 0x4c, 0x1a, 0x6e, 0x41, 0x29, 0x34, 0x53, 0x6a, 0x89, 0x66, 0x6b, 0x28, 0x08, 0x47, 0x14,
|
||||||
0xc6, 0x80, 0xc5, 0xa4, 0xa4, 0xec, 0xcf, 0x97, 0x5d, 0xc9, 0xf5, 0xed, 0x25, 0xe1, 0x91, 0xdf,
|
0x09, 0x6d, 0x67, 0x90, 0x6a, 0x4d, 0xd9, 0x94, 0xbd, 0x09, 0x37, 0x64, 0x73, 0x90, 0xba, 0x96,
|
||||||
0x1b, 0xb0, 0x9c, 0xba, 0xda, 0x54, 0x2f, 0x3e, 0x85, 0x51, 0xc9, 0xe0, 0xc8, 0x4f, 0x11, 0x1c,
|
0x24, 0xd9, 0x8d, 0xd0, 0x67, 0x21, 0x3e, 0xa1, 0xe9, 0x97, 0x50, 0x9b, 0x36, 0x90, 0x3f, 0x43,
|
||||||
0x7f, 0xcd, 0x41, 0xf5, 0xbe, 0x75, 0x44, 0xdc, 0x43, 0xe2, 0x92, 0x2e, 0xf7, 0x29, 0x7a, 0x1f,
|
0xf3, 0xcc, 0x6e, 0x8a, 0xfa, 0x3b, 0x05, 0x96, 0x93, 0x92, 0xb2, 0x87, 0x2f, 0xbb, 0x92, 0xeb,
|
||||||
0x2a, 0x7d, 0x8b, 0x77, 0x4f, 0x24, 0x54, 0x0f, 0x00, 0x9d, 0x6c, 0x25, 0x2a, 0x25, 0xa9, 0xb9,
|
0x47, 0x57, 0xc2, 0x23, 0x7f, 0x54, 0x60, 0x35, 0x75, 0xb4, 0x99, 0x22, 0x3e, 0x83, 0x51, 0xc9,
|
||||||
0x17, 0x8b, 0xd9, 0xf6, 0x38, 0x3d, 0x6f, 0x7f, 0x4e, 0x99, 0x54, 0x49, 0x60, 0x70, 0x52, 0x9b,
|
0xe4, 0xc8, 0xcf, 0x90, 0x1c, 0xff, 0xc8, 0x41, 0xf5, 0xbe, 0x7e, 0x42, 0xec, 0x63, 0x62, 0x13,
|
||||||
0x9c, 0xda, 0xe4, 0x79, 0xfb, 0x2c, 0x10, 0x35, 0x7a, 0xfa, 0x61, 0x31, 0x65, 0x02, 0x26, 0x3f,
|
0xc3, 0x77, 0x29, 0x7a, 0x1f, 0x2a, 0x5d, 0xdd, 0x37, 0xce, 0x04, 0x34, 0x5c, 0x2e, 0xda, 0xd9,
|
||||||
0x19, 0x38, 0x94, 0xf4, 0x89, 0xc7, 0xe3, 0xa9, 0x6d, 0x6f, 0x4c, 0x3e, 0xbe, 0xa2, 0x71, 0xe5,
|
0xda, 0x5f, 0x4a, 0x52, 0xf3, 0x20, 0x16, 0xb3, 0xeb, 0xf8, 0x74, 0xa0, 0xbd, 0x22, 0x4d, 0xaa,
|
||||||
0x2e, 0x2c, 0x8e, 0x1b, 0x8f, 0x16, 0x21, 0x7f, 0x4a, 0xce, 0xc3, 0xf7, 0xc2, 0xe2, 0x27, 0x5a,
|
0x24, 0x30, 0x38, 0xa9, 0x4d, 0x6c, 0x84, 0xe2, 0x7b, 0xf7, 0xc2, 0xe3, 0xfd, 0x7f, 0xf6, 0x45,
|
||||||
0x86, 0xc2, 0xd0, 0x72, 0x07, 0x2a, 0x1b, 0x71, 0x78, 0xb8, 0x93, 0xbb, 0x6d, 0x98, 0x7f, 0x34,
|
0x34, 0x65, 0x02, 0x26, 0x3f, 0xef, 0x59, 0x94, 0x74, 0x89, 0xe3, 0xc7, 0x1b, 0xe1, 0xc1, 0x98,
|
||||||
0xa0, 0x36, 0xc9, 0x10, 0xf4, 0xc5, 0x84, 0xa0, 0x76, 0x45, 0x59, 0x95, 0x7f, 0x87, 0x9c, 0x87,
|
0x7c, 0x3c, 0xa1, 0x71, 0xed, 0x2e, 0x2c, 0x8f, 0x1b, 0x8f, 0x96, 0x21, 0x7f, 0x4e, 0x06, 0x41,
|
||||||
0x52, 0xb7, 0xa1, 0xe4, 0x07, 0x62, 0xce, 0xf6, 0xa9, 0x7a, 0xf5, 0x37, 0xf4, 0x4b, 0xee, 0x2b,
|
0xbc, 0x30, 0xff, 0x89, 0x56, 0xa1, 0xd0, 0xd7, 0xed, 0x9e, 0xac, 0x46, 0x1c, 0x7c, 0xdc, 0xc9,
|
||||||
0xf8, 0xe5, 0xa8, 0x71, 0x33, 0x25, 0x5e, 0x23, 0x70, 0xc4, 0x8a, 0x4c, 0x28, 0x4a, 0x7b, 0x44,
|
0xdd, 0x56, 0xd4, 0x3f, 0x2b, 0x50, 0x9b, 0x66, 0x08, 0xfa, 0x4a, 0x42, 0x90, 0x56, 0x91, 0x56,
|
||||||
0xcd, 0x17, 0xdd, 0x19, 0x44, 0x6d, 0x7d, 0x24, 0x21, 0x58, 0x61, 0xcc, 0xf7, 0xa1, 0x24, 0x86,
|
0xe5, 0xdf, 0x25, 0x83, 0x40, 0xea, 0x2e, 0x94, 0x5c, 0x8f, 0xef, 0xf0, 0x2e, 0x95, 0x51, 0x7f,
|
||||||
0x8f, 0x3d, 0xc2, 0x2d, 0x11, 0x40, 0x8c, 0xb8, 0xc7, 0xf7, 0x1d, 0xef, 0x54, 0x99, 0x16, 0x05,
|
0x33, 0x8c, 0xe4, 0xa1, 0x84, 0x5f, 0x0e, 0x1b, 0x37, 0x53, 0xe2, 0x43, 0x04, 0x8e, 0x58, 0x91,
|
||||||
0xd0, 0xa1, 0x82, 0xe3, 0x88, 0xe2, 0x65, 0x25, 0x36, 0x37, 0x65, 0x89, 0xfd, 0x53, 0x0e, 0x2a,
|
0x0a, 0x45, 0x61, 0x0f, 0x9f, 0x27, 0x7c, 0xf2, 0x03, 0xef, 0xad, 0x8f, 0x04, 0x04, 0x4b, 0x8c,
|
||||||
0x42, 0xbb, 0xae, 0xda, 0xdf, 0x84, 0xaa, 0x9b, 0xbc, 0x93, 0xb2, 0xe2, 0xa6, 0x12, 0x98, 0x8e,
|
0xfa, 0x3e, 0x94, 0xf8, 0x62, 0x73, 0x40, 0x7c, 0x9d, 0x27, 0x10, 0x23, 0xf6, 0xe9, 0x7d, 0xcb,
|
||||||
0x52, 0x9c, 0xa6, 0x15, 0xcc, 0xc7, 0x0e, 0x71, 0xed, 0x88, 0x39, 0x97, 0x66, 0xbe, 0x97, 0x44,
|
0x39, 0x97, 0xa6, 0x45, 0x09, 0x74, 0x2c, 0xe1, 0x38, 0xa2, 0xb8, 0xaa, 0xc5, 0xe6, 0x66, 0x6c,
|
||||||
0xe2, 0x34, 0xad, 0xc8, 0xc5, 0x27, 0xe2, 0xb5, 0x55, 0x77, 0x8c, 0x72, 0xf1, 0x7b, 0x02, 0x88,
|
0xb1, 0x7f, 0xc9, 0x41, 0x85, 0x6b, 0x0f, 0xbb, 0xf6, 0x77, 0xa0, 0x6a, 0x27, 0xcf, 0x24, 0xad,
|
||||||
0x43, 0xdc, 0xcb, 0x6e, 0x3c, 0x3b, 0xdd, 0x8d, 0xd1, 0x1d, 0x98, 0x17, 0xed, 0xd1, 0x1f, 0x70,
|
0xb8, 0x29, 0x05, 0xa6, 0xb3, 0x14, 0xa7, 0x69, 0x39, 0xf3, 0xa9, 0x45, 0x6c, 0x33, 0x62, 0xce,
|
||||||
0x3d, 0x42, 0x14, 0x64, 0x23, 0x45, 0x17, 0xa3, 0xc6, 0xfc, 0xbb, 0x29, 0x0c, 0x1e, 0xa3, 0x34,
|
0xa5, 0x99, 0xef, 0x25, 0x91, 0x38, 0x4d, 0xcb, 0x6b, 0xf1, 0x29, 0x8f, 0xb6, 0x9c, 0xbc, 0x51,
|
||||||
0x3f, 0x04, 0x80, 0xfd, 0xa3, 0x1f, 0x93, 0x6e, 0xf8, 0x5a, 0xd7, 0x0f, 0xce, 0xa2, 0xde, 0xaa,
|
0x2d, 0xfe, 0x90, 0x03, 0x71, 0x80, 0xbb, 0xea, 0xc4, 0xf3, 0xb3, 0x9d, 0x18, 0xdd, 0x81, 0x45,
|
||||||
0x7d, 0x4d, 0x40, 0x95, 0x43, 0xe2, 0x7a, 0x9b, 0xc0, 0xe1, 0x14, 0x25, 0x6a, 0x41, 0x39, 0x1a,
|
0x3e, 0x1e, 0xdd, 0x9e, 0x1f, 0xae, 0x27, 0x05, 0x31, 0x48, 0xd1, 0x68, 0xd8, 0x58, 0x7c, 0x2f,
|
||||||
0xa6, 0x55, 0x2d, 0x59, 0x52, 0x6c, 0xe5, 0x68, 0xe2, 0xc6, 0x31, 0x4d, 0x2a, 0x74, 0x66, 0xaf,
|
0x85, 0xc1, 0x63, 0x94, 0xea, 0x87, 0x00, 0x70, 0x78, 0xf2, 0x33, 0x62, 0x04, 0xd1, 0xba, 0x7e,
|
||||||
0x0d, 0x9d, 0x36, 0xe4, 0x07, 0x8e, 0x2d, 0xaf, 0x5e, 0x6e, 0x7f, 0x55, 0x87, 0xff, 0xc3, 0xdd,
|
0x29, 0xe7, 0xfd, 0x56, 0xde, 0x05, 0x39, 0x54, 0x3a, 0x24, 0xee, 0xb7, 0x09, 0x1c, 0x4e, 0x51,
|
||||||
0xce, 0xe5, 0xa8, 0xf1, 0xea, 0xa4, 0x35, 0x94, 0x9f, 0x07, 0x84, 0x35, 0x1f, 0xee, 0x76, 0xb0,
|
0xa2, 0x16, 0x94, 0xa3, 0x45, 0x5d, 0xf6, 0x92, 0x15, 0xc9, 0x56, 0x8e, 0xb6, 0x79, 0x1c, 0xd3,
|
||||||
0x60, 0x7e, 0xd9, 0x63, 0x14, 0xa7, 0x7c, 0x8c, 0x0d, 0x00, 0x75, 0x6b, 0xc1, 0x7d, 0x23, 0x7c,
|
0xa4, 0x52, 0x67, 0xfe, 0xda, 0xd4, 0xd1, 0x20, 0xdf, 0xb3, 0x4c, 0x71, 0xf4, 0xb2, 0xf6, 0x8d,
|
||||||
0x08, 0xbd, 0x58, 0xec, 0x44, 0x18, 0x9c, 0xa0, 0x42, 0x0c, 0x96, 0xba, 0x94, 0xc8, 0xdf, 0xe2,
|
0x30, 0xfd, 0x1f, 0xee, 0xb7, 0x2f, 0x87, 0x8d, 0xd7, 0xa6, 0x5d, 0x71, 0xfd, 0x81, 0x47, 0x58,
|
||||||
0xb9, 0x18, 0xb7, 0xfa, 0x41, 0xad, 0x24, 0x67, 0xb8, 0x2f, 0x67, 0xab, 0x4e, 0x82, 0xad, 0xfd,
|
0xf3, 0xe1, 0x7e, 0x1b, 0x73, 0xe6, 0xab, 0x82, 0x51, 0x9c, 0x31, 0x18, 0x5b, 0x00, 0xf2, 0xd4,
|
||||||
0x8a, 0x52, 0xb3, 0xb4, 0x35, 0x2e, 0x0c, 0x5f, 0x95, 0x8f, 0x7c, 0x58, 0xb2, 0xc5, 0x34, 0x9a,
|
0x9c, 0xfb, 0x46, 0x10, 0x88, 0xf0, 0xd2, 0xb2, 0x17, 0x61, 0x70, 0x82, 0x0a, 0x31, 0x58, 0x31,
|
||||||
0x52, 0x5a, 0x9e, 0x5a, 0xe9, 0x4d, 0xa1, 0xb0, 0x33, 0x2e, 0x08, 0x5f, 0x95, 0x8d, 0x7e, 0x08,
|
0x28, 0x11, 0xbf, 0x79, 0xb8, 0x98, 0xaf, 0x77, 0xbd, 0x5a, 0x49, 0xec, 0x87, 0x5f, 0xcb, 0xd6,
|
||||||
0x2b, 0x1a, 0x78, 0x75, 0xae, 0xad, 0x81, 0xf4, 0x54, 0x5d, 0x4c, 0xda, 0x9d, 0x89, 0x54, 0xf8,
|
0x9d, 0x38, 0x9b, 0xf6, 0xaa, 0x54, 0xb3, 0xb2, 0x33, 0x2e, 0x0c, 0x4f, 0xca, 0x47, 0x2e, 0xac,
|
||||||
0x13, 0x24, 0x20, 0x1b, 0x8a, 0x6e, 0xd8, 0x5b, 0x2a, 0xb2, 0xb0, 0x7f, 0x2b, 0xdb, 0x2d, 0xe2,
|
0x98, 0x72, 0x5d, 0x8b, 0x95, 0x96, 0x67, 0x56, 0x7a, 0x93, 0x2b, 0x6c, 0x8f, 0x0b, 0xc2, 0x93,
|
||||||
0xe8, 0x6f, 0x26, 0x7b, 0x4a, 0x34, 0x37, 0xaa, 0x76, 0xa2, 0x64, 0xa3, 0x33, 0xa8, 0x58, 0x9e,
|
0xb2, 0xd1, 0x4f, 0x60, 0x2d, 0x04, 0x4e, 0xee, 0xcc, 0x35, 0x10, 0x9e, 0xaa, 0xf3, 0x2d, 0xbe,
|
||||||
0xe7, 0x73, 0x2b, 0x9c, 0xb4, 0xe7, 0xa4, 0xaa, 0xcd, 0xa9, 0x55, 0x6d, 0xc6, 0x32, 0xc6, 0x7a,
|
0x3d, 0x95, 0x0a, 0x7f, 0x8a, 0x04, 0x64, 0x42, 0xd1, 0x0e, 0x66, 0x4b, 0x45, 0x34, 0xf6, 0xef,
|
||||||
0x58, 0x02, 0x83, 0x93, 0xaa, 0xd0, 0x13, 0x58, 0xf0, 0x9f, 0x78, 0x84, 0x62, 0x72, 0x4c, 0x28,
|
0x66, 0x3b, 0x45, 0x9c, 0xfd, 0xcd, 0xe4, 0x4c, 0x89, 0xf6, 0x46, 0x39, 0x4e, 0xa4, 0x6c, 0x74,
|
||||||
0xf1, 0xc4, 0x5a, 0x56, 0x95, 0xda, 0xbf, 0x96, 0x51, 0x7b, 0x8a, 0x39, 0x0e, 0xe9, 0x34, 0x9c,
|
0x01, 0x15, 0xdd, 0x71, 0x5c, 0x5f, 0x0f, 0xb6, 0xf8, 0x05, 0xa1, 0x6a, 0x7b, 0x66, 0x55, 0xdb,
|
||||||
0xe1, 0x71, 0x2d, 0x62, 0x0f, 0x3d, 0x76, 0x3c, 0xcb, 0x75, 0x7e, 0x4a, 0x28, 0xab, 0xcd, 0xc7,
|
0xb1, 0x8c, 0xb1, 0x19, 0x96, 0xc0, 0xe0, 0xa4, 0x2a, 0xf4, 0x14, 0x96, 0xdc, 0xa7, 0x0e, 0xa1,
|
||||||
0x7b, 0xe8, 0xbd, 0x08, 0x8a, 0x13, 0x14, 0xe8, 0xeb, 0x50, 0xe9, 0xba, 0x03, 0xc6, 0x09, 0x95,
|
0x98, 0x9c, 0x12, 0x4a, 0x1c, 0x7e, 0xe5, 0xab, 0x0a, 0xed, 0xdf, 0xcc, 0xa8, 0x3d, 0xc5, 0x1c,
|
||||||
0x15, 0x62, 0x41, 0x66, 0x50, 0x74, 0xbf, 0xad, 0x18, 0x85, 0x93, 0x74, 0x2b, 0xdf, 0x80, 0xca,
|
0xa7, 0x74, 0x1a, 0xce, 0xf0, 0xb8, 0x16, 0x7e, 0xc7, 0x3d, 0xb5, 0x1c, 0xdd, 0xb6, 0x7e, 0x41,
|
||||||
0xff, 0xd8, 0x17, 0x45, 0x5f, 0x1d, 0x77, 0xe8, 0x54, 0x7d, 0xf5, 0x3f, 0x06, 0xcc, 0xa7, 0xdd,
|
0x28, 0xab, 0x2d, 0xc6, 0x77, 0xdc, 0x7b, 0x11, 0x14, 0x27, 0x28, 0xd0, 0xb7, 0xa0, 0x62, 0xd8,
|
||||||
0x10, 0x4d, 0x63, 0xc6, 0xc4, 0x65, 0x5f, 0xd7, 0xca, 0xfc, 0xc4, 0x5a, 0xa9, 0x4a, 0xd2, 0xec,
|
0x3d, 0xe6, 0x13, 0x2a, 0x3a, 0xc4, 0x92, 0xa8, 0xa0, 0xe8, 0x7c, 0x3b, 0x31, 0x0a, 0x27, 0xe9,
|
||||||
0xa7, 0x29, 0x49, 0x1b, 0x00, 0x56, 0xe0, 0xe8, 0x6a, 0x14, 0x56, 0xb7, 0xa8, 0x9e, 0xc4, 0x8b,
|
0xd6, 0xbe, 0x0d, 0x95, 0xff, 0x73, 0x2e, 0xf2, 0xb9, 0x3a, 0xee, 0xd0, 0x99, 0xe6, 0xea, 0xdf,
|
||||||
0x33, 0x4e, 0x50, 0x89, 0x07, 0xeb, 0xfa, 0x1e, 0xa7, 0xbe, 0xeb, 0x12, 0x2a, 0x2b, 0x58, 0x29,
|
0x72, 0xb0, 0x98, 0x76, 0x43, 0xb4, 0x8d, 0x29, 0x53, 0x1f, 0x12, 0xc2, 0x5e, 0x99, 0x9f, 0xda,
|
||||||
0x7c, 0xb0, 0xad, 0x08, 0x8a, 0x13, 0x14, 0xe6, 0x3e, 0xa4, 0x37, 0x3e, 0x74, 0x37, 0x34, 0x3c,
|
0x2b, 0x65, 0x4b, 0x9a, 0xff, 0x2c, 0x2d, 0x69, 0x0b, 0x40, 0xf7, 0xac, 0xb0, 0x1b, 0x05, 0xdd,
|
||||||
0xbc, 0xfb, 0xad, 0xa9, 0x8d, 0x36, 0x6f, 0x41, 0x19, 0xfb, 0x3e, 0x3f, 0xb0, 0xf8, 0x09, 0x43,
|
0x2d, 0xea, 0x27, 0xf1, 0xa5, 0x1c, 0x27, 0xa8, 0x78, 0xc0, 0x0c, 0xd7, 0xf1, 0xa9, 0x6b, 0xdb,
|
||||||
0x0d, 0x28, 0x04, 0xe2, 0x87, 0x5a, 0xe7, 0xe5, 0x77, 0x0e, 0x89, 0xc1, 0x21, 0xdc, 0xfc, 0xb5,
|
0x84, 0x8a, 0x0e, 0x56, 0x0a, 0x02, 0xb6, 0x13, 0x41, 0x71, 0x82, 0x82, 0xdf, 0x71, 0x4f, 0x6c,
|
||||||
0x01, 0xaf, 0x4c, 0xdc, 0xae, 0x85, 0x03, 0xba, 0xd1, 0x49, 0x99, 0x14, 0x39, 0x20, 0xa6, 0xc3,
|
0xd7, 0x38, 0x17, 0x2e, 0x08, 0xab, 0x4f, 0xf4, 0xae, 0x52, 0x70, 0xc7, 0xd5, 0x26, 0xb0, 0xf8,
|
||||||
0x09, 0x2a, 0xd1, 0xb6, 0x53, 0x2b, 0xf9, 0x78, 0xdb, 0x4e, 0x69, 0xc3, 0x69, 0x5a, 0xf3, 0xdf,
|
0x0a, 0x0e, 0xf5, 0x10, 0xd2, 0xb7, 0x52, 0x74, 0x37, 0x70, 0x80, 0x12, 0x5d, 0x1b, 0x67, 0x3b,
|
||||||
0x39, 0x28, 0x1e, 0x72, 0x8b, 0x0f, 0x18, 0x7a, 0x0c, 0x25, 0x91, 0x3d, 0xb6, 0xc5, 0x2d, 0xa9,
|
0xbc, 0x7a, 0x0b, 0xca, 0xd8, 0x75, 0xfd, 0x23, 0xdd, 0x3f, 0x63, 0xa8, 0x01, 0x05, 0x8f, 0xff,
|
||||||
0x39, 0xf3, 0x17, 0x2b, 0x3d, 0xfe, 0xc4, 0x1d, 0x4b, 0x43, 0x70, 0x24, 0x51, 0xac, 0xaa, 0x4c,
|
0x90, 0x4f, 0x0e, 0xe2, 0x2d, 0x46, 0x60, 0x70, 0x00, 0x57, 0x7f, 0xab, 0xc0, 0xab, 0x53, 0x5f,
|
||||||
0xea, 0x51, 0xe6, 0x45, 0x25, 0x27, 0xd4, 0x8e, 0x15, 0x56, 0x8c, 0xeb, 0x7d, 0xc2, 0x98, 0xd5,
|
0x00, 0xb8, 0x23, 0x8d, 0xe8, 0x4b, 0x9a, 0x14, 0x39, 0x32, 0xa6, 0xc3, 0x09, 0x2a, 0x3e, 0xfe,
|
||||||
0xd3, 0xb1, 0x16, 0x8d, 0xeb, 0x7b, 0x21, 0x18, 0x6b, 0x3c, 0x7a, 0x1b, 0x8a, 0x94, 0x58, 0x2c,
|
0x53, 0xcf, 0x06, 0xe3, 0xe3, 0x3f, 0xa5, 0x0d, 0xa7, 0x69, 0xd5, 0xff, 0xe6, 0xa0, 0x78, 0xec,
|
||||||
0x1a, 0x22, 0xea, 0x5a, 0x24, 0x96, 0xd0, 0xcb, 0x51, 0x63, 0x4e, 0x09, 0x97, 0x67, 0xac, 0xa8,
|
0xeb, 0x7e, 0x8f, 0xa1, 0x27, 0x50, 0xe2, 0x55, 0x68, 0xea, 0xbe, 0x2e, 0x34, 0x67, 0x7e, 0x55,
|
||||||
0xd1, 0x7b, 0x70, 0xc3, 0x26, 0xdc, 0x72, 0xdc, 0x70, 0x76, 0xc8, 0xfc, 0xed, 0x20, 0x14, 0xd6,
|
0x0b, 0xd7, 0xa8, 0x78, 0xf2, 0x85, 0x10, 0x1c, 0x49, 0xe4, 0x57, 0x5e, 0x26, 0xf4, 0x48, 0xf3,
|
||||||
0x09, 0x59, 0xdb, 0x15, 0x61, 0x93, 0x3a, 0x60, 0x2d, 0x50, 0xe4, 0x49, 0xd7, 0xb7, 0x89, 0x8c,
|
0xa2, 0xd6, 0x15, 0x68, 0xc7, 0x12, 0xcb, 0xd7, 0xfe, 0x2e, 0x61, 0x4c, 0xef, 0x84, 0x39, 0x1b,
|
||||||
0xc3, 0x42, 0x9c, 0x27, 0x5b, 0xbe, 0x4d, 0xb0, 0xc4, 0x98, 0x4f, 0x0d, 0xa8, 0x84, 0x92, 0xb6,
|
0xad, 0xfd, 0x07, 0x01, 0x18, 0x87, 0x78, 0xf4, 0x0e, 0x14, 0x29, 0xd1, 0x59, 0xb4, 0x8c, 0xd4,
|
||||||
0xac, 0x01, 0x23, 0x68, 0x3d, 0xba, 0x45, 0xf8, 0xdc, 0xba, 0xb1, 0xcd, 0xbe, 0x7b, 0x1e, 0x90,
|
0x43, 0x91, 0x58, 0x40, 0x2f, 0x87, 0x8d, 0x05, 0x29, 0x5c, 0x7c, 0x63, 0x49, 0x8d, 0x1e, 0xc3,
|
||||||
0xcb, 0x51, 0xa3, 0x2c, 0xc9, 0xc4, 0x21, 0xba, 0x40, 0xc2, 0x47, 0xb9, 0x6b, 0x7c, 0xf4, 0x1a,
|
0x0d, 0x93, 0xf8, 0xba, 0x65, 0x07, 0x3b, 0x48, 0xe6, 0xf7, 0x8d, 0x40, 0x58, 0x3b, 0x60, 0xd5,
|
||||||
0x14, 0xe4, 0x9c, 0xa6, 0x9c, 0x19, 0x8d, 0x65, 0x72, 0x96, 0xc3, 0x21, 0xce, 0xfc, 0x5d, 0x0e,
|
0x2a, 0xdc, 0x26, 0xf9, 0x81, 0x43, 0x81, 0xbc, 0xde, 0x0c, 0xd7, 0x24, 0x22, 0x9f, 0x0b, 0x71,
|
||||||
0xaa, 0xa9, 0xcb, 0x65, 0x18, 0x8d, 0xa2, 0xdd, 0x2b, 0x97, 0x61, 0x9f, 0x9f, 0xfc, 0x11, 0xf1,
|
0xbd, 0xed, 0xb8, 0x26, 0xc1, 0x02, 0xa3, 0x3e, 0x53, 0xa0, 0x12, 0x48, 0xda, 0xd1, 0x7b, 0x8c,
|
||||||
0xfb, 0x50, 0xec, 0x8a, 0xfb, 0xe9, 0xaf, 0xb8, 0xeb, 0xd3, 0x3c, 0x85, 0xf4, 0x4c, 0x1c, 0x49,
|
0xa0, 0xcd, 0xe8, 0x14, 0x41, 0xb8, 0xc3, 0x01, 0x39, 0xff, 0xde, 0xc0, 0x23, 0x97, 0xc3, 0x46,
|
||||||
0xf2, 0xc8, 0xb0, 0x12, 0x88, 0x76, 0x60, 0x89, 0x12, 0x4e, 0xcf, 0x37, 0x8f, 0x39, 0xa1, 0xc9,
|
0x59, 0x90, 0xf1, 0x8f, 0xe8, 0x00, 0x09, 0x1f, 0xe5, 0xae, 0xf1, 0xd1, 0xeb, 0x50, 0x10, 0xfb,
|
||||||
0x61, 0xb1, 0x10, 0x0f, 0x0f, 0x78, 0x9c, 0x00, 0x5f, 0xe5, 0x31, 0x5d, 0x98, 0x15, 0x8d, 0x5d,
|
0x9e, 0x74, 0x66, 0xb4, 0xde, 0x89, 0x9d, 0x10, 0x07, 0x38, 0xf5, 0x0f, 0x39, 0xa8, 0xa6, 0x0e,
|
||||||
0xb8, 0x9d, 0xa5, 0x3e, 0x5b, 0x45, 0x6e, 0xd7, 0xcc, 0x1a, 0x2f, 0xbc, 0xe3, 0x59, 0x9e, 0x1f,
|
0x97, 0x61, 0xc5, 0x8a, 0xee, 0x70, 0xb9, 0x0c, 0xef, 0x02, 0xd3, 0x1f, 0x3a, 0x7f, 0x04, 0x45,
|
||||||
0x06, 0x7b, 0x21, 0xf6, 0xce, 0x03, 0x01, 0xc4, 0x21, 0xee, 0xce, 0xb2, 0x58, 0x20, 0x7f, 0xf5,
|
0x83, 0x9f, 0x2f, 0x7c, 0x69, 0xde, 0x9c, 0x25, 0x14, 0xc2, 0x33, 0x71, 0x26, 0x89, 0x4f, 0x86,
|
||||||
0xac, 0x31, 0xf3, 0xf4, 0x59, 0x63, 0xe6, 0xa3, 0x67, 0x6a, 0x99, 0xfc, 0x01, 0x94, 0xe3, 0x31,
|
0xa5, 0x40, 0xb4, 0x07, 0x2b, 0x94, 0xf8, 0x74, 0xb0, 0x7d, 0xea, 0x13, 0x9a, 0x5c, 0x3a, 0x0b,
|
||||||
0xe2, 0x33, 0x56, 0x69, 0xfe, 0x08, 0x4a, 0x22, 0x92, 0xf4, 0xf8, 0x7b, 0x4d, 0xd1, 0x4f, 0x97,
|
0xf1, 0x12, 0x82, 0xc7, 0x09, 0xf0, 0x24, 0x8f, 0x6a, 0xc3, 0x3c, 0x5f, 0x10, 0xb8, 0xdb, 0x59,
|
||||||
0xe3, 0x5c, 0x96, 0x72, 0x6c, 0x6e, 0x40, 0xf8, 0x5d, 0x57, 0x54, 0x42, 0x87, 0x93, 0x7e, 0xaa,
|
0xea, 0x69, 0x2d, 0x72, 0x7b, 0xc8, 0x1c, 0xe2, 0xb9, 0x77, 0x1c, 0xdd, 0x71, 0x83, 0x64, 0x2f,
|
||||||
0x12, 0xee, 0x0a, 0x00, 0x0e, 0xe1, 0x89, 0xfd, 0xf9, 0x17, 0x06, 0x80, 0xdc, 0x13, 0xb6, 0x87,
|
0xc4, 0xde, 0x79, 0xc0, 0x81, 0x38, 0xc0, 0xdd, 0x59, 0xe5, 0x17, 0xd1, 0xdf, 0x3c, 0x6f, 0xcc,
|
||||||
0x62, 0xb7, 0x5b, 0x85, 0x59, 0x51, 0x62, 0xc7, 0x0d, 0x93, 0x29, 0x20, 0x31, 0xe8, 0x21, 0x14,
|
0x3d, 0x7b, 0xde, 0x98, 0xfb, 0xe8, 0xb9, 0xbc, 0x94, 0xfe, 0x18, 0xca, 0xf1, 0x3a, 0xf2, 0x39,
|
||||||
0x7d, 0x39, 0x5e, 0xa8, 0x8f, 0x7f, 0x6f, 0x4e, 0x8c, 0x1a, 0xf5, 0x2f, 0x9b, 0x26, 0xb6, 0x9e,
|
0xab, 0x54, 0x7f, 0x0a, 0x25, 0x9e, 0x49, 0xe1, 0x1a, 0x7d, 0xcd, 0xf0, 0x48, 0xb7, 0xf5, 0x5c,
|
||||||
0x6c, 0x9f, 0x71, 0xe2, 0x09, 0x1b, 0xe3, 0x88, 0x09, 0x67, 0x14, 0xac, 0x84, 0xb5, 0x5f, 0x7f,
|
0x96, 0xb6, 0xae, 0x6e, 0x41, 0xf0, 0xf6, 0xcc, 0x3b, 0xa1, 0xe5, 0x93, 0x6e, 0xaa, 0x13, 0xee,
|
||||||
0xfe, 0xa2, 0x3e, 0xf3, 0xf1, 0x8b, 0xfa, 0xcc, 0xdf, 0x5e, 0xd4, 0x67, 0x3e, 0xb8, 0xa8, 0x1b,
|
0x73, 0x00, 0x0e, 0xe0, 0x89, 0x7b, 0xf8, 0xaf, 0x15, 0x00, 0x71, 0xdf, 0xd8, 0xed, 0xf3, 0x3b,
|
||||||
0xcf, 0x2f, 0xea, 0xc6, 0xc7, 0x17, 0x75, 0xe3, 0x1f, 0x17, 0x75, 0xe3, 0xe9, 0x3f, 0xeb, 0x33,
|
0xe2, 0x3a, 0xcc, 0xf3, 0x16, 0x3b, 0x6e, 0x98, 0x28, 0x01, 0x81, 0x41, 0x0f, 0xa1, 0xe8, 0x8a,
|
||||||
0xef, 0xe5, 0x86, 0xeb, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x99, 0xeb, 0x4a, 0xdd, 0xf4, 0x1a,
|
0x35, 0x45, 0x3e, 0x50, 0xbe, 0x35, 0x35, 0x6b, 0xe4, 0xbf, 0x95, 0x9a, 0x58, 0x7f, 0xba, 0x7b,
|
||||||
0x00, 0x00,
|
0xe1, 0x13, 0x87, 0xdb, 0x18, 0x67, 0x4c, 0xb0, 0xeb, 0x60, 0x29, 0x4c, 0x7b, 0xe3, 0xc5, 0xcb,
|
||||||
|
0xfa, 0xdc, 0xc7, 0x2f, 0xeb, 0x73, 0xff, 0x7c, 0x59, 0x9f, 0xfb, 0x60, 0x54, 0x57, 0x5e, 0x8c,
|
||||||
|
0xea, 0xca, 0xc7, 0xa3, 0xba, 0xf2, 0xef, 0x51, 0x5d, 0x79, 0xf6, 0x49, 0x7d, 0xee, 0x71, 0xae,
|
||||||
|
0xbf, 0xf9, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb1, 0xe8, 0xc1, 0x2f, 0x98, 0x1b, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,10 +121,18 @@ message DeleteOptions {
|
|||||||
// +optional
|
// +optional
|
||||||
optional Preconditions preconditions = 2;
|
optional Preconditions preconditions = 2;
|
||||||
|
|
||||||
|
// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
|
||||||
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
||||||
// finalizer will be added to/removed from the object's finalizers list.
|
// finalizer will be added to/removed from the object's finalizers list.
|
||||||
|
// Either this field or PropagationPolicy may be set, but not both.
|
||||||
// +optional
|
// +optional
|
||||||
optional bool orphanDependents = 3;
|
optional bool orphanDependents = 3;
|
||||||
|
|
||||||
|
// Whether and how garbage collection will be performed.
|
||||||
|
// Defaults to Default.
|
||||||
|
// Either this field or OrphanDependents may be set, but not both.
|
||||||
|
// +optional
|
||||||
|
optional string propagationPolicy = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Duration is a wrapper around time.Duration which supports correct
|
// Duration is a wrapper around time.Duration which supports correct
|
||||||
@@ -469,6 +477,15 @@ message OwnerReference {
|
|||||||
// If true, this reference points to the managing controller.
|
// If true, this reference points to the managing controller.
|
||||||
// +optional
|
// +optional
|
||||||
optional bool controller = 6;
|
optional bool controller = 6;
|
||||||
|
|
||||||
|
// If true, AND if the owner has the "foregroundDeletion" finalizer, then
|
||||||
|
// the owner cannot be deleted from the key-value store until this
|
||||||
|
// reference is removed.
|
||||||
|
// Defaults to false.
|
||||||
|
// To set this field, a user needs "delete" permission of the owner,
|
||||||
|
// otherwise 422 (Unprocessable Entity) will be returned.
|
||||||
|
// +optional
|
||||||
|
optional bool blockOwnerDeletion = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
|
// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
|
||||||
|
|||||||
@@ -174,6 +174,10 @@ func (meta *ObjectMeta) GetOwnerReferences() []OwnerReference {
|
|||||||
value := *meta.OwnerReferences[i].Controller
|
value := *meta.OwnerReferences[i].Controller
|
||||||
ret[i].Controller = &value
|
ret[i].Controller = &value
|
||||||
}
|
}
|
||||||
|
if meta.OwnerReferences[i].BlockOwnerDeletion != nil {
|
||||||
|
value := *meta.OwnerReferences[i].BlockOwnerDeletion
|
||||||
|
ret[i].BlockOwnerDeletion = &value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
@@ -189,6 +193,10 @@ func (meta *ObjectMeta) SetOwnerReferences(references []OwnerReference) {
|
|||||||
value := *references[i].Controller
|
value := *references[i].Controller
|
||||||
newReferences[i].Controller = &value
|
newReferences[i].Controller = &value
|
||||||
}
|
}
|
||||||
|
if references[i].BlockOwnerDeletion != nil {
|
||||||
|
value := *references[i].BlockOwnerDeletion
|
||||||
|
newReferences[i].BlockOwnerDeletion = &value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
meta.OwnerReferences = newReferences
|
meta.OwnerReferences = newReferences
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,8 @@ type ListMeta struct {
|
|||||||
|
|
||||||
// These are internal finalizer values for Kubernetes-like APIs, must be qualified name unless defined here
|
// These are internal finalizer values for Kubernetes-like APIs, must be qualified name unless defined here
|
||||||
const (
|
const (
|
||||||
FinalizerOrphan string = "orphan"
|
FinalizerOrphanDependents string = "orphan"
|
||||||
|
FinalizerDeleteDependents string = "foregroundDeletion"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ObjectMeta is metadata that all persisted resources must have, which includes all objects
|
// ObjectMeta is metadata that all persisted resources must have, which includes all objects
|
||||||
@@ -255,6 +256,14 @@ type OwnerReference struct {
|
|||||||
// If true, this reference points to the managing controller.
|
// If true, this reference points to the managing controller.
|
||||||
// +optional
|
// +optional
|
||||||
Controller *bool `json:"controller,omitempty" protobuf:"varint,6,opt,name=controller"`
|
Controller *bool `json:"controller,omitempty" protobuf:"varint,6,opt,name=controller"`
|
||||||
|
// If true, AND if the owner has the "foregroundDeletion" finalizer, then
|
||||||
|
// the owner cannot be deleted from the key-value store until this
|
||||||
|
// reference is removed.
|
||||||
|
// Defaults to false.
|
||||||
|
// To set this field, a user needs "delete" permission of the owner,
|
||||||
|
// otherwise 422 (Unprocessable Entity) will be returned.
|
||||||
|
// +optional
|
||||||
|
BlockOwnerDeletion *bool `json:"blockOwnerDeletion,omitempty" protobuf:"varint,7,opt,name=blockOwnerDeletion"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListOptions is the query options to a standard REST list call.
|
// ListOptions is the query options to a standard REST list call.
|
||||||
@@ -305,6 +314,24 @@ type GetOptions struct {
|
|||||||
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,1,opt,name=resourceVersion"`
|
ResourceVersion string `json:"resourceVersion,omitempty" protobuf:"bytes,1,opt,name=resourceVersion"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeletionPropagation decides if a deletion will propagate to the dependents of
|
||||||
|
// the object, and how the garbage collector will handle the propagation.
|
||||||
|
type DeletionPropagation string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Orphans the dependents.
|
||||||
|
DeletePropagationOrphan DeletionPropagation = "Orphan"
|
||||||
|
// Deletes the object from the key-value store, the garbage collector will
|
||||||
|
// delete the dependents in the background.
|
||||||
|
DeletePropagationBackground DeletionPropagation = "Background"
|
||||||
|
// The object exists in the key-value store until the garbage collector
|
||||||
|
// deletes all the dependents whose ownerReference.blockOwnerDeletion=true
|
||||||
|
// from the key-value store. API sever will put the "foregroundDeletion"
|
||||||
|
// finalizer on the object, and sets its deletionTimestamp. This policy is
|
||||||
|
// cascading, i.e., the dependents will be deleted with Foreground.
|
||||||
|
DeletePropagationForeground DeletionPropagation = "Foreground"
|
||||||
|
)
|
||||||
|
|
||||||
// DeleteOptions may be provided when deleting an API object.
|
// DeleteOptions may be provided when deleting an API object.
|
||||||
type DeleteOptions struct {
|
type DeleteOptions struct {
|
||||||
TypeMeta `json:",inline"`
|
TypeMeta `json:",inline"`
|
||||||
@@ -321,10 +348,18 @@ type DeleteOptions struct {
|
|||||||
// +optional
|
// +optional
|
||||||
Preconditions *Preconditions `json:"preconditions,omitempty" protobuf:"bytes,2,opt,name=preconditions"`
|
Preconditions *Preconditions `json:"preconditions,omitempty" protobuf:"bytes,2,opt,name=preconditions"`
|
||||||
|
|
||||||
|
// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
|
||||||
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
||||||
// finalizer will be added to/removed from the object's finalizers list.
|
// finalizer will be added to/removed from the object's finalizers list.
|
||||||
|
// Either this field or PropagationPolicy may be set, but not both.
|
||||||
// +optional
|
// +optional
|
||||||
OrphanDependents *bool `json:"orphanDependents,omitempty" protobuf:"varint,3,opt,name=orphanDependents"`
|
OrphanDependents *bool `json:"orphanDependents,omitempty" protobuf:"varint,3,opt,name=orphanDependents"`
|
||||||
|
|
||||||
|
// Whether and how garbage collection will be performed.
|
||||||
|
// Defaults to Default.
|
||||||
|
// Either this field or OrphanDependents may be set, but not both.
|
||||||
|
// +optional
|
||||||
|
PropagationPolicy *DeletionPropagation `json:"propagationPolicy,omitempty" protobuf:"varint,4,opt,name=propagationPolicy"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
|
// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
|
||||||
|
|||||||
@@ -85,7 +85,8 @@ var map_DeleteOptions = map[string]string{
|
|||||||
"": "DeleteOptions may be provided when deleting an API object.",
|
"": "DeleteOptions may be provided when deleting an API object.",
|
||||||
"gracePeriodSeconds": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.",
|
"gracePeriodSeconds": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.",
|
||||||
"preconditions": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
|
"preconditions": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
|
||||||
"orphanDependents": "Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list.",
|
"orphanDependents": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
|
||||||
|
"propagationPolicy": "Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (DeleteOptions) SwaggerDoc() map[string]string {
|
func (DeleteOptions) SwaggerDoc() map[string]string {
|
||||||
@@ -195,6 +196,7 @@ var map_OwnerReference = map[string]string{
|
|||||||
"name": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
|
"name": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
|
||||||
"uid": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids",
|
"uid": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids",
|
||||||
"controller": "If true, this reference points to the managing controller.",
|
"controller": "If true, this reference points to the managing controller.",
|
||||||
|
"blockOwnerDeletion": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (OwnerReference) SwaggerDoc() map[string]string {
|
func (OwnerReference) SwaggerDoc() map[string]string {
|
||||||
|
|||||||
@@ -204,14 +204,23 @@ func (u *Unstructured) setNestedMap(value map[string]string, fields ...string) {
|
|||||||
|
|
||||||
func extractOwnerReference(src interface{}) metav1.OwnerReference {
|
func extractOwnerReference(src interface{}) metav1.OwnerReference {
|
||||||
v := src.(map[string]interface{})
|
v := src.(map[string]interface{})
|
||||||
controllerPtr, ok := (getNestedField(v, "controller")).(*bool)
|
// though this field is a *bool, but when decoded from JSON, it's
|
||||||
|
// unmarshalled as bool.
|
||||||
|
var controllerPtr *bool
|
||||||
|
controller, ok := (getNestedField(v, "controller")).(bool)
|
||||||
if !ok {
|
if !ok {
|
||||||
controllerPtr = nil
|
controllerPtr = nil
|
||||||
} else {
|
} else {
|
||||||
if controllerPtr != nil {
|
controllerCopy := controller
|
||||||
controller := *controllerPtr
|
controllerPtr = &controllerCopy
|
||||||
controllerPtr = &controller
|
|
||||||
}
|
}
|
||||||
|
var blockOwnerDeletionPtr *bool
|
||||||
|
blockOwnerDeletion, ok := (getNestedField(v, "blockOwnerDeletion")).(bool)
|
||||||
|
if !ok {
|
||||||
|
blockOwnerDeletionPtr = nil
|
||||||
|
} else {
|
||||||
|
blockOwnerDeletionCopy := blockOwnerDeletion
|
||||||
|
blockOwnerDeletionPtr = &blockOwnerDeletionCopy
|
||||||
}
|
}
|
||||||
return metav1.OwnerReference{
|
return metav1.OwnerReference{
|
||||||
Kind: getNestedString(v, "kind"),
|
Kind: getNestedString(v, "kind"),
|
||||||
@@ -219,6 +228,7 @@ func extractOwnerReference(src interface{}) metav1.OwnerReference {
|
|||||||
APIVersion: getNestedString(v, "apiVersion"),
|
APIVersion: getNestedString(v, "apiVersion"),
|
||||||
UID: (types.UID)(getNestedString(v, "uid")),
|
UID: (types.UID)(getNestedString(v, "uid")),
|
||||||
Controller: controllerPtr,
|
Controller: controllerPtr,
|
||||||
|
BlockOwnerDeletion: blockOwnerDeletionPtr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,11 +239,17 @@ func setOwnerReference(src metav1.OwnerReference) map[string]interface{} {
|
|||||||
controller := *controllerPtr
|
controller := *controllerPtr
|
||||||
controllerPtr = &controller
|
controllerPtr = &controller
|
||||||
}
|
}
|
||||||
|
blockOwnerDeletionPtr := src.BlockOwnerDeletion
|
||||||
|
if blockOwnerDeletionPtr != nil {
|
||||||
|
blockOwnerDeletion := *blockOwnerDeletionPtr
|
||||||
|
blockOwnerDeletionPtr = &blockOwnerDeletion
|
||||||
|
}
|
||||||
setNestedField(ret, src.Kind, "kind")
|
setNestedField(ret, src.Kind, "kind")
|
||||||
setNestedField(ret, src.Name, "name")
|
setNestedField(ret, src.Name, "name")
|
||||||
setNestedField(ret, src.APIVersion, "apiVersion")
|
setNestedField(ret, src.APIVersion, "apiVersion")
|
||||||
setNestedField(ret, string(src.UID), "uid")
|
setNestedField(ret, string(src.UID), "uid")
|
||||||
setNestedField(ret, controllerPtr, "controller")
|
setNestedField(ret, controllerPtr, "controller")
|
||||||
|
setNestedField(ret, blockOwnerDeletionPtr, "blockOwnerDeletion")
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ limitations under the License.
|
|||||||
package validation
|
package validation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/validation"
|
"k8s.io/apimachinery/pkg/util/validation"
|
||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||||
@@ -72,3 +74,17 @@ func ValidateLabels(labels map[string]string, fldPath *field.Path) field.ErrorLi
|
|||||||
}
|
}
|
||||||
return allErrs
|
return allErrs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ValidateDeleteOptions(options *metav1.DeleteOptions) field.ErrorList {
|
||||||
|
allErrs := field.ErrorList{}
|
||||||
|
if options.OrphanDependents != nil && options.PropagationPolicy != nil {
|
||||||
|
allErrs = append(allErrs, field.Invalid(field.NewPath(""), options, "OrphanDependents and DeletionPropagation cannot be both set"))
|
||||||
|
}
|
||||||
|
if options.PropagationPolicy != nil &&
|
||||||
|
*options.PropagationPolicy != metav1.DeletePropagationForeground &&
|
||||||
|
*options.PropagationPolicy != metav1.DeletePropagationBackground &&
|
||||||
|
*options.PropagationPolicy != metav1.DeletePropagationOrphan {
|
||||||
|
allErrs = append(allErrs, field.Invalid(field.NewPath(""), options, fmt.Sprintf("DeletionPropagation need to be one of %q, %q, %q or nil", metav1.DeletePropagationForeground, metav1.DeletePropagationBackground, metav1.DeletePropagationOrphan)))
|
||||||
|
}
|
||||||
|
return allErrs
|
||||||
|
}
|
||||||
|
|||||||
@@ -186,6 +186,11 @@ func DeepCopy_v1_DeleteOptions(in interface{}, out interface{}, c *conversion.Cl
|
|||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.PropagationPolicy != nil {
|
||||||
|
in, out := &in.PropagationPolicy, &out.PropagationPolicy
|
||||||
|
*out = new(DeletionPropagation)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -412,6 +417,11 @@ func DeepCopy_v1_OwnerReference(in interface{}, out interface{}, c *conversion.C
|
|||||||
*out = new(bool)
|
*out = new(bool)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
|
if in.BlockOwnerDeletion != nil {
|
||||||
|
in, out := &in.BlockOwnerDeletion, &out.BlockOwnerDeletion
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1057,6 +1057,8 @@ func typeToJSON(typeName string) string {
|
|||||||
return "string"
|
return "string"
|
||||||
case "byte", "*byte":
|
case "byte", "*byte":
|
||||||
return "string"
|
return "string"
|
||||||
|
case "v1.DeletionPropagation", "*v1.DeletionPropagation":
|
||||||
|
return "string"
|
||||||
|
|
||||||
// TODO: Fix these when go-restful supports a way to specify an array query param:
|
// TODO: Fix these when go-restful supports a way to specify an array query param:
|
||||||
// https://github.com/emicklei/go-restful/issues/225
|
// https://github.com/emicklei/go-restful/issues/225
|
||||||
|
|||||||
@@ -531,52 +531,121 @@ var (
|
|||||||
errEmptiedFinalizers = fmt.Errorf("emptied finalizers")
|
errEmptiedFinalizers = fmt.Errorf("emptied finalizers")
|
||||||
)
|
)
|
||||||
|
|
||||||
// shouldUpdateFinalizers returns if we need to update the finalizers of the
|
// shouldUpdateFinalizerOrphanDependents returns if the finalizers need to be
|
||||||
// object, and the desired list of finalizers. When deciding whether to add
|
// updated for FinalizerOrphanDependents. In the order of highest to lowest
|
||||||
// the OrphanDependent finalizer, factors in the order of highest to lowest
|
// priority, there are three factors affect whether to add/remove the
|
||||||
// priority are:
|
// FinalizerOrphanDependents: options, existing finalizers of the object,
|
||||||
//
|
// and e.DeleteStrategy.DefaultGarbageCollectionPolicy.
|
||||||
// - options.OrphanDependents,
|
func shouldUpdateFinalizerOrphanDependents(e *Store, accessor metav1.Object, options *metav1.DeleteOptions) (shouldUpdate bool, shouldOrphan bool) {
|
||||||
// - existing finalizers of the object
|
shouldOrphan = false
|
||||||
// - e.DeleteStrategy.DefaultGarbageCollectionPolicy
|
|
||||||
func shouldUpdateFinalizers(e *Store, accessor metav1.Object, options *metav1.DeleteOptions) (shouldUpdate bool, newFinalizers []string) {
|
|
||||||
shouldOrphan := false
|
|
||||||
// Get default orphan policy from this REST object type
|
// Get default orphan policy from this REST object type
|
||||||
if gcStrategy, ok := e.DeleteStrategy.(rest.GarbageCollectionDeleteStrategy); ok {
|
if gcStrategy, ok := e.DeleteStrategy.(rest.GarbageCollectionDeleteStrategy); ok {
|
||||||
if gcStrategy.DefaultGarbageCollectionPolicy() == rest.OrphanDependents {
|
if gcStrategy.DefaultGarbageCollectionPolicy() == rest.OrphanDependents {
|
||||||
shouldOrphan = true
|
shouldOrphan = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a finalizer is set in the object, it overrides the default
|
// If a finalizer is set in the object, it overrides the default
|
||||||
hasOrphanFinalizer := false
|
hasOrphanFinalizer := false
|
||||||
finalizers := accessor.GetFinalizers()
|
finalizers := accessor.GetFinalizers()
|
||||||
for _, f := range finalizers {
|
for _, f := range finalizers {
|
||||||
if f == metav1.FinalizerOrphan {
|
// validation should make sure the two cases won't be true at the same
|
||||||
|
// time.
|
||||||
|
switch f {
|
||||||
|
case metav1.FinalizerOrphanDependents:
|
||||||
shouldOrphan = true
|
shouldOrphan = true
|
||||||
hasOrphanFinalizer = true
|
hasOrphanFinalizer = true
|
||||||
break
|
break
|
||||||
|
case metav1.FinalizerDeleteDependents:
|
||||||
|
shouldOrphan = false
|
||||||
|
break
|
||||||
}
|
}
|
||||||
// TODO: update this when we add a finalizer indicating a preference for the other behavior
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If an explicit policy was set at deletion time, that overrides both
|
// If an explicit policy was set at deletion time, that overrides both
|
||||||
if options != nil && options.OrphanDependents != nil {
|
if options != nil && options.OrphanDependents != nil {
|
||||||
shouldOrphan = *options.OrphanDependents
|
shouldOrphan = *options.OrphanDependents
|
||||||
}
|
}
|
||||||
if shouldOrphan && !hasOrphanFinalizer {
|
if options != nil && options.PropagationPolicy != nil {
|
||||||
finalizers = append(finalizers, metav1.FinalizerOrphan)
|
switch *options.PropagationPolicy {
|
||||||
return true, finalizers
|
case metav1.DeletePropagationOrphan:
|
||||||
|
shouldOrphan = true
|
||||||
|
case metav1.DeletePropagationBackground, metav1.DeletePropagationForeground:
|
||||||
|
shouldOrphan = false
|
||||||
}
|
}
|
||||||
if !shouldOrphan && hasOrphanFinalizer {
|
}
|
||||||
var newFinalizers []string
|
|
||||||
|
shouldUpdate = shouldOrphan != hasOrphanFinalizer
|
||||||
|
return shouldUpdate, shouldOrphan
|
||||||
|
}
|
||||||
|
|
||||||
|
// shouldUpdateFinalizerDeleteDependents returns if the finalizers need to be
|
||||||
|
// updated for FinalizerDeleteDependents. In the order of highest to lowest
|
||||||
|
// priority, there are three factors affect whether to add/remove the
|
||||||
|
// FinalizerDeleteDependents: options, existing finalizers of the object, and
|
||||||
|
// e.DeleteStrategy.DefaultGarbageCollectionPolicy.
|
||||||
|
func shouldUpdateFinalizerDeleteDependents(e *Store, accessor metav1.Object, options *metav1.DeleteOptions) (shouldUpdate bool, shouldDeleteDependentInForeground bool) {
|
||||||
|
// default to false
|
||||||
|
shouldDeleteDependentInForeground = false
|
||||||
|
|
||||||
|
// If a finalizer is set in the object, it overrides the default
|
||||||
|
hasFinalizerDeleteDependents := false
|
||||||
|
finalizers := accessor.GetFinalizers()
|
||||||
for _, f := range finalizers {
|
for _, f := range finalizers {
|
||||||
if f == metav1.FinalizerOrphan {
|
// validation has made sure the two cases won't be true at the same
|
||||||
|
// time.
|
||||||
|
switch f {
|
||||||
|
case metav1.FinalizerDeleteDependents:
|
||||||
|
shouldDeleteDependentInForeground = true
|
||||||
|
hasFinalizerDeleteDependents = true
|
||||||
|
break
|
||||||
|
case metav1.FinalizerOrphanDependents:
|
||||||
|
shouldDeleteDependentInForeground = false
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If an explicit policy was set at deletion time, that overrides both
|
||||||
|
if options != nil && options.OrphanDependents != nil {
|
||||||
|
shouldDeleteDependentInForeground = false
|
||||||
|
}
|
||||||
|
if options != nil && options.PropagationPolicy != nil {
|
||||||
|
switch *options.PropagationPolicy {
|
||||||
|
case metav1.DeletePropagationForeground:
|
||||||
|
shouldDeleteDependentInForeground = true
|
||||||
|
case metav1.DeletePropagationBackground, metav1.DeletePropagationOrphan:
|
||||||
|
shouldDeleteDependentInForeground = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
shouldUpdate = shouldDeleteDependentInForeground != hasFinalizerDeleteDependents
|
||||||
|
return shouldUpdate, shouldDeleteDependentInForeground
|
||||||
|
}
|
||||||
|
|
||||||
|
// shouldUpdateFinalizers returns if we need to update the finalizers of the
|
||||||
|
// object, and the desired list of finalizers.
|
||||||
|
func shouldUpdateFinalizers(e *Store, accessor metav1.Object, options *metav1.DeleteOptions) (shouldUpdate bool, newFinalizers []string) {
|
||||||
|
shouldUpdate1, shouldOrphan := shouldUpdateFinalizerOrphanDependents(e, accessor, options)
|
||||||
|
shouldUpdate2, shouldDeleteDependentInForeground := shouldUpdateFinalizerDeleteDependents(e, accessor, options)
|
||||||
|
oldFinalizers := accessor.GetFinalizers()
|
||||||
|
if !shouldUpdate1 && !shouldUpdate2 {
|
||||||
|
return false, oldFinalizers
|
||||||
|
}
|
||||||
|
|
||||||
|
// first remove both finalizers, add them back if needed.
|
||||||
|
for _, f := range oldFinalizers {
|
||||||
|
if f == metav1.FinalizerOrphanDependents || f == metav1.FinalizerDeleteDependents {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
newFinalizers = append(newFinalizers, f)
|
newFinalizers = append(newFinalizers, f)
|
||||||
}
|
}
|
||||||
return true, newFinalizers
|
if shouldOrphan {
|
||||||
|
newFinalizers = append(newFinalizers, metav1.FinalizerOrphanDependents)
|
||||||
}
|
}
|
||||||
return false, finalizers
|
if shouldDeleteDependentInForeground {
|
||||||
|
newFinalizers = append(newFinalizers, metav1.FinalizerDeleteDependents)
|
||||||
|
}
|
||||||
|
return true, newFinalizers
|
||||||
}
|
}
|
||||||
|
|
||||||
// markAsDeleting sets the obj's DeletionGracePeriodSeconds to 0, and sets the
|
// markAsDeleting sets the obj's DeletionGracePeriodSeconds to 0, and sets the
|
||||||
|
|||||||
@@ -818,7 +818,7 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
initialGeneration := int64(1)
|
initialGeneration := int64(1)
|
||||||
podWithOrphanFinalizer := func(name string) *example.Pod {
|
podWithOrphanFinalizer := func(name string) *example.Pod {
|
||||||
return &example.Pod{
|
return &example.Pod{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: name, Finalizers: []string{"foo.com/x", metav1.FinalizerOrphan, "bar.com/y"}, Generation: initialGeneration},
|
ObjectMeta: metav1.ObjectMeta{Name: name, Finalizers: []string{"foo.com/x", metav1.FinalizerOrphanDependents, "bar.com/y"}, Generation: initialGeneration},
|
||||||
Spec: example.PodSpec{NodeName: "machine"},
|
Spec: example.PodSpec{NodeName: "machine"},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -836,7 +836,7 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
}
|
}
|
||||||
podWithOnlyOrphanFinalizer := func(name string) *example.Pod {
|
podWithOnlyOrphanFinalizer := func(name string) *example.Pod {
|
||||||
return &example.Pod{
|
return &example.Pod{
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: name, Finalizers: []string{metav1.FinalizerOrphan}, Generation: initialGeneration},
|
ObjectMeta: metav1.ObjectMeta{Name: name, Finalizers: []string{metav1.FinalizerOrphanDependents}, Generation: initialGeneration},
|
||||||
Spec: example.PodSpec{NodeName: "machine"},
|
Spec: example.PodSpec{NodeName: "machine"},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -864,28 +864,28 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
orphanOptions,
|
orphanOptions,
|
||||||
defaultDeleteStrategy,
|
defaultDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{"foo.com/x", metav1.FinalizerOrphan, "bar.com/y"},
|
[]string{"foo.com/x", metav1.FinalizerOrphanDependents, "bar.com/y"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOtherFinalizers("pod2"),
|
podWithOtherFinalizers("pod2"),
|
||||||
orphanOptions,
|
orphanOptions,
|
||||||
defaultDeleteStrategy,
|
defaultDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{"foo.com/x", "bar.com/y", metav1.FinalizerOrphan},
|
[]string{"foo.com/x", "bar.com/y", metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithNoFinalizer("pod3"),
|
podWithNoFinalizer("pod3"),
|
||||||
orphanOptions,
|
orphanOptions,
|
||||||
defaultDeleteStrategy,
|
defaultDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{metav1.FinalizerOrphan},
|
[]string{metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOnlyOrphanFinalizer("pod4"),
|
podWithOnlyOrphanFinalizer("pod4"),
|
||||||
orphanOptions,
|
orphanOptions,
|
||||||
defaultDeleteStrategy,
|
defaultDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{metav1.FinalizerOrphan},
|
[]string{metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
// cases run with DeleteOptions.OrphanDedependents=false
|
// cases run with DeleteOptions.OrphanDedependents=false
|
||||||
// these cases all have oprhanDeleteStrategy, which should be ignored
|
// these cases all have oprhanDeleteStrategy, which should be ignored
|
||||||
@@ -927,14 +927,14 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
nilOrphanOptions,
|
nilOrphanOptions,
|
||||||
defaultDeleteStrategy,
|
defaultDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{"foo.com/x", metav1.FinalizerOrphan, "bar.com/y"},
|
[]string{"foo.com/x", metav1.FinalizerOrphanDependents, "bar.com/y"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOrphanFinalizer("pod10"),
|
podWithOrphanFinalizer("pod10"),
|
||||||
nilOrphanOptions,
|
nilOrphanOptions,
|
||||||
orphanDeleteStrategy,
|
orphanDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{"foo.com/x", metav1.FinalizerOrphan, "bar.com/y"},
|
[]string{"foo.com/x", metav1.FinalizerOrphanDependents, "bar.com/y"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOtherFinalizers("pod11"),
|
podWithOtherFinalizers("pod11"),
|
||||||
@@ -948,7 +948,7 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
nilOrphanOptions,
|
nilOrphanOptions,
|
||||||
orphanDeleteStrategy,
|
orphanDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{"foo.com/x", "bar.com/y", metav1.FinalizerOrphan},
|
[]string{"foo.com/x", "bar.com/y", metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithNoFinalizer("pod13"),
|
podWithNoFinalizer("pod13"),
|
||||||
@@ -962,21 +962,21 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
nilOrphanOptions,
|
nilOrphanOptions,
|
||||||
orphanDeleteStrategy,
|
orphanDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{metav1.FinalizerOrphan},
|
[]string{metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOnlyOrphanFinalizer("pod15"),
|
podWithOnlyOrphanFinalizer("pod15"),
|
||||||
nilOrphanOptions,
|
nilOrphanOptions,
|
||||||
defaultDeleteStrategy,
|
defaultDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{metav1.FinalizerOrphan},
|
[]string{metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOnlyOrphanFinalizer("pod16"),
|
podWithOnlyOrphanFinalizer("pod16"),
|
||||||
nilOrphanOptions,
|
nilOrphanOptions,
|
||||||
orphanDeleteStrategy,
|
orphanDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{metav1.FinalizerOrphan},
|
[]string{metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
|
|
||||||
// cases run with nil DeleteOptions should have exact same behavior.
|
// cases run with nil DeleteOptions should have exact same behavior.
|
||||||
@@ -987,14 +987,14 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
nil,
|
nil,
|
||||||
defaultDeleteStrategy,
|
defaultDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{"foo.com/x", metav1.FinalizerOrphan, "bar.com/y"},
|
[]string{"foo.com/x", metav1.FinalizerOrphanDependents, "bar.com/y"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOrphanFinalizer("pod18"),
|
podWithOrphanFinalizer("pod18"),
|
||||||
nil,
|
nil,
|
||||||
orphanDeleteStrategy,
|
orphanDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{"foo.com/x", metav1.FinalizerOrphan, "bar.com/y"},
|
[]string{"foo.com/x", metav1.FinalizerOrphanDependents, "bar.com/y"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOtherFinalizers("pod19"),
|
podWithOtherFinalizers("pod19"),
|
||||||
@@ -1008,7 +1008,7 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
nil,
|
nil,
|
||||||
orphanDeleteStrategy,
|
orphanDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{"foo.com/x", "bar.com/y", metav1.FinalizerOrphan},
|
[]string{"foo.com/x", "bar.com/y", metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithNoFinalizer("pod21"),
|
podWithNoFinalizer("pod21"),
|
||||||
@@ -1022,21 +1022,21 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
nil,
|
nil,
|
||||||
orphanDeleteStrategy,
|
orphanDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{metav1.FinalizerOrphan},
|
[]string{metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOnlyOrphanFinalizer("pod23"),
|
podWithOnlyOrphanFinalizer("pod23"),
|
||||||
nil,
|
nil,
|
||||||
defaultDeleteStrategy,
|
defaultDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{metav1.FinalizerOrphan},
|
[]string{metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
podWithOnlyOrphanFinalizer("pod24"),
|
podWithOnlyOrphanFinalizer("pod24"),
|
||||||
nil,
|
nil,
|
||||||
orphanDeleteStrategy,
|
orphanDeleteStrategy,
|
||||||
false,
|
false,
|
||||||
[]string{metav1.FinalizerOrphan},
|
[]string{metav1.FinalizerOrphanDependents},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1084,6 +1084,225 @@ func TestStoreDeleteWithOrphanDependents(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Test the DeleteOptions.PropagationPolicy is handled correctly
|
||||||
|
func TestStoreDeletionPropagation(t *testing.T) {
|
||||||
|
initialGeneration := int64(1)
|
||||||
|
|
||||||
|
// defaultDeleteStrategy doesn't implement rest.GarbageCollectionDeleteStrategy.
|
||||||
|
defaultDeleteStrategy := &testRESTStrategy{scheme, names.SimpleNameGenerator, true, false, true}
|
||||||
|
// orphanDeleteStrategy indicates the default garbage collection policy is
|
||||||
|
// to orphan dependentes.
|
||||||
|
orphanDeleteStrategy := &testOrphanDeleteStrategy{defaultDeleteStrategy}
|
||||||
|
|
||||||
|
foregroundPolicy := metav1.DeletePropagationForeground
|
||||||
|
backgroundPolicy := metav1.DeletePropagationBackground
|
||||||
|
orphanPolicy := metav1.DeletePropagationOrphan
|
||||||
|
|
||||||
|
testcases := map[string]struct {
|
||||||
|
options *metav1.DeleteOptions
|
||||||
|
strategy rest.RESTDeleteStrategy
|
||||||
|
// finalizers that are already set in the object
|
||||||
|
existingFinalizers []string
|
||||||
|
expectedNotFound bool
|
||||||
|
expectedFinalizers []string
|
||||||
|
}{
|
||||||
|
"no existing finalizers, PropagationPolicy=Foreground, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &foregroundPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
},
|
||||||
|
"no existing finalizers, PropagationPolicy=Foreground, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &foregroundPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
},
|
||||||
|
"no existing finalizers, PropagationPolicy=Background, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &backgroundPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
expectedNotFound: true,
|
||||||
|
},
|
||||||
|
"no existing finalizers, PropagationPolicy=Background, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &backgroundPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
expectedNotFound: true,
|
||||||
|
},
|
||||||
|
"no existing finalizers, PropagationPolicy=OrphanDependents, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &orphanPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
"no existing finalizers, PropagationPolicy=OrphanDependents, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &orphanPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
"no existing finalizers, PropagationPolicy=Default, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: nil},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
expectedNotFound: true,
|
||||||
|
},
|
||||||
|
"no existing finalizers, PropagationPolicy=Default, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: nil},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
|
||||||
|
// all cases in the following block have "existing orphan finalizer"
|
||||||
|
"existing orphan finalizer, PropagationPolicy=Foreground, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &foregroundPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
},
|
||||||
|
"existing orphan finalizer, PropagationPolicy=Foreground, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &foregroundPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
},
|
||||||
|
"existing orphan finalizer, PropagationPolicy=Background, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &backgroundPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
expectedNotFound: true,
|
||||||
|
},
|
||||||
|
"existing orphan finalizer, PropagationPolicy=Background, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &backgroundPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
expectedNotFound: true,
|
||||||
|
},
|
||||||
|
"existing orphan finalizer, PropagationPolicy=OrphanDependents, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &orphanPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
"existing orphan finalizer, PropagationPolicy=OrphanDependents, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &orphanPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
"existing orphan finalizer, PropagationPolicy=Default, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: nil},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
"existing orphan finalizer, PropagationPolicy=Default, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: nil},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
|
||||||
|
// all cases in the following block have "existing deleteDependents finalizer"
|
||||||
|
"existing deleteDependents finalizer, PropagationPolicy=Foreground, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &foregroundPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
},
|
||||||
|
"existing deleteDependents finalizer, PropagationPolicy=Foreground, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &foregroundPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
},
|
||||||
|
"existing deleteDependents finalizer, PropagationPolicy=Background, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &backgroundPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
expectedNotFound: true,
|
||||||
|
},
|
||||||
|
"existing deleteDependents finalizer, PropagationPolicy=Background, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &backgroundPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
expectedNotFound: true,
|
||||||
|
},
|
||||||
|
"existing deleteDependents finalizer, PropagationPolicy=OrphanDependents, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &orphanPolicy},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
"existing deleteDependents finalizer, PropagationPolicy=OrphanDependents, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: &orphanPolicy},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerOrphanDependents},
|
||||||
|
},
|
||||||
|
"existing deleteDependents finalizer, PropagationPolicy=Default, defaultDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: nil},
|
||||||
|
strategy: defaultDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
},
|
||||||
|
"existing deleteDependents finalizer, PropagationPolicy=Default, orphanDeleteStrategy": {
|
||||||
|
options: &metav1.DeleteOptions{PropagationPolicy: nil},
|
||||||
|
strategy: orphanDeleteStrategy,
|
||||||
|
existingFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
expectedFinalizers: []string{metav1.FinalizerDeleteDependents},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
testContext := genericapirequest.WithNamespace(genericapirequest.NewContext(), "test")
|
||||||
|
destroyFunc, registry := NewTestGenericStoreRegistry(t)
|
||||||
|
registry.EnableGarbageCollection = true
|
||||||
|
defer destroyFunc()
|
||||||
|
|
||||||
|
createPod := func(i int, finalizers []string) *example.Pod {
|
||||||
|
return &example.Pod{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{Name: fmt.Sprintf("pod-%d", i), Finalizers: finalizers, Generation: initialGeneration},
|
||||||
|
Spec: example.PodSpec{NodeName: "machine"},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i := 0
|
||||||
|
for title, tc := range testcases {
|
||||||
|
t.Logf("case title: %s", title)
|
||||||
|
registry.DeleteStrategy = tc.strategy
|
||||||
|
i++
|
||||||
|
pod := createPod(i, tc.existingFinalizers)
|
||||||
|
// create pod
|
||||||
|
_, err := registry.Create(testContext, pod)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
_, _, err = registry.Delete(testContext, pod.Name, tc.options)
|
||||||
|
obj, err := registry.Get(testContext, pod.Name, &metav1.GetOptions{})
|
||||||
|
if tc.expectedNotFound {
|
||||||
|
if err == nil || !errors.IsNotFound(err) {
|
||||||
|
t.Fatalf("Unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !tc.expectedNotFound && err != nil {
|
||||||
|
t.Fatalf("Unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
if !tc.expectedNotFound {
|
||||||
|
pod, ok := obj.(*example.Pod)
|
||||||
|
if !ok {
|
||||||
|
t.Fatalf("Expect the object to be a pod, but got %#v", obj)
|
||||||
|
}
|
||||||
|
if e, a := tc.expectedFinalizers, pod.ObjectMeta.Finalizers; !reflect.DeepEqual(e, a) {
|
||||||
|
t.Errorf("%v: Expect object %s to have finalizers %v, got %v", pod.Name, pod.ObjectMeta.Name, e, a)
|
||||||
|
}
|
||||||
|
if pod.ObjectMeta.DeletionTimestamp == nil {
|
||||||
|
t.Errorf("%v: Expect the object to have DeletionTimestamp set, but got %#v", pod.Name, pod.ObjectMeta)
|
||||||
|
}
|
||||||
|
if pod.ObjectMeta.DeletionGracePeriodSeconds == nil || *pod.ObjectMeta.DeletionGracePeriodSeconds != 0 {
|
||||||
|
t.Errorf("%v: Expect the object to have 0 DeletionGracePeriodSecond, but got %#v", pod.Name, pod.ObjectMeta)
|
||||||
|
}
|
||||||
|
if pod.Generation <= initialGeneration {
|
||||||
|
t.Errorf("%v: Deletion didn't increase Generation.", pod.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestStoreDeleteCollection(t *testing.T) {
|
func TestStoreDeleteCollection(t *testing.T) {
|
||||||
podA := &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}
|
podA := &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}
|
||||||
podB := &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "bar"}}
|
podB := &example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "bar"}}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1/validation"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
@@ -66,6 +67,9 @@ func BeforeDelete(strategy RESTDeleteStrategy, ctx genericapirequest.Context, ob
|
|||||||
if kerr != nil {
|
if kerr != nil {
|
||||||
return false, false, kerr
|
return false, false, kerr
|
||||||
}
|
}
|
||||||
|
if errs := validation.ValidateDeleteOptions(options); len(errs) > 0 {
|
||||||
|
return false, false, errors.NewInvalid(schema.GroupKind{}, "", errs)
|
||||||
|
}
|
||||||
// Checking the Preconditions here to fail early. They'll be enforced later on when we actually do the deletion, too.
|
// Checking the Preconditions here to fail early. They'll be enforced later on when we actually do the deletion, too.
|
||||||
if options.Preconditions != nil && options.Preconditions.UID != nil && *options.Preconditions.UID != objectMeta.UID {
|
if options.Preconditions != nil && options.Preconditions.UID != nil && *options.Preconditions.UID != objectMeta.UID {
|
||||||
return false, false, errors.NewConflict(schema.GroupResource{Group: gvk.Group, Resource: gvk.Kind}, objectMeta.Name, fmt.Errorf("the UID in the precondition (%s) does not match the UID in record (%s). The object might have been deleted and then recreated", *options.Preconditions.UID, objectMeta.UID))
|
return false, false, errors.NewConflict(schema.GroupResource{Group: gvk.Group, Resource: gvk.Kind}, objectMeta.Name, fmt.Errorf("the UID in the precondition (%s) does not match the UID in record (%s). The object might have been deleted and then recreated", *options.Preconditions.UID, objectMeta.UID))
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
genericvalidation "k8s.io/apimachinery/pkg/api/validation"
|
genericvalidation "k8s.io/apimachinery/pkg/api/validation"
|
||||||
|
"k8s.io/apimachinery/pkg/api/validation/path"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||||
@@ -60,7 +61,7 @@ type RESTUpdateStrategy interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: add other common fields that require global validation.
|
// TODO: add other common fields that require global validation.
|
||||||
func validateCommonFields(obj, old runtime.Object) (field.ErrorList, error) {
|
func validateCommonFields(obj, old runtime.Object, strategy RESTUpdateStrategy) (field.ErrorList, error) {
|
||||||
allErrs := field.ErrorList{}
|
allErrs := field.ErrorList{}
|
||||||
objectMeta, err := metav1.ObjectMetaFor(obj)
|
objectMeta, err := metav1.ObjectMetaFor(obj)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -70,6 +71,7 @@ func validateCommonFields(obj, old runtime.Object) (field.ErrorList, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to get old object metadata: %v", err)
|
return nil, fmt.Errorf("failed to get old object metadata: %v", err)
|
||||||
}
|
}
|
||||||
|
allErrs = append(allErrs, genericvalidation.ValidateObjectMeta(objectMeta, strategy.NamespaceScoped(), path.ValidatePathSegmentName, field.NewPath("metadata"))...)
|
||||||
allErrs = append(allErrs, genericvalidation.ValidateObjectMetaUpdate(objectMeta, oldObjectMeta, field.NewPath("metadata"))...)
|
allErrs = append(allErrs, genericvalidation.ValidateObjectMetaUpdate(objectMeta, oldObjectMeta, field.NewPath("metadata"))...)
|
||||||
|
|
||||||
return allErrs, nil
|
return allErrs, nil
|
||||||
@@ -103,7 +105,7 @@ func BeforeUpdate(strategy RESTUpdateStrategy, ctx genericapirequest.Context, ob
|
|||||||
objectMeta.ClusterName = ""
|
objectMeta.ClusterName = ""
|
||||||
|
|
||||||
// Ensure some common fields, like UID, are validated for all resources.
|
// Ensure some common fields, like UID, are validated for all resources.
|
||||||
errs, err := validateCommonFields(obj, old)
|
errs, err := validateCommonFields(obj, old, strategy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.NewInternalError(err)
|
return errors.NewInternalError(err)
|
||||||
}
|
}
|
||||||
|
|||||||
8
staging/src/k8s.io/client-go/Godeps/Godeps.json
generated
8
staging/src/k8s.io/client-go/Godeps/Godeps.json
generated
@@ -66,12 +66,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/docker/distribution/digest",
|
"ImportPath": "github.com/docker/distribution/digest",
|
||||||
"Comment": "v2.4.0-rc.1-38-gcd27f179",
|
"Comment": "v2.4.0-rc.1-38-gcd27f17",
|
||||||
"Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51"
|
"Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/docker/distribution/reference",
|
"ImportPath": "github.com/docker/distribution/reference",
|
||||||
"Comment": "v2.4.0-rc.1-38-gcd27f179",
|
"Comment": "v2.4.0-rc.1-38-gcd27f17",
|
||||||
"Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51"
|
"Rev": "cd27f179f2c10c5d300e6d09025b538c475b0d51"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -111,12 +111,12 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/gogo/protobuf/proto",
|
"ImportPath": "github.com/gogo/protobuf/proto",
|
||||||
"Comment": "v0.2-33-ge18d7aa8",
|
"Comment": "v0.2-33-ge18d7aa",
|
||||||
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
|
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "github.com/gogo/protobuf/sortkeys",
|
"ImportPath": "github.com/gogo/protobuf/sortkeys",
|
||||||
"Comment": "v0.2-33-ge18d7aa8",
|
"Comment": "v0.2-33-ge18d7aa",
|
||||||
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
|
"Rev": "e18d7aa8f8c624c915db340349aad4c49b10d173"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ func IsServiceIPRequested(service *Service) bool {
|
|||||||
|
|
||||||
var standardFinalizers = sets.NewString(
|
var standardFinalizers = sets.NewString(
|
||||||
string(FinalizerKubernetes),
|
string(FinalizerKubernetes),
|
||||||
metav1.FinalizerOrphan,
|
metav1.FinalizerOrphanDependents,
|
||||||
)
|
)
|
||||||
|
|
||||||
// HasAnnotation returns a bool if passed in annotation exists
|
// HasAnnotation returns a bool if passed in annotation exists
|
||||||
|
|||||||
@@ -3000,6 +3000,20 @@ type Preconditions struct {
|
|||||||
UID *types.UID
|
UID *types.UID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeletionPropagation decides whether and how garbage collection will be performed.
|
||||||
|
type DeletionPropagation string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Orphans the dependents.
|
||||||
|
DeletePropagationOrphan DeletionPropagation = "Orphan"
|
||||||
|
// Deletes the object from the key-value store, the garbage collector will delete the dependents in the background.
|
||||||
|
DeletePropagationBackground DeletionPropagation = "Background"
|
||||||
|
// The object exists in the key-value store until the garbage collector deletes all the dependents whose ownerReference.blockOwnerDeletion=true from the key-value store.
|
||||||
|
// API sever will put the "DeletingDependents" finalizer on the object, and sets its deletionTimestamp.
|
||||||
|
// This policy is cascading, i.e., the dependents will be deleted with Foreground.
|
||||||
|
DeletePropagationForeground DeletionPropagation = "Foreground"
|
||||||
|
)
|
||||||
|
|
||||||
// DeleteOptions may be provided when deleting an API object
|
// DeleteOptions may be provided when deleting an API object
|
||||||
// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
|
// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
|
||||||
type DeleteOptions struct {
|
type DeleteOptions struct {
|
||||||
@@ -3016,10 +3030,18 @@ type DeleteOptions struct {
|
|||||||
// +optional
|
// +optional
|
||||||
Preconditions *Preconditions
|
Preconditions *Preconditions
|
||||||
|
|
||||||
|
// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
|
||||||
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
||||||
// finalizer will be added to/removed from the object's finalizers list.
|
// finalizer will be added to/removed from the object's finalizers list.
|
||||||
|
// Either this field or PropagationPolicy may be set, but not both.
|
||||||
// +optional
|
// +optional
|
||||||
OrphanDependents *bool
|
OrphanDependents *bool
|
||||||
|
|
||||||
|
// Whether and how garbage collection will be performed.
|
||||||
|
// Defaults to Default.
|
||||||
|
// Either this field or OrphanDependents may be set, but not both.
|
||||||
|
// +optional
|
||||||
|
PropagationPolicy *DeletionPropagation
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListOptions is the query options to a standard REST list call, and has future support for
|
// ListOptions is the query options to a standard REST list call, and has future support for
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -680,10 +680,18 @@ message DeleteOptions {
|
|||||||
// +optional
|
// +optional
|
||||||
optional Preconditions preconditions = 2;
|
optional Preconditions preconditions = 2;
|
||||||
|
|
||||||
|
// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
|
||||||
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
||||||
// finalizer will be added to/removed from the object's finalizers list.
|
// finalizer will be added to/removed from the object's finalizers list.
|
||||||
|
// Either this field or PropagationPolicy may be set, but not both.
|
||||||
// +optional
|
// +optional
|
||||||
optional bool orphanDependents = 3;
|
optional bool orphanDependents = 3;
|
||||||
|
|
||||||
|
// Whether and how garbage collection will be performed.
|
||||||
|
// Defaults to Default.
|
||||||
|
// Either this field or OrphanDependents may be set, but not both.
|
||||||
|
// +optional
|
||||||
|
optional string propagationPolicy = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Represents downward API info for projecting into a projected volume.
|
// Represents downward API info for projecting into a projected volume.
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ func IsServiceIPRequested(service *Service) bool {
|
|||||||
|
|
||||||
var standardFinalizers = sets.NewString(
|
var standardFinalizers = sets.NewString(
|
||||||
string(FinalizerKubernetes),
|
string(FinalizerKubernetes),
|
||||||
metav1.FinalizerOrphan,
|
metav1.FinalizerOrphanDependents,
|
||||||
)
|
)
|
||||||
|
|
||||||
func IsStandardFinalizerName(str string) bool {
|
func IsStandardFinalizerName(str string) bool {
|
||||||
|
|||||||
@@ -63,6 +63,10 @@ func (meta *ObjectMeta) GetOwnerReferences() []metav1.OwnerReference {
|
|||||||
value := *meta.OwnerReferences[i].Controller
|
value := *meta.OwnerReferences[i].Controller
|
||||||
ret[i].Controller = &value
|
ret[i].Controller = &value
|
||||||
}
|
}
|
||||||
|
if meta.OwnerReferences[i].BlockOwnerDeletion != nil {
|
||||||
|
value := *meta.OwnerReferences[i].BlockOwnerDeletion
|
||||||
|
ret[i].BlockOwnerDeletion = &value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
@@ -78,6 +82,10 @@ func (meta *ObjectMeta) SetOwnerReferences(references []metav1.OwnerReference) {
|
|||||||
value := *references[i].Controller
|
value := *references[i].Controller
|
||||||
newReferences[i].Controller = &value
|
newReferences[i].Controller = &value
|
||||||
}
|
}
|
||||||
|
if references[i].BlockOwnerDeletion != nil {
|
||||||
|
value := *references[i].BlockOwnerDeletion
|
||||||
|
newReferences[i].BlockOwnerDeletion = &value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
meta.OwnerReferences = newReferences
|
meta.OwnerReferences = newReferences
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51338,6 +51338,32 @@ func (x *Preconditions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x DeletionPropagation) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||||
|
var h codecSelfer1234
|
||||||
|
z, r := codec1978.GenHelperEncoder(e)
|
||||||
|
_, _, _ = h, z, r
|
||||||
|
yym1 := z.EncBinary()
|
||||||
|
_ = yym1
|
||||||
|
if false {
|
||||||
|
} else if z.HasExtensions() && z.EncExt(x) {
|
||||||
|
} else {
|
||||||
|
r.EncodeString(codecSelferC_UTF81234, string(x))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DeletionPropagation) CodecDecodeSelf(d *codec1978.Decoder) {
|
||||||
|
var h codecSelfer1234
|
||||||
|
z, r := codec1978.GenHelperDecoder(d)
|
||||||
|
_, _, _ = h, z, r
|
||||||
|
yym1 := z.DecBinary()
|
||||||
|
_ = yym1
|
||||||
|
if false {
|
||||||
|
} else if z.HasExtensions() && z.DecExt(x) {
|
||||||
|
} else {
|
||||||
|
*((*string)(x)) = r.DecodeString()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||||
var h codecSelfer1234
|
var h codecSelfer1234
|
||||||
z, r := codec1978.GenHelperEncoder(e)
|
z, r := codec1978.GenHelperEncoder(e)
|
||||||
@@ -51352,7 +51378,7 @@ func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
|||||||
} else {
|
} else {
|
||||||
yysep2 := !z.EncBinary()
|
yysep2 := !z.EncBinary()
|
||||||
yy2arr2 := z.EncBasicHandle().StructToArray
|
yy2arr2 := z.EncBasicHandle().StructToArray
|
||||||
var yyq2 [5]bool
|
var yyq2 [6]bool
|
||||||
_, _, _ = yysep2, yyq2, yy2arr2
|
_, _, _ = yysep2, yyq2, yy2arr2
|
||||||
const yyr2 bool = false
|
const yyr2 bool = false
|
||||||
yyq2[0] = x.Kind != ""
|
yyq2[0] = x.Kind != ""
|
||||||
@@ -51362,9 +51388,9 @@ func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
|||||||
yyq2[4] = x.OrphanDependents != nil
|
yyq2[4] = x.OrphanDependents != nil
|
||||||
var yynn2 int
|
var yynn2 int
|
||||||
if yyr2 || yy2arr2 {
|
if yyr2 || yy2arr2 {
|
||||||
r.EncodeArrayStart(5)
|
r.EncodeArrayStart(6)
|
||||||
} else {
|
} else {
|
||||||
yynn2 = 0
|
yynn2 = 1
|
||||||
for _, b := range yyq2 {
|
for _, b := range yyq2 {
|
||||||
if b {
|
if b {
|
||||||
yynn2++
|
yynn2++
|
||||||
@@ -51516,6 +51542,25 @@ func (x *DeleteOptions) CodecEncodeSelf(e *codec1978.Encoder) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if yyr2 || yy2arr2 {
|
||||||
|
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||||
|
if x.PropagationPolicy == nil {
|
||||||
|
r.EncodeNil()
|
||||||
|
} else {
|
||||||
|
yy23 := *x.PropagationPolicy
|
||||||
|
yy23.CodecEncodeSelf(e)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
z.EncSendContainerState(codecSelfer_containerMapKey1234)
|
||||||
|
r.EncodeString(codecSelferC_UTF81234, string("PropagationPolicy"))
|
||||||
|
z.EncSendContainerState(codecSelfer_containerMapValue1234)
|
||||||
|
if x.PropagationPolicy == nil {
|
||||||
|
r.EncodeNil()
|
||||||
|
} else {
|
||||||
|
yy25 := *x.PropagationPolicy
|
||||||
|
yy25.CodecEncodeSelf(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
if yyr2 || yy2arr2 {
|
if yyr2 || yy2arr2 {
|
||||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
} else {
|
} else {
|
||||||
@@ -51644,6 +51689,17 @@ func (x *DeleteOptions) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
|||||||
*((*bool)(x.OrphanDependents)) = r.DecodeBool()
|
*((*bool)(x.OrphanDependents)) = r.DecodeBool()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
case "PropagationPolicy":
|
||||||
|
if r.TryDecodeAsNil() {
|
||||||
|
if x.PropagationPolicy != nil {
|
||||||
|
x.PropagationPolicy = nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if x.PropagationPolicy == nil {
|
||||||
|
x.PropagationPolicy = new(DeletionPropagation)
|
||||||
|
}
|
||||||
|
x.PropagationPolicy.CodecDecodeSelf(d)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
z.DecStructFieldNotFound(-1, yys3)
|
z.DecStructFieldNotFound(-1, yys3)
|
||||||
} // end switch yys3
|
} // end switch yys3
|
||||||
@@ -51655,16 +51711,16 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
var h codecSelfer1234
|
var h codecSelfer1234
|
||||||
z, r := codec1978.GenHelperDecoder(d)
|
z, r := codec1978.GenHelperDecoder(d)
|
||||||
_, _, _ = h, z, r
|
_, _, _ = h, z, r
|
||||||
var yyj13 int
|
var yyj14 int
|
||||||
var yyb13 bool
|
var yyb14 bool
|
||||||
var yyhl13 bool = l >= 0
|
var yyhl14 bool = l >= 0
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51672,21 +51728,21 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
if r.TryDecodeAsNil() {
|
if r.TryDecodeAsNil() {
|
||||||
x.Kind = ""
|
x.Kind = ""
|
||||||
} else {
|
} else {
|
||||||
yyv14 := &x.Kind
|
yyv15 := &x.Kind
|
||||||
yym15 := z.DecBinary()
|
yym16 := z.DecBinary()
|
||||||
_ = yym15
|
_ = yym16
|
||||||
if false {
|
if false {
|
||||||
} else {
|
} else {
|
||||||
*((*string)(yyv14)) = r.DecodeString()
|
*((*string)(yyv15)) = r.DecodeString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51694,21 +51750,21 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
if r.TryDecodeAsNil() {
|
if r.TryDecodeAsNil() {
|
||||||
x.APIVersion = ""
|
x.APIVersion = ""
|
||||||
} else {
|
} else {
|
||||||
yyv16 := &x.APIVersion
|
yyv17 := &x.APIVersion
|
||||||
yym17 := z.DecBinary()
|
yym18 := z.DecBinary()
|
||||||
_ = yym17
|
_ = yym18
|
||||||
if false {
|
if false {
|
||||||
} else {
|
} else {
|
||||||
*((*string)(yyv16)) = r.DecodeString()
|
*((*string)(yyv17)) = r.DecodeString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51721,20 +51777,20 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
if x.GracePeriodSeconds == nil {
|
if x.GracePeriodSeconds == nil {
|
||||||
x.GracePeriodSeconds = new(int64)
|
x.GracePeriodSeconds = new(int64)
|
||||||
}
|
}
|
||||||
yym19 := z.DecBinary()
|
yym20 := z.DecBinary()
|
||||||
_ = yym19
|
_ = yym20
|
||||||
if false {
|
if false {
|
||||||
} else {
|
} else {
|
||||||
*((*int64)(x.GracePeriodSeconds)) = int64(r.DecodeInt(64))
|
*((*int64)(x.GracePeriodSeconds)) = int64(r.DecodeInt(64))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51749,13 +51805,13 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
}
|
}
|
||||||
x.Preconditions.CodecDecodeSelf(d)
|
x.Preconditions.CodecDecodeSelf(d)
|
||||||
}
|
}
|
||||||
yyj13++
|
yyj14++
|
||||||
if yyhl13 {
|
if yyhl14 {
|
||||||
yyb13 = yyj13 > l
|
yyb14 = yyj14 > l
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -51768,25 +51824,46 @@ func (x *DeleteOptions) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
|
|||||||
if x.OrphanDependents == nil {
|
if x.OrphanDependents == nil {
|
||||||
x.OrphanDependents = new(bool)
|
x.OrphanDependents = new(bool)
|
||||||
}
|
}
|
||||||
yym22 := z.DecBinary()
|
yym23 := z.DecBinary()
|
||||||
_ = yym22
|
_ = yym23
|
||||||
if false {
|
if false {
|
||||||
} else {
|
} else {
|
||||||
*((*bool)(x.OrphanDependents)) = r.DecodeBool()
|
*((*bool)(x.OrphanDependents)) = r.DecodeBool()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for {
|
yyj14++
|
||||||
yyj13++
|
if yyhl14 {
|
||||||
if yyhl13 {
|
yyb14 = yyj14 > l
|
||||||
yyb13 = yyj13 > l
|
|
||||||
} else {
|
} else {
|
||||||
yyb13 = r.CheckBreak()
|
yyb14 = r.CheckBreak()
|
||||||
}
|
}
|
||||||
if yyb13 {
|
if yyb14 {
|
||||||
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||||
|
if r.TryDecodeAsNil() {
|
||||||
|
if x.PropagationPolicy != nil {
|
||||||
|
x.PropagationPolicy = nil
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if x.PropagationPolicy == nil {
|
||||||
|
x.PropagationPolicy = new(DeletionPropagation)
|
||||||
|
}
|
||||||
|
x.PropagationPolicy.CodecDecodeSelf(d)
|
||||||
|
}
|
||||||
|
for {
|
||||||
|
yyj14++
|
||||||
|
if yyhl14 {
|
||||||
|
yyb14 = yyj14 > l
|
||||||
|
} else {
|
||||||
|
yyb14 = r.CheckBreak()
|
||||||
|
}
|
||||||
|
if yyb14 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||||
z.DecStructFieldNotFound(yyj13-1, "")
|
z.DecStructFieldNotFound(yyj14-1, "")
|
||||||
}
|
}
|
||||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||||
}
|
}
|
||||||
@@ -65736,7 +65813,7 @@ func (x codecSelfer1234) decSlicev1_OwnerReference(v *[]pkg2_v1.OwnerReference,
|
|||||||
|
|
||||||
yyrg1 := len(yyv1) > 0
|
yyrg1 := len(yyv1) > 0
|
||||||
yyv21 := yyv1
|
yyv21 := yyv1
|
||||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 72)
|
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 80)
|
||||||
if yyrt1 {
|
if yyrt1 {
|
||||||
if yyrl1 <= cap(yyv1) {
|
if yyrl1 <= cap(yyv1) {
|
||||||
yyv1 = yyv1[:yyrl1]
|
yyv1 = yyv1[:yyrl1]
|
||||||
|
|||||||
@@ -3432,6 +3432,20 @@ type Preconditions struct {
|
|||||||
UID *types.UID `json:"uid,omitempty" protobuf:"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"`
|
UID *types.UID `json:"uid,omitempty" protobuf:"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeletionPropagation decides if a deletion will propagate to the dependents of the object, and how the garbage collector will handle the propagation.
|
||||||
|
type DeletionPropagation string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Orphans the dependents.
|
||||||
|
DeletePropagationOrphan DeletionPropagation = "Orphan"
|
||||||
|
// Deletes the object from the key-value store, the garbage collector will delete the dependents in the background.
|
||||||
|
DeletePropagationBackground DeletionPropagation = "Background"
|
||||||
|
// The object exists in the key-value store until the garbage collector deletes all the dependents whose ownerReference.blockOwnerDeletion=true from the key-value store.
|
||||||
|
// API sever will put the "DeletingDependents" finalizer on the object, and sets its deletionTimestamp.
|
||||||
|
// This policy is cascading, i.e., the dependents will be deleted with Foreground.
|
||||||
|
DeletePropagationForeground DeletionPropagation = "Foreground"
|
||||||
|
)
|
||||||
|
|
||||||
// DeleteOptions may be provided when deleting an API object
|
// DeleteOptions may be provided when deleting an API object
|
||||||
// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
|
// DEPRECATED: This type has been moved to meta/v1 and will be removed soon.
|
||||||
// +k8s:openapi-gen=false
|
// +k8s:openapi-gen=false
|
||||||
@@ -3450,10 +3464,18 @@ type DeleteOptions struct {
|
|||||||
// +optional
|
// +optional
|
||||||
Preconditions *Preconditions `json:"preconditions,omitempty" protobuf:"bytes,2,opt,name=preconditions"`
|
Preconditions *Preconditions `json:"preconditions,omitempty" protobuf:"bytes,2,opt,name=preconditions"`
|
||||||
|
|
||||||
|
// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.
|
||||||
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
// Should the dependent objects be orphaned. If true/false, the "orphan"
|
||||||
// finalizer will be added to/removed from the object's finalizers list.
|
// finalizer will be added to/removed from the object's finalizers list.
|
||||||
|
// Either this field or PropagationPolicy may be set, but not both.
|
||||||
// +optional
|
// +optional
|
||||||
OrphanDependents *bool `json:"orphanDependents,omitempty" protobuf:"varint,3,opt,name=orphanDependents"`
|
OrphanDependents *bool `json:"orphanDependents,omitempty" protobuf:"varint,3,opt,name=orphanDependents"`
|
||||||
|
|
||||||
|
// Whether and how garbage collection will be performed.
|
||||||
|
// Defaults to Default.
|
||||||
|
// Either this field or OrphanDependents may be set, but not both.
|
||||||
|
// +optional
|
||||||
|
PropagationPolicy *DeletionPropagation
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListOptions is the query options to a standard REST list call.
|
// ListOptions is the query options to a standard REST list call.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user