diff --git a/nodeup/pkg/model/kube_apiserver_test.go b/nodeup/pkg/model/kube_apiserver_test.go index cd82b279c0..287c5375dc 100644 --- a/nodeup/pkg/model/kube_apiserver_test.go +++ b/nodeup/pkg/model/kube_apiserver_test.go @@ -25,6 +25,7 @@ import ( "k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi/nodeup/nodetasks" + "k8s.io/kops/util/pkg/architectures" ) func Test_KubeAPIServer_Builder(t *testing.T) { @@ -197,3 +198,18 @@ func TestAwsIamAuthenticator(t *testing.T) { return builder.Build(target) }) } + +func TestKubeAPIServerBuilderAMD64(t *testing.T) { + RunGoldenTest(t, "tests/golden/side-loading", "kube-apiserver-amd64", func(nodeupModelContext *NodeupModelContext, target *fi.ModelBuilderContext) error { + builder := KubeAPIServerBuilder{NodeupModelContext: nodeupModelContext} + return builder.Build(target) + }) +} + +func TestKubeAPIServerBuilderARM64(t *testing.T) { + RunGoldenTest(t, "tests/golden/side-loading", "kube-apiserver-arm64", func(nodeupModelContext *NodeupModelContext, target *fi.ModelBuilderContext) error { + builder := KubeAPIServerBuilder{NodeupModelContext: nodeupModelContext} + builder.Architecture = architectures.ArchitectureArm64 + return builder.Build(target) + }) +} diff --git a/nodeup/pkg/model/kube_controller_manager_test.go b/nodeup/pkg/model/kube_controller_manager_test.go index 26ce958547..7cdb5a0741 100644 --- a/nodeup/pkg/model/kube_controller_manager_test.go +++ b/nodeup/pkg/model/kube_controller_manager_test.go @@ -20,6 +20,7 @@ import ( "testing" "k8s.io/kops/upup/pkg/fi" + "k8s.io/kops/util/pkg/architectures" ) func TestKubeControllerManagerBuilder(t *testing.T) { @@ -28,3 +29,18 @@ func TestKubeControllerManagerBuilder(t *testing.T) { return builder.Build(target) }) } + +func TestKubeControllerManagerBuilderAMD64(t *testing.T) { + RunGoldenTest(t, "tests/golden/side-loading", "kube-controller-manager-amd64", func(nodeupModelContext *NodeupModelContext, target *fi.ModelBuilderContext) error { + builder := KubeControllerManagerBuilder{NodeupModelContext: nodeupModelContext} + return builder.Build(target) + }) +} + +func TestKubeControllerManagerBuilderARM64(t *testing.T) { + RunGoldenTest(t, "tests/golden/side-loading", "kube-controller-manager-arm64", func(nodeupModelContext *NodeupModelContext, target *fi.ModelBuilderContext) error { + builder := KubeControllerManagerBuilder{NodeupModelContext: nodeupModelContext} + builder.Architecture = architectures.ArchitectureArm64 + return builder.Build(target) + }) +} diff --git a/nodeup/pkg/model/kube_proxy_test.go b/nodeup/pkg/model/kube_proxy_test.go index f8e31dbe6e..fef649755b 100644 --- a/nodeup/pkg/model/kube_proxy_test.go +++ b/nodeup/pkg/model/kube_proxy_test.go @@ -24,6 +24,7 @@ import ( "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/flagbuilder" "k8s.io/kops/upup/pkg/fi" + "k8s.io/kops/util/pkg/architectures" "k8s.io/kops/util/pkg/exec" "github.com/blang/semver" @@ -161,3 +162,18 @@ func TestKubeProxyBuilder(t *testing.T) { return builder.Build(target) }) } + +func TestKubeProxyBuilderAMD64(t *testing.T) { + RunGoldenTest(t, "tests/golden/side-loading", "kube-proxy-amd64", func(nodeupModelContext *NodeupModelContext, target *fi.ModelBuilderContext) error { + builder := KubeProxyBuilder{NodeupModelContext: nodeupModelContext} + return builder.Build(target) + }) +} + +func TestKubeProxyBuilderARM64(t *testing.T) { + RunGoldenTest(t, "tests/golden/side-loading", "kube-proxy-arm64", func(nodeupModelContext *NodeupModelContext, target *fi.ModelBuilderContext) error { + builder := KubeProxyBuilder{NodeupModelContext: nodeupModelContext} + builder.Architecture = architectures.ArchitectureArm64 + return builder.Build(target) + }) +} diff --git a/nodeup/pkg/model/kube_scheduler_test.go b/nodeup/pkg/model/kube_scheduler_test.go index a512518021..f64deaa3c5 100644 --- a/nodeup/pkg/model/kube_scheduler_test.go +++ b/nodeup/pkg/model/kube_scheduler_test.go @@ -24,6 +24,7 @@ import ( "k8s.io/kops/pkg/apis/kops" "k8s.io/kops/pkg/configbuilder" "k8s.io/kops/upup/pkg/fi" + "k8s.io/kops/util/pkg/architectures" ) func TestParseDefault(t *testing.T) { @@ -75,3 +76,18 @@ func TestKubeSchedulerBuilder(t *testing.T) { return builder.Build(target) }) } + +func TestKubeSchedulerBuilderAMD64(t *testing.T) { + RunGoldenTest(t, "tests/golden/side-loading", "kube-scheduler-amd64", func(nodeupModelContext *NodeupModelContext, target *fi.ModelBuilderContext) error { + builder := KubeSchedulerBuilder{NodeupModelContext: nodeupModelContext} + return builder.Build(target) + }) +} + +func TestKubeSchedulerBuilderARM64(t *testing.T) { + RunGoldenTest(t, "tests/golden/side-loading", "kube-scheduler-arm64", func(nodeupModelContext *NodeupModelContext, target *fi.ModelBuilderContext) error { + builder := KubeSchedulerBuilder{NodeupModelContext: nodeupModelContext} + builder.Architecture = architectures.ArchitectureArm64 + return builder.Build(target) + }) +} diff --git a/nodeup/pkg/model/tests/golden/side-loading/cluster.yaml b/nodeup/pkg/model/tests/golden/side-loading/cluster.yaml new file mode 100644 index 0000000000..3c9d9fe64e --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/cluster.yaml @@ -0,0 +1,66 @@ +apiVersion: kops.k8s.io/v1alpha2 +kind: Cluster +metadata: + name: minimal.example.com +spec: + kubernetesApiAccess: + - 0.0.0.0/0 + channel: stable + cloudProvider: aws + configBase: memfs://clusters.example.com/minimal.example.com + etcdClusters: + - cpuRequest: 200m + etcdMembers: + - instanceGroup: master-us-test-1a + name: us-test-1a + memoryRequest: 100Mi + name: main + provider: Manager + backups: + backupStore: memfs://clusters.example.com/minimal.example.com/backups/etcd-main + - cpuRequest: 100m + etcdMembers: + - instanceGroup: master-us-test-1a + name: us-test-1a + memoryRequest: 100Mi + name: events + provider: Manager + backups: + backupStore: memfs://clusters.example.com/minimal.example.com/backups/etcd-events + kubelet: + anonymousAuth: false + kubernetesVersion: https://storage.googleapis.com/kubernetes-release/release/v1.18.0 + masterInternalName: api.internal.minimal.example.com + masterPublicName: api.minimal.example.com + networkCIDR: 172.20.0.0/16 + networking: + kubenet: {} + nonMasqueradeCIDR: 100.64.0.0/10 + sshAccess: + - 0.0.0.0/0 + topology: + masters: public + nodes: public + subnets: + - cidr: 172.20.32.0/19 + name: us-test-1a + type: Public + zone: us-test-1a + +--- + +apiVersion: kops.k8s.io/v1alpha2 +kind: InstanceGroup +metadata: + name: master-us-test-1a + labels: + kops.k8s.io/cluster: minimal.example.com +spec: + associatePublicIp: true + image: ami-1234 + machineType: m3.medium + maxSize: 1 + minSize: 1 + role: Master + subnets: + - us-test-1a diff --git a/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-apiserver-amd64.yaml b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-apiserver-amd64.yaml new file mode 100644 index 0000000000..dbd09fd72b --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-apiserver-amd64.yaml @@ -0,0 +1,194 @@ +contents: | + apiVersion: v1 + kind: Pod + metadata: + annotations: + dns.alpha.kubernetes.io/external: api.minimal.example.com + dns.alpha.kubernetes.io/internal: api.internal.minimal.example.com + scheduler.alpha.kubernetes.io/critical-pod: "" + creationTimestamp: null + labels: + k8s-app: kube-apiserver + name: kube-apiserver + namespace: kube-system + spec: + containers: + - args: + - --allow-privileged=true + - --anonymous-auth=false + - --apiserver-count=1 + - --authorization-mode=AlwaysAllow + - --bind-address=0.0.0.0 + - --client-ca-file=/srv/kubernetes/ca.crt + - --cloud-provider=aws + - --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,NodeRestriction,ResourceQuota + - --etcd-cafile=/etc/kubernetes/pki/kube-apiserver/etcd-ca.crt + - --etcd-certfile=/etc/kubernetes/pki/kube-apiserver/etcd-client.crt + - --etcd-keyfile=/etc/kubernetes/pki/kube-apiserver/etcd-client.key + - --etcd-servers-overrides=/events#https://127.0.0.1:4002 + - --etcd-servers=https://127.0.0.1:4001 + - --insecure-bind-address=127.0.0.1 + - --insecure-port=0 + - --kubelet-client-certificate=/srv/kubernetes/kubelet-api.crt + - --kubelet-client-key=/srv/kubernetes/kubelet-api.key + - --kubelet-preferred-address-types=InternalIP,Hostname,ExternalIP + - --proxy-client-cert-file=/srv/kubernetes/apiserver-aggregator.cert + - --proxy-client-key-file=/srv/kubernetes/apiserver-aggregator.key + - --requestheader-allowed-names=aggregator + - --requestheader-client-ca-file=/srv/kubernetes/apiserver-aggregator-ca.cert + - --requestheader-extra-headers-prefix=X-Remote-Extra- + - --requestheader-group-headers=X-Remote-Group + - --requestheader-username-headers=X-Remote-User + - --secure-port=443 + - --service-cluster-ip-range=100.64.0.0/13 + - --storage-backend=etcd3 + - --tls-cert-file=/srv/kubernetes/server.cert + - --tls-private-key-file=/srv/kubernetes/server.key + - --v=2 + - --logtostderr=false + - --alsologtostderr + - --log-file=/var/log/kube-apiserver.log + command: + - /usr/local/bin/kube-apiserver + image: k8s.gcr.io/kube-apiserver-amd64:v1.18.0 + livenessProbe: + httpGet: + host: 127.0.0.1 + path: /healthz + port: 443 + scheme: HTTPS + initialDelaySeconds: 45 + timeoutSeconds: 15 + name: kube-apiserver + ports: + - containerPort: 443 + hostPort: 443 + name: https + resources: + requests: + cpu: 150m + volumeMounts: + - mountPath: /var/log/kube-apiserver.log + name: logfile + - mountPath: /etc/ssl + name: etcssl + readOnly: true + - mountPath: /etc/pki/tls + name: etcpkitls + readOnly: true + - mountPath: /etc/pki/ca-trust + name: etcpkica-trust + readOnly: true + - mountPath: /usr/share/ssl + name: usrsharessl + readOnly: true + - mountPath: /usr/ssl + name: usrssl + readOnly: true + - mountPath: /usr/lib/ssl + name: usrlibssl + readOnly: true + - mountPath: /usr/local/openssl + name: usrlocalopenssl + readOnly: true + - mountPath: /var/ssl + name: varssl + readOnly: true + - mountPath: /etc/openssl + name: etcopenssl + readOnly: true + - mountPath: /etc/kubernetes/pki/kube-apiserver + name: pki + - mountPath: /srv/kubernetes + name: srvkube + readOnly: true + - mountPath: /srv/sshproxy + name: srvsshproxy + readOnly: true + hostNetwork: true + priorityClassName: system-cluster-critical + tolerations: + - key: CriticalAddonsOnly + operator: Exists + volumes: + - hostPath: + path: /var/log/kube-apiserver.log + name: logfile + - hostPath: + path: /etc/ssl + name: etcssl + - hostPath: + path: /etc/pki/tls + name: etcpkitls + - hostPath: + path: /etc/pki/ca-trust + name: etcpkica-trust + - hostPath: + path: /usr/share/ssl + name: usrsharessl + - hostPath: + path: /usr/ssl + name: usrssl + - hostPath: + path: /usr/lib/ssl + name: usrlibssl + - hostPath: + path: /usr/local/openssl + name: usrlocalopenssl + - hostPath: + path: /var/ssl + name: varssl + - hostPath: + path: /etc/openssl + name: etcopenssl + - hostPath: + path: /etc/kubernetes/pki/kube-apiserver + type: DirectoryOrCreate + name: pki + - hostPath: + path: /srv/kubernetes + name: srvkube + - hostPath: + path: /srv/sshproxy + name: srvsshproxy + status: {} +path: /etc/kubernetes/manifests/kube-apiserver.manifest +type: file +--- +mode: "0755" +path: /srv/kubernetes +type: directory +--- +contents: + task: + Name: kubelet-api + signer: ca + subject: + CommonName: kubelet-api + type: client +mode: "0644" +path: /srv/kubernetes/kubelet-api.crt +type: file +--- +contents: + task: + Name: kubelet-api + signer: ca + subject: + CommonName: kubelet-api + type: client +mode: "0600" +path: /srv/kubernetes/kubelet-api.key +type: file +--- +contents: "" +ifNotExists: true +mode: "0400" +path: /var/log/kube-apiserver.log +type: file +--- +Name: kubelet-api +signer: ca +subject: + CommonName: kubelet-api +type: client diff --git a/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-apiserver-arm64.yaml b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-apiserver-arm64.yaml new file mode 100644 index 0000000000..3a647bc8c9 --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-apiserver-arm64.yaml @@ -0,0 +1,194 @@ +contents: | + apiVersion: v1 + kind: Pod + metadata: + annotations: + dns.alpha.kubernetes.io/external: api.minimal.example.com + dns.alpha.kubernetes.io/internal: api.internal.minimal.example.com + scheduler.alpha.kubernetes.io/critical-pod: "" + creationTimestamp: null + labels: + k8s-app: kube-apiserver + name: kube-apiserver + namespace: kube-system + spec: + containers: + - args: + - --allow-privileged=true + - --anonymous-auth=false + - --apiserver-count=1 + - --authorization-mode=AlwaysAllow + - --bind-address=0.0.0.0 + - --client-ca-file=/srv/kubernetes/ca.crt + - --cloud-provider=aws + - --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,NodeRestriction,ResourceQuota + - --etcd-cafile=/etc/kubernetes/pki/kube-apiserver/etcd-ca.crt + - --etcd-certfile=/etc/kubernetes/pki/kube-apiserver/etcd-client.crt + - --etcd-keyfile=/etc/kubernetes/pki/kube-apiserver/etcd-client.key + - --etcd-servers-overrides=/events#https://127.0.0.1:4002 + - --etcd-servers=https://127.0.0.1:4001 + - --insecure-bind-address=127.0.0.1 + - --insecure-port=0 + - --kubelet-client-certificate=/srv/kubernetes/kubelet-api.crt + - --kubelet-client-key=/srv/kubernetes/kubelet-api.key + - --kubelet-preferred-address-types=InternalIP,Hostname,ExternalIP + - --proxy-client-cert-file=/srv/kubernetes/apiserver-aggregator.cert + - --proxy-client-key-file=/srv/kubernetes/apiserver-aggregator.key + - --requestheader-allowed-names=aggregator + - --requestheader-client-ca-file=/srv/kubernetes/apiserver-aggregator-ca.cert + - --requestheader-extra-headers-prefix=X-Remote-Extra- + - --requestheader-group-headers=X-Remote-Group + - --requestheader-username-headers=X-Remote-User + - --secure-port=443 + - --service-cluster-ip-range=100.64.0.0/13 + - --storage-backend=etcd3 + - --tls-cert-file=/srv/kubernetes/server.cert + - --tls-private-key-file=/srv/kubernetes/server.key + - --v=2 + - --logtostderr=false + - --alsologtostderr + - --log-file=/var/log/kube-apiserver.log + command: + - /usr/local/bin/kube-apiserver + image: k8s.gcr.io/kube-apiserver-arm64:v1.18.0 + livenessProbe: + httpGet: + host: 127.0.0.1 + path: /healthz + port: 443 + scheme: HTTPS + initialDelaySeconds: 45 + timeoutSeconds: 15 + name: kube-apiserver + ports: + - containerPort: 443 + hostPort: 443 + name: https + resources: + requests: + cpu: 150m + volumeMounts: + - mountPath: /var/log/kube-apiserver.log + name: logfile + - mountPath: /etc/ssl + name: etcssl + readOnly: true + - mountPath: /etc/pki/tls + name: etcpkitls + readOnly: true + - mountPath: /etc/pki/ca-trust + name: etcpkica-trust + readOnly: true + - mountPath: /usr/share/ssl + name: usrsharessl + readOnly: true + - mountPath: /usr/ssl + name: usrssl + readOnly: true + - mountPath: /usr/lib/ssl + name: usrlibssl + readOnly: true + - mountPath: /usr/local/openssl + name: usrlocalopenssl + readOnly: true + - mountPath: /var/ssl + name: varssl + readOnly: true + - mountPath: /etc/openssl + name: etcopenssl + readOnly: true + - mountPath: /etc/kubernetes/pki/kube-apiserver + name: pki + - mountPath: /srv/kubernetes + name: srvkube + readOnly: true + - mountPath: /srv/sshproxy + name: srvsshproxy + readOnly: true + hostNetwork: true + priorityClassName: system-cluster-critical + tolerations: + - key: CriticalAddonsOnly + operator: Exists + volumes: + - hostPath: + path: /var/log/kube-apiserver.log + name: logfile + - hostPath: + path: /etc/ssl + name: etcssl + - hostPath: + path: /etc/pki/tls + name: etcpkitls + - hostPath: + path: /etc/pki/ca-trust + name: etcpkica-trust + - hostPath: + path: /usr/share/ssl + name: usrsharessl + - hostPath: + path: /usr/ssl + name: usrssl + - hostPath: + path: /usr/lib/ssl + name: usrlibssl + - hostPath: + path: /usr/local/openssl + name: usrlocalopenssl + - hostPath: + path: /var/ssl + name: varssl + - hostPath: + path: /etc/openssl + name: etcopenssl + - hostPath: + path: /etc/kubernetes/pki/kube-apiserver + type: DirectoryOrCreate + name: pki + - hostPath: + path: /srv/kubernetes + name: srvkube + - hostPath: + path: /srv/sshproxy + name: srvsshproxy + status: {} +path: /etc/kubernetes/manifests/kube-apiserver.manifest +type: file +--- +mode: "0755" +path: /srv/kubernetes +type: directory +--- +contents: + task: + Name: kubelet-api + signer: ca + subject: + CommonName: kubelet-api + type: client +mode: "0644" +path: /srv/kubernetes/kubelet-api.crt +type: file +--- +contents: + task: + Name: kubelet-api + signer: ca + subject: + CommonName: kubelet-api + type: client +mode: "0600" +path: /srv/kubernetes/kubelet-api.key +type: file +--- +contents: "" +ifNotExists: true +mode: "0400" +path: /var/log/kube-apiserver.log +type: file +--- +Name: kubelet-api +signer: ca +subject: + CommonName: kubelet-api +type: client diff --git a/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-controller-manager-amd64.yaml b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-controller-manager-amd64.yaml new file mode 100644 index 0000000000..e915155109 --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-controller-manager-amd64.yaml @@ -0,0 +1,229 @@ +contents: | + apiVersion: v1 + kind: Pod + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + creationTimestamp: null + labels: + k8s-app: kube-controller-manager + name: kube-controller-manager + namespace: kube-system + spec: + containers: + - args: + - --allocate-node-cidrs=true + - --attach-detach-reconcile-sync-period=1m0s + - --cloud-provider=aws + - --cluster-cidr=100.96.0.0/11 + - --cluster-name=minimal.example.com + - --cluster-signing-cert-file=/srv/kubernetes/ca.crt + - --cluster-signing-key-file=/srv/kubernetes/ca.key + - --configure-cloud-routes=true + - --flex-volume-plugin-dir=/usr/libexec/kubernetes/kubelet-plugins/volume/exec/ + - --kubeconfig=/var/lib/kube-controller-manager/kubeconfig + - --leader-elect=true + - --root-ca-file=/srv/kubernetes/ca.crt + - --service-account-private-key-file=/srv/kubernetes/server.key + - --use-service-account-credentials=true + - --v=2 + - --logtostderr=false + - --alsologtostderr + - --log-file=/var/log/kube-controller-manager.log + command: + - /usr/local/bin/kube-controller-manager + image: k8s.gcr.io/kube-controller-manager-amd64:v1.18.0 + livenessProbe: + httpGet: + host: 127.0.0.1 + path: /healthz + port: 10252 + initialDelaySeconds: 15 + timeoutSeconds: 15 + name: kube-controller-manager + resources: + requests: + cpu: 100m + volumeMounts: + - mountPath: /var/log/kube-controller-manager.log + name: logfile + - mountPath: /etc/ssl + name: etcssl + readOnly: true + - mountPath: /etc/pki/tls + name: etcpkitls + readOnly: true + - mountPath: /etc/pki/ca-trust + name: etcpkica-trust + readOnly: true + - mountPath: /usr/share/ssl + name: usrsharessl + readOnly: true + - mountPath: /usr/ssl + name: usrssl + readOnly: true + - mountPath: /usr/lib/ssl + name: usrlibssl + readOnly: true + - mountPath: /usr/local/openssl + name: usrlocalopenssl + readOnly: true + - mountPath: /var/ssl + name: varssl + readOnly: true + - mountPath: /etc/openssl + name: etcopenssl + readOnly: true + - mountPath: /srv/kubernetes + name: srvkube + readOnly: true + - mountPath: /var/lib/kube-controller-manager + name: varlibkcm + readOnly: true + - mountPath: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ + name: volplugins + hostNetwork: true + priorityClassName: system-cluster-critical + tolerations: + - key: CriticalAddonsOnly + operator: Exists + volumes: + - hostPath: + path: /var/log/kube-controller-manager.log + name: logfile + - hostPath: + path: /etc/ssl + name: etcssl + - hostPath: + path: /etc/pki/tls + name: etcpkitls + - hostPath: + path: /etc/pki/ca-trust + name: etcpkica-trust + - hostPath: + path: /usr/share/ssl + name: usrsharessl + - hostPath: + path: /usr/ssl + name: usrssl + - hostPath: + path: /usr/lib/ssl + name: usrlibssl + - hostPath: + path: /usr/local/openssl + name: usrlocalopenssl + - hostPath: + path: /var/ssl + name: varssl + - hostPath: + path: /etc/openssl + name: etcopenssl + - hostPath: + path: /srv/kubernetes + name: srvkube + - hostPath: + path: /var/lib/kube-controller-manager + name: varlibkcm + - hostPath: + path: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ + name: volplugins + status: {} +path: /etc/kubernetes/manifests/kube-controller-manager.manifest +type: file +--- +contents: | + -----BEGIN RSA PRIVATE KEY----- + MIIEpAIBAAKCAQEA4JwpEprZ5n8RIEt6jT2lAh+UDgRgx/4px21gjgywQivYHVxH + AZexVb/E9pBa9Q2G9B1Q7TCO7YsUVRQy4JMDZVt+McFnWVwexnqBYFNcVjkEmDgA + gvCYGE0P9d/RwRL4KuLHo+u6fv7P0jXMN+CpOxyLhYZZNa0ZOZDHsSiJSQSj9WGF + GHrbCf0KVDpKieR1uBqHrRO+mLR5zkX2L58m74kjK4dsBhmjeq/7OAoTmiG2QgJ/ + P2IjyhiA2mRqY+hl55lwEUV/0yHYEkJC8LdGkwwZz2eF77aSPGmi/A2CSKgMwDTx + 9m+P7jcpWreYw6NG9BueGoDIve/tgFKwvVFF6QIDAQABAoIBAA0ktjaTfyrAxsTI + Bezb7Zr5NBW55dvuII299cd6MJo+rI/TRYhvUv48kY8IFXp/hyUjzgeDLunxmIf9 + /Zgsoic9Ol44/g45mMduhcGYPzAAeCdcJ5OB9rR9VfDCXyjYLlN8H8iU0734tTqM + 0V13tQ9zdSqkGPZOIcq/kR/pylbOZaQMe97BTlsAnOMSMKDgnftY4122Lq3GYy+t + vpr+bKVaQZwvkLoSU3rECCaKaghgwCyX7jft9aEkhdJv+KlwbsGY6WErvxOaLWHd + cuMQjGapY1Fa/4UD00mvrA260NyKfzrp6+P46RrVMwEYRJMIQ8YBAk6N6Hh7dc0G + 8Z6i1m0CgYEA9HeCJR0TSwbIQ1bDXUrzpftHuidG5BnSBtax/ND9qIPhR/FBW5nj + 22nwLc48KkyirlfIULd0ae4qVXJn7wfYcuX/cJMLDmSVtlM5Dzmi/91xRiFgIzx1 + AsbBzaFjISP2HpSgL+e9FtSXaaqeZVrflitVhYKUpI/AKV31qGHf04sCgYEA6zTV + 99Sb49Wdlns5IgsfnXl6ToRttB18lfEKcVfjAM4frnkk06JpFAZeR+9GGKUXZHqs + z2qcplw4d/moCC6p3rYPBMLXsrGNEUFZqBlgz72QA6BBq3X0Cg1Bc2ZbK5VIzwkg + ST2SSux6ccROfgULmN5ZiLOtdUKNEZpFF3i3qtsCgYADT/s7dYFlatobz3kmMnXK + sfTu2MllHdRys0YGHu7Q8biDuQkhrJwhxPW0KS83g4JQym+0aEfzh36bWcl+u6R7 + KhKj+9oSf9pndgk345gJz35RbPJYh+EuAHNvzdgCAvK6x1jETWeKf6btj5pF1U1i + Q4QNIw/QiwIXjWZeubTGsQKBgQCbduLu2rLnlyyAaJZM8DlHZyH2gAXbBZpxqU8T + t9mtkJDUS/KRiEoYGFV9CqS0aXrayVMsDfXY6B/S/UuZjO5u7LtklDzqOf1aKG3Q + dGXPKibknqqJYH+bnUNjuYYNerETV57lijMGHuSYCf8vwLn3oxBfERRX61M/DU8Z + worz/QKBgQDCTJI2+jdXg26XuYUmM4XXfnocfzAXhXBULt1nENcogNf1fcptAVtu + BAiz4/HipQKqoWVUYmxfgbbLRKKLK0s0lOWKbYdVjhEm/m2ZU8wtXTagNwkIGoyq + Y/C1Lox4f1ROJnCjc/hfcOjcxX5M8A8peecHWlVtUPKTJgxQ7oMKcw== + -----END RSA PRIVATE KEY----- +mode: "0600" +path: /srv/kubernetes/ca.key +type: file +--- +contents: + task: + CA: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client + Cert: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client + Key: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client + Name: kube-controller-manager + ServerURL: https://127.0.0.1 +mode: "0400" +path: /var/lib/kube-controller-manager/kubeconfig +type: file +--- +contents: "" +ifNotExists: true +mode: "0400" +path: /var/log/kube-controller-manager.log +type: file +--- +Name: kube-controller-manager +signer: ca +subject: + CommonName: system:kube-controller-manager +type: client +--- +CA: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client +Cert: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client +Key: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client +Name: kube-controller-manager +ServerURL: https://127.0.0.1 diff --git a/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-controller-manager-arm64.yaml b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-controller-manager-arm64.yaml new file mode 100644 index 0000000000..28d9e330e5 --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-controller-manager-arm64.yaml @@ -0,0 +1,229 @@ +contents: | + apiVersion: v1 + kind: Pod + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + creationTimestamp: null + labels: + k8s-app: kube-controller-manager + name: kube-controller-manager + namespace: kube-system + spec: + containers: + - args: + - --allocate-node-cidrs=true + - --attach-detach-reconcile-sync-period=1m0s + - --cloud-provider=aws + - --cluster-cidr=100.96.0.0/11 + - --cluster-name=minimal.example.com + - --cluster-signing-cert-file=/srv/kubernetes/ca.crt + - --cluster-signing-key-file=/srv/kubernetes/ca.key + - --configure-cloud-routes=true + - --flex-volume-plugin-dir=/usr/libexec/kubernetes/kubelet-plugins/volume/exec/ + - --kubeconfig=/var/lib/kube-controller-manager/kubeconfig + - --leader-elect=true + - --root-ca-file=/srv/kubernetes/ca.crt + - --service-account-private-key-file=/srv/kubernetes/server.key + - --use-service-account-credentials=true + - --v=2 + - --logtostderr=false + - --alsologtostderr + - --log-file=/var/log/kube-controller-manager.log + command: + - /usr/local/bin/kube-controller-manager + image: k8s.gcr.io/kube-controller-manager-arm64:v1.18.0 + livenessProbe: + httpGet: + host: 127.0.0.1 + path: /healthz + port: 10252 + initialDelaySeconds: 15 + timeoutSeconds: 15 + name: kube-controller-manager + resources: + requests: + cpu: 100m + volumeMounts: + - mountPath: /var/log/kube-controller-manager.log + name: logfile + - mountPath: /etc/ssl + name: etcssl + readOnly: true + - mountPath: /etc/pki/tls + name: etcpkitls + readOnly: true + - mountPath: /etc/pki/ca-trust + name: etcpkica-trust + readOnly: true + - mountPath: /usr/share/ssl + name: usrsharessl + readOnly: true + - mountPath: /usr/ssl + name: usrssl + readOnly: true + - mountPath: /usr/lib/ssl + name: usrlibssl + readOnly: true + - mountPath: /usr/local/openssl + name: usrlocalopenssl + readOnly: true + - mountPath: /var/ssl + name: varssl + readOnly: true + - mountPath: /etc/openssl + name: etcopenssl + readOnly: true + - mountPath: /srv/kubernetes + name: srvkube + readOnly: true + - mountPath: /var/lib/kube-controller-manager + name: varlibkcm + readOnly: true + - mountPath: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ + name: volplugins + hostNetwork: true + priorityClassName: system-cluster-critical + tolerations: + - key: CriticalAddonsOnly + operator: Exists + volumes: + - hostPath: + path: /var/log/kube-controller-manager.log + name: logfile + - hostPath: + path: /etc/ssl + name: etcssl + - hostPath: + path: /etc/pki/tls + name: etcpkitls + - hostPath: + path: /etc/pki/ca-trust + name: etcpkica-trust + - hostPath: + path: /usr/share/ssl + name: usrsharessl + - hostPath: + path: /usr/ssl + name: usrssl + - hostPath: + path: /usr/lib/ssl + name: usrlibssl + - hostPath: + path: /usr/local/openssl + name: usrlocalopenssl + - hostPath: + path: /var/ssl + name: varssl + - hostPath: + path: /etc/openssl + name: etcopenssl + - hostPath: + path: /srv/kubernetes + name: srvkube + - hostPath: + path: /var/lib/kube-controller-manager + name: varlibkcm + - hostPath: + path: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/ + name: volplugins + status: {} +path: /etc/kubernetes/manifests/kube-controller-manager.manifest +type: file +--- +contents: | + -----BEGIN RSA PRIVATE KEY----- + MIIEpAIBAAKCAQEA4JwpEprZ5n8RIEt6jT2lAh+UDgRgx/4px21gjgywQivYHVxH + AZexVb/E9pBa9Q2G9B1Q7TCO7YsUVRQy4JMDZVt+McFnWVwexnqBYFNcVjkEmDgA + gvCYGE0P9d/RwRL4KuLHo+u6fv7P0jXMN+CpOxyLhYZZNa0ZOZDHsSiJSQSj9WGF + GHrbCf0KVDpKieR1uBqHrRO+mLR5zkX2L58m74kjK4dsBhmjeq/7OAoTmiG2QgJ/ + P2IjyhiA2mRqY+hl55lwEUV/0yHYEkJC8LdGkwwZz2eF77aSPGmi/A2CSKgMwDTx + 9m+P7jcpWreYw6NG9BueGoDIve/tgFKwvVFF6QIDAQABAoIBAA0ktjaTfyrAxsTI + Bezb7Zr5NBW55dvuII299cd6MJo+rI/TRYhvUv48kY8IFXp/hyUjzgeDLunxmIf9 + /Zgsoic9Ol44/g45mMduhcGYPzAAeCdcJ5OB9rR9VfDCXyjYLlN8H8iU0734tTqM + 0V13tQ9zdSqkGPZOIcq/kR/pylbOZaQMe97BTlsAnOMSMKDgnftY4122Lq3GYy+t + vpr+bKVaQZwvkLoSU3rECCaKaghgwCyX7jft9aEkhdJv+KlwbsGY6WErvxOaLWHd + cuMQjGapY1Fa/4UD00mvrA260NyKfzrp6+P46RrVMwEYRJMIQ8YBAk6N6Hh7dc0G + 8Z6i1m0CgYEA9HeCJR0TSwbIQ1bDXUrzpftHuidG5BnSBtax/ND9qIPhR/FBW5nj + 22nwLc48KkyirlfIULd0ae4qVXJn7wfYcuX/cJMLDmSVtlM5Dzmi/91xRiFgIzx1 + AsbBzaFjISP2HpSgL+e9FtSXaaqeZVrflitVhYKUpI/AKV31qGHf04sCgYEA6zTV + 99Sb49Wdlns5IgsfnXl6ToRttB18lfEKcVfjAM4frnkk06JpFAZeR+9GGKUXZHqs + z2qcplw4d/moCC6p3rYPBMLXsrGNEUFZqBlgz72QA6BBq3X0Cg1Bc2ZbK5VIzwkg + ST2SSux6ccROfgULmN5ZiLOtdUKNEZpFF3i3qtsCgYADT/s7dYFlatobz3kmMnXK + sfTu2MllHdRys0YGHu7Q8biDuQkhrJwhxPW0KS83g4JQym+0aEfzh36bWcl+u6R7 + KhKj+9oSf9pndgk345gJz35RbPJYh+EuAHNvzdgCAvK6x1jETWeKf6btj5pF1U1i + Q4QNIw/QiwIXjWZeubTGsQKBgQCbduLu2rLnlyyAaJZM8DlHZyH2gAXbBZpxqU8T + t9mtkJDUS/KRiEoYGFV9CqS0aXrayVMsDfXY6B/S/UuZjO5u7LtklDzqOf1aKG3Q + dGXPKibknqqJYH+bnUNjuYYNerETV57lijMGHuSYCf8vwLn3oxBfERRX61M/DU8Z + worz/QKBgQDCTJI2+jdXg26XuYUmM4XXfnocfzAXhXBULt1nENcogNf1fcptAVtu + BAiz4/HipQKqoWVUYmxfgbbLRKKLK0s0lOWKbYdVjhEm/m2ZU8wtXTagNwkIGoyq + Y/C1Lox4f1ROJnCjc/hfcOjcxX5M8A8peecHWlVtUPKTJgxQ7oMKcw== + -----END RSA PRIVATE KEY----- +mode: "0600" +path: /srv/kubernetes/ca.key +type: file +--- +contents: + task: + CA: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client + Cert: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client + Key: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client + Name: kube-controller-manager + ServerURL: https://127.0.0.1 +mode: "0400" +path: /var/lib/kube-controller-manager/kubeconfig +type: file +--- +contents: "" +ifNotExists: true +mode: "0400" +path: /var/log/kube-controller-manager.log +type: file +--- +Name: kube-controller-manager +signer: ca +subject: + CommonName: system:kube-controller-manager +type: client +--- +CA: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client +Cert: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client +Key: + task: + Name: kube-controller-manager + signer: ca + subject: + CommonName: system:kube-controller-manager + type: client +Name: kube-controller-manager +ServerURL: https://127.0.0.1 diff --git a/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-proxy-amd64.yaml b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-proxy-amd64.yaml new file mode 100644 index 0000000000..a27aeecd83 --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-proxy-amd64.yaml @@ -0,0 +1,102 @@ +contents: | + apiVersion: v1 + kind: Pod + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + creationTimestamp: null + labels: + k8s-app: kube-proxy + tier: node + name: kube-proxy + namespace: kube-system + spec: + containers: + - args: + - --cluster-cidr=100.96.0.0/11 + - --conntrack-max-per-core=131072 + - --hostname-override=@aws + - --kubeconfig=/var/lib/kube-proxy/kubeconfig + - --master=https://127.0.0.1 + - --oom-score-adj=-998 + - --v=2 + - --logtostderr=false + - --alsologtostderr + - --log-file=/var/log/kube-proxy.log + command: + - /usr/local/bin/kube-proxy + image: k8s.gcr.io/kube-proxy-amd64:v1.18.0 + name: kube-proxy + resources: + requests: + cpu: 100m + securityContext: + privileged: true + volumeMounts: + - mountPath: /var/log/kube-proxy.log + name: logfile + - mountPath: /var/lib/kube-proxy/kubeconfig + name: kubeconfig + readOnly: true + - mountPath: /lib/modules + name: modules + readOnly: true + - mountPath: /etc/ssl/certs + name: ssl-certs-hosts + readOnly: true + - mountPath: /run/xtables.lock + name: iptableslock + hostNetwork: true + priorityClassName: system-node-critical + tolerations: + - key: CriticalAddonsOnly + operator: Exists + volumes: + - hostPath: + path: /var/log/kube-proxy.log + name: logfile + - hostPath: + path: /var/lib/kube-proxy/kubeconfig + name: kubeconfig + - hostPath: + path: /lib/modules + name: modules + - hostPath: + path: /usr/share/ca-certificates + name: ssl-certs-hosts + - hostPath: + path: /run/xtables.lock + type: FileOrCreate + name: iptableslock + status: {} +path: /etc/kubernetes/manifests/kube-proxy.manifest +type: file +--- +contents: | + apiVersion: v1 + clusters: + - cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMyRENDQWNDZ0F3SUJBZ0lSQUxKWEFrVmo5NjR0cTY3d01TSThvSlF3RFFZSktvWklodmNOQVFFTEJRQXcKRlRFVE1CRUdBMVVFQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4TnpFeU1qY3lNelV5TkRCYUZ3MHlOekV5TWpjeQpNelV5TkRCYU1CVXhFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBCkE0SUJEd0F3Z2dFS0FvSUJBUURnbkNrU210bm1meEVnUzNxTlBhVUNINVFPQkdESC9pbkhiV0NPRExCQ0s5Z2QKWEVjQmw3RlZ2OFQya0ZyMURZYjBIVkR0TUk3dGl4UlZGRExna3dObFczNHh3V2RaWEI3R2VvRmdVMXhXT1FTWQpPQUNDOEpnWVRRLzEzOUhCRXZncTRzZWo2N3ArL3MvU05jdzM0S2s3SEl1RmhsazFyUms1a01leEtJbEpCS1AxCllZVVlldHNKL1FwVU9rcUo1SFc0R29ldEU3Nll0SG5PUmZZdm55YnZpU01yaDJ3R0dhTjZyL3M0Q2hPYUliWkMKQW44L1lpUEtHSURhWkdwajZHWG5tWEFSUlgvVElkZ1NRa0x3dDBhVERCblBaNFh2dHBJOGFhTDhEWUpJcUF6QQpOUEgyYjQvdU55bGF0NWpEbzBiMEc1NGFnTWk5NysyQVVyQzlVVVhwQWdNQkFBR2pJekFoTUE0R0ExVWREd0VCCi93UUVBd0lCQmpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCVkdSMnIKaHpYelJNVTV3cmlQUUFKU2Nzek5PUnZvQnBYZlpvWjA5Rkl1cHVkRnhCVlUzZDRoVjlTdEtuUWdQU0dBNVhRTwpIRTk3K0J4SkR1QS9yQjVvQlVzTUJqYzd5MWNkZS9UNmhtaTNyTG9FWUJTblN1ZENPWEpFNEc5LzBmOGJ5QUplCnJOOCtObzFyMlZnWnZaaDZwNzRURWtYdi9sM0hCUFdNN0lkVVYwSE85SkRoU2dPVkYxZnlRS0p4UnVMSlI4anQKTzZtUEgyVVgwdk13VmE0anZ3dGtkZHFrMk9BZFlRdkg5cmJEampiemFpVzBLbm1kdWVSbzkyS0hBTjdCc0RaeQpWcFhIcHFvMUt6ZzdEM2ZwYVhDZjVzaTdscXFyZEpWWEg0SkM3Mnp4c1BlaHFnaThlSXVxT0JraURXbVJ4QXhoCjh5R2VSeDlBYmtuSGg0SWEKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= + server: https://127.0.0.1 + name: local + contexts: + - context: + cluster: local + user: kube-proxy + name: service-account-context + current-context: service-account-context + kind: Config + users: + - name: kube-proxy + user: + client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMyRENDQWNDZ0F3SUJBZ0lSQUxKWEFrVmo5NjR0cTY3d01TSThvSlF3RFFZSktvWklodmNOQVFFTEJRQXcKRlRFVE1CRUdBMVVFQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4TnpFeU1qY3lNelV5TkRCYUZ3MHlOekV5TWpjeQpNelV5TkRCYU1CVXhFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBCkE0SUJEd0F3Z2dFS0FvSUJBUURnbkNrU210bm1meEVnUzNxTlBhVUNINVFPQkdESC9pbkhiV0NPRExCQ0s5Z2QKWEVjQmw3RlZ2OFQya0ZyMURZYjBIVkR0TUk3dGl4UlZGRExna3dObFczNHh3V2RaWEI3R2VvRmdVMXhXT1FTWQpPQUNDOEpnWVRRLzEzOUhCRXZncTRzZWo2N3ArL3MvU05jdzM0S2s3SEl1RmhsazFyUms1a01leEtJbEpCS1AxCllZVVlldHNKL1FwVU9rcUo1SFc0R29ldEU3Nll0SG5PUmZZdm55YnZpU01yaDJ3R0dhTjZyL3M0Q2hPYUliWkMKQW44L1lpUEtHSURhWkdwajZHWG5tWEFSUlgvVElkZ1NRa0x3dDBhVERCblBaNFh2dHBJOGFhTDhEWUpJcUF6QQpOUEgyYjQvdU55bGF0NWpEbzBiMEc1NGFnTWk5NysyQVVyQzlVVVhwQWdNQkFBR2pJekFoTUE0R0ExVWREd0VCCi93UUVBd0lCQmpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCVkdSMnIKaHpYelJNVTV3cmlQUUFKU2Nzek5PUnZvQnBYZlpvWjA5Rkl1cHVkRnhCVlUzZDRoVjlTdEtuUWdQU0dBNVhRTwpIRTk3K0J4SkR1QS9yQjVvQlVzTUJqYzd5MWNkZS9UNmhtaTNyTG9FWUJTblN1ZENPWEpFNEc5LzBmOGJ5QUplCnJOOCtObzFyMlZnWnZaaDZwNzRURWtYdi9sM0hCUFdNN0lkVVYwSE85SkRoU2dPVkYxZnlRS0p4UnVMSlI4anQKTzZtUEgyVVgwdk13VmE0anZ3dGtkZHFrMk9BZFlRdkg5cmJEampiemFpVzBLbm1kdWVSbzkyS0hBTjdCc0RaeQpWcFhIcHFvMUt6ZzdEM2ZwYVhDZjVzaTdscXFyZEpWWEg0SkM3Mnp4c1BlaHFnaThlSXVxT0JraURXbVJ4QXhoCjh5R2VSeDlBYmtuSGg0SWEKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= + client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBNEp3cEVwclo1bjhSSUV0NmpUMmxBaCtVRGdSZ3gvNHB4MjFnamd5d1FpdllIVnhICkFaZXhWYi9FOXBCYTlRMkc5QjFRN1RDTzdZc1VWUlF5NEpNRFpWdCtNY0ZuV1Z3ZXhucUJZRk5jVmprRW1EZ0EKZ3ZDWUdFMFA5ZC9Sd1JMNEt1TEhvK3U2ZnY3UDBqWE1OK0NwT3h5TGhZWlpOYTBaT1pESHNTaUpTUVNqOVdHRgpHSHJiQ2YwS1ZEcEtpZVIxdUJxSHJSTyttTFI1emtYMkw1OG03NGtqSzRkc0JobWplcS83T0FvVG1pRzJRZ0ovClAySWp5aGlBMm1ScVkraGw1NWx3RVVWLzB5SFlFa0pDOExkR2t3d1p6MmVGNzdhU1BHbWkvQTJDU0tnTXdEVHgKOW0rUDdqY3BXcmVZdzZORzlCdWVHb0RJdmUvdGdGS3d2VkZGNlFJREFRQUJBb0lCQUEwa3RqYVRmeXJBeHNUSQpCZXpiN1pyNU5CVzU1ZHZ1SUkyOTljZDZNSm8rckkvVFJZaHZVdjQ4a1k4SUZYcC9oeVVqemdlREx1bnhtSWY5Ci9aZ3NvaWM5T2w0NC9nNDVtTWR1aGNHWVB6QUFlQ2RjSjVPQjlyUjlWZkRDWHlqWUxsTjhIOGlVMDczNHRUcU0KMFYxM3RROXpkU3FrR1BaT0ljcS9rUi9weWxiT1phUU1lOTdCVGxzQW5PTVNNS0RnbmZ0WTQxMjJMcTNHWXkrdAp2cHIrYktWYVFad3ZrTG9TVTNyRUNDYUthZ2hnd0N5WDdqZnQ5YUVraGRKditLbHdic0dZNldFcnZ4T2FMV0hkCmN1TVFqR2FwWTFGYS80VUQwMG12ckEyNjBOeUtmenJwNitQNDZSclZNd0VZUkpNSVE4WUJBazZONkhoN2RjMEcKOFo2aTFtMENnWUVBOUhlQ0pSMFRTd2JJUTFiRFhVcnpwZnRIdWlkRzVCblNCdGF4L05EOXFJUGhSL0ZCVzVuagoyMm53TGM0OEtreWlybGZJVUxkMGFlNHFWWEpuN3dmWWN1WC9jSk1MRG1TVnRsTTVEem1pLzkxeFJpRmdJengxCkFzYkJ6YUZqSVNQMkhwU2dMK2U5RnRTWGFhcWVaVnJmbGl0VmhZS1VwSS9BS1YzMXFHSGYwNHNDZ1lFQTZ6VFYKOTlTYjQ5V2RsbnM1SWdzZm5YbDZUb1J0dEIxOGxmRUtjVmZqQU00ZnJua2swNkpwRkFaZVIrOUdHS1VYWkhxcwp6MnFjcGx3NGQvbW9DQzZwM3JZUEJNTFhzckdORVVGWnFCbGd6NzJRQTZCQnEzWDBDZzFCYzJaYks1Vkl6d2tnClNUMlNTdXg2Y2NST2ZnVUxtTjVaaUxPdGRVS05FWnBGRjNpM3F0c0NnWUFEVC9zN2RZRmxhdG9iejNrbU1uWEsKc2ZUdTJNbGxIZFJ5czBZR0h1N1E4YmlEdVFraHJKd2h4UFcwS1M4M2c0SlF5bSswYUVmemgzNmJXY2wrdTZSNwpLaEtqKzlvU2Y5cG5kZ2szNDVnSnozNVJiUEpZaCtFdUFITnZ6ZGdDQXZLNngxakVUV2VLZjZidGo1cEYxVTFpClE0UU5Jdy9RaXdJWGpXWmV1YlRHc1FLQmdRQ2JkdUx1MnJMbmx5eUFhSlpNOERsSFp5SDJnQVhiQlpweHFVOFQKdDltdGtKRFVTL0tSaUVvWUdGVjlDcVMwYVhyYXlWTXNEZlhZNkIvUy9VdVpqTzV1N0x0a2xEenFPZjFhS0czUQpkR1hQS2lia25xcUpZSCtiblVOanVZWU5lckVUVjU3bGlqTUdIdVNZQ2Y4dndMbjNveEJmRVJSWDYxTS9EVThaCndvcnovUUtCZ1FEQ1RKSTIramRYZzI2WHVZVW1NNFhYZm5vY2Z6QVhoWEJVTHQxbkVOY29nTmYxZmNwdEFWdHUKQkFpejQvSGlwUUtxb1dWVVlteGZnYmJMUktLTEswczBsT1dLYllkVmpoRW0vbTJaVTh3dFhUYWdOd2tJR295cQpZL0MxTG94NGYxUk9KbkNqYy9oZmNPamN4WDVNOEE4cGVlY0hXbFZ0VVBLVEpneFE3b01LY3c9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= +mode: "0400" +path: /var/lib/kube-proxy/kubeconfig +type: file +--- +contents: "" +ifNotExists: true +mode: "0400" +path: /var/log/kube-proxy.log +type: file diff --git a/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-proxy-arm64.yaml b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-proxy-arm64.yaml new file mode 100644 index 0000000000..067f671ebc --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-proxy-arm64.yaml @@ -0,0 +1,102 @@ +contents: | + apiVersion: v1 + kind: Pod + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + creationTimestamp: null + labels: + k8s-app: kube-proxy + tier: node + name: kube-proxy + namespace: kube-system + spec: + containers: + - args: + - --cluster-cidr=100.96.0.0/11 + - --conntrack-max-per-core=131072 + - --hostname-override=@aws + - --kubeconfig=/var/lib/kube-proxy/kubeconfig + - --master=https://127.0.0.1 + - --oom-score-adj=-998 + - --v=2 + - --logtostderr=false + - --alsologtostderr + - --log-file=/var/log/kube-proxy.log + command: + - /usr/local/bin/kube-proxy + image: k8s.gcr.io/kube-proxy-arm64:v1.18.0 + name: kube-proxy + resources: + requests: + cpu: 100m + securityContext: + privileged: true + volumeMounts: + - mountPath: /var/log/kube-proxy.log + name: logfile + - mountPath: /var/lib/kube-proxy/kubeconfig + name: kubeconfig + readOnly: true + - mountPath: /lib/modules + name: modules + readOnly: true + - mountPath: /etc/ssl/certs + name: ssl-certs-hosts + readOnly: true + - mountPath: /run/xtables.lock + name: iptableslock + hostNetwork: true + priorityClassName: system-node-critical + tolerations: + - key: CriticalAddonsOnly + operator: Exists + volumes: + - hostPath: + path: /var/log/kube-proxy.log + name: logfile + - hostPath: + path: /var/lib/kube-proxy/kubeconfig + name: kubeconfig + - hostPath: + path: /lib/modules + name: modules + - hostPath: + path: /usr/share/ca-certificates + name: ssl-certs-hosts + - hostPath: + path: /run/xtables.lock + type: FileOrCreate + name: iptableslock + status: {} +path: /etc/kubernetes/manifests/kube-proxy.manifest +type: file +--- +contents: | + apiVersion: v1 + clusters: + - cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMyRENDQWNDZ0F3SUJBZ0lSQUxKWEFrVmo5NjR0cTY3d01TSThvSlF3RFFZSktvWklodmNOQVFFTEJRQXcKRlRFVE1CRUdBMVVFQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4TnpFeU1qY3lNelV5TkRCYUZ3MHlOekV5TWpjeQpNelV5TkRCYU1CVXhFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBCkE0SUJEd0F3Z2dFS0FvSUJBUURnbkNrU210bm1meEVnUzNxTlBhVUNINVFPQkdESC9pbkhiV0NPRExCQ0s5Z2QKWEVjQmw3RlZ2OFQya0ZyMURZYjBIVkR0TUk3dGl4UlZGRExna3dObFczNHh3V2RaWEI3R2VvRmdVMXhXT1FTWQpPQUNDOEpnWVRRLzEzOUhCRXZncTRzZWo2N3ArL3MvU05jdzM0S2s3SEl1RmhsazFyUms1a01leEtJbEpCS1AxCllZVVlldHNKL1FwVU9rcUo1SFc0R29ldEU3Nll0SG5PUmZZdm55YnZpU01yaDJ3R0dhTjZyL3M0Q2hPYUliWkMKQW44L1lpUEtHSURhWkdwajZHWG5tWEFSUlgvVElkZ1NRa0x3dDBhVERCblBaNFh2dHBJOGFhTDhEWUpJcUF6QQpOUEgyYjQvdU55bGF0NWpEbzBiMEc1NGFnTWk5NysyQVVyQzlVVVhwQWdNQkFBR2pJekFoTUE0R0ExVWREd0VCCi93UUVBd0lCQmpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCVkdSMnIKaHpYelJNVTV3cmlQUUFKU2Nzek5PUnZvQnBYZlpvWjA5Rkl1cHVkRnhCVlUzZDRoVjlTdEtuUWdQU0dBNVhRTwpIRTk3K0J4SkR1QS9yQjVvQlVzTUJqYzd5MWNkZS9UNmhtaTNyTG9FWUJTblN1ZENPWEpFNEc5LzBmOGJ5QUplCnJOOCtObzFyMlZnWnZaaDZwNzRURWtYdi9sM0hCUFdNN0lkVVYwSE85SkRoU2dPVkYxZnlRS0p4UnVMSlI4anQKTzZtUEgyVVgwdk13VmE0anZ3dGtkZHFrMk9BZFlRdkg5cmJEampiemFpVzBLbm1kdWVSbzkyS0hBTjdCc0RaeQpWcFhIcHFvMUt6ZzdEM2ZwYVhDZjVzaTdscXFyZEpWWEg0SkM3Mnp4c1BlaHFnaThlSXVxT0JraURXbVJ4QXhoCjh5R2VSeDlBYmtuSGg0SWEKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= + server: https://127.0.0.1 + name: local + contexts: + - context: + cluster: local + user: kube-proxy + name: service-account-context + current-context: service-account-context + kind: Config + users: + - name: kube-proxy + user: + client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMyRENDQWNDZ0F3SUJBZ0lSQUxKWEFrVmo5NjR0cTY3d01TSThvSlF3RFFZSktvWklodmNOQVFFTEJRQXcKRlRFVE1CRUdBMVVFQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB4TnpFeU1qY3lNelV5TkRCYUZ3MHlOekV5TWpjeQpNelV5TkRCYU1CVXhFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBCkE0SUJEd0F3Z2dFS0FvSUJBUURnbkNrU210bm1meEVnUzNxTlBhVUNINVFPQkdESC9pbkhiV0NPRExCQ0s5Z2QKWEVjQmw3RlZ2OFQya0ZyMURZYjBIVkR0TUk3dGl4UlZGRExna3dObFczNHh3V2RaWEI3R2VvRmdVMXhXT1FTWQpPQUNDOEpnWVRRLzEzOUhCRXZncTRzZWo2N3ArL3MvU05jdzM0S2s3SEl1RmhsazFyUms1a01leEtJbEpCS1AxCllZVVlldHNKL1FwVU9rcUo1SFc0R29ldEU3Nll0SG5PUmZZdm55YnZpU01yaDJ3R0dhTjZyL3M0Q2hPYUliWkMKQW44L1lpUEtHSURhWkdwajZHWG5tWEFSUlgvVElkZ1NRa0x3dDBhVERCblBaNFh2dHBJOGFhTDhEWUpJcUF6QQpOUEgyYjQvdU55bGF0NWpEbzBiMEc1NGFnTWk5NysyQVVyQzlVVVhwQWdNQkFBR2pJekFoTUE0R0ExVWREd0VCCi93UUVBd0lCQmpBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCVkdSMnIKaHpYelJNVTV3cmlQUUFKU2Nzek5PUnZvQnBYZlpvWjA5Rkl1cHVkRnhCVlUzZDRoVjlTdEtuUWdQU0dBNVhRTwpIRTk3K0J4SkR1QS9yQjVvQlVzTUJqYzd5MWNkZS9UNmhtaTNyTG9FWUJTblN1ZENPWEpFNEc5LzBmOGJ5QUplCnJOOCtObzFyMlZnWnZaaDZwNzRURWtYdi9sM0hCUFdNN0lkVVYwSE85SkRoU2dPVkYxZnlRS0p4UnVMSlI4anQKTzZtUEgyVVgwdk13VmE0anZ3dGtkZHFrMk9BZFlRdkg5cmJEampiemFpVzBLbm1kdWVSbzkyS0hBTjdCc0RaeQpWcFhIcHFvMUt6ZzdEM2ZwYVhDZjVzaTdscXFyZEpWWEg0SkM3Mnp4c1BlaHFnaThlSXVxT0JraURXbVJ4QXhoCjh5R2VSeDlBYmtuSGg0SWEKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= + client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBNEp3cEVwclo1bjhSSUV0NmpUMmxBaCtVRGdSZ3gvNHB4MjFnamd5d1FpdllIVnhICkFaZXhWYi9FOXBCYTlRMkc5QjFRN1RDTzdZc1VWUlF5NEpNRFpWdCtNY0ZuV1Z3ZXhucUJZRk5jVmprRW1EZ0EKZ3ZDWUdFMFA5ZC9Sd1JMNEt1TEhvK3U2ZnY3UDBqWE1OK0NwT3h5TGhZWlpOYTBaT1pESHNTaUpTUVNqOVdHRgpHSHJiQ2YwS1ZEcEtpZVIxdUJxSHJSTyttTFI1emtYMkw1OG03NGtqSzRkc0JobWplcS83T0FvVG1pRzJRZ0ovClAySWp5aGlBMm1ScVkraGw1NWx3RVVWLzB5SFlFa0pDOExkR2t3d1p6MmVGNzdhU1BHbWkvQTJDU0tnTXdEVHgKOW0rUDdqY3BXcmVZdzZORzlCdWVHb0RJdmUvdGdGS3d2VkZGNlFJREFRQUJBb0lCQUEwa3RqYVRmeXJBeHNUSQpCZXpiN1pyNU5CVzU1ZHZ1SUkyOTljZDZNSm8rckkvVFJZaHZVdjQ4a1k4SUZYcC9oeVVqemdlREx1bnhtSWY5Ci9aZ3NvaWM5T2w0NC9nNDVtTWR1aGNHWVB6QUFlQ2RjSjVPQjlyUjlWZkRDWHlqWUxsTjhIOGlVMDczNHRUcU0KMFYxM3RROXpkU3FrR1BaT0ljcS9rUi9weWxiT1phUU1lOTdCVGxzQW5PTVNNS0RnbmZ0WTQxMjJMcTNHWXkrdAp2cHIrYktWYVFad3ZrTG9TVTNyRUNDYUthZ2hnd0N5WDdqZnQ5YUVraGRKditLbHdic0dZNldFcnZ4T2FMV0hkCmN1TVFqR2FwWTFGYS80VUQwMG12ckEyNjBOeUtmenJwNitQNDZSclZNd0VZUkpNSVE4WUJBazZONkhoN2RjMEcKOFo2aTFtMENnWUVBOUhlQ0pSMFRTd2JJUTFiRFhVcnpwZnRIdWlkRzVCblNCdGF4L05EOXFJUGhSL0ZCVzVuagoyMm53TGM0OEtreWlybGZJVUxkMGFlNHFWWEpuN3dmWWN1WC9jSk1MRG1TVnRsTTVEem1pLzkxeFJpRmdJengxCkFzYkJ6YUZqSVNQMkhwU2dMK2U5RnRTWGFhcWVaVnJmbGl0VmhZS1VwSS9BS1YzMXFHSGYwNHNDZ1lFQTZ6VFYKOTlTYjQ5V2RsbnM1SWdzZm5YbDZUb1J0dEIxOGxmRUtjVmZqQU00ZnJua2swNkpwRkFaZVIrOUdHS1VYWkhxcwp6MnFjcGx3NGQvbW9DQzZwM3JZUEJNTFhzckdORVVGWnFCbGd6NzJRQTZCQnEzWDBDZzFCYzJaYks1Vkl6d2tnClNUMlNTdXg2Y2NST2ZnVUxtTjVaaUxPdGRVS05FWnBGRjNpM3F0c0NnWUFEVC9zN2RZRmxhdG9iejNrbU1uWEsKc2ZUdTJNbGxIZFJ5czBZR0h1N1E4YmlEdVFraHJKd2h4UFcwS1M4M2c0SlF5bSswYUVmemgzNmJXY2wrdTZSNwpLaEtqKzlvU2Y5cG5kZ2szNDVnSnozNVJiUEpZaCtFdUFITnZ6ZGdDQXZLNngxakVUV2VLZjZidGo1cEYxVTFpClE0UU5Jdy9RaXdJWGpXWmV1YlRHc1FLQmdRQ2JkdUx1MnJMbmx5eUFhSlpNOERsSFp5SDJnQVhiQlpweHFVOFQKdDltdGtKRFVTL0tSaUVvWUdGVjlDcVMwYVhyYXlWTXNEZlhZNkIvUy9VdVpqTzV1N0x0a2xEenFPZjFhS0czUQpkR1hQS2lia25xcUpZSCtiblVOanVZWU5lckVUVjU3bGlqTUdIdVNZQ2Y4dndMbjNveEJmRVJSWDYxTS9EVThaCndvcnovUUtCZ1FEQ1RKSTIramRYZzI2WHVZVW1NNFhYZm5vY2Z6QVhoWEJVTHQxbkVOY29nTmYxZmNwdEFWdHUKQkFpejQvSGlwUUtxb1dWVVlteGZnYmJMUktLTEswczBsT1dLYllkVmpoRW0vbTJaVTh3dFhUYWdOd2tJR295cQpZL0MxTG94NGYxUk9KbkNqYy9oZmNPamN4WDVNOEE4cGVlY0hXbFZ0VVBLVEpneFE3b01LY3c9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= +mode: "0400" +path: /var/lib/kube-proxy/kubeconfig +type: file +--- +contents: "" +ifNotExists: true +mode: "0400" +path: /var/log/kube-proxy.log +type: file diff --git a/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-scheduler-amd64.yaml b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-scheduler-amd64.yaml new file mode 100644 index 0000000000..ae495e9b8a --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-scheduler-amd64.yaml @@ -0,0 +1,129 @@ +contents: | + apiVersion: v1 + kind: Pod + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + creationTimestamp: null + labels: + k8s-app: kube-scheduler + name: kube-scheduler + namespace: kube-system + spec: + containers: + - args: + - --config=/var/lib/kube-scheduler/config.yaml + - --leader-elect=true + - --v=2 + - --logtostderr=false + - --alsologtostderr + - --log-file=/var/log/kube-scheduler.log + command: + - /usr/local/bin/kube-scheduler + image: k8s.gcr.io/kube-scheduler-amd64:v1.18.0 + livenessProbe: + httpGet: + host: 127.0.0.1 + path: /healthz + port: 10251 + initialDelaySeconds: 15 + timeoutSeconds: 15 + name: kube-scheduler + resources: + requests: + cpu: 100m + volumeMounts: + - mountPath: /var/lib/kube-scheduler + name: varlibkubescheduler + readOnly: true + - mountPath: /var/log/kube-scheduler.log + name: logfile + hostNetwork: true + priorityClassName: system-cluster-critical + tolerations: + - key: CriticalAddonsOnly + operator: Exists + volumes: + - hostPath: + path: /var/lib/kube-scheduler + name: varlibkubescheduler + - hostPath: + path: /var/log/kube-scheduler.log + name: logfile + status: {} +path: /etc/kubernetes/manifests/kube-scheduler.manifest +type: file +--- +contents: | + apiVersion: kubescheduler.config.k8s.io/v1alpha2 + kind: KubeSchedulerConfiguration + clientConnection: + kubeconfig: /var/lib/kube-scheduler/kubeconfig +mode: "0400" +path: /var/lib/kube-scheduler/config.yaml +type: file +--- +contents: + task: + CA: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client + Cert: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client + Key: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client + Name: kube-scheduler + ServerURL: https://127.0.0.1 +mode: "0400" +path: /var/lib/kube-scheduler/kubeconfig +type: file +--- +contents: "" +ifNotExists: true +mode: "0400" +path: /var/log/kube-scheduler.log +type: file +--- +Name: kube-scheduler +signer: ca +subject: + CommonName: system:kube-scheduler +type: client +--- +CA: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client +Cert: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client +Key: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client +Name: kube-scheduler +ServerURL: https://127.0.0.1 diff --git a/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-scheduler-arm64.yaml b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-scheduler-arm64.yaml new file mode 100644 index 0000000000..151c602b73 --- /dev/null +++ b/nodeup/pkg/model/tests/golden/side-loading/tasks-kube-scheduler-arm64.yaml @@ -0,0 +1,129 @@ +contents: | + apiVersion: v1 + kind: Pod + metadata: + annotations: + scheduler.alpha.kubernetes.io/critical-pod: "" + creationTimestamp: null + labels: + k8s-app: kube-scheduler + name: kube-scheduler + namespace: kube-system + spec: + containers: + - args: + - --config=/var/lib/kube-scheduler/config.yaml + - --leader-elect=true + - --v=2 + - --logtostderr=false + - --alsologtostderr + - --log-file=/var/log/kube-scheduler.log + command: + - /usr/local/bin/kube-scheduler + image: k8s.gcr.io/kube-scheduler-arm64:v1.18.0 + livenessProbe: + httpGet: + host: 127.0.0.1 + path: /healthz + port: 10251 + initialDelaySeconds: 15 + timeoutSeconds: 15 + name: kube-scheduler + resources: + requests: + cpu: 100m + volumeMounts: + - mountPath: /var/lib/kube-scheduler + name: varlibkubescheduler + readOnly: true + - mountPath: /var/log/kube-scheduler.log + name: logfile + hostNetwork: true + priorityClassName: system-cluster-critical + tolerations: + - key: CriticalAddonsOnly + operator: Exists + volumes: + - hostPath: + path: /var/lib/kube-scheduler + name: varlibkubescheduler + - hostPath: + path: /var/log/kube-scheduler.log + name: logfile + status: {} +path: /etc/kubernetes/manifests/kube-scheduler.manifest +type: file +--- +contents: | + apiVersion: kubescheduler.config.k8s.io/v1alpha2 + kind: KubeSchedulerConfiguration + clientConnection: + kubeconfig: /var/lib/kube-scheduler/kubeconfig +mode: "0400" +path: /var/lib/kube-scheduler/config.yaml +type: file +--- +contents: + task: + CA: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client + Cert: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client + Key: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client + Name: kube-scheduler + ServerURL: https://127.0.0.1 +mode: "0400" +path: /var/lib/kube-scheduler/kubeconfig +type: file +--- +contents: "" +ifNotExists: true +mode: "0400" +path: /var/log/kube-scheduler.log +type: file +--- +Name: kube-scheduler +signer: ca +subject: + CommonName: system:kube-scheduler +type: client +--- +CA: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client +Cert: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client +Key: + task: + Name: kube-scheduler + signer: ca + subject: + CommonName: system:kube-scheduler + type: client +Name: kube-scheduler +ServerURL: https://127.0.0.1