Skip to content

Commit

Permalink
Add changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
chenchun committed Dec 21, 2020
1 parent 8b6c9c9 commit 7f274b1
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 9 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,14 @@
# v1.0.8

## Feature

- Support reserve ip for all workloads [#107](https://github.com/tkestack/galaxy/pull/107), please check [custom resource workloads](https://github.com/tkestack/galaxy/blob/master/doc/float-ip.md#custom-resource-workloads)
- Support configuring multiple device of vlan cni plugin [#114](https://github.com/tkestack/galaxy/pull/114)

## Bug fix

- Fix veth device name conflict when multi network enabled [#115](https://github.com/tkestack/galaxy/pull/115)

# v1.0.7

## Feature
Expand Down
21 changes: 12 additions & 9 deletions doc/float-ip.md
Expand Up @@ -35,17 +35,20 @@ FEATURE STATE: tkestack/galaxy-ipam:v1.0.8 [alpha]

Before v1.0.8 galaxy-ipam only supports immutable and never release policy for statefulset, deployment and [tapp](https://github.com/tkestack/tapp).
The usage is the same as before. Galaxy-ipam makes use of [dynamic client](https://github.com/kubernetes/client-go/tree/master/dynamic) to watch all custom resource workloads by demand to get
their replicas and and decide when to release ips.
their replicas and decide when to release ips. If you want to use it, please make sure to add list and watch permissions of custom resource to galaxy-ipam cluster role like the following tapp resource.

For pods with never release policy, galaxy-ipam checks if its name matches regular expression `.*-[0-9]*$`, if it
does galaxy-ipam binds an IP to a key `$kind_$namespace_$appName_$podName`, otherwise it throws an error of not
supporting never release policy for it. Galaxy-ipam assumes the workload controller generates pod names by workload
name and a `-[0-9]*$` suffix like what statefulset does.
```
- apiGroups: ["apps.tkestack.io"]
resources:
- tapps
verbs: ["list", "watch"]
```

For pods with never release policy, galaxy-ipam checks if its name matches regular expression `.*-[0-9]*$`, if it does galaxy-ipam binds an IP to a key `$kind_$namespace_$appName_$podName`, otherwise it throws an error of not
supporting never release policy for it. Galaxy-ipam assumes the workload controller generates pod names by workload name and a `-[0-9]*$` suffix like what statefulset does.

For pods that need an immutable strategy, not only its name must satisfy the same regular expression, but also its
CustomResourceDefinition must support scale sub-resource and define the [SpecReplicasPath](https://github.com/kubernetes/kubernetes/blob/v1.19.4/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go#L455). Galaxy-ipam gets the parent
workload replicas by `SpecReplicasPath` and invokes `unstructured.NestedInt64` to get the actual replicas to check
whether to release IP.
For pods that need an immutable strategy, not only its name must satisfy the same regular expression, but also its CustomResourceDefinition must support scale sub-resource and define the [SpecReplicasPath](https://github.com/kubernetes/kubernetes/blob/v1.19.4/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go#L455).
Galaxy-ipam gets the parent workload replicas by `SpecReplicasPath` and invokes `unstructured.NestedInt64` to get the actual replicas to check whether to release IP.

## Float IP Pool

Expand Down

0 comments on commit 7f274b1

Please sign in to comment.