Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## stop the cluster version operator
- ```
- [core@ip-10-0-7-170 ~]$ oc get deployments --namespace=openshift-cluster-version
- [core@ip-10-0-7-170 ~]$ oc scale deployment cluster-version-operator --replicas=0 --namespace=openshift-cluster-version
- ```
- ## Edit our deployment
- Check out the current deployment...
- ```
- [core@ip-10-0-7-170 ~]$ oc get pods -o wide --namespace=openshift-network-operator
- NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
- network-operator-797d9cd447-4b4wz 1/1 Running 0 4h20m 10.0.132.215 ip-10-0-132-215.us-west-2.compute.internal <none>
- ```
- Edit that deployment...
- ```
- [core@ip-10-0-7-170 ~]$ oc edit deployment --namespace=openshift-network-operator
- ```
- Make sure these lines exist...
- ```
- image: dougbtv/cluster-network-operator
- imagePullPolicy: Always
- ```
- SSH to the node and download our image...
- ```
- [core@ip-10-0-7-170 ~]$ ssh -i .ssh/idkey core@10.0.132.215
- [core@ip-10-0-132-215 ~]$ sudo podman pull dougbtv/cluster-network-operator
- ```
- Scale down the deployment, scale it up, watch it.
- ```
- oc scale deployment network-operator --replicas=0 --namespace=openshift-network-operator
- oc scale deployment network-operator --replicas=1 --namespace=openshift-network-operator
- watch -n1 oc get pods -o wide --namespace=openshift-network-operator
- ```
- Validate the proper image has been used:
- ```
- [core@ip-10-0-7-170 ~]$ oc describe pod network-operator-55c75cc546-lt5hf --namespace=openshift-network-operator | grep -iP "^\s+image"
- Image: dougbtv/cluster-network-operator
- Image ID: docker.io/dougbtv/cluster-network-operator@sha256:9fa7327b9c5f66e39e13421bf912423d6176c4ea8ee515e763b6eb4f950eb94e
- ```
- ## Test scenario
- ```
- cat <<EOF | oc create -f -
- apiVersion: "k8s.cni.cncf.io/v1"
- kind: NetworkAttachmentDefinition
- metadata:
- name: dhcp-conf
- spec:
- config: '{
- "cniVersion": "0.3.0",
- "type": "macvlan",
- "master": "eth0",
- "mode": "bridge",
- "ipam": {
- "type": "dhcp"
- }
- }'
- EOF
- ```
- and pod...
- ```
- cat <<EOF | oc create -f -
- apiVersion: v1
- kind: Pod
- metadata:
- name: dhcppod
- annotations:
- k8s.v1.cni.cncf.io/networks: dhcp-conf
- spec:
- containers:
- - name: dhcppod
- command: ["/bin/bash", "-c", "sleep 2000000000000"]
- image: dougbtv/centos-network
- EOF
- ```
- ## hack dhcp server
- Make sure the subnet `10.0.0.0` actually includes the assigned IP address for eth0.
- ```
- ---
- # NOTE: THIS SECTION IS JUST A TEST.
- apiVersion: v1
- kind: ConfigMap
- metadata:
- creationTimestamp: null
- name: dhcpd-config
- namespace: openshift-multus
- data:
- dhcpd.conf: |
- subnet 10.0.0.0 netmask 255.255.0.0 {
- authoritative;
- range 10.0.0.1 10.0.0.254;
- default-lease-time 3600;
- max-lease-time 3600;
- option subnet-mask 255.255.255.0;
- option broadcast-address 10.0.0.255;
- # option routers 10.0.0.0;
- # option domain-name-servers 8.8.8.8;
- # option domain-name "example.com";
- }
- # subnet 192.168.1.0 netmask 255.255.255.224 {
- # range 192.168.1.10 192.168.1.30;
- # }
- ---
- # NOTE: THIS SECTION IS JUST A TEST.
- apiVersion: v1
- kind: Pod
- metadata:
- name: dhcpserver
- namespace: openshift-multus
- spec:
- hostNetwork: true
- containers:
- - name: dhcpserver
- image: networkboot/dhcpd
- args: ["eth0"]
- # args: ["-c","sleep 100000"]
- securityContext:
- privileged: true
- volumeMounts:
- - name: dhcpd-config
- mountPath: /data/dhcpd.conf
- subPath: dhcpd.conf
- volumes:
- - name: dhcpd-config
- configMap:
- name: dhcpd-config
- items:
- - key: dhcpd.conf
- path: dhcpd.conf
- ```
- Go ahead and find what box it's running on...
- ```
- [core@ip-10-0-4-180 ~]$ oc project openshift-multus
- [core@ip-10-0-4-180 ~]$ oc get pods -o wide | grep -i dhcpserver
- dhcpserver 1/1 Running 0 8m43s 10.0.158.153 ip-10-0-158-153.us-west-2.compute.internal <none>
- ```
- Label that node...
- ```
- [core@ip-10-0-4-180 ~]$ oc label node ip-10-0-158-153.us-west-2.compute.internal dhcptest=doug
- ```
- Let's create our DHCP config...
- ```
- cat <<EOF | oc create -f -
- apiVersion: "k8s.cni.cncf.io/v1"
- kind: NetworkAttachmentDefinition
- metadata:
- name: dhcp-conf
- spec:
- config: '{
- "cniVersion": "0.3.0",
- "type": "macvlan",
- "master": "eth0",
- "mode": "bridge",
- "ipam": {
- "type": "dhcp"
- }
- }'
- EOF
- ```
- Now create a pod with a nodeSelector that uses that net-attach-def...
- ```
- cat <<EOF | oc create -f -
- apiVersion: v1
- kind: Pod
- metadata:
- name: dhcppod
- annotations:
- k8s.v1.cni.cncf.io/networks: dhcp-conf
- spec:
- containers:
- - name: dhcppod
- command: ["/bin/bash", "-c", "sleep 2000000000000"]
- image: dougbtv/centos-network
- nodeSelector:
- dhcptest: "doug"
- EOF
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement