GithubHelp home page GithubHelp logo

rmr / sts-operator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from skattoju/sts-operator

0.0 0.0 0.0 802 KB

License: Apache License 2.0

Shell 1.41% Go 76.10% Makefile 20.19% Dockerfile 2.31%

sts-operator's Introduction

Silicom STS Special Resource Usage

alt text

Silicom STS Operator

alt text

Silicom STS Plugin daemonsets

alt text

Silicom STS Operator deployments

alt text

Table of Contents

Links

STS Operator

Sts Operator, runs in sts-silicom namespace, manages cluster wide STS configurations. It offers StsConfig and StsOperatorConfig CRDs and creates tsyncd to apply node specific STS config.

STS Plugin daemonset (feature.node.kubernetes.io/custom-silicom.sts.devices: "true")

Once NFD operator has labelled the nodes, this daemonset queries the network interfaces and STS specific information and accordingly labels the nodes.

STS daemonset (sts.silicom.com/config: "gm-1")

This consists of the following daemons on labelled nodes, all of these running in the same pod. Nodes labelled with the

  • tsyncd
  • GPSd (if in T-GM.8275.1 mode)
  • ts2phcs
  • phc2sys
  • grpc-tsyncd

StsOperatorConfig

Example (default)

apiVersion: sts.silicom.com/v1alpha1
kind: StsOperatorConfig
metadata:
  name: stsoperatorconfig
spec:
  images:
  sro:

StsConfig

Example (Grand Master mode)

apiVersion: sts.silicom.com/v1alpha1
kind: StsConfig
metadata:
  name: gm-1
  namespace: sts-silicom
spec:
  namespace: sts-silicom
  nodeSelector:
    sts.silicom.com/config: "gm-1"
  mode: T-GM.8275.1
  interfaces:
    - ethName: enp2s0f0
      synce: 1
      holdoff: 500
      mode: Master
      ethPort: 1
    - ethName: enp2s0f1
      synce: 1
      holdoff: 500
      mode: Master
      ethPort: 2

StsNode

Example

apiVersion: sts.silicom.com/v1alpha1
kind: StsNode
metadata:
  name: worker2
  namespace: sts-silicom
spec: {}
status:
  ethInterfaces:
  - ethName: enp2s0f0
    ethPort: 0
    pciAddr: "02:00.0"
    status: down
  - ethName: enp2s0f1
    ethPort: 1
    pciAddr: "02:00.1"
    status: down
  - ethName: enp2s0f2
    ethPort: 2
    pciAddr: "02:00.2"
    status: down
  - ethName: enp2s0f3
    ethPort: 3
    pciAddr: "02:00.3"
    status: down
  - ethName: enp2s0f4
    ethPort: 4
    pciAddr: "02:00.4"
    status: down
  - ethName: enp2s0f5
    ethPort: 5
    pciAddr: "02:00.5"
    status: down
  - ethName: enp2s0f6
    ethPort: 6
    pciAddr: "02:00.6"
    status: down
  - ethName: enp2s0f7
    ethPort: 7
    pciAddr: "02:00.7"
    status: down
  gpsStatus:
    active: 0
    device: ""
    lat: ""
    lon: ""
    mode: 0
    time: "2021-12-07T08:56:41.781Z"
fb@g9:~$ oc get stsconfig.sts.silicom.com  -n sts-silicom -o yaml
apiVersion: v1
items:
- apiVersion: sts.silicom.com/v1alpha1
  kind: StsConfig
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"sts.silicom.com/v1alpha1","kind":"StsConfig","metadata":{"annotations":{},"name":"gm-1","namespace":"sts-silicom"},"spec":{"interfaces":[{"ethName":"enp2s0f0","holdoff":500,"synce":true},{"ethName":"enp2s0f1","holdoff":500,"synce":true}],"mode":"gm","name":"gm-1","namespace":"sts-silicom","nodeSelector":{"sts.silicom.com/config":"gm-1"}}}
    creationTimestamp: "2021-10-25T13:40:30Z"
    generation: 1
  spec:
    interfaces:
    - ethName: enp2s0f0
      holdoff: 500
      synce: true
      mode: Slave
    - ethName: enp2s0f1
      holdoff: 500
      synce: true
      mode: Master
    mode: T-GM.8275.1
    name: gm-1
    namespace: sts-silicom
    nodeSelector:
      sts.silicom.com/config: "gm-1"
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

sts-operator's People

Contributors

rmr-silicom avatar rmr avatar jnunyez avatar skattoju avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.