To that end ....
Geeking in technology since 1985, with IBM Development, focused upon Docker and Kubernetes on the IBM Z LinuxONE platform In the words of Dr Cathy Ryan, "If you don't write it down, it never happened". To paraphrase one of my clients, "Every day is a school day". I do, I learn, I share. The postings on this site are my own and don’t necessarily represent IBM’s positions, strategies or opinions. Remember, YMMV https://infosec.exchange/@davehay
Tuesday, 30 June 2020
Mockers ride again
I'm tinkering with Java at the moment, using Microsoft Visual Studio Code ( my "new" fave IDE-of-choice ), and am looking at mocking specific HTTP services and calls .....
Monday, 29 June 2020
Apple iMovie and the Ken Burns effect
PSA: If using iMovie to create ... movies from screen recordings taken using [cmd][shift][5] be aware of the auto-cropping, including the so-called Ken Burns effect
https://support.apple.com/kb/PH22923?locale=en_US&viewlocale=en_US
I ended up recording clips several times before I remembered that I'd seen, and solved, this before ....
I wanted a full-screen recording of Terminal ( because .... I live there ) and iMovie was trying to be extra-helpful ......
https://support.apple.com/kb/PH22923?locale=en_US&viewlocale=en_US
I ended up recording clips several times before I remembered that I'd seen, and solved, this before ....
I wanted a full-screen recording of Terminal ( because .... I live there ) and iMovie was trying to be extra-helpful ......
Tuesday, 16 June 2020
Building Kubernetes - Getting it to Go right ....
I'm currently building Kubernetes from source, on an Ubuntu box.
Having cloned the repo: -
mkdir -p $(go env GOPATH)/src/k8s.io
cd $(go env GOPATH)/src/k8s.io
git clone https://github.com/kubernetes/kubernetes.git
cd kubernetes
I was looking at a specific version of K8s - v1.16.2 : -
git checkout tags/v1.16.2
but, when I started to build any of the K8s binaries e.g. kubectl I saw this: -
make kubectl
cannot find module providing package k8s.io/kubernetes: unrecognized import path "k8s.io": parse https://k8s.io/?go-get=1: no go-import meta tags (meta tag k8s.io/ did not match import path k8s.io)
+++ [0616 01:06:04] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/deepcopy-gen
go: finding module for package k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/deepcopy-gen
can't load package: package k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/deepcopy-gen: no matching versions for query "latest"
!!! [0616 01:06:07] Call tree:
!!! [0616 01:06:07] 1: /root/go/src/k8s.io/kubernetes/hack/lib/golang.sh:714 kube::golang::build_some_binaries(...)
!!! [0616 01:06:07] 2: /root/go/src/k8s.io/kubernetes/hack/lib/golang.sh:853 kube::golang::build_binaries_for_platform(...)
!!! [0616 01:06:07] 3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
!!! [0616 01:06:07] Call tree:
!!! [0616 01:06:07] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
!!! [0616 01:06:07] Call tree:
!!! [0616 01:06:07] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
Makefile.generated_files:200: recipe for target '_output/bin/deepcopy-gen' failed
make[1]: *** [_output/bin/deepcopy-gen] Error 1
Makefile:559: recipe for target 'generated_files' failed
make: *** [generated_files] Error 2
This led me here: -
can't load package: package k8s.io/kubernetes: cannot find module providing package k8s.io/kubernetes #84224
and here: -
switch build scripts to use go modules, stop requiring $GOPATH #82531
and made me realise that I had a disparity between the version of Go I was using: -
go version
go version go1.14.3 linux/amd64
and the version of K8s itself.
Having cloned the repo: -
mkdir -p $(go env GOPATH)/src/k8s.io
cd $(go env GOPATH)/src/k8s.io
git clone https://github.com/kubernetes/kubernetes.git
cd kubernetes
I was looking at a specific version of K8s - v1.16.2 : -
git checkout tags/v1.16.2
but, when I started to build any of the K8s binaries e.g. kubectl I saw this: -
make kubectl
cannot find module providing package k8s.io/kubernetes: unrecognized import path "k8s.io": parse https://k8s.io/?go-get=1: no go-import meta tags (meta tag k8s.io/ did not match import path k8s.io)
+++ [0616 01:06:04] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/deepcopy-gen
go: finding module for package k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/deepcopy-gen
can't load package: package k8s.io/kubernetes/vendor/k8s.io/code-generator/cmd/deepcopy-gen: no matching versions for query "latest"
!!! [0616 01:06:07] Call tree:
!!! [0616 01:06:07] 1: /root/go/src/k8s.io/kubernetes/hack/lib/golang.sh:714 kube::golang::build_some_binaries(...)
!!! [0616 01:06:07] 2: /root/go/src/k8s.io/kubernetes/hack/lib/golang.sh:853 kube::golang::build_binaries_for_platform(...)
!!! [0616 01:06:07] 3: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
!!! [0616 01:06:07] Call tree:
!!! [0616 01:06:07] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
!!! [0616 01:06:07] Call tree:
!!! [0616 01:06:07] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...)
Makefile.generated_files:200: recipe for target '_output/bin/deepcopy-gen' failed
make[1]: *** [_output/bin/deepcopy-gen] Error 1
Makefile:559: recipe for target 'generated_files' failed
make: *** [generated_files] Error 2
This led me here: -
can't load package: package k8s.io/kubernetes: cannot find module providing package k8s.io/kubernetes #84224
and here: -
switch build scripts to use go modules, stop requiring $GOPATH #82531
and made me realise that I had a disparity between the version of Go I was using: -
go version
go version go1.14.3 linux/amd64
and the version of K8s itself.
In other words, I was trying to build K8s 1.16.2 using Go 1.14.3
Thankfully, the K8s repo has the answer: -
Once I realised this, and switched back to the main branch of K8s, which is the latest
Cloning into 'kubernetes'...
remote: Enumerating objects: 229, done.
remote: Counting objects: 100% (229/229), done.
remote: Compressing objects: 100% (136/136), done.
remote: Total 1118551 (delta 115), reused 95 (delta 93), pack-reused 1118322
Receiving objects: 100% (1118551/1118551), 688.00 MiB | 25.10 MiB/s, done.
Resolving deltas: 100% (800101/800101), done.
Updating files: 100% (22439/22439), done.
remote: Enumerating objects: 229, done.
remote: Counting objects: 100% (229/229), done.
remote: Compressing objects: 100% (136/136), done.
remote: Total 1118551 (delta 115), reused 95 (delta 93), pack-reused 1118322
Receiving objects: 100% (1118551/1118551), 688.00 MiB | 25.10 MiB/s, done.
Resolving deltas: 100% (800101/800101), done.
Updating files: 100% (22439/22439), done.
cd kubernetes/
git branch
* master
all was good
make kubectl
+++ [0616 01:15:05] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/prerelease-lifecycle-gen
+++ [0616 01:15:15] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/deepcopy-gen
+++ [0616 01:15:31] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/defaulter-gen
+++ [0616 01:15:45] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/conversion-gen
+++ [0616 01:16:08] Building go targets for linux/amd64:
./vendor/k8s.io/kube-openapi/cmd/openapi-gen
+++ [0616 01:16:27] Building go targets for linux/amd64:
./vendor/github.com/go-bindata/go-bindata/go-bindata
+++ [0616 01:16:30] Building go targets for linux/amd64:
cmd/kubectl
./vendor/k8s.io/code-generator/cmd/prerelease-lifecycle-gen
+++ [0616 01:15:15] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/deepcopy-gen
+++ [0616 01:15:31] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/defaulter-gen
+++ [0616 01:15:45] Building go targets for linux/amd64:
./vendor/k8s.io/code-generator/cmd/conversion-gen
+++ [0616 01:16:08] Building go targets for linux/amd64:
./vendor/k8s.io/kube-openapi/cmd/openapi-gen
+++ [0616 01:16:27] Building go targets for linux/amd64:
./vendor/github.com/go-bindata/go-bindata/go-bindata
+++ [0616 01:16:30] Building go targets for linux/amd64:
cmd/kubectl
Friday, 5 June 2020
Demo: Z DevOps using Git and Jenkins pipeline - 17 June 2020
The objective of this session is to demonstrate the power of collaborative development and delivery enabled by the IBM Z for DevOps solutions. Application teams can learn how they can modernize their application portfolio using modern technology and tools. We will focus on code and build, automate unit testing and deploy. Production teams can learn how they can extend and automate their existing build and deployment solutions for enterprise applications.
This session will demonstrate how IBM Z DevOps and open source tools like Git and Jenkins, progress the continuous integration, continuous testing and continuous delivery in the z/OS operating environment.
Our scenario consists of a "broken" COBOL/CICS/DB2 application. The developer will use IBM DevOps tools to locate and identify the faulty code, make the appropriate fixes and compile/link/bind using a new build automation tool (DBB) that integrates with Git and Jenkins pipeline on z/OS. Once the code is fixed, the developer will push the changes to a Git repository.
This session will demonstrate how IBM Z DevOps and open source tools like Git and Jenkins, progress the continuous integration, continuous testing and continuous delivery in the z/OS operating environment.
Our scenario consists of a "broken" COBOL/CICS/DB2 application. The developer will use IBM DevOps tools to locate and identify the faulty code, make the appropriate fixes and compile/link/bind using a new build automation tool (DBB) that integrates with Git and Jenkins pipeline on z/OS. Once the code is fixed, the developer will push the changes to a Git repository.
In order to demonstrate continuous delivery capabilities, this session will showcase a Jenkins pipeline integrated with IBM tools for the build process, unit testing(using the new zUnit functionality), and deployment of code to a CICS environment (using UrbanCode Deploy).
While our scenario uses a COBOL/CICS/DB2 program as an example, the process is similar to other environments or languages (such as Batch, IMS, or PL/1
While our scenario uses a COBOL/CICS/DB2 program as an example, the process is similar to other environments or languages (such as Batch, IMS, or PL/1
Something to read/do later - learn to use the iter8 toolchain with Kubernetes
A colleague drew my attention to iter8
Automate canary releases and A/B testing for cloud-native development
via this tutorial: -
Progressively roll out your application in Kubernetes by using the iter8 toolchain
Learn how to set up and use a DevOps toolchain by using iter8 to implement a progressive rollout of a new version of your application.
Learn how to set up and use a DevOps toolchain by using iter8 to implement a progressive rollout of a new version of your application.
on IBM.COM
That's next on my hit list .....
Want to learn COBOL ? Here's how ...
During yesterday's most excellent MainframerZ Meetup, one of our speakers, Will Yates, talked about the COBOL enablement available via the Open Mainframe Project.
Here it is: -
The COBOL Training Course is an open source initiative under the Open Mainframe Project that offers introductory-level educational COBOL materials with modern tooling.
Remembering that COBOL skills are still definitely relevant, despite the language's relative maturity - and yesterday's Meetup amplified that ( replays available shortly ), so get learning !
Thursday, 4 June 2020
Webcast - Keep your data yours – IBM Cloud Hyper Protect Services - 16 June 2020
One of my esteemed colleagues, Stefan Liesche, who is the IBM Distinguished Engineer for IBM Cloud Hyper Protect Services is presenting next week: -
With the introduction of Hyper Protect Services as part of IBM's public and private cloud offerings, we are putting data protection at the center of our focus. This family of services, containers and IaaS runtimes supports the construction of cloud solutions on cloud native technologies and patterns to inherit many of the protection capabilities of the hyper protection profile.
We are enabling developers to build secure cloud applications seamlessly using a portfolio of cloud services powered by IBM LinuxONE.
It is now easier than ever to fortify data protection with increased customer control of access (including from privileged users) and encryption of data at rest and in flight and extend this protection to data in use.
Worth an hour of your time, methinks
Please register here: -
Subscribe to:
Posts (Atom)
Reminder - installing podman and skopeo on Ubuntu 22.04
This follows on from: - Lest I forget - how to install pip on Ubuntu I had reason to install podman and skopeo on an Ubuntu box: - lsb_rel...
-
Why oh why do I forget this ? Running this command : - ldapsearch -h ad2012.uk.ibm.com -p 389 -D CN=bpmbind,CN=Users,DC=uk,DC=ibm,DC=com -w...
-
Error "ldap_sasl_interactive_bind_s: Unknown authentication method (-6)" on a LDAPSearch command ...Whilst building my mega Connections / Domino / Portal / Quickr / Sametime / WCM environment recently, I was using the LDAPSearch command tha...
-
Whilst building a new "vanilla" Kubernetes 1.25.4 cluster, I'd started the kubelet service via: - systemctl start kubelet.se...