Skip to content

Commit deefe75

Browse files
committed
extend cri apis for special needs
Signed-off-by: Starnop <[email protected]>
1 parent d76b476 commit deefe75

File tree

31 files changed

+8342
-4065
lines changed

31 files changed

+8342
-4065
lines changed
Lines changed: 2645 additions & 789 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cri/apis/v1alpha1/api.proto

Lines changed: 1209 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
1414
limitations under the License.
1515
*/
1616

17-
package runtime
17+
package v1alpha1
1818

1919
// This file contains all constants defined in CRI.
2020

Lines changed: 2500 additions & 644 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cri/apis/v1alpha2/api.proto

Lines changed: 1281 additions & 0 deletions
Large diffs are not rendered by default.

cri/v1alpha1/cri.go

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313

1414
apitypes "github.com/alibaba/pouch/apis/types"
1515
anno "github.com/alibaba/pouch/cri/annotations"
16+
runtime "github.com/alibaba/pouch/cri/apis/v1alpha1"
1617
"github.com/alibaba/pouch/daemon/config"
1718
"github.com/alibaba/pouch/daemon/mgr"
1819
"github.com/alibaba/pouch/pkg/errtypes"
@@ -24,7 +25,6 @@ import (
2425
// NOTE: "golang.org/x/net/context" is compatible with standard "context" in golang1.7+.
2526
"github.com/cri-o/ocicni/pkg/ocicni"
2627
"github.com/sirupsen/logrus"
27-
"k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime"
2828
)
2929

3030
const (
@@ -497,6 +497,7 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta
497497
specAnnotation[anno.ContainerType] = anno.ContainerTypeContainer
498498
specAnnotation[anno.SandboxName] = podSandboxID
499499

500+
resources := r.GetConfig().GetLinux().GetResources()
500501
createConfig := &apitypes.ContainerCreateConfig{
501502
ContainerConfig: apitypes.ContainerConfig{
502503
Entrypoint: config.Command,
@@ -510,9 +511,12 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta
510511
StdinOnce: config.StdinOnce,
511512
Tty: config.Tty,
512513
SpecAnnotation: specAnnotation,
514+
NetPriority: config.NetPriority,
515+
DiskQuota: resources.GetDiskQuota(),
513516
},
514517
HostConfig: &apitypes.HostConfig{
515-
Binds: generateMountBindings(config.GetMounts()),
518+
Binds: generateMountBindings(config.GetMounts()),
519+
Resources: parseResourcesFromCRI(resources),
516520
},
517521
NetworkingConfig: &apitypes.NetworkingConfig{},
518522
}
@@ -713,6 +717,8 @@ func (c *CriManager) ContainerStatus(ctx context.Context, r *runtime.ContainerSt
713717
imageRef = imageInfo.RepoDigests[0]
714718
}
715719

720+
resources := container.HostConfig.Resources
721+
diskQuota := container.Config.DiskQuota
716722
status := &runtime.ContainerStatus{
717723
Id: container.ID,
718724
Metadata: metadata,
@@ -729,6 +735,8 @@ func (c *CriManager) ContainerStatus(ctx context.Context, r *runtime.ContainerSt
729735
Labels: labels,
730736
Annotations: annotations,
731737
// TODO: LogPath.
738+
Volumes: parseVolumesFromPouch(container.Config.Volumes),
739+
Resources: parseResourcesFromPouch(resources, diskQuota),
732740
}
733741

734742
return &runtime.ContainerStatusResponse{Status: status}, nil
@@ -794,14 +802,8 @@ func (c *CriManager) UpdateContainerResources(ctx context.Context, r *runtime.Up
794802

795803
resources := r.GetLinux()
796804
updateConfig := &apitypes.UpdateConfig{
797-
Resources: apitypes.Resources{
798-
CPUPeriod: resources.GetCpuPeriod(),
799-
CPUQuota: resources.GetCpuQuota(),
800-
CPUShares: resources.GetCpuShares(),
801-
Memory: resources.GetMemoryLimitInBytes(),
802-
CpusetCpus: resources.GetCpusetCpus(),
803-
CpusetMems: resources.GetCpusetMems(),
804-
},
805+
Resources: parseResourcesFromCRI(resources),
806+
DiskQuota: resources.GetDiskQuota(),
805807
}
806808
err = c.ContainerMgr.Update(ctx, containerID, updateConfig)
807809
if err != nil {

cri/v1alpha1/cri_network.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import (
55
"os"
66
"strings"
77

8+
runtime "github.com/alibaba/pouch/cri/apis/v1alpha1"
89
"github.com/alibaba/pouch/cri/config"
910

1011
"github.com/cri-o/ocicni/pkg/ocicni"
1112
"github.com/sirupsen/logrus"
12-
"k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime"
1313
)
1414

1515
// CniMgr as an interface defines all operations against CNI.

0 commit comments

Comments
 (0)