Compare commits

..
5 Commits
25 changed files with 187 additions and 73 deletions

No files matched your search

@@ -1,12 +1,12 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: icarus-nodes-mngt name: hosting-mngt
spec: spec:
interval: 1m interval: 1m
sourceRef: sourceRef:
kind: GitRepository kind: GitRepository
name: nodes-mngt name: nodes-mngt
namespace: chimera-limbosolutions-com namespace: chimera-limbosolutions-com
path: deploy/icarus-mngt path: deploy/hosting-mngt
prune: true prune: true
@@ -1,6 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: icarus-nodes-mngt namespace: hosting-mngt
resources: resources:
- fluxcd-kustomization.yaml - fluxcd-kustomization.yaml
- secrets - secrets
@@ -0,0 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: hosting-mngt
secretGenerator:
- name: ansible-secret
files:
- ansible_vault_password=.env.d/ansible_vault_password
- ansible_become_password=.env.d/ansible_become_password
- name: oci-registry-secret
type: kubernetes.io/dockerconfigjson
files:
- .dockerconfigjson=.env.d/oci_registry_secret.json
generatorOptions:
disableNameSuffixHash: true
@@ -1,22 +0,0 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: icarus-nodes-mngt
secretGenerator:
- name: icarus-ssh
files:
- known_hosts=.env.d/icarus-known_hosts
- id_rsa=.env.d/icarus-ssh-ansible-id_rsa
- id_rsa.pub=.env.d/icarus-ssh-ansible-id_rsa.pub
- name: icarus-ansible
files:
- vault-pass.txt=.env.d/ansible-vault-pass.txt
- ansible_become_password=.env.d/ansible_become_password
- name: oci-registry-secret
type: kubernetes.io/dockerconfigjson
files:
- .dockerconfigjson=.env.d/oci-registry-secret.json
generatorOptions:
disableNameSuffixHash: true
@@ -2,7 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: CronWorkflow kind: CronWorkflow
metadata: metadata:
name: crictl-prune name: crictl-prune
namespace: icarus-nodes-mngt
spec: spec:
schedules: schedules:
- "0 0 * * *" - "0 0 * * *"
@@ -10,17 +9,16 @@ spec:
successfulJobsHistoryLimit: 3 successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 5 failedJobsHistoryLimit: 5
workflowSpec: workflowSpec:
entrypoint: exec
serviceAccountName: argo-runner
imagePullSecrets: imagePullSecrets:
- name: oci-mylimbo-infra-icarus-credentials - name: oci-registry-secret
serviceAccountName: argo-runner
entrypoint: exec
templates: templates:
- name: exec - name: exec
steps: steps:
- - name: script-exec - - name: script-exec
templateRef: templateRef:
name: icarus-ansible-script name: hosting-mngt-ansible-script
template: raw-source template: raw-source
arguments: arguments:
parameters: parameters:
@@ -1,5 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: hosting-mngt
resources: resources:
- crictl-prune.yaml - crictl-prune.yaml
generatorOptions: generatorOptions:
@@ -1,8 +1,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: hosting-mngt
resources: resources:
- argo-runner-sa.yaml - argo-runner-sa.yaml
- icarus-nodes-mngt-tbot-config.yaml - tbot-config.yaml
generatorOptions: generatorOptions:
disableNameSuffixHash: true disableNameSuffixHash: true
@@ -1,8 +1,7 @@
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: icarus-nodes-mngt-tbot-config name: hosting-mngt-tbot-config
namespace: icarus-nodes-mngt
data: data:
tbot.yaml: | tbot.yaml: |
version: v2 version: v2
@@ -10,7 +9,7 @@ data:
on_one_shot: "exit" on_one_shot: "exit"
onboarding: onboarding:
join_method: "kubernetes" join_method: "kubernetes"
token: "icarus-nodes-mngt" token: "hosting-mngt"
storage: storage:
type: "memory" type: "memory"
services: services:
@@ -1,10 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: icarus-nodes-mngt namespace: hosting-mngt
resources: resources:
- infra - infra
- cronWorkflows - cronWorkflows
- workflowTemplates - workflowTemplates
- mylimbo-ansible-collections-global
generatorOptions: generatorOptions:
disableNameSuffixHash: true disableNameSuffixHash: true
+6
View File
@@ -0,0 +1,6 @@
# teleport
``` bash
tctl create -f deploy/hosting-mngt/manual/teleport-manifests/manifest.yaml
tctl bots update hosting-mngt --add-roles hosting-mngt
```
@@ -2,7 +2,7 @@ kind: bot
version: v1 version: v1
metadata: metadata:
# name is a unique identifier for the Bot in the cluster. # name is a unique identifier for the Bot in the cluster.
name: icarus-nodes-mngt name: hosting-mngt
spec: spec:
roles: [] roles: []
@@ -12,7 +12,7 @@ spec:
kind: role kind: role
version: v6 version: v6
metadata: metadata:
name: icarus-nodes-mngt # use the auto created bot role (created by bot yaml) name: hosting-mngt
spec: spec:
allow: allow:
# Allow login to the user 'ansible'. # Allow login to the user 'ansible'.
@@ -27,11 +27,11 @@ spec:
kind: token kind: token
version: v2 version: v2
metadata: metadata:
name: icarus-nodes-mngt name: hosting-mngt
spec: spec:
roles: [Bot] roles: [Bot]
bot_name: icarus-nodes-mngt bot_name: hosting-mngt
join_method: kubernetes join_method: kubernetes
kubernetes: kubernetes:
allow: allow:
- service_account: icarus-nodes-mngt:argo-runner - service_account: hosting-mngt:argo-runner
@@ -2,7 +2,7 @@ apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: mylimbo-ansible-collections-global name: mylimbo-ansible-collections-global
namespace: icarus-nodes-mngt namespace: hosting-mngt
spec: spec:
interval: 1m interval: 1m
sourceRef: sourceRef:
@@ -11,4 +11,4 @@ spec:
namespace: chimera-limbosolutions-com namespace: chimera-limbosolutions-com
path: mylimbo-ansible-collections-global path: mylimbo-ansible-collections-global
prune: true prune: true
targetNamespace: icarus-nodes-mngt targetNamespace: hosting-mngt
@@ -1,6 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: icarus-nodes-mngt namespace: hosting-mngt
resources: resources:
- fluxcd-kustomization.yaml - fluxcd-kustomization.yaml
@@ -1,16 +1,13 @@
apiVersion: argoproj.io/v1alpha1 apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate kind: WorkflowTemplate
metadata: metadata:
name: icarus-ansible-script name: hosting-mngt-ansible-script
labels: labels:
workflows.argoproj.io/archive-strategy: "false" workflows.argoproj.io/archive-strategy: "false"
annotations: annotations:
workflows.argoproj.io/description: | workflows.argoproj.io/description: |
icarus ansible script hosting ansible script
spec: spec:
serviceAccountName: argo-runner
imagePullSecrets:
- name: oci-registry-secret
entrypoint: raw-source entrypoint: raw-source
templates: templates:
- name: raw-source - name: raw-source
@@ -20,15 +17,17 @@ spec:
steps: steps:
- - name: invoke-limbo-ansible-collections-global - - name: invoke-limbo-ansible-collections-global
templateRef: templateRef:
name: mylimbo-ansible-collections-global name: mylimbo-ansible-collections-global-tbot
template: raw-source template: raw-source
arguments: arguments:
parameters: parameters:
- name: source - name: source
value: "{{ inputs.parameters.source }}" value: "{{ inputs.parameters.source }}"
- name: tbot_configmap_name
value: hosting-mngt-tbot-config
- name: inventory_image_reference - name: inventory_image_reference
value: "oci.limbosolutions.com/mylimbo.infra.icarus/ansible-inventory:latest" value: oci.limbosolutions.com/mylimbo.infra.icarus/ansible-inventory:latest
- name: ansible_secret_name - name: ansible_secret_name
value: "icarus-ansible" value: ansible-secret
- name: ssh_secret_name - name: ssh_domain
value: "icarus-ssh" value: teleport.limbosolutions.com
@@ -1,7 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- icarus-ansible-script.yaml - hosting-mngt-ansible-script.yaml
generatorOptions: generatorOptions:
disableNameSuffixHash: true disableNameSuffixHash: true
@@ -1,6 +0,0 @@
# teleport
``` bash
tctl create -f deploy/icarus-mngt/teleport-manifests/manifest.yaml
tctl bots update icarus-nodes-mngt --add-roles icarus-nodes-mngt
```
@@ -2,17 +2,19 @@ apiVersion: argoproj.io/v1alpha1
kind: Workflow kind: Workflow
metadata: metadata:
generateName: node-get-info- generateName: node-get-info-
namespace: icarus-nodes-mngt namespace: hosting-mngt
spec: spec:
entrypoint: exec imagePullSecrets:
- name: oci-registry-secret
serviceAccountName: argo-runner serviceAccountName: argo-runner
entrypoint: exec
templates: templates:
- name: exec - name: exec
steps: steps:
- - name: script-exec - - name: script-exec
templateRef: templateRef:
# https://git.limbosolutions.com/myLimbo/myinfra.kubernetes.shared name: hosting-mngt-ansible-script
name: icarus-ansible-script
template: raw-source template: raw-source
arguments: arguments:
parameters: parameters:
@@ -2,17 +2,19 @@ apiVersion: argoproj.io/v1alpha1
kind: Workflow kind: Workflow
metadata: metadata:
generateName: nodes-update-os- generateName: nodes-update-os-
namespace: icarus-nodes-mngt namespace: hosting-mngt
spec: spec:
entrypoint: exec imagePullSecrets:
- name: oci-registry-secret
serviceAccountName: argo-runner serviceAccountName: argo-runner
entrypoint: exec
templates: templates:
- name: exec - name: exec
steps: steps:
- - name: script-exec - - name: script-exec
templateRef: templateRef:
# /deploy/icarus-mngt # /deploy/icarus-mngt
name: icarus-ansible-script name: hosting-mngt-ansible-script
template: raw-source template: raw-source
arguments: arguments:
parameters: parameters:
@@ -0,0 +1,86 @@
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
namespace: hosting-mngt
generateName: tests-ansible-playbook-
labels:
workflows.argoproj.io/archive-strategy: "false"
annotations:
workflows.argoproj.io/description: |
spec:
entrypoint: exec
serviceAccountName: argo-runner
imagePullSecrets:
- name: oci-registry-secret
templates:
- name: exec
script:
image: oci.limbosolutions.com/public/mylimbo.ansible.collections.global:latest
source: |
export PATH="$PATH:/opt/tbot"
mkdir -p /opt/machine-id
tbot start --config=/etc/tbot/tbot.yaml --oneshot
ansible-playbook mylimbo.globals.host_maintenance.os_info
env:
- name: ANSIBLE_VAULT_PASSWORD_FILE
value: /workspace/secrets/ansible_vault_password
- name: ANSIBLE_BECOME_PASS
valueFrom:
secretKeyRef:
name: "ansible-secret"
key: ansible_become_password
- name: ANSIBLE_SSH_ARGS
value: -F /opt/machine-id/ssh_config
- name: SSH_DOMAIN
value: teleport.limbosolutions.com
resources:
limits:
memory: "512Mi"
cpu: "500m"
requests:
memory: "256Mi"
cpu: "250m"
volumeMounts:
- name: inventory
mountPath: /workspace/inventory
subPath: inventory
- name: tbot
mountPath: /opt/tbot
subPath: usr/local/bin
- name: ansible-secrets
mountPath: /workspace/secrets
- name: identity-output
mountPath: /opt/machine-id
- name: hosting-mngt-tbot-config
mountPath: /etc/tbot
volumes:
- name: inventory
image:
reference: "oci.limbosolutions.com/mylimbo.infra.icarus/ansible-inventory:latest"
pullPolicy: Always
- name: tbot
image:
reference: public.ecr.aws/gravitational/tbot-distroless:18.11.4
pullPolicy: Always
- name: ansible-secrets
secret:
secretName: "ansible-secret"
- name: identity-output
emptyDir: {}
- name: hosting-mngt-tbot-config
configMap:
name: hosting-mngt-tbot-config
@@ -2,7 +2,7 @@ apiVersion: argoproj.io/v1alpha1
kind: Workflow kind: Workflow
metadata: metadata:
generateName: tests-download-private-oci- generateName: tests-download-private-oci-
namespace: icarus-nodes-mngt namespace: hosting-mngt
labels: labels:
workflows.argoproj.io/archive-strategy: "false" workflows.argoproj.io/archive-strategy: "false"
annotations: annotations:
@@ -0,0 +1,30 @@
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
namespace: hosting-mngt
generateName: tests-mylimbo-ansible-collections-global-tbot-script-
spec:
imagePullSecrets:
- name: oci-registry-secret
entrypoint: exec
serviceAccountName: argo-runner
templates:
- name: exec
steps:
- - name: script-exec
templateRef:
name: mylimbo-ansible-collections-global-tbot
template: raw-source
arguments:
parameters:
- name: tbot_configmap_name
value: hosting-mngt-tbot-config
- name: inventory_image_reference
value: oci.limbosolutions.com/mylimbo.infra.icarus/ansible-inventory:latest
- name: ansible_secret_name
value: ansible-secret
- name: source
value: |
ansible-playbook mylimbo.globals.host_maintenance.os_info
@@ -2,7 +2,7 @@ apiVersion: argoproj.io/v1alpha1
kind: Workflow kind: Workflow
metadata: metadata:
generateName: tests-teleport-tbot- generateName: tests-teleport-tbot-
namespace: icarus-nodes-mngt namespace: hosting-mngt
spec: spec:
entrypoint: exec entrypoint: exec
serviceAccountName: argo-runner serviceAccountName: argo-runner
@@ -11,9 +11,9 @@ spec:
volumes: volumes:
- name: identity-output - name: identity-output
emptyDir: {} emptyDir: {}
- name: icarus-nodes-mngt-tbot-config - name: hosting-mngt-tbot-config
configMap: configMap:
name: icarus-nodes-mngt-tbot-config name: hosting-mngt-tbot-config
container: container:
image: alpine image: alpine
@@ -36,5 +36,5 @@ spec:
volumeMounts: volumeMounts:
- name: identity-output - name: identity-output
mountPath: /opt/machine-id mountPath: /opt/machine-id
- name: icarus-nodes-mngt-tbot-config - name: hosting-mngt-tbot-config
mountPath: /config mountPath: /config