Add skeleton of airship-core type
This adds a basic airship-core type and test-site definition, which initially will point back to airshipctl for everything but site-specific configuration. Gating is added under a dependent changeset: https://review.opendev.org/#/c/741648 This removes the yaml-lint job / make target, since that chokes on CRs whose definitions are not present. YAML validation will be re-enabled by borrowing the YAML validation from the airshipctl project, which leverages kustomize and a live kubernetes API server. Change-Id: I51c469f74be1270325f523343c02d36c2512e739
This commit is contained in:
parent
7f8bf5f411
commit
e1cd035938
12
.zuul.yaml
12
.zuul.yaml
@ -13,10 +13,10 @@
|
|||||||
- project:
|
- project:
|
||||||
check:
|
check:
|
||||||
jobs:
|
jobs:
|
||||||
- treasuremap-lint
|
- noop
|
||||||
gate:
|
gate:
|
||||||
jobs:
|
jobs:
|
||||||
- treasuremap-lint
|
- noop
|
||||||
post:
|
post:
|
||||||
jobs:
|
jobs:
|
||||||
- treasuremap-upload-git-mirror
|
- treasuremap-upload-git-mirror
|
||||||
@ -27,14 +27,6 @@
|
|||||||
nodes:
|
nodes:
|
||||||
- name: ubuntu-bionic
|
- name: ubuntu-bionic
|
||||||
label: ubuntu-bionic
|
label: ubuntu-bionic
|
||||||
- job:
|
|
||||||
name: treasuremap-lint
|
|
||||||
description: Lint treasuremap using kubeval
|
|
||||||
nodeset: treasuremap-single-node
|
|
||||||
timeout: 900
|
|
||||||
pre-run:
|
|
||||||
- tools/gate/playbooks/deploy-kubeval.yaml
|
|
||||||
run: tools/gate/playbooks/yaml-lint.yaml
|
|
||||||
|
|
||||||
- secret:
|
- secret:
|
||||||
name: airshipit-github-secret
|
name: airshipit-github-secret
|
||||||
|
4
Makefile
4
Makefile
@ -35,7 +35,3 @@ build_docs:
|
|||||||
format:
|
format:
|
||||||
tox -e fmt
|
tox -e fmt
|
||||||
|
|
||||||
lint:
|
|
||||||
mkdir -p build
|
|
||||||
./tools/gate/install-kubeval.sh $(BUILD_DIR)
|
|
||||||
./tools/gate/run-lint.sh
|
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
# This patches the node02 BMH to be suitable for ephemeral purposes
|
||||||
|
apiVersion: metal3.io/v1alpha1
|
||||||
|
kind: BareMetalHost
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
labels:
|
||||||
|
airshipit.org/ephemeral-node: "true"
|
||||||
|
airshipit.org/deploy-k8s: "false"
|
||||||
|
name: node02
|
||||||
|
spec:
|
||||||
|
online: true
|
||||||
|
bmc:
|
||||||
|
address: redfish+https://localhost:8443/redfish/v1/Systems/air-ephemeral
|
||||||
|
status:
|
||||||
|
provisioning:
|
||||||
|
# we need this status to make sure, that the host is not going to be
|
||||||
|
# reprovisioned by the ephemeral baremetal operator.
|
||||||
|
# when we have more flexible labeling system in place, we will not
|
||||||
|
# deliver this document to ephemeral cluster
|
||||||
|
state: externally provisioned
|
@ -0,0 +1,10 @@
|
|||||||
|
# Site-level, phase-specific lists of hosts to generate
|
||||||
|
# This is used by the hostgenerator-m3 function to narrow down the site-level
|
||||||
|
# host-catalogue to just the hosts needed for a particular phase.
|
||||||
|
apiVersion: airshipit.org/v1alpha1
|
||||||
|
kind: VariableCatalogue
|
||||||
|
metadata:
|
||||||
|
name: host-generation-catalogue
|
||||||
|
hosts:
|
||||||
|
m3:
|
||||||
|
- node02
|
@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../../../../../airshipctl/manifests/function/hostgenerator-m3
|
||||||
|
- ../../../shared/catalogues/
|
||||||
|
- host-generation.yaml
|
||||||
|
|
||||||
|
transformers:
|
||||||
|
- ../../../../../../../airshipctl/manifests/function/hostgenerator-m3/replacements
|
@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../../type/airship-core/ephemeral/bootstrap
|
||||||
|
|
||||||
|
generators:
|
||||||
|
- hostgenerator
|
||||||
|
|
||||||
|
patchesStrategicMerge:
|
||||||
|
- baremetalhost.yaml
|
128
manifests/site/test-site/ephemeral/controlplane/before.yaml
Normal file
128
manifests/site/test-site/ephemeral/controlplane/before.yaml
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
password: cjAwdG1l
|
||||||
|
username: cm9vdA==
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
airshipit.org/k8s-role: controlplane-host
|
||||||
|
name: node01-bmc-secret
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
airshipit.org/k8s-role: controlplane-host
|
||||||
|
name: node01-network-data
|
||||||
|
stringData:
|
||||||
|
networkData: "links:\n-\n id: oam\n mtu: \"1500\"\n name: enp0s3\n type: phy\n
|
||||||
|
\ \n ethernet_mac_address: 52:54:00:9b:27:4c\n-\n id: pxe\n mtu: \"1500\"\n
|
||||||
|
\ name: enp0s4\n type: phy\n \n ethernet_mac_address: 52:54:00:b6:ed:31\nnetworks:\n-\n
|
||||||
|
\ id: oam-ipv4\n link: oam\n netmask: 255.255.255.0\n routes:\n - gateway:
|
||||||
|
10.23.25.1\n netmask: 0.0.0.0\n network: 0.0.0.0\n type: ipv4\n \n ip_address:
|
||||||
|
10.23.25.102\n-\n id: pxe-ipv4\n link: pxe\n netmask: 255.255.255.0\n type:
|
||||||
|
ipv4\n \n ip_address: 10.23.24.102\nservices:\n - address: 8.8.8.8\n type:
|
||||||
|
dns\n - address: 8.8.4.4\n type: dns\n \n"
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: cluster.x-k8s.io/v1alpha3
|
||||||
|
kind: Cluster
|
||||||
|
metadata:
|
||||||
|
name: target-cluster
|
||||||
|
spec:
|
||||||
|
clusterNetwork:
|
||||||
|
pods:
|
||||||
|
cidrBlocks:
|
||||||
|
- 192.168.0.0/18
|
||||||
|
serviceDomain: cluster.local
|
||||||
|
services:
|
||||||
|
cidrBlocks:
|
||||||
|
- 10.96.0.0/12
|
||||||
|
controlPlaneRef:
|
||||||
|
apiVersion: controlplane.cluster.x-k8s.io/v1alpha3
|
||||||
|
kind: KubeadmControlPlane
|
||||||
|
name: cluster-controlplane
|
||||||
|
infrastructureRef:
|
||||||
|
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
|
||||||
|
kind: Metal3Cluster
|
||||||
|
name: target-cluster
|
||||||
|
---
|
||||||
|
apiVersion: controlplane.cluster.x-k8s.io/v1alpha3
|
||||||
|
kind: KubeadmControlPlane
|
||||||
|
metadata:
|
||||||
|
name: cluster-controlplane
|
||||||
|
spec:
|
||||||
|
infrastructureTemplate:
|
||||||
|
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
|
||||||
|
kind: Metal3MachineTemplate
|
||||||
|
name: cluster-controlplane
|
||||||
|
kubeadmConfigSpec:
|
||||||
|
files:
|
||||||
|
- content: |
|
||||||
|
kubernetes:
|
||||||
|
version: 1.17.3
|
||||||
|
container_runtime:
|
||||||
|
type: docker
|
||||||
|
owner: root:root
|
||||||
|
path: /konfigadm.yml
|
||||||
|
permissions: "0640"
|
||||||
|
initConfiguration:
|
||||||
|
nodeRegistration:
|
||||||
|
kubeletExtraArgs:
|
||||||
|
node-labels: metal3.io/uuid={{ ds.meta_data.uuid }}
|
||||||
|
name: '{{ ds.meta_data.local_hostname }}'
|
||||||
|
joinConfiguration:
|
||||||
|
controlPlane: {}
|
||||||
|
nodeRegistration:
|
||||||
|
kubeletExtraArgs:
|
||||||
|
node-labels: metal3.io/uuid={{ ds.meta_data.uuid }}
|
||||||
|
name: '{{ ds.meta_data.local_hostname }}'
|
||||||
|
postKubeadmCommands:
|
||||||
|
- kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml
|
||||||
|
preKubeadmCommands:
|
||||||
|
- wget -O "/usr/bin/konfigadm" https://github.com/flanksource/konfigadm/releases/download/v0.5.3/konfigadm
|
||||||
|
&& chmod +x "/usr/bin/konfigadm"
|
||||||
|
- konfigadm apply --config=/konfigadm.yml
|
||||||
|
replicas: 1
|
||||||
|
version: v1.17.0
|
||||||
|
---
|
||||||
|
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
|
||||||
|
kind: Metal3Cluster
|
||||||
|
metadata:
|
||||||
|
name: target-cluster
|
||||||
|
spec:
|
||||||
|
controlPlaneEndpoint:
|
||||||
|
host: 10.23.25.102
|
||||||
|
port: 6443
|
||||||
|
noCloudProvider: true
|
||||||
|
---
|
||||||
|
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
|
||||||
|
kind: Metal3MachineTemplate
|
||||||
|
metadata:
|
||||||
|
name: cluster-controlplane
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
hostSelector:
|
||||||
|
matchLabels:
|
||||||
|
airshipit.org/k8s-role: controlplane-host
|
||||||
|
image:
|
||||||
|
checksum: http://10.23.24.1:8099/target-image.qcow2.md5sum
|
||||||
|
url: http://10.23.24.1:8099/target-image.qcow2
|
||||||
|
---
|
||||||
|
apiVersion: metal3.io/v1alpha1
|
||||||
|
kind: BareMetalHost
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
airshipit.org/k8s-role: controlplane-host
|
||||||
|
name: node01
|
||||||
|
spec:
|
||||||
|
bmc:
|
||||||
|
address: redfish+http://10.23.25.1:8000/redfish/v1/Systems/air-target-1
|
||||||
|
credentialsName: node01-bmc-secret
|
||||||
|
bootMACAddress: 52:54:00:b6:ed:31
|
||||||
|
networkData:
|
||||||
|
name: node01-network-data
|
||||||
|
namespace: default
|
||||||
|
online: false
|
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
|
||||||
|
kind: Metal3MachineTemplate
|
||||||
|
metadata:
|
||||||
|
name: cluster-controlplane
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
image:
|
||||||
|
url: http://10.23.24.1:8099/target-image.qcow2
|
||||||
|
checksum: http://10.23.24.1:8099/target-image.qcow2.md5sum
|
@ -0,0 +1,10 @@
|
|||||||
|
# Site-level, phase-specific lists of hosts to generate
|
||||||
|
# This is used by the hostgenerator-m3 function to narrow down the site-level
|
||||||
|
# host-catalogue to just the hosts needed for a particular phase.
|
||||||
|
apiVersion: airshipit.org/v1alpha1
|
||||||
|
kind: VariableCatalogue
|
||||||
|
metadata:
|
||||||
|
name: host-generation-catalogue
|
||||||
|
hosts:
|
||||||
|
m3:
|
||||||
|
- node01
|
@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../../../../../airshipctl/manifests/function/hostgenerator-m3
|
||||||
|
- ../../../shared/catalogues/
|
||||||
|
- host-generation.yaml
|
||||||
|
|
||||||
|
transformers:
|
||||||
|
- ../../../../../../../airshipctl/manifests/function/hostgenerator-m3/replacements
|
@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../../type/airship-core/ephemeral/controlplane
|
||||||
|
# TODO (dukov) It's recocommended to upload BareMetalHost objects separately
|
||||||
|
# otherwise nodes will hang in 'registering' state for quite a long time
|
||||||
|
- nodes
|
||||||
|
patchesStrategicMerge:
|
||||||
|
- control-machine-template-patch.yaml
|
@ -0,0 +1,12 @@
|
|||||||
|
# Note: this weird extra layer between the .. and ../hostgenerator
|
||||||
|
# is purely to apply the label below to the generated hosts.
|
||||||
|
# When can come up with a better way to declare (e.g. via catalogue)
|
||||||
|
# that the host is a controlplane host, we should get rid of this.
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
generators:
|
||||||
|
- ../hostgenerator
|
||||||
|
|
||||||
|
commonLabels:
|
||||||
|
airshipit.org/k8s-role: controlplane-host
|
@ -0,0 +1,4 @@
|
|||||||
|
resources:
|
||||||
|
- ../../../../type/airship-core/ephemeral/initinfra
|
||||||
|
patchesStrategicMerge:
|
||||||
|
- patch_bmo_config.yaml
|
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
kind: ConfigMap
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
name: ironic-vars
|
||||||
|
data:
|
||||||
|
PROVISIONING_IP: "10.23.24.101"
|
||||||
|
DHCP_RANGE: "10.23.24.200,10.23.24.250"
|
||||||
|
PROVISIONING_INTERFACE: "enp0s4"
|
27
manifests/site/test-site/shared/catalogues/hosts.yaml
Normal file
27
manifests/site/test-site/shared/catalogues/hosts.yaml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Site-level host catalogue. This info feeds the Templater
|
||||||
|
# kustomize plugin config in the hostgenerator-m3 function.
|
||||||
|
apiVersion: airshipit.org/v1alpha1
|
||||||
|
kind: VariableCatalogue
|
||||||
|
metadata:
|
||||||
|
name: host-catalogue
|
||||||
|
hosts:
|
||||||
|
m3:
|
||||||
|
node01:
|
||||||
|
macAddress: 52:54:00:b6:ed:31
|
||||||
|
bmcAddress: redfish+http://10.23.25.1:8000/redfish/v1/Systems/air-target-1
|
||||||
|
bmcUsername: root
|
||||||
|
bmcPassword: r00tme
|
||||||
|
ipAddresses:
|
||||||
|
oam-ipv4: 10.23.25.102
|
||||||
|
pxe-ipv4: 10.23.24.102
|
||||||
|
macAddresses:
|
||||||
|
oam: 52:54:00:9b:27:4c
|
||||||
|
pxe: 52:54:00:b6:ed:31
|
||||||
|
node02:
|
||||||
|
macAddress: 00:3b:8b:0c:ec:8b
|
||||||
|
bmcAddress: redfish+http://10.23.25.2:8000/redfish/v1/Systems/air-target-2
|
||||||
|
bmcUsername: username
|
||||||
|
bmcPassword: password
|
||||||
|
ipAddresses:
|
||||||
|
oam-ipv4: 10.23.25.101
|
||||||
|
pxe-ipv4: 10.23.24.101
|
@ -0,0 +1,5 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../../type/airship-core/shared/catalogues
|
||||||
|
- hosts.yaml
|
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../../../../airshipctl/manifests/function/ephemeral
|
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- ../../../../../../airshipctl/manifests/function/k8scontrol
|
@ -0,0 +1,5 @@
|
|||||||
|
resources:
|
||||||
|
- ../../shared/clusterctl
|
||||||
|
- ../../../../../../airshipctl/manifests/function/baremetal-operator/
|
||||||
|
commonLabels:
|
||||||
|
airshipit.org/stage: initinfra
|
@ -0,0 +1,39 @@
|
|||||||
|
# Type-level networking catalogue. This info feeds the Templater
|
||||||
|
# kustomize plugin config in the hostgenerator-m3 function.
|
||||||
|
apiVersion: airshipit.org/v1alpha1
|
||||||
|
kind: VariableCatalogue
|
||||||
|
metadata:
|
||||||
|
name: common-networking-catalogue
|
||||||
|
commonNetworking:
|
||||||
|
links:
|
||||||
|
- id: oam
|
||||||
|
name: enp0s3
|
||||||
|
type: phy
|
||||||
|
mtu: "1500"
|
||||||
|
# ethernet_mac_address: <from host-catalogue> (optional)
|
||||||
|
- id: pxe
|
||||||
|
name: enp0s4
|
||||||
|
type: phy
|
||||||
|
mtu: "1500"
|
||||||
|
# ethernet_mac_address: <from host-catalogue> (optional)
|
||||||
|
networks:
|
||||||
|
- id: oam-ipv4
|
||||||
|
type: ipv4
|
||||||
|
link: oam
|
||||||
|
# ip_address: <from host-catalogue>
|
||||||
|
netmask: 255.255.255.0
|
||||||
|
routes:
|
||||||
|
- network: 0.0.0.0
|
||||||
|
netmask: 0.0.0.0
|
||||||
|
gateway: 10.23.25.1
|
||||||
|
- id: pxe-ipv4
|
||||||
|
type: ipv4
|
||||||
|
link: pxe
|
||||||
|
# ip_address: <from host-catalogue>
|
||||||
|
netmask: 255.255.255.0
|
||||||
|
services:
|
||||||
|
- address: 8.8.8.8
|
||||||
|
type: dns
|
||||||
|
- address: 8.8.4.4
|
||||||
|
type: dns
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- common-networking.yaml
|
@ -0,0 +1,31 @@
|
|||||||
|
apiVersion: airshipit.org/v1alpha1
|
||||||
|
kind: Clusterctl
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
airshipit.org/deploy-k8s: "false"
|
||||||
|
name: clusterctl-v1
|
||||||
|
init-options:
|
||||||
|
core-provider: "cluster-api:v0.3.3"
|
||||||
|
bootstrap-providers:
|
||||||
|
- "kubeadm:v0.3.3"
|
||||||
|
infrastructure-providers:
|
||||||
|
- "metal3:v0.3.1"
|
||||||
|
control-plane-providers:
|
||||||
|
- "kubeadm:v0.3.3"
|
||||||
|
providers:
|
||||||
|
- name: "metal3"
|
||||||
|
type: "InfrastructureProvider"
|
||||||
|
versions:
|
||||||
|
v0.3.1: ../airshipctl/manifests/function/capm3/v0.3.1
|
||||||
|
- name: "kubeadm"
|
||||||
|
type: "BootstrapProvider"
|
||||||
|
versions:
|
||||||
|
v0.3.3: ../airshipctl/manifests/function/cabpk/v0.3.3
|
||||||
|
- name: "cluster-api"
|
||||||
|
type: "CoreProvider"
|
||||||
|
versions:
|
||||||
|
v0.3.3: ../airshipctl/manifests/function/capi/v0.3.3
|
||||||
|
- name: "kubeadm"
|
||||||
|
type: "ControlPlaneProvider"
|
||||||
|
versions:
|
||||||
|
v0.3.3: ../airshipctl/manifests/function/cacpk/v0.3.3
|
@ -0,0 +1,2 @@
|
|||||||
|
resources:
|
||||||
|
- clusterctl.yaml
|
@ -1,30 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright 2019 AT&T Intellectual Property. All other rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
set -xe
|
|
||||||
|
|
||||||
INSTALL_PREFIX=$1
|
|
||||||
INSTALL_PREFIX=${INSTALL_PREFIX:-'/tmp/kubeval'}
|
|
||||||
KUBEVAL_URL=https://github.com/instrumenta/kubeval/releases/download
|
|
||||||
KUBEVAL_VER=${KUBEVAL_VER:-'0.14.0'}
|
|
||||||
URL="${KUBEVAL_URL}/${KUBEVAL_VER}/kubeval-linux-amd64.tar.gz"
|
|
||||||
|
|
||||||
TMP=$(mktemp -d)
|
|
||||||
pushd $TMP
|
|
||||||
curl -fL $URL | tar -xz
|
|
||||||
install -D -t ${INSTALL_PREFIX}/bin kubeval
|
|
||||||
popd
|
|
||||||
rm -rf $TMP
|
|
@ -1,21 +0,0 @@
|
|||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
---
|
|
||||||
- hosts: all
|
|
||||||
tasks:
|
|
||||||
- name: Install KubeVal
|
|
||||||
shell: |
|
|
||||||
set -xe
|
|
||||||
./tools/gate/install-kubeval.sh
|
|
||||||
args:
|
|
||||||
chdir: "{{ zuul.project.src_dir }}"
|
|
||||||
become: yes
|
|
@ -1,23 +0,0 @@
|
|||||||
# Copyright 2019 AT&T Intellectual Property. All other rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
---
|
|
||||||
- hosts: ubuntu-bionic
|
|
||||||
tasks:
|
|
||||||
- name: Lint site
|
|
||||||
shell: |
|
|
||||||
set -xe
|
|
||||||
./tools/gate/run-lint.sh
|
|
||||||
args:
|
|
||||||
chdir: "{{ zuul.project.src_dir }}"
|
|
||||||
become: yes
|
|
@ -1,38 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright 2019 AT&T Intellectual Property. All other rights reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
set -xe
|
|
||||||
|
|
||||||
ROOT=$1
|
|
||||||
KUBEVAL_BIN=${KUBEVAL_BIN:-/tmp/kubeval/bin}
|
|
||||||
PATH=${KUBEVAL_BIN}:$PATH
|
|
||||||
|
|
||||||
EXCLUDE_DIRS=(
|
|
||||||
'*/\.git/*'
|
|
||||||
'*/kustomizeconfig/*'
|
|
||||||
'*/tools/*'
|
|
||||||
)
|
|
||||||
|
|
||||||
EXCLUDE_FILES=(
|
|
||||||
'.zuul.yaml'
|
|
||||||
'kustomization.yaml'
|
|
||||||
)
|
|
||||||
|
|
||||||
function join { local d=$1; shift; printf '%s' "${@/#/$d}"; }
|
|
||||||
|
|
||||||
FILTER="$(join ' -not -path ' ${EXCLUDE_DIRS[*]})"
|
|
||||||
FILTER="$FILTER $(join ' -not -name ' ${EXCLUDE_FILES[*]})"
|
|
||||||
find $ROOT -type f \( -name "*\.yaml" $FILTER \) | xargs -r kubeval
|
|
Loading…
x
Reference in New Issue
Block a user